@rex0220/kintone-sql-tools 3.36.0 → 3.37.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.
- package/dist-cli/ksql.js +278 -254
- package/dist-engine/index.cjs +10 -9
- package/dist-engine/index.mjs +10 -9
- package/dist-engine/ksql-engine.umd.js +10 -9
- package/dist-engine/meta/bundle-baseline.json +10 -10
- package/dist-engine/meta/cjs.json +46 -8
- package/dist-engine/meta/esm.json +46 -8
- package/dist-engine/meta/umd.json +46 -8
- package/dist-engine/publicTypes.d.ts +2 -0
- package/dist-mcp/ksql-mcp.js +289 -258
- package/dist-mcpb/ksql-mcp.mcpb +0 -0
- package/package.json +1 -1
|
@@ -1,14 +1,15 @@
|
|
|
1
|
-
"use strict";(()=>{async function Ie(e,t,n,r,i={}){let o=i.pageSize??EE,a=Math.max(1,i.parallel??RE),s=i.maxRecords??mE,l=i.onLimit??"error",d=i.stopAfter;if(d!==void 0&&(!Number.isSafeInteger(d)||d<=0||d>s))throw new RangeError("stopAfter must be a positive safe integer <= maxRecords");let p=d??s,c=r.length>0&&!r.includes("$id")?[...r,"$id"]:r,u=[],f=!1,E=`\u53D6\u5F97\u4EF6\u6570\u304C\u4E0A\u9650\uFF08${s} \u4EF6\uFF09\u3092\u8D85\u3048\u307E\u3057\u305F\u3002WHERE \u53E5\u3067\u7D5E\u308A\u8FBC\u3080\u304B\u3001maxRecords \u3092\u5F15\u304D\u4E0A\u3052\u3066\u304F\u3060\u3055\u3044\u3002`,R=0,h=0,m=pu(n,R),y=await cu(e,t,m,c,o,h);if(uu(y,i),u.push(...y.records),d!==void 0&&u.length>=d)return u.slice(0,d);if(u.length>s){if(l==="truncate")return!f&&i.onTruncate&&(i.onTruncate(s),f=!0),u.slice(0,s);throw new Pe(E)}if(y.records.length<o)return u;for(h+=o,h>=da&&(R=du(y.records),h=0);;){if(d!==void 0&&u.length>=d)return u.slice(0,d);if(u.length>=s){if(l==="truncate")return!f&&i.onTruncate&&(i.onTruncate(s),f=!0),u.slice(0,s);throw new Pe(E)}let g=p-u.length,S=Math.ceil(g/o),P=Math.max(1,Math.min(a,S)),b=[];for(let w=0;w<P;w++){let D=h+w*o;if(D>=da)break;b.push(D)}let L=pu(n,R),I=await Promise.all(b.map(w=>cu(e,t,L,c,o,w)));for(let w of I)uu(w,i);let v=!1;for(let w of I){if(u.push(...w.records),d!==void 0&&u.length>=d)return u.slice(0,d);if(u.length>s){if(l==="truncate")return!f&&i.onTruncate&&(i.onTruncate(s),f=!0),u.slice(0,s);throw new Pe(E)}if(w.records.length<o){v=!0;break}}if(v)break;if(h+=o*b.length,h>=da){let w=I[I.length-1];R=du(w.records),h=0}}return u}function uu(e,t){e.searchAborted&&t.onSearchAborted?.()}function fu(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 EE=500,RE=1,mE=1e4,da=1e4;async function cu(e,t,n,r,i,o){let a=yE(n,i,o);return e({app:t,query:a,fields:r})}function pu(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 yE(e,t,n){let r=e.trimEnd(),i=`limit ${t} offset ${n}`;return r?`${r} ${i}`:i}function du(e){let n=e[e.length-1]?.$id?.value;if(n===void 0)return 0;let r=Number(n);return Number.isFinite(r)?r:0}var Pe=class extends Error{constructor(n,r=!1){super(n);this.completeInputWrapped=r;this.name="FetchAllLimitError"}};var hE=/^([+-]?)(?:(\d+)(?:\.(\d*))?|\.(\d+))(?:[eE]([+-]?)(\d+))?$/;function gE(e,t){if(t===void 0)return 0;let n=0;for(let r of t)if(n=n*10+(r.charCodeAt(0)-48),!Number.isSafeInteger(n))return null;return e==="-"?-n:n}function Le(e){let t=hE.exec(e.trim());if(t===null)return null;let n=gE(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 AE(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 Eu(e){let t=Le(e);return t===null?null:AE(t)}function SE(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 di(e,t){if(e.sign!==t.sign)return e.sign<t.sign?-1:1;if(e.sign===0)return 0;let n=SE(e,t);return e.sign===-1?n===0?0:n===-1?1:-1:n}function fi(e,t){let n=Le(e),r=Le(t);if(n===null||r===null)throw new Error("ArgumentError: compareDecimal requires finite decimal inputs.");return di(n,r)}var qe="__NO_FROM__";function Re(e){return{type:"NUMBER",value:Number(e),raw:e}}function H(e){let t=e.raw??String(e.value);return Eu(t)??t}function Ru(e){let t=1;for(let r of e){if(t>Math.floor(64/2)){let i=t*2;throw new Error(`ArgumentError: B65 expanded grouping set count ${i} exceeds limit 64 (reason=GROUPING_SET_LIMIT_EXCEEDED).`)}t*=2}let n=[{items:[]}];for(let r of e)n=n.flatMap(i=>[{items:[...i.items,r]},{items:[...i.items]}]);return n}function TE(e){return`${e.tableAlias??""}\0${e.field}`}function ne(e){if(e.grouping!==void 0&&e.groupBy.length>0)throw new Error("internal error: SELECT cannot contain both groupBy and grouping.");if(e.grouping===void 0)return e.groupBy.length===0?{type:"NONE"}:{type:"PLAIN",allItems:e.groupBy,sets:[e.groupBy]};let t=new Set,n=[];for(let i of e.grouping.sets)for(let o of i.items){let a=TE(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 mu(e){return ne(e).type!=="NONE"}function yu(e,t){let n=ne(e);if(n.type!=="GROUPING_SETS")return null;let r=new Map,i=s=>{let l=t(s),d=r.get(l.canonicalId);if(d)return d;let p={...l,field:s};return r.set(p.canonicalId,p),p},o=n.allItems.map(i).filter((s,l,d)=>d.findIndex(p=>p.canonicalId===s.canonicalId)===l),a=n.sets.map(s=>({items:s.items.map(i)}));return{type:"GROUPING_SETS",source:n.source,allItems:o,sets:a}}function mi(e){if(!e||typeof e!="object")return"UNKNOWN";let t=e;return typeof t.type=="string"?t.type:"UNKNOWN"}function kt(e){return e==="INSERT"||e==="INSERT_SELECT"||e==="UPDATE"||e==="DELETE"||e==="UPSERT"||e==="UPSERT_SELECT"||e==="REORDER"||e==="IMPORT"}function IE(e){return e==="SELECT"||e==="VALIDATE"||e==="UNION"||e==="WITH"||e==="EXPLAIN"||e==="SHOW_APPS"||e==="DESCRIBE"||e==="CREATE_TEMP_TABLE"||e==="DROP_TEMP_TABLE"||e==="SET_VARIABLE"||e==="DECLARE_VARIABLE"||e==="ASSERT"}function fa(e){return kt(e.type)&&!("validateOnly"in e&&e.validateOnly===!0)}function dn(e){return!fa(e)&&(IE(e.type)||kt(e.type))}function hu(e){return dn(e)?e.type==="SELECT"||e.type==="WITH"||e.type==="UNION"||e.type==="SHOW_APPS"||e.type==="DESCRIBE"||e.type==="VALIDATE":!1}var gu=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 Ei(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"&&gu.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=>Ei(i,t)):Ei(r,t))}function Ri(e,t=new Set){if(e===null||typeof e!="object"||t.has(e))return!1;t.add(e);let n=e;return(n.type==="AGGREGATE"||n.type==="AGG_REF")&&typeof n.func=="string"&&!gu.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=>Ri(i,t)):Ri(r,t))}function gt(e){let t=new Set;if(kt(e.type))return t.add("DML"),t;switch(e.type){case"VALIDATE":t.add("VALIDATE");break;case"SELECT":me(t,pn(e));break;case"UNION":me(t,Su(e));break;case"WITH":for(let n of e.ctes)me(t,gt(n.query));me(t,gt(e.query));break;case"CREATE_TEMP_TABLE":me(t,gt(e.query));break;default:break}return Ei(e)&&t.add("STATISTICAL_AGGREGATE"),Ri(e)&&t.add("AGGREGATE"),t}function Au(e){return gt(e).size>0}function Su(e){let t=e.left.type==="SELECT"?pn(e.left):Su(e.left);return me(t,pn(e.right)),e.all||t.add("DISTINCT"),t}function pn(e){let t=new Set,n=ne(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.orderBy.length>0&&t.add("WINDOW_ORDER"),r.type==="SCALAR_SUBQUERY_COL"&&me(t,pn(r.query)),r.type==="CASE_COL")for(let i of r.expr.branches)me(t,cn(i.condition));return me(t,cn(e.where)),me(t,cn(e.having)),Ei(e)&&t.add("STATISTICAL_AGGREGATE"),Ri(e)&&t.add("AGGREGATE"),t}function cn(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,pn(e.right.query));break;case"LOGICAL":me(t,cn(e.left)),me(t,cn(e.right));break;case"NOT":case"GROUP":me(t,cn(e.expr));break;case"EXISTS":me(t,pn(e.query));break;case"NULL_CHECK":case"BOOLEAN":break}return t}function Tu(e){if(!e||typeof e!="object")return!1;let t=e;return t.where!==null&&t.where!==void 0}function Iu(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 yi=new Set(["YESTERDAY","TOMORROW","FROM_TODAY","THIS_WEEK","LAST_WEEK","NEXT_WEEK","THIS_MONTH","LAST_MONTH","NEXT_MONTH","THIS_YEAR","LAST_YEAR","NEXT_YEAR"]),Mt=new Set(["TODAY","NOW","LOGINUSER","PRIMARY_ORGANIZATION"]),qn=new Set([...Mt,...yi]),Ft="WHERE_RELATIVE_DATE_REQUIRES_EXACT_PUSHDOWN",at="WHERE_KINTONE_FUNCTION_REQUIRES_EXACT_PUSHDOWN";function J(e){return yi.has(e)}function fn(e){return Mt.has(e)}function Be(e){return qn.has(e)}var wE=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})}),ma=Object.freeze({phase10a:Object.freeze({multipleParentPreflight:!1,internalPreparedWrite:!1,publicMultipleParentWrite:!1,insertWrite:!1,upsertWrite:!1}),phase10b:Object.freeze({multipleParentPreflight:!0,internalPreparedWrite:!1,publicMultipleParentWrite:!1,insertWrite:!1,upsertWrite:!1}),phase10c:Object.freeze({multipleParentPreflight:!0,internalPreparedWrite:!0,publicMultipleParentWrite:!1,insertWrite:!1,upsertWrite:!1}),phase10d:Object.freeze({multipleParentPreflight:!0,internalPreparedWrite:!0,publicMultipleParentWrite:!0,insertWrite:!1,upsertWrite:!1}),phase11:Object.freeze({multipleParentPreflight:!0,internalPreparedWrite:!0,publicMultipleParentWrite:!0,insertWrite:!1,upsertWrite:!1}),phase12:Object.freeze({multipleParentPreflight:!0,internalPreparedWrite:!0,publicMultipleParentWrite:!0,insertWrite:!1,upsertWrite:!1}),phase13a:Object.freeze({multipleParentPreflight:!0,internalPreparedWrite:!0,publicMultipleParentWrite:!0,insertWrite:!1,upsertWrite:!1}),phase13b:Object.freeze({multipleParentPreflight:!0,internalPreparedWrite:!0,publicMultipleParentWrite:!0,insertWrite:!1,upsertWrite:!1}),phase13c:Object.freeze({multipleParentPreflight:!0,internalPreparedWrite:!0,publicMultipleParentWrite:!0,insertWrite:!0,upsertWrite:!1}),phase14a:Object.freeze({multipleParentPreflight:!0,internalPreparedWrite:!0,publicMultipleParentWrite:!0,insertWrite:!0,upsertWrite:!1}),phase14b:Object.freeze({multipleParentPreflight:!0,internalPreparedWrite:!0,publicMultipleParentWrite:!0,insertWrite:!0,upsertWrite:!1}),phase14c:Object.freeze({multipleParentPreflight:!0,internalPreparedWrite:!0,publicMultipleParentWrite:!0,insertWrite:!0,upsertWrite:!0}),phase15a:Object.freeze({multipleParentPreflight:!0,internalPreparedWrite:!0,publicMultipleParentWrite:!0,insertWrite:!0,upsertWrite:!0}),phase15b:Object.freeze({multipleParentPreflight:!0,internalPreparedWrite:!0,publicMultipleParentWrite:!0,insertWrite:!0,upsertWrite:!0})}),zn="v1";function W(e){throw new Error(`UnsupportedError: APPLY ${zn} scope does not support ${e}`)}function bE(e,t){let n=zn;zn=e;try{return t()}finally{zn=n}}function PE(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 mn(e,t){return bE(e,()=>NE(t,wE[e]))}function NE(e,t){let n=PE(e);if(n===null)return;if(n.type==="UPSERT"){OE(n,t);return}let r=n.applyBlocks;if(Ea(r),!t.multipleBlocks&&r.length!==1&&W("multiple APPLY blocks in this phase"),n.type==="INSERT"){LE(n,r,t);return}let i=n;i.subtableCode&&W("a subtable UPDATE as the parent statement in this phase"),!t.updateFrom&&i.from!=null&&W("UPDATE ... FROM in this phase"),!t.check&&i.checkGroups?.length&&W("CHECK in this phase"),!t.onErrorSkip&&i.onErrorSkip&&W("ON ERROR SKIP in this phase"),!t.rejectLimit&&i.rejectLimit!=null&&W("REJECT LIMIT in this phase"),_E(i.where,t.multipleParents),bu(r,t)}function bu(e,t){for(let n of e){for(let r of n.operations)t.operations.has(r.kind)||W(`${r.kind} in this phase`);Pu(n);for(let r of n.operations){if(r.kind==="APPEND"){for(let i of r.fields)hi(i,"APPEND targets");Rn(r.values,"APPEND values");continue}if(r.kind==="REMOVE"){!t.expectRows&&r.expectRows&&W("EXPECT ROWS in this phase"),r.selector.kind==="WHERE"&&wu(r.selector.where,t.idxSelectors);continue}if(r.kind==="PATCH"){!t.expectRows&&r.expectRows&&W("EXPECT ROWS in this phase"),r.assignments.length===0&&W("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(".")&&W("parent or qualified PATCH targets in this phase")}Rn(r.assignments,"PATCH assignments"),r.selector.kind==="WHERE"&&wu(r.selector.where,t.idxSelectors)}}}}function Pu(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 CE=new Set(["MULTI_SELECT","CHECK_BOX","USER_SELECT","ORGANIZATION_SELECT","GROUP_SELECT"]);function Nu(e,t){if(Pu(e),e.targetKind==="MULTI_VALUE"){if(!CE.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 Ea(e){let t=new Set;for(let n of e){if(t.has(n.field))throw new Error(`ArgumentError: APPLY ${zn} scope allows only one block for table ${n.field}`);t.add(n.field)}}function OE(e,t){t.upsert||W("UPSERT in this phase"),!t.check&&e.checkGroups?.length&&W("CHECK in this phase"),!t.onErrorSkip&&e.onErrorSkip&&W("ON ERROR SKIP in this phase"),!t.rejectLimit&&e.rejectLimit!=null&&W("REJECT LIMIT in this phase");let n=e.onInsertApplyBlocks??[],r=e.onUpdateApplyBlocks??[];Ea(n),Ea(r),!t.multipleBlocks&&(n.length>1||r.length>1)&&W("multiple APPLY blocks in this phase"),Cu(n,"UPSERT ON INSERT"),bu(r,{...t,idxSelectors:!1,expectRows:!1})}function Cu(e,t){for(let n of e)for(let r of n.operations){r.kind!=="APPEND"&&W(`${r.kind} for ${t} in this phase`);for(let i of r.fields)hi(i,"APPEND targets");Rn(r.values,"APPEND values")}}function LE(e,t,n){n.insert||W("INSERT in this phase"),e.subtableCode&&W("a subtable INSERT as the parent statement in this phase"),!n.check&&e.checkGroups?.length&&W("CHECK in this phase"),!n.onErrorSkip&&e.onErrorSkip&&W("ON ERROR SKIP in this phase"),!n.rejectLimit&&e.rejectLimit!=null&&W("REJECT LIMIT in this phase"),Cu(t,"INSERT")}function st(e){if(e.type!=="BINARY"||e.op!=="="||e.left.type!=="FIELD"||e.left.tableAlias!==null||e.left.field!=="$id"||e.right.type!=="NUMBER")return!1;let t=e.right.raw??String(e.right.value);return/^\d+$/.test(t)&&e.right.value>0&&Number.isSafeInteger(e.right.value)}function gi(e,t){let n=ma[e],r="validateOnly"in t&&t.validateOnly===!0;if(t.type!=="EXPLAIN"&&!r&&ya(t)&&e!=="phase15b")throw new Error(`UnsupportedError: APPLY ${En(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 ${En(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 ${En(e)} INSERT execution is not connected`);return}if(!(t.type!=="UPDATE"||!t.applyBlocks?.length)&&!n.multipleParentPreflight&&!st(t.where))throw new Error(`UnsupportedError: APPLY ${En(e)} execution does not support multiple-parent APPLY`)}function ya(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 Ou(e,t){if(!(t.type!=="UPDATE"||!t.applyBlocks?.length||st(t.where))&&!ma[e].publicMultipleParentWrite)throw new Error(`UnsupportedError: APPLY ${En(e)} public multiple-parent write is not connected`)}function yn(e){if(!ma[e].internalPreparedWrite)throw new Error(`UnsupportedError: APPLY ${En(e)} internal prepared write is not available`)}function En(e){return`Phase ${e.slice(5)}`}function _E(e,t){st(e)||(e.type==="BINARY"&&e.op==="="&&e.left.type==="FIELD"&&e.left.tableAlias===null&&e.left.field==="$id"&&W("a parent $id that is not a positive safe integer in this phase"),t||W("a parent WHERE other than the single condition $id = <positive safe integer> in this phase"),Ra(e,t))}function Ra(e,t){if(Array.isArray(e)){for(let o of e)Ra(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")&&W("KLIKE in parent WHERE"),(r==="SELECT"||r==="SCALAR_SUBQUERY"||r==="SUBQUERY_IN_LIST"||r==="EXISTS")&&W("subqueries in parent WHERE"),(r==="WINDOW_COL"||r==="AGGREGATE"||r==="AGG_REF"||r==="AGG_ARITH"||r==="ARITH_AGG_COL")&&W("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)&&W("aggregate or window expressions in parent WHERE"),r==="KINTONE_FUNC"&&!(typeof n.name=="string"&&J(n.name))&&W("non-deterministic kintone functions in parent WHERE");for(let o of Object.values(n))Ra(o,t)}function wu(e,t){Rn(e,"child row selectors",t)}function Rn(e,t,n=!1){if(Array.isArray(e)){for(let s of e)Rn(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")&&W(`KLIKE in ${t}`),(i==="SELECT"||i==="SCALAR_SUBQUERY"||i==="SUBQUERY_IN_LIST"||i==="EXISTS")&&W(`subqueries in ${t}`),(i==="WINDOW_COL"||i==="AGGREGATE"||i==="AGG_REF"||i==="AGG_ARITH"||i==="ARITH_AGG_COL")&&W(`aggregate or window expressions in ${t}`),i==="KINTONE_FUNC"&&!(typeof r.name=="string"&&J(r.name))&&W(`non-deterministic kintone functions in ${t}`),i==="FIELD"){let s=r.tableAlias,l=r.field;s!=null&&W(`qualified or parent field references in ${t}`),hi(l,t,n)}if(i==="FIELD_REF"&&hi(r.field,t,n),!(o==="PATCH"||o==="APPEND"||o==="REMOVE"))for(let s of Object.values(r))Rn(s,t,n)}function hi(e,t,n=!1){if(typeof e!="string")return;let r=e.toLowerCase();r==="_idx"&&!n&&W(`_idx in ${t}`),(r.startsWith("_p.")||r.includes("."))&&W(`parent or qualified field references in ${t}`),/^(count|sum|avg|min|max|group_concat)\s*\(/i.test(e)&&W(`aggregate expressions in ${t}`)}function Jn(e){switch(e.type){case"BOOLEAN":return{type:"BOOLEAN",value:!e.value};case"BINARY":{let t=DE(e.op);if(t===null)throw new ie(`NOT ${e.op} \u306F\u30B5\u30DD\u30FC\u30C8\u5BFE\u8C61\u5916\u3067\u3059`);return{...e,op:t}}case"NULL_CHECK":return{...e,not:!e.not};case"LOGICAL":return{type:"LOGICAL",op:e.op==="AND"?"OR":"AND",left:Jn(e.left),right:Jn(e.right)};case"NOT":return e.expr;case"GROUP":return{type:"GROUP",expr:Jn(e.expr)};case"EXISTS":return{...e,not:!e.not}}}function DE(e){switch(e){case"=":return"!=";case"!=":case"<>":return"=";case">":return"<=";case"<":return">=";case">=":return"<";case"<=":return">";case"LIKE":return"NOT_LIKE";case"NOT_LIKE":return"LIKE";case"KLIKE":return"NOT_KLIKE";case"NOT_KLIKE":return"KLIKE";case"IN":return"NOT_IN";case"NOT_IN":return"IN"}}function Lu(e){return e.includes("%")||e.includes("_")}function Xn(e){return e.type==="BINARY"&&(e.op==="LIKE"||e.op==="NOT_LIKE")}function St(e){return e.type==="BINARY"&&(e.op==="KLIKE"||e.op==="NOT_KLIKE")}function At(e){if(e===null)return!1;if(Xn(e))return!0;switch(e.type){case"LOGICAL":return At(e.left)||At(e.right);case"NOT":case"GROUP":return At(e.expr);case"BINARY":case"NULL_CHECK":case"EXISTS":case"BOOLEAN":return!1}}function pe(e){if(e===null)return!1;if(St(e))return!0;switch(e.type){case"LOGICAL":return pe(e.left)||pe(e.right);case"NOT":case"GROUP":return pe(e.expr);case"BINARY":case"NULL_CHECK":case"EXISTS":case"BOOLEAN":return!1}}function G(e){switch(e.type){case"BINARY":return vE(e);case"NULL_CHECK":return kE(e);case"LOGICAL":return ME(e);case"NOT":return FE(e);case"GROUP":return xE(e);case"EXISTS":throw new ie("EXISTS \u306F kintone \u30AF\u30A8\u30EA\u306B\u5909\u63DB\u3067\u304D\u307E\u305B\u3093");case"BOOLEAN":throw new ie("internal error: BOOLEAN predicate reached kintone query conversion")}}function vE(e){if(Xn(e))throw new ie("LIKE / NOT LIKE \u306F kintone \u30AF\u30A8\u30EA\u306B\u5909\u63DB\u3067\u304D\u307E\u305B\u3093\uFF08\u5E38\u306B JS \u8A55\u4FA1\u304C\u5FC5\u8981\u3067\u3059\uFF09");let t=Du(e.left),n=UE(e.op),r=KE(e.right,e.op);return`${t} ${n} ${r}`}function UE(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 kE(e){let t=Du(e.field);return e.not?`${t} != ""`:`${t} = ""`}function ME(e){let t=G(e.left),n=G(e.right),r=e.op==="AND"?"and":"or",i=_u(e.left)?`(${t})`:t,o=_u(e.right)?`(${n})`:n;return`${i} ${r} ${o}`}function FE(e){return G(Jn(e.expr))}function xE(e){return`(${G(e.expr)})`}function Du(e){if(e.type==="FUNC_FIELD")throw new ie(`WHERE \u53E5\u306E\u95A2\u6570\uFF08${e.expr.func}\uFF09\u306F kintone \u30AF\u30A8\u30EA\u306B\u5909\u63DB\u3067\u304D\u307E\u305B\u3093`);if(e.type==="ARITH_FIELD")throw new ie("WHERE \u53E5\u306E\u7B97\u8853\u5F0F\u306F kintone \u30AF\u30A8\u30EA\u306B\u5909\u63DB\u3067\u304D\u307E\u305B\u3093");if(e.type==="CASE_FIELD")throw new ie("WHERE \u53E5\u306E CASE WHEN \u306F kintone \u30AF\u30A8\u30EA\u306B\u5909\u63DB\u3067\u304D\u307E\u305B\u3093");if(e.type==="GROUPING_FIELD")throw new ie("GROUPING() \u306F kintone \u30AF\u30A8\u30EA\u306B\u5909\u63DB\u3067\u304D\u307E\u305B\u3093");return jE(e.field)}function KE(e,t){switch(e.type){case"VARIABLE":throw new ie(`\u672A\u89E3\u6C7A\u306E\u30D0\u30C3\u30C1\u5909\u6570 @${e.name} \u304C\u3042\u308A\u307E\u3059`);case"VARIABLE_IN_LIST":throw new ie(`\u672A\u89E3\u6C7A\u306E\u914D\u5217\u5909\u6570 @${e.name} \u304C\u3042\u308A\u307E\u3059`);case"STRING":return vu(e);case"NUMBER":return H(e);case"KINTONE_FUNC":return Uu(e);case"IN_LIST":return HE(e,t);case"ARITH_VALUE":throw new ie("WHERE \u53E5\u306E\u53F3\u8FBA\u7B97\u8853\u5F0F\u306F kintone \u30AF\u30A8\u30EA\u306B\u5909\u63DB\u3067\u304D\u307E\u305B\u3093");case"CASE_VALUE":throw new ie("WHERE \u53E5\u306E\u53F3\u8FBA CASE WHEN \u306F kintone \u30AF\u30A8\u30EA\u306B\u5909\u63DB\u3067\u304D\u307E\u305B\u3093");case"SUBQUERY_IN_LIST":throw new ie("IN (SELECT ...) \u306F kintone \u30AF\u30A8\u30EA\u306B\u5909\u63DB\u3067\u304D\u307E\u305B\u3093");case"SCALAR_SUBQUERY":throw new ie("\u30B9\u30AB\u30E9\u30FC\u30B5\u30D6\u30AF\u30A8\u30EA\u306F kintone \u30AF\u30A8\u30EA\u306B\u5909\u63DB\u3067\u304D\u307E\u305B\u3093");case"ARRAY":throw new ie("\u914D\u5217\u30EA\u30C6\u30E9\u30EB\u306F WHERE \u53E5\u3067\u306F\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093")}}function vu(e){return`"${e.value.replace(/\\/g,"\\\\").replace(/"/g,'\\"')}"`}function Uu(e){switch(e.name){case"TODAY":case"NOW":case"LOGINUSER":case"PRIMARY_ORGANIZATION":return`${e.name}()`}return BE(e)}function BE(e){switch(e.name){case"YESTERDAY":case"TOMORROW":case"THIS_YEAR":case"LAST_YEAR":case"NEXT_YEAR":return e.args?.kind!=="NONE"?Qn():`${e.name}()`;case"FROM_TODAY":return e.args?.kind!=="FROM_TODAY"||!VE(e.args.offset,e.args.offsetText)||!$E.has(e.args.unit)?Qn():`${e.name}(${e.args.offsetText}, ${e.args.unit})`;case"THIS_WEEK":case"LAST_WEEK":case"NEXT_WEEK":return e.args?.kind!=="WEEK"||e.args.weekday!==null&&!GE.has(e.args.weekday)?Qn():e.args.weekday===null?`${e.name}()`:`${e.name}(${e.args.weekday})`;case"THIS_MONTH":case"LAST_MONTH":case"NEXT_MONTH":return e.args?.kind!=="MONTH"||!WE(e.args.day)?Qn():e.args.day===null?`${e.name}()`:`${e.name}(${e.args.day})`}return Qn()}var $E=new Set(["DAYS","WEEKS","MONTHS","YEARS"]),GE=new Set(["SUNDAY","MONDAY","TUESDAY","WEDNESDAY","THURSDAY","FRIDAY","SATURDAY"]);function VE(e,t){return!Number.isSafeInteger(e)||!/^(?:0|[1-9]\d*|-[1-9]\d*)$/.test(t)?!1:Number(t)===e}function WE(e){return e===null||e==="LAST"||typeof e=="number"&&Number.isInteger(e)&&e>=1&&e<=31}function Qn(){throw new ie("internal error: invalid relative date function AST reached kintone query conversion")}function HE(e,t){if(t!=="IN"&&t!=="NOT_IN")throw new ie("IN_LIST \u306F IN / NOT IN \u6F14\u7B97\u5B50\u3067\u306E\u307F\u4F7F\u7528\u3067\u304D\u307E\u3059");return YE(e.values),`(${e.values.map(r=>r.type==="STRING"?vu(r):r.type==="NUMBER"?H(r):Uu(r)).join(",")})`}function YE(e){let t=e.find(n=>n.type==="VARIABLE");if(t?.type==="VARIABLE")throw new ie(`\u672A\u89E3\u6C7A\u306E\u30D0\u30C3\u30C1\u5909\u6570 @${t.name} \u304C\u3042\u308A\u307E\u3059`)}function jE(e){return/^[\w$\u3000-\u9FFF]+$/u.test(e)?e:`"${e.replace(/"/g,'\\"')}"`}function _u(e){return e.type==="LOGICAL"}var ie=class extends Error{constructor(t){super(t),this.name="KintoneQueryError"}};function Ai(e){return`'${e.replace(/'/g,"''")}'`}function hn(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 H(e);if(e.type==="STRING_FUNC")return ga(e);let n=`${hn(e.left)}${e.op}${hn(e.right)}`;return t?n:`(${n})`}function ku(e){if(e.type==="FIELD")return e.tableAlias?`${e.tableAlias}.${e.field}`:e.field;if(e.type==="FUNC_FIELD")return ga(e.expr);if(e.type==="ARITH_FIELD")return hn(e.expr);if(e.type==="GROUPING_FIELD"){let t=e.ref.field;return`GROUPING(${t.tableAlias?`${t.tableAlias}.`:""}${t.field})`}return ha(e.expr)}function Fu(e){switch(e.type){case"STRING":return Ai(e.value);case"NUMBER":return H(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=>Ai(t.value)).join(",")}]`;case"IN_LIST":return`(${e.values.map(Fu).join(",")})`;case"ARITH_VALUE":return hn(e.expr);case"CASE_VALUE":return ha(e.expr);case"SUBQUERY_IN_LIST":return"(SUBQUERY)";case"SCALAR_SUBQUERY":return"(SUBQUERY)"}}function Zn(e){switch(e.type){case"BINARY":return`${ku(e.left)} ${e.op.replace("_"," ")} ${Fu(e.right)}`;case"NULL_CHECK":return`${ku(e.field)} IS ${e.not?"NOT ":""}NULL`;case"LOGICAL":return`(${Zn(e.left)} ${e.op} ${Zn(e.right)})`;case"NOT":return`NOT (${Zn(e.expr)})`;case"GROUP":return`(${Zn(e.expr)})`;case"BOOLEAN":return e.value?"TRUE":"FALSE";case"EXISTS":return`${e.not?"NOT ":""}EXISTS (SUBQUERY)`}}function Mu(e){return e.type==="ARRAY"?`[${e.elements.map(t=>Ai(t.value)).join(",")}]`:e.type==="FIELD_REF"||e.type==="ARITH"?hn(e):xt(e)}function ha(e){let t=e.branches.map(r=>`WHEN ${Zn(r.condition)} THEN ${Mu(r.result)}`).join(" "),n=e.elseResult===null?"":` ELSE ${Mu(e.elseResult)}`;return`CASE ${t}${n} END`}function qE(e){return e.type==="AGG_REF"?we(e.func,e.distinct,e.arg):e.type==="AGG_ARITH"?er(e):xt(e)}function ga(e){return`${e.func}(${e.args.map(qE).join(",")})`}function xt(e){switch(e.type){case"STRING":return Ai(e.value);case"NUMBER":return H(e);case"VARIABLE":return`@${e.name}`;case"FIELD":return e.tableAlias?`${e.tableAlias}.${e.field}`:e.field;case"STRING_FUNC":return ga(e);case"CASE_WHEN":return ha(e);case"SCALAR_ARITH":return`(${xt(e.left)}${e.op}${xt(e.right)})`;case"CONCAT_OP":return`(${xt(e.left)}||${xt(e.right)})`}}function zE(e){return e.type==="WILDCARD"?"*":e.type==="FIELD_REF"||e.type==="ARITH"?hn(e,!0):xt(e)}function we(e,t,n){let r=zE(n);return t?`${e}(DISTINCT ${r})`:`${e}(${r})`}function er(e){return e.type==="NUMBER"?H(e):e.type==="AGG_REF"?we(e.func,e.distinct,e.arg):`${er(e.left)}${e.op}${er(e.right)}`}function JE(e){return e.some(t=>t.type==="WINDOW_COL")}function _e(e){return e.from.subtableCode||e.joins.some(t=>t.table.subtableCode)||e.joins.length>0||ne(e).type!=="NONE"||e.distinct||JE(e.columns)||e.columns.some(t=>t.type==="AGGREGATE"||t.type==="ARITH_AGG_COL"||t.type==="SCALAR_SUBQUERY_COL"||t.type==="STRFUNC_COL"&&Gu(t.expr)||t.type==="SCALAR_VALUE_COL"&&nr(t.expr))||Tt(e.where)||e.orderBy.some(t=>t.key.type!=="FIELD_NAME")?"FULL_SCAN":"SIMPLE"}function Tt(e){if(e===null)return!1;switch(e.type){case"BOOLEAN":return!0;case"BINARY":return xu(e.left)||e.right.type==="ARITH_VALUE"||e.right.type==="CASE_VALUE"||e.right.type==="SUBQUERY_IN_LIST"||e.right.type==="SCALAR_SUBQUERY"||Xn(e);case"NULL_CHECK":return xu(e.field);case"LOGICAL":return Tt(e.left)||Tt(e.right);case"NOT":case"GROUP":return Tt(e.expr);case"EXISTS":return!0}}function xu(e){return e.type==="FUNC_FIELD"||e.type==="ARITH_FIELD"||e.type==="CASE_FIELD"}function Si(e){let t=[],r=(e.limit!==null||e.offset!==null)&&e.orderBy.length===0;if(e.where!==null&&t.push(G(e.where)),e.orderBy.length>0){let i=e.orderBy.map(XE).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:QE(e.columns),totalCount:!1}}function $u(e,t){let n=[];return e.where!==null&&e.joins.length===0&&!Tt(e.where)&&n.push(G(e.where)),{app:t,query:n.join(" "),fields:[]}}function Kt(e,t,n){let i=Wu(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 XE(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 QE(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(Sa(r.field)):r.type==="ARITH_COL"?tr(r.expr,n):r.type==="STRFUNC_COL"?Ta(r.expr,n):r.type==="SCALAR_VALUE_COL"&&gn(r.expr,n);return[...new Set(n)]}function ZE(e,t){tr(e.left,t),tr(e.right,t)}function tr(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(Sa(e.field)):e.type==="ARITH"?ZE(e,t):e.type==="STRING_FUNC"&&Ta(e,t)}function Sa(e){let t=e.indexOf(".");return t<=0?e:e.slice(t+1)||e}function Ta(e,t){for(let n of e.args)eR(n,t)}function eR(e,t){if(e.type==="AGG_REF"||e.type==="AGG_ARITH"){Aa(e,t);return}gn(e,t)}function gn(e,t){if(e.type==="FIELD"){t.push(Sa(e.tableAlias?`${e.tableAlias}.${e.field}`:e.field));return}if(e.type==="STRING_FUNC"){Ta(e,t);return}if(e.type==="SCALAR_ARITH"||e.type==="CONCAT_OP"){gn(e.left,t),gn(e.right,t);return}if(e.type==="CASE_WHEN"){for(let n of e.branches)Ku(n.result,t);e.elseResult&&Ku(e.elseResult,t)}}function Ku(e,t){if(e.type!=="ARRAY"){if(e.type==="FIELD_REF"||e.type==="ARITH"){tr(e,t);return}gn(e,t)}}function Aa(e,t){if(e.type==="AGG_REF"){e.arg.type!=="WILDCARD"&&tR(e.arg,t);return}e.type==="AGG_ARITH"&&(Aa(e.left,t),Aa(e.right,t))}function tR(e,t){e.type==="FIELD_REF"||e.type==="ARITH"?tr(e,t):gn(e,t)}function Gu(e){return e.args.some(t=>t.type==="AGG_REF"||t.type==="AGG_ARITH"?!0:nr(t))}function nr(e){return e.type==="STRING_FUNC"?Gu(e):e.type==="SCALAR_ARITH"||e.type==="CONCAT_OP"?nr(e.left)||nr(e.right):e.type==="CASE_WHEN"?e.branches.some(t=>Bu(t.result))||e.elseResult!==null&&Bu(e.elseResult):!1}function Bu(e){return e.type==="ARRAY"||e.type==="FIELD_REF"||e.type==="ARITH"?!1:nr(e)}function Vu(e,t){let n=new Set,r=Wu(e,t,{includeMaterialized:!0,unqualified:n});return{bySource:new Map([...r.entries()].map(([i,o])=>[i,new Set(o.fields)])),unqualified:n}}function Wu(e,t,n){let r=[e.from,...e.joins.map(A=>A.table)],i=[e.from,...e.joins.map(A=>A.table)].filter(A=>A.cteName===null),o=n?r:i,a=new Map;for(let A of o)a.set(A,{table:A,allFields:!1,fields:new Set});if(a.size===0)return a;let s=o[0]??null,l=o.find(A=>!!A.subtableCode)??null,d=new Map;for(let A of o)A.alias&&d.set(A.alias,A),A.cteName!==null?d.set(A.cteName,A):A.subtableCode||(d.set(`APP${A.appId}`,A),d.set(`app${A.appId}`,A));let p=nR(e.columns),c=A=>{let C=a.get(A);C&&(C.allFields=!0,C.fields.clear())},u=()=>{for(let A of o)c(A)},f=()=>{for(let A of o)A.subtableCode&&c(A)},E=(A,C)=>{let x=a.get(A);if(!(!x||x.allFields)){if(A.subtableCode){if(C.startsWith("_p.")){let O=C.slice(3);O&&O!=="*"&&x.fields.add(O);return}return void 0}C&&x.fields.add(C)}},R=(A,C="select",x)=>{if(!A||A==="*")return;if(A==="_p.*"){f();return}if(A.endsWith(".*")){let F=A.slice(0,-2);if(!F){u();return}if(F==="_p"){f();return}let j=d.get(F);if(j){c(j);return}return}if(C==="groupBy"&&x!==void 0){if(x.kind==="PHYSICAL"){let F=r[x.sourceIndex];F&&(n||F.cteName===null)&&E(F,x.fieldCode)}return}if((C==="orderBy"||C==="having"||C==="groupBy")&&p.has(A)||(C==="orderBy"||C==="having"||C==="groupBy")&&rR(A))return;let O=A.indexOf(".");if(O>0){let F=A.slice(0,O),j=A.slice(O+1);if(F==="_p"){l&&E(l,`_p.${j}`);return}let z=d.get(F);if(z){E(z,j);return}if(n)return}n?n.unqualified.add(A):s&&E(s,A)},h=(A,C,x="select")=>{if(C){if(C==="_p"){l&&E(l,`_p.${A}`);return}let O=d.get(C);if(O){E(O,A);return}if(n)return}R(A,x)},m=(A,C="select")=>{if(A.type==="VARIABLE")throw new Error(`InternalError: unresolved arithmetic variable @${A.name} reached source-aware field collection.`);if(A.type==="FIELD_REF"){R(A.field,C);return}if(A.type==="ARITH"){m(A.left,C),m(A.right,C);return}if(A.type==="STRING_FUNC"){S(A,C);return}},y=(A,C="select")=>{if(A.type==="AGG_REF"){A.arg.type!=="WILDCARD"&&b(A.arg,C);return}A.type==="AGG_ARITH"&&(y(A.left,C),y(A.right,C))},g=(A,C="select")=>{if(A.type==="AGG_REF"||A.type==="AGG_ARITH"){y(A,C);return}P(A,C)},S=(A,C="select")=>{for(let x of A.args)g(x,C)},P=(A,C="select")=>{if(A.type==="FIELD"){h(A.field,A.tableAlias,C);return}if(A.type==="STRING_FUNC"){S(A,C);return}if(A.type==="SCALAR_ARITH"||A.type==="CONCAT_OP"){P(A.left,C),P(A.right,C);return}A.type==="CASE_WHEN"&&I(A,C)},b=(A,C="select")=>{if(A.type==="FIELD_REF"||A.type==="ARITH"){m(A,C);return}P(A,C)},L=(A,C="select")=>{if(A.type!=="ARRAY"){if(A.type==="FIELD_REF"||A.type==="ARITH"){m(A,C);return}P(A,C)}},I=(A,C="select")=>{for(let x of A.branches)D(x.condition,C),L(x.result,C);A.elseResult&&L(A.elseResult,C)},v=(A,C="select")=>{if(A.type==="FIELD"){h(A.field,A.tableAlias,C);return}if(A.type==="FUNC_FIELD"){S(A.expr,C);return}if(A.type==="ARITH_FIELD"){m(A.expr,C);return}A.type!=="GROUPING_FIELD"&&I(A.expr,C)},w=(A,C="select")=>{if(A.type==="ARITH_VALUE"){m(A.expr,C);return}if(A.type==="CASE_VALUE"){I(A.expr,C);return}},D=(A,C="where")=>{if(A)switch(A.type){case"BINARY":v(A.left,C),w(A.right,C);return;case"NULL_CHECK":v(A.field,C);return;case"LOGICAL":D(A.left,C),D(A.right,C);return;case"NOT":case"GROUP":D(A.expr,C);return;case"EXISTS":case"BOOLEAN":return}},M=(A,C)=>{if(A.type==="FIELD_NAME"){R(A.name,"groupBy",C);return}if(A.type==="ARITH_KEY"){m(A.expr,"groupBy");return}S(A.expr,"groupBy")},N=(A,C="orderBy")=>{if(A.type==="FIELD_NAME"){R(A.name,C);return}if(A.type==="ARITH_KEY"){m(A.expr,C);return}A.type!=="GROUPING_KEY"&&S(A.expr,C)};for(let A of e.columns)switch(A.type){case"WILDCARD":u();break;case"PARENT_WILDCARD":f();break;case"FIELD":R(A.field,"select");break;case"LITERAL_COL":break;case"VARIABLE_COL":throw new Error(`internal error: unresolved SELECT variable @${A.name}`);case"AGGREGATE":A.arg.type!=="WILDCARD"&&b(A.arg,"select");break;case"ARITH_AGG_COL":y(A.expr,"select");break;case"ARITH_COL":m(A.expr,"select");break;case"CASE_COL":I(A.expr,"select");break;case"STRFUNC_COL":S(A.expr,"select");break;case"SCALAR_VALUE_COL":P(A.expr,"select");break;case"GROUPING_COL":break;case"SCALAR_SUBQUERY_COL":break;case"WINDOW_COL":for(let C of A.partitionBy)h(C.field,C.tableAlias,"select");for(let C of A.orderBy)N(C.key,"select");break}for(let A of e.joins)h(A.on.left.field,A.on.left.tableAlias,"where"),h(A.on.right.field,A.on.right.tableAlias,"where");D(e.where,"where");let _=ne(e);if(_.type==="PLAIN")_.allItems.forEach((A,C)=>M(A,t?.items[C]));else if(_.type==="GROUPING_SETS")for(let A of _.allItems)h(A.field,A.tableAlias,"select");D(e.having,"having");for(let A of e.orderBy)N(A.key);return a}function nR(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(we(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 rR(e){return/^(COUNT|SUM|AVG|MAX|MIN|GROUP_CONCAT|STDDEV_POP|STDDEV_SAMP|VAR_POP|VAR_SAMP|MEDIAN|MODE)\(/i.test(e)}function It(e){if(e.ctes.length!==1)return!1;let t=e.ctes[0];if(t.query.type!=="SELECT"||_e(t.query)!=="SIMPLE"||!t.query.columns.every(r=>r.type==="WILDCARD"||r.type==="FIELD"&&(r.alias===null||r.alias===r.field)))return!1;let n=e.query;return n.type!=="SELECT"||n.from.cteName!==t.name||n.joins.length>0||mu(n)||n.distinct?!1:!n.columns.some(r=>r.type==="AGGREGATE"||r.type==="ARITH_AGG_COL")}function wt(e){let t=e.ctes[0].query,n=e.query,r=Ti(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 Ti(e,t){if(e===null||t===null)return e;switch(e.type){case"BINARY":return{...e,left:Hu(e.left,t)};case"NULL_CHECK":return{...e,field:Hu(e.field,t)};case"LOGICAL":return{...e,left:Ti(e.left,t),right:Ti(e.right,t)};case"NOT":case"GROUP":return{...e,expr:Ti(e.expr,t)};case"EXISTS":case"BOOLEAN":return e}}function Hu(e,t){return e.type==="FIELD"&&e.tableAlias===t?{...e,tableAlias:null}:e}function An(e,t={}){return rr(e,n=>iR(n,t))}function ir(e,t={}){return rr(e,n=>Yu(n,t)||ju(n,t))}function rr(e,t){switch(e.type){case"BINARY":return t(e)?e:null;case"LOGICAL":if(e.op!=="AND")return null;{let n=rr(e.left,t),r=rr(e.right,t);return n&&r?{...e,left:n,right:r}:n??r??null}case"GROUP":return rr(e.expr,t);case"NULL_CHECK":case"NOT":case"EXISTS":case"BOOLEAN":return null}}function iR(e,t){return oR(e,t)||lR(e,t)?!0:Yu(e,t)?t.fieldTypes?.get(e.left.field)==="NUMBER":sR(e,t)}function oR(e,t){return t.allowKlike===!1||e.op!=="KLIKE"&&e.op!=="NOT_KLIKE"||e.left.type!=="FIELD"||!Ia(e.left,t)?!1:e.right.type==="STRING"||t.allowUnresolvedKlikeVariables===!0&&e.right.type==="VARIABLE"}var aR=new Set(["DROP_DOWN","RADIO_BUTTON","CHECK_BOX","MULTI_SELECT","STATUS"]);function sR(e,t){if(!ju(e,t)||e.left.type!=="FIELD"||e.right.type!=="IN_LIST")return!1;let n=t.fieldTypes?.get(e.left.field);if(n===void 0||!aR.has(n))return!1;let r=t.fieldOptions?.get(e.left.field);return r===void 0?!1:e.right.values.every(i=>i.type==="STRING"&&i.value!==""&&r.has(i.value))}function lR(e,t){return!uR(e.left,t)||e.right.type!=="NUMBER"?!1:e.op==="="||e.op===">"||e.op==="<"||e.op===">="||e.op==="<="}function uR(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 Yu(e,t){return e.left.type!=="FIELD"||e.left.field==="$id"||!Ia(e.left,t)||e.right.type!=="NUMBER"?!1:e.op==="="?!0:(e.op==="<"||e.op===">")&&/^[+-]?\d+$/.test(H(e.right))&&Number.isSafeInteger(e.right.value)}function ju(e,t){return e.left.type!=="FIELD"||e.left.field==="$id"||!Ia(e.left,t)||e.op!=="IN"&&e.op!=="NOT_IN"||e.right.type!=="IN_LIST"||e.right.values.length===0?!1:e.right.values.every(n=>n.type==="STRING"&&n.value!=="")}function Ia(e,t){let n=t.tableAlias??null;return e.tableAlias===n?!0:t.allowUnqualifiedFields===!0&&e.tableAlias===null}function or(e,t={}){let n=e!==null&&t.extractCondition!==!1?An(e,t):null,r=new Set;Sn(n,r);let i=new Set;return Sn(e,i),{condition:n,appliedKlikes:r,allKlikes:[...i]}}function Tn(e,t={}){let r={allowKlike:e.joins.every(p=>p.type==="INNER"),allowUnresolvedKlikeVariables:t.allowUnresolvedVariables},i=!e.from.subtableCode&&e.from.cteName===null,o=e.joins.length===0||e.from.alias!==null,a=or(e.where,{...r,extractCondition:i&&o,tableAlias:e.from.alias??void 0,allowUnqualifiedFields:e.joins.length===0,fieldTypes:t.fieldTypesByApp?.get(e.from.appId),fieldOptions:t.fieldOptionsByApp?.get(e.from.appId)}),s=a.condition,l=new Map;if(e.where!==null)for(let p of e.joins){if(!p.table.alias||p.table.subtableCode||p.table.cteName!==null)continue;let c=An(e.where,{...r,tableAlias:p.table.alias,fieldTypes:t.fieldTypesByApp?.get(p.table.appId),fieldOptions:t.fieldOptionsByApp?.get(p.table.appId)});c!==null&&l.set(p.table.alias,c)}let d=new Set(a.appliedKlikes);for(let p of l.values())Sn(p,d);return{mainCondition:s,joinConditions:l,appliedKlikes:d,allKlikes:a.allKlikes}}function wa(e){return e.allKlikes.filter(t=>!e.appliedKlikes.has(t))}function Sn(e,t){if(e!==null){if(St(e)){t.add(e);return}switch(e.type){case"LOGICAL":Sn(e.left,t),Sn(e.right,t);return;case"NOT":case"GROUP":Sn(e.expr,t);return;case"BINARY":case"NULL_CHECK":case"EXISTS":case"BOOLEAN":return}}}function Ii(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=ue(t.where);if(l.length===0||!dR(l,a)||o===null||!qu(o,l))return null;let d={prefilterWhere:t.where,residualWhere:null,exactRelativeLeaves:pR(t.where),relativeFunctionNames:new Set(l),appliedKlikes:new Set,capability:r.capability,reasons:r.reasons},p={allowForm:"FULL_SCAN_EXACT",clientWhereEvaluation:!1,serializedWholeWhere:o,prefilterPlan:d};return cR(p,e,l),p}function cR(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(!qu(e.serializedWholeWhere,n))throw new Error("FULL_SCAN_EXACT invariant: relative occurrence serialization")}function ue(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"&&Be(i.name)){t.push(i.name);return}Object.values(i).forEach(n)}};return n(e),t}function pR(e){let t=[],n=r=>{switch(r.type){case"BINARY":(r.right.type==="KINTONE_FUNC"&&Be(r.right.name)||r.right.type==="IN_LIST"&&r.right.values.length===1&&r.right.values[0].type==="KINTONE_FUNC"&&Be(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 dR(e,t){return e.length===t.length&&e.every((n,r)=>n===t[r])}function qu(e,t){let n=new Map;for(let r of t){if(!Be(r))return!1;n.set(r,(n.get(r)??0)+1)}for(let[r,i]of n)if((e.match(new RegExp(`\\b${r}\\s*\\(`,"g"))?.length??0)<i)return!1;return!0}var oe=class extends Error{constructor(t){super(`ArgumentError: ${t}`),this.name="ArgumentError"}};function zu(e){Ju(e)}function Pa(e){if(wa(e).length>0)throw new oe("FULL_SCAN \u306E KLIKE / NOT KLIKE \u3092\u5B89\u5168\u306B\u62BC\u3057\u4E0B\u3052\u3089\u308C\u307E\u305B\u3093\u3002OR / NOT \u914D\u4E0B\u3001CTE\u30FB\u4E00\u6642\u30C6\u30FC\u30D6\u30EB\u3001LEFT / RIGHT JOIN \u3092\u78BA\u8A8D\u3057\u3066\u304F\u3060\u3055\u3044")}function Ju(e){switch(e.type){case"SELECT":In(e);return;case"UNION":Ca(e);return;case"WITH":Xu(e);return;case"EXPLAIN":Ju(e.query);return;case"CREATE_TEMP_TABLE":Na(e.query);return;case"SET_VARIABLE":case"DECLARE_VARIABLE":case"ASSERT":Bt(e);return;case"UPDATE":if(e.applyBlocks?.length&&!st(e.where)&&pe(e.where)){ba(e.where),Bt(e);return}if(bt(e)&&e.subtableCode)throw new oe("KLIKE / NOT KLIKE \u306F\u30B5\u30D6\u30C6\u30FC\u30D6\u30EB UPDATE \u306E WHERE \u3067\u306F\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093");if(!e.applyBlocks?.length&&!e.subtableCode&&pe(e.where)&&!RR(e,e.where)){ba(e.where),Bt(e);return}if(bt(e))throw new oe("KLIKE / NOT KLIKE \u306F\u901A\u5E38\u89AA UPDATE \u306E WHERE\u3001\u307E\u305F\u306F APPLY \u8907\u6570\u89AA UPDATE \u306E\u5B89\u5168\u306A\u89AA WHERE \u3060\u3051\u3067\u4F7F\u7528\u3067\u304D\u307E\u3059");return;case"DELETE":if(bt(e)&&e.subtableCode)throw new oe("KLIKE / NOT KLIKE \u306F\u30B5\u30D6\u30C6\u30FC\u30D6\u30EB DELETE \u306E WHERE \u3067\u306F\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093");if(!e.subtableCode&&pe(e.where)){ba(e.where),Bt(e);return}if(bt(e))throw new oe("KLIKE / NOT KLIKE \u306F\u901A\u5E38\u89AA DELETE \u306E WHERE \u3060\u3051\u3067\u4F7F\u7528\u3067\u304D\u307E\u3059");return;case"INSERT":case"INSERT_SELECT":if(bt(e))throw new oe("KLIKE / NOT KLIKE \u306F INSERT / INSERT SELECT \u3067\u306F\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093");return;case"UPSERT":case"UPSERT_SELECT":if(bt(e))throw new oe("KLIKE / NOT KLIKE \u306F UPSERT / UPSERT SELECT \u3067\u306F\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093");return;case"REORDER":if(bt(e))throw new oe("KLIKE / NOT KLIKE \u306F\u30B5\u30D6\u30C6\u30FC\u30D6\u30EB REORDER \u306E WHERE \u3067\u306F\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093");return;case"VALIDATE":if(bt(e))throw new oe("KLIKE / NOT KLIKE \u306F VALIDATE \u306E WHERE / CHECK \u3067\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093");return;case"SHOW_APPS":case"DESCRIBE":case"DROP_TEMP_TABLE":return}}function ba(e){bi(e,t=>{if(!St(t))return;let n=t.right;if(n.type!=="STRING"&&n.type!=="VARIABLE")throw new oe("KLIKE / NOT KLIKE \u306E\u53F3\u8FBA\u306B\u306F\u6587\u5B57\u5217\u30EA\u30C6\u30E9\u30EB\u307E\u305F\u306F\u6587\u5B57\u5217\u30D0\u30C3\u30C1\u5909\u6570\u304C\u5FC5\u8981\u3067\u3059");if(n.type==="STRING"&&n.value.includes("%"))throw new oe("KLIKE / NOT KLIKE \u306E\u691C\u7D22\u8A9E\u306B % \u306F\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093\u3002SQL \u30EF\u30A4\u30EB\u30C9\u30AB\u30FC\u30C9\u691C\u7D22\u306B\u306F LIKE \u3092\u4F7F\u7528\u3057\u3066\u304F\u3060\u3055\u3044")})}function Na(e){e.type==="SELECT"?In(e):e.type==="UNION"?Ca(e):Xu(e)}function Ca(e){Na(e.left),In(e.right)}function Xu(e){if(It(e)){In(wt(e));return}for(let t of e.ctes)t.query.type==="SELECT"?In(t.query):t.query.type==="UNION"&&Ca(t.query);Na(e.query)}function In(e){if(ER(e),pe(e.where)&&!(_e(e)==="SIMPLE"&&e.from.cteName===null&&e.joins.every(n=>n.table.cteName===null))){let n=Tn(e,{allowUnresolvedVariables:!0});if(wa(n).length===0){Bt(e);return}if(fR(e)){Bt(e);return}throw new oe("FULL_SCAN \u306E KLIKE / NOT KLIKE \u306F\u3001\u7269\u7406\u30C6\u30FC\u30D6\u30EB\u306B\u5BFE\u3059\u308B AND \u30EA\u30FC\u30D5\u3068\u3057\u3066\u5FC5\u305A\u62BC\u3057\u4E0B\u3052\u3089\u308C\u308B\u5FC5\u8981\u304C\u3042\u308A\u307E\u3059\u3002OR / NOT \u914D\u4E0B\u3001CTE\u30FB\u4E00\u6642\u30C6\u30FC\u30D6\u30EB\u3001LEFT / RIGHT JOIN \u3067\u306F\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093")}Bt(e)}function fR(e){return e.where!==null&&ue(e.where).length>0&&e.joins.length>0&&e.joins.every(t=>t.type==="INNER")&&[e.from,...e.joins.map(t=>t.table)].every(t=>t.alias!==null&&t.cteName===null&&!t.subtableCode)}function ER(e){bi(e,t=>{if(!St(t))return;if(!wi(e.where,t))throw new oe("KLIKE / NOT KLIKE \u306F SELECT \u306E WHERE \u53E5\u3067\u306E\u307F\u4F7F\u7528\u3067\u304D\u307E\u3059");let n=t.right;if(n.type!=="STRING"&&n.type!=="VARIABLE")throw new oe("KLIKE / NOT KLIKE \u306E\u53F3\u8FBA\u306B\u306F\u6587\u5B57\u5217\u30EA\u30C6\u30E9\u30EB\u307E\u305F\u306F\u6587\u5B57\u5217\u30D0\u30C3\u30C1\u5909\u6570\u304C\u5FC5\u8981\u3067\u3059");if(n.type==="STRING"&&n.value.includes("%"))throw new oe("KLIKE / NOT KLIKE \u306E\u691C\u7D22\u8A9E\u306B % \u306F\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093\u3002SQL \u30EF\u30A4\u30EB\u30C9\u30AB\u30FC\u30C9\u691C\u7D22\u306B\u306F LIKE \u3092\u4F7F\u7528\u3057\u3066\u304F\u3060\u3055\u3044")})}function Bt(e){Pi(e,t=>{t.type==="SELECT"&&In(t)},!0)}function bt(e){let t=!1;return Pi(e,n=>{n.type==="BINARY"&&(n.op==="KLIKE"||n.op==="NOT_KLIKE")&&(t=!0)}),t}function RR(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 wi(e,t){if(e===null)return!1;if(e===t)return!0;switch(e.type){case"LOGICAL":return wi(e.left,t)||wi(e.right,t);case"NOT":case"GROUP":return wi(e.expr,t);case"BINARY":case"NULL_CHECK":case"EXISTS":return!1;case"BOOLEAN":return!1}}function bi(e,t){if(Array.isArray(e)){for(let r of e)bi(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&&mR(r)||bi(r,t)}function Pi(e,t,n=!1){if(Array.isArray(e)){for(let i of e)Pi(i,t);return}if(e===null||typeof e!="object")return;let r=e;n||t(r);for(let i of Object.values(r))Pi(i,t)}function mR(e){return e!==null&&typeof e=="object"&&e.type==="SELECT"}var ar=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 Qu(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(yR(t))throw new ar;return;default:return}}function yR(e){let t=!1;return Ni(e,n=>{t||!Object.prototype.hasOwnProperty.call(n,"where")||hR(n.where)&&(t=!0)}),t}function hR(e){let t=!1;return Ni(e,n=>{n.type==="KINTONE_FUNC"&&n.name==="PRIMARY_ORGANIZATION"&&(t=!0)}),t}function Ni(e,t){if(Array.isArray(e)){for(let r of e)Ni(r,t);return}if(e===null||typeof e!="object")return;let n=e;t(n);for(let r of Object.values(n))Ni(r,t)}function $e(e){Qu(e),zu(e)}var Zu=Symbol("ksql.groupingRowMeta"),ec=new WeakMap;function tc(e,t){return Object.defineProperty(e,Zu,{value:{includedCanonicalIds:t},enumerable:!1,configurable:!1,writable:!1}),e}function gR(e){return e[Zu]}function AR(e){return gR(e)?.includedCanonicalIds}function nc(e,t){ec.set(e,t)}function wn(e,t){let n=AR(t);if(!n)throw new Error("internal error: GROUPING() evaluation requires B65 grouping row membership.");let r=ec.get(e);if(!r)throw new Error("internal error: GROUPING() reference was not resolved during B65 planning.");return n.has(r)?"0":"1"}var ic=e=>{if(e.expandedSetCount>64)throw new Error(`ArgumentError: B65 expanded grouping set count ${e.expandedSetCount} exceeds limit ${64} (reason=GROUPING_SET_LIMIT_EXCEEDED).`);if(e.canonicalItemCount>16)throw new Error(`ArgumentError: B65 canonical grouping item count ${e.canonicalItemCount} exceeds limit ${16} (reason=GROUPING_ITEM_LIMIT_EXCEEDED).`)};function Li(e){return e.tableAlias?`${e.tableAlias}.${e.field}`:e.field}function La(e){let t=e.indexOf(".");return t>0?{type:"FIELD",tableAlias:e.slice(0,t),field:e.slice(t+1)}:{type:"FIELD",tableAlias:null,field:e}}function De(e,t){if(e===null||typeof e!="object")return;if(Array.isArray(e)){e.forEach(r=>De(r,t));return}let n=e;if(!(n.type==="SELECT"||n.type==="SCALAR_SUBQUERY")){if(n.type==="GROUPING_REF"){t.push(n);return}Object.values(n).forEach(r=>De(r,t))}}function _i(e,t){if(e===null||typeof e!="object")return;if(Array.isArray(e)){e.forEach(r=>_i(r,t));return}let n=e;if(!(n.type==="SELECT"||n.type==="SCALAR_SUBQUERY")){if(n.type==="AGGREGATE"||n.type==="AGG_REF"){De(n.arg,t);return}Object.values(n).forEach(r=>_i(r,t))}}function sr(e,t){if(e===null||typeof e!="object")return;if(Array.isArray(e)){e.forEach(i=>sr(i,t));return}let n=e,r=n.type;if(!(r==="SELECT"||r==="SCALAR_SUBQUERY"||r==="GROUPING_REF"||r==="AGG_REF"||r==="AGG_ARITH")){if(r==="FIELD"&&typeof n.field=="string"){t.push({type:"FIELD",tableAlias:typeof n.tableAlias=="string"?n.tableAlias:null,field:n.field});return}if(r==="FIELD_REF"&&typeof n.field=="string"){t.push(La(n.field));return}Object.values(n).forEach(i=>sr(i,t))}}function lr(e){if(e===null||typeof e!="object")return!1;if(Array.isArray(e))return e.some(lr);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(lr)}function SR(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"?lr(e):!1}function TR(e){return new Set(e.flatMap(t=>"alias"in t&&typeof t.alias=="string"?[t.alias]:[]))}function rc(e){return e.tableAlias===null&&/^(COUNT|SUM|AVG|MAX|MIN|GROUP_CONCAT|STDDEV_POP|STDDEV_SAMP|VAR_POP|VAR_SAMP|MEDIAN|MODE)\(/.test(e.field)}function IR(e,t,n){let r=t(e.field);if(!r.physical)throw new Error(`ArgumentError: B65 grouping reference ${Li(e.field)} must resolve to a physical APP field.`);if(!n.has(r.canonicalId))throw new Error(`ArgumentError: B65 GROUPING argument ${Li(e.field)} is not present in grouping allItems (reason=B65_GROUPING_ARG_NOT_ITEM).`);nc(e,r.canonicalId)}function Oa(e,t,n,r){let i=t(e);if(!i.physical||!n.has(i.canonicalId))throw new Error(`ArgumentError: B65 non-aggregate field ${Li(e)} in ${r} is not a grouping item (reason=B65_NON_GROUPED_DEPENDENCY).`)}function wR(e){if(e.type==="GROUPING_KEY")return[];if(e.type==="FIELD_NAME")return[La(e.name)];let t=[];return sr(e,t),t}function _a(e){let t=ne(e),n=[];for(let i of e.columns)i.type!=="WINDOW_COL"&&De(i,n);De(e.having,n),De(e.orderBy,n);let r=[];De(e.where,r),De(e.joins,r),_i(e.columns,r),_i(e.having,r);for(let i of e.columns)i.type==="WINDOW_COL"&&De(i,r);if(r.length>0)throw new Error("ArgumentError: B65 GROUPING() is not allowed in WHERE, JOIN, window, aggregate arguments, or DML expressions.");if(t.type!=="GROUPING_SETS"){if(n.length>0)throw new Error("ArgumentError: B65 GROUPING() requires GROUP BY ROLLUP or GROUPING SETS.");return}if(e.orderMode==="KINTONE_NATIVE")throw new Error("ArgumentError: B65 KORDER BY is not supported in Phase1.");if(e.columns.some(i=>i.type==="WINDOW_COL"))throw new Error("ArgumentError: B65 window functions are not supported in Phase1.");if(e.columns.some(i=>i.type==="WILDCARD"||i.type==="PARENT_WILDCARD"))throw new Error("ArgumentError: B65 wildcard projection is not supported in Phase1.")}function oc(e,t,n=()=>{}){_a(e);let r=ne(e),i=[];for(let p of e.columns)p.type!=="WINDOW_COL"&&De(p,i);if(De(e.having,i),De(e.orderBy,i),r.type!=="GROUPING_SETS")return null;let o=yu(e,t),a=new Set,s=[];for(let p of o.allItems){let c=p;if(!c.physical)throw new Error(`ArgumentError: B65 grouping item ${Li(p.field)} must resolve to a physical APP field.`);a.has(c.canonicalId)||(a.add(c.canonicalId),s.push(c))}n({expandedSetCount:r.sets.length,canonicalItemCount:a.size});for(let p of i)IR(p,t,a);let l=TR(e.columns);for(let p of e.columns){if(p.type==="GROUPING_COL"||p.type==="AGGREGATE"||p.type==="ARITH_AGG_COL"||p.type==="LITERAL_COL"||p.type==="VARIABLE_COL"||p.type==="SCALAR_SUBQUERY_COL")continue;let c=[];p.type==="FIELD"?c.push(La(p.field)):sr(p,c);for(let u of c)Oa(u,t,a,"SELECT")}if(e.having){let p=[];sr(e.having,p);for(let c of p)c.tableAlias===null&&l.has(c.field)||rc(c)||Oa(c,t,a,"HAVING")}for(let p of e.orderBy)for(let c of wR(p.key))c.tableAlias===null&&l.has(c.field)||rc(c)||Oa(c,t,a,"ORDER BY");let d=new Set;for(let p of s)d.add(p.directKey),p.unqualifiedBridgeKey!==null&&d.add(p.unqualifiedBridgeKey);for(let p of e.columns){if(!SR(p))continue;let c="alias"in p?p.alias:null;if(c!==null&&d.has(c))throw new Error(`ArgumentError: B65 aggregate alias ${c} collides with a grouping runtime key (reason=B65_AGGREGATE_ALIAS_COLLISION).`)}return o}var Di=16,ac=64,Z=class extends Error{constructor(n,r){super(n);this.statementIndex=r}};function ur(e,t,n){if(Array.isArray(e)){for(let r of e)ur(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))ur(a,t,n)}}function Da(e,t){if(Array.isArray(e)){for(let n of e)Da(n,t);return}if(e!==null&&typeof e=="object"){let n=e,r=n.type;if((r==="VARIABLE"||r==="VARIABLE_COL"||r==="VARIABLE_IN_LIST")&&typeof n.name=="string"){t.push({name:n.name,kind:r==="VARIABLE"?"scalar":r==="VARIABLE_COL"?"select-column":"array-in-list"});return}for(let i of Object.values(n))Da(i,t)}}function va(e){if(Array.isArray(e)){for(let t of e)va(t);return}if(e!==null&&typeof e=="object"){let t=e;t.type==="SELECT"&&_a(e);for(let n of Object.values(t))va(n)}}function Ua(e){if(e.length===0)throw new Z("ArgumentError: SQL is empty.",0);if(e.forEach((c,u)=>{try{va(c)}catch(f){throw f instanceof Error?new Z(f.message,u):f}try{mn("phase15b",c),$e(c)}catch(f){throw f instanceof oe||f instanceof ar?new Z(f.message,u):f instanceof Error&&/^(UnsupportedError|ArgumentError): APPLY /.test(f.message)?new Z(f.message,u):f}}),e.length===1){let c=e[0].type;if(c==="SET_VARIABLE"||c==="DECLARE_VARIABLE"){let u=c==="SET_VARIABLE"?"SET":"DECLARE";throw new Z(`ArgumentError: ${u} variable requires a batch.`,0)}if(c==="CREATE_TEMP_TABLE"||c==="DROP_TEMP_TABLE"){let u=c==="CREATE_TEMP_TABLE"?"CREATE TEMP TABLE":"DROP TEMP TABLE";throw new Z(`ArgumentError: ${u} requires a batch (temp tables are batch-scoped).`,0)}}let t=new Map,n=new Map,r=[],i=[],o=new Map,a=[];e.forEach((c,u)=>{let f=c.type==="VALIDATE"&&c.errorTable?c.errorTable:"validationErrorTable"in c&&c.validationErrorTable?c.validationErrorTable:"onErrorSkip"in c&&c.onErrorSkip?c.errorTable??null:null;if(e.length===1&&f){let L=c.type==="VALIDATE"?"ArgumentError: VALIDATE INTO requires a batch.":"onErrorSkip"in c&&c.onErrorSkip?"ArgumentError: ON ERROR SKIP requires a batch.":"ArgumentError: VALIDATE ONLY INTO requires a batch.";throw new Z(L,u)}let E=mi(c),R=[],h=[],m=new Set,y=new Set,g=new Set,S=[];Da(c,S);let P=new Set;for(let L of S){let I=o.get(L.name);if(I===void 0)throw new Z(`ParseError: variable @${L.name} is not defined before statement ${u+1}.`,u);if(I.kind==="scalar"&&L.kind==="array-in-list")throw new Z(`ParseError: scalar variable @${L.name} cannot be used as IN @${L.name}; use IN (@${L.name}) instead.`,u);if(I.kind==="array"&&L.kind!=="array-in-list")throw new Z(`ParseError: array variable @${L.name} can only be used as IN @${L.name}.`,u);P.has(L.name)||(I.referencedBy.push(u),P.add(L.name))}if(c.type==="SET_VARIABLE"||c.type==="DECLARE_VARIABLE"){if(o.has(c.name))throw new Z(`ParseError: variable @${c.name} is already defined.`,u);if(o.set(c.name,{index:u,kind:c.type==="SET_VARIABLE"&&c.expr.type==="ARRAY"?"array":"scalar",referencedBy:[]}),a.push(c.name),a.length>ac)throw new Z(`ParseError: batch exceeds ${ac} variables.`,u)}c.type==="CREATE_TEMP_TABLE"?ur(c.query,m,y):c.type==="DROP_TEMP_TABLE"||ur(c,m,y);let b=!1;if(c.type==="INSERT_SELECT"||c.type==="UPSERT_SELECT"){let L=new Set,I=new Set;ur(c.select,L,I),b=L.size>0&&I.size===0}for(let L of m){let I=t.get(L);if(I===void 0)throw new Z(`ParseError: temp table ${L} is not defined in this batch.`,u);g.add(I)}if(f){let L=c.type==="VALIDATE"?c.summary?["$id","$err_subtable","$err_field","$err_code","$err_count"]:["$id","$err_field","$err_code","$err_message","$err_value","$err_subtable","$err_subrow","$err_subrow_id","$err_count"]:c.type==="IMPORT"&&c.targets?.some(w=>w.kind==="SUBTABLE")?[...new Set(c.targets.flatMap(w=>w.kind==="FIELD"?[w.field]:w.children)),"$err_subtable","$err_subrow","$err_source_row"]:c.type==="UPDATE"?["$id",...c.assignments.map(w=>w.field)]:"fields"in c?c.fields:[],I=JSON.stringify(L),v=t.get(f);if(v===void 0){if(t.set(f,u),n.set(f,I),r.push(f),R.push(f),t.size>Di)throw new Z(`ParseError: batch exceeds ${Di} temp tables.`,u)}else{if(n.get(f)!==I)throw new Z(`ParseError: validation error table ${f} has a different payload schema.`,u);g.add(v)}}if(c.type==="CREATE_TEMP_TABLE"){if(t.has(c.name))throw new Z(`ParseError: temp table ${c.name} is already defined.`,u);if(t.set(c.name,u),r.push(c.name),R.push(c.name),t.size>Di)throw new Z(`ParseError: batch exceeds ${Di} temp tables.`,u)}if(c.type==="DROP_TEMP_TABLE"){let L=t.get(c.name);if(L===void 0)throw new Z(`ParseError: temp table ${c.name} is not defined in this batch.`,u);g.add(L),h.push(c.name),t.delete(c.name)}i.push({index:u,statementType:E,isDml:fa(c),isReadOnly:dn(c),hasWhere:Tu(c),insertValuesCount:Iu(c),appIds:[...y].sort((L,I)=>L-I),tempTablesCreated:R,tempTablesReferenced:[...m],tempTablesDropped:h,dependsOn:[...g].sort((L,I)=>L-I),tempOnlySource:b,targetAppId:kt(E)&&typeof c.appId=="number"?c.appId:null,isUpdateFrom:c.type==="UPDATE"&&c.from!=null,isValidationOnly:"validateOnly"in c&&c.validateOnly===!0,isOnErrorSkip:"onErrorSkip"in c&&c.onErrorSkip===!0,requiresCompleteInput:Au(c)})});let s=i.some(c=>c.isDml),l=i.some(c=>c.isValidationOnly),d=i.some(c=>c.requiresCompleteInput),p=a.map(c=>({name:c,kind:o.get(c).kind,referencedBy:[...o.get(c).referencedBy]}));return{statementCount:e.length,isReadOnlyBatch:!s&&i.every(c=>c.isReadOnly),containsDml:s,containsValidationOnly:l,requiresCompleteInput:d,tempTables:r,variables:p,warnings:p.filter(c=>c.referencedBy.length===0).map(c=>`variable @${c.name} is never used.`),statements:i}}var vi=new Map([["UNION","UNION"],["ALL","ALL"],["WITH","WITH"],["SHOW","SHOW"],["DESCRIBE","DESCRIBE"],["APPS","APPS"],["EXPLAIN","EXPLAIN"],["UPSERT","UPSERT"],["REORDER","REORDER"],["DUPLICATE","DUPLICATE"],["SELECT","SELECT"],["DISTINCT","DISTINCT"],["FROM","FROM"],["AS","AS"],["WHERE","WHERE"],["INSERT","INSERT"],["INTO","INTO"],["VALUES","VALUES"],["UPDATE","UPDATE"],["SET","SET"],["DELETE","DELETE"],["INNER","INNER"],["LEFT","LEFT"],["RIGHT","RIGHT"],["JOIN","JOIN"],["ON","ON"],["GROUP","GROUP"],["BY","BY"],["HAVING","HAVING"],["ORDER","ORDER"],["KORDER","KORDER"],["ASC","ASC"],["DESC","DESC"],["LIMIT","LIMIT"],["OFFSET","OFFSET"],["COUNT","COUNT"],["SUM","SUM"],["AVG","AVG"],["MAX","MAX"],["MIN","MIN"],["GROUP_CONCAT","GROUP_CONCAT"],["STDDEV_POP","STDDEV_POP"],["STDDEV_SAMP","STDDEV_SAMP"],["VAR_POP","VAR_POP"],["VAR_SAMP","VAR_SAMP"],["MEDIAN","MEDIAN"],["MODE","MODE"],["ROW_NUMBER","ROW_NUMBER"],["RANK","RANK"],["DENSE_RANK","DENSE_RANK"],["ASSERT","ASSERT"],["AND","AND"],["OR","OR"],["NOT","NOT"],["EXISTS","EXISTS"],["IS","IS"],["NULL","NULL"],["LIKE","LIKE"],["KLIKE","KLIKE"],["IN","IN"],["BETWEEN","BETWEEN"],["TODAY","TODAY"],["NOW","NOW"],["LOGINUSER","LOGINUSER"],["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 ye=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"}},Pt=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(bn(n))return this.readNumber(t);let r=this.tryReadOperator(t);if(r)return r;if(ka(n))return this.readIdentOrKeyword(t);if(n==="#")return this.readHashIdent(t);if(n==="@")return this.readVariable(t);throw new ye(`\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 ye("\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 ye("\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&&bn(this.input[this.pos]);)this.pos++;if(this.pos<this.input.length&&this.input[this.pos]==="."&&this.pos+1<this.input.length&&bn(this.input[this.pos+1]))for(this.pos++;this.pos<this.input.length&&bn(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||!bn(this.input[this.pos]))throw new ye("\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&&bn(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&&sc(this.input[this.pos]);)this.pos++;let n=this.input.slice(t,this.pos),r=n.toUpperCase(),i=vi.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(!ka(n))throw new ye("\u300C#\u300D \u306E\u76F4\u5F8C\u306B\u306F\u8B58\u5225\u5B50\u304C\u5FC5\u8981\u3067\u3059",t,this.input);for(;this.pos<this.input.length&&sc(this.input[this.pos]);)this.pos++;let r=this.input.slice(t,this.pos);if(this.input[this.pos]==="@")throw new ye(`@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 ye("\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 ye("\u5909\u6570\u540D\u306F 64 \u6587\u5B57\u4EE5\u5185\u3067\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044",t,this.input);return this.makeToken("VARIABLE",this.input.slice(t,this.pos),t)}skipWhitespaceAndComments(){for(;this.pos<this.input.length;){let t=this.input[this.pos];if(t===" "||t===" "||t==="\r"||t===`
|
|
1
|
+
"use strict";(()=>{async function Ie(e,t,n,r,i={}){let o=i.pageSize??wE,a=Math.max(1,i.parallel??bE),s=i.maxRecords??PE,l=i.onLimit??"error",d=i.stopAfter;if(d!==void 0&&(!Number.isSafeInteger(d)||d<=0||d>s))throw new RangeError("stopAfter must be a positive safe integer <= maxRecords");let p=d??s,c=r.length>0&&!r.includes("$id")?[...r,"$id"]:r,u=[],f=!1,E=`\u53D6\u5F97\u4EF6\u6570\u304C\u4E0A\u9650\uFF08${s} \u4EF6\uFF09\u3092\u8D85\u3048\u307E\u3057\u305F\u3002WHERE \u53E5\u3067\u7D5E\u308A\u8FBC\u3080\u304B\u3001maxRecords \u3092\u5F15\u304D\u4E0A\u3052\u3066\u304F\u3060\u3055\u3044\u3002`,R=0,m=0,g=yu(n,R),y=await mu(e,t,g,c,o,m);if(Ru(y,i),u.push(...y.records),d!==void 0&&u.length>=d)return u.slice(0,d);if(u.length>s){if(l==="truncate")return!f&&i.onTruncate&&(i.onTruncate(s),f=!0),u.slice(0,s);throw new Pe(E)}if(y.records.length<o)return u;for(m+=o,m>=Ea&&(R=gu(y.records),m=0);;){if(d!==void 0&&u.length>=d)return u.slice(0,d);if(u.length>=s){if(l==="truncate")return!f&&i.onTruncate&&(i.onTruncate(s),f=!0),u.slice(0,s);throw new Pe(E)}let h=p-u.length,S=Math.ceil(h/o),w=Math.max(1,Math.min(a,S)),I=[];for(let P=0;P<w;P++){let D=m+P*o;if(D>=Ea)break;I.push(D)}let L=yu(n,R),b=await Promise.all(I.map(P=>mu(e,t,L,c,o,P)));for(let P of b)Ru(P,i);let v=!1;for(let P of b){if(u.push(...P.records),d!==void 0&&u.length>=d)return u.slice(0,d);if(u.length>s){if(l==="truncate")return!f&&i.onTruncate&&(i.onTruncate(s),f=!0),u.slice(0,s);throw new Pe(E)}if(P.records.length<o){v=!0;break}}if(v)break;if(m+=o*I.length,m>=Ea){let P=b[b.length-1];R=gu(P.records),m=0}}return u}function Ru(e,t){e.searchAborted&&t.onSearchAborted?.()}function hu(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 wE=500,bE=1,PE=1e4,Ea=1e4;async function mu(e,t,n,r,i,o){let a=NE(n,i,o);return e({app:t,query:a,fields:r})}function yu(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 NE(e,t,n){let r=e.trimEnd(),i=`limit ${t} offset ${n}`;return r?`${r} ${i}`:i}function gu(e){let n=e[e.length-1]?.$id?.value;if(n===void 0)return 0;let r=Number(n);return Number.isFinite(r)?r:0}var Pe=class extends Error{constructor(n,r=!1){super(n);this.completeInputWrapped=r;this.name="FetchAllLimitError"}};var CE=/^([+-]?)(?:(\d+)(?:\.(\d*))?|\.(\d+))(?:[eE]([+-]?)(\d+))?$/;function OE(e,t){if(t===void 0)return 0;let n=0;for(let r of t)if(n=n*10+(r.charCodeAt(0)-48),!Number.isSafeInteger(n))return null;return e==="-"?-n:n}function Le(e){let t=CE.exec(e.trim());if(t===null)return null;let n=OE(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 LE(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 Au(e){let t=Le(e);return t===null?null:LE(t)}function _E(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 Ri(e,t){if(e.sign!==t.sign)return e.sign<t.sign?-1:1;if(e.sign===0)return 0;let n=_E(e,t);return e.sign===-1?n===0?0:n===-1?1:-1:n}function mi(e,t){let n=Le(e),r=Le(t);if(n===null||r===null)throw new Error("ArgumentError: compareDecimal requires finite decimal inputs.");return Ri(n,r)}var ze="__NO_FROM__";function Re(e){return{type:"NUMBER",value:Number(e),raw:e}}function H(e){let t=e.raw??String(e.value);return Au(t)??t}function Su(e){let t=1;for(let r of e){if(t>Math.floor(64/2)){let i=t*2;throw new Error(`ArgumentError: B65 expanded grouping set count ${i} exceeds limit 64 (reason=GROUPING_SET_LIMIT_EXCEEDED).`)}t*=2}let n=[{items:[]}];for(let r of e)n=n.flatMap(i=>[{items:[...i.items,r]},{items:[...i.items]}]);return n}function DE(e){return`${e.tableAlias??""}\0${e.field}`}function ne(e){if(e.grouping!==void 0&&e.groupBy.length>0)throw new Error("internal error: SELECT cannot contain both groupBy and grouping.");if(e.grouping===void 0)return e.groupBy.length===0?{type:"NONE"}:{type:"PLAIN",allItems:e.groupBy,sets:[e.groupBy]};let t=new Set,n=[];for(let i of e.grouping.sets)for(let o of i.items){let a=DE(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 Tu(e){return ne(e).type!=="NONE"}function Iu(e,t){let n=ne(e);if(n.type!=="GROUPING_SETS")return null;let r=new Map,i=s=>{let l=t(s),d=r.get(l.canonicalId);if(d)return d;let p={...l,field:s};return r.set(p.canonicalId,p),p},o=n.allItems.map(i).filter((s,l,d)=>d.findIndex(p=>p.canonicalId===s.canonicalId)===l),a=n.sets.map(s=>({items:s.items.map(i)}));return{type:"GROUPING_SETS",source:n.source,allItems:o,sets:a}}function hi(e){if(!e||typeof e!="object")return"UNKNOWN";let t=e;return typeof t.type=="string"?t.type:"UNKNOWN"}function kt(e){return e==="INSERT"||e==="INSERT_SELECT"||e==="UPDATE"||e==="DELETE"||e==="UPSERT"||e==="UPSERT_SELECT"||e==="REORDER"||e==="IMPORT"}function vE(e){return e==="SELECT"||e==="VALIDATE"||e==="UNION"||e==="WITH"||e==="EXPLAIN"||e==="SHOW_APPS"||e==="DESCRIBE"||e==="CREATE_TEMP_TABLE"||e==="DROP_TEMP_TABLE"||e==="SET_VARIABLE"||e==="DECLARE_VARIABLE"||e==="ASSERT"}function Ra(e){return kt(e.type)&&!("validateOnly"in e&&e.validateOnly===!0)}function dn(e){return!Ra(e)&&(vE(e.type)||kt(e.type))}function wu(e){return dn(e)?e.type==="SELECT"||e.type==="WITH"||e.type==="UNION"||e.type==="SHOW_APPS"||e.type==="DESCRIBE"||e.type==="VALIDATE":!1}var bu=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 yi(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"&&bu.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=>yi(i,t)):yi(r,t))}function gi(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"&&!bu.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=>gi(i,t)):gi(r,t))}function ht(e){let t=new Set;if(kt(e.type))return t.add("DML"),t;switch(e.type){case"VALIDATE":t.add("VALIDATE");break;case"SELECT":me(t,pn(e));break;case"UNION":me(t,Nu(e));break;case"WITH":for(let n of e.ctes)me(t,ht(n.query));me(t,ht(e.query));break;case"CREATE_TEMP_TABLE":me(t,ht(e.query));break;default:break}return yi(e)&&t.add("STATISTICAL_AGGREGATE"),gi(e)&&t.add("AGGREGATE"),t}function Pu(e){return ht(e).size>0}function Nu(e){let t=e.left.type==="SELECT"?pn(e.left):Nu(e.left);return me(t,pn(e.right)),e.all||t.add("DISTINCT"),t}function pn(e){let t=new Set,n=ne(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.orderBy.length>0&&t.add("WINDOW_ORDER"),r.type==="SCALAR_SUBQUERY_COL"&&me(t,pn(r.query)),r.type==="CASE_COL")for(let i of r.expr.branches)me(t,cn(i.condition));return me(t,cn(e.where)),me(t,cn(e.having)),yi(e)&&t.add("STATISTICAL_AGGREGATE"),gi(e)&&t.add("AGGREGATE"),t}function cn(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,pn(e.right.query));break;case"LOGICAL":me(t,cn(e.left)),me(t,cn(e.right));break;case"NOT":case"GROUP":me(t,cn(e.expr));break;case"EXISTS":me(t,pn(e.query));break;case"NULL_CHECK":case"BOOLEAN":break}return t}function Cu(e){if(!e||typeof e!="object")return!1;let t=e;return t.where!==null&&t.where!==void 0}function Ou(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 Ai=new Set(["YESTERDAY","TOMORROW","FROM_TODAY","THIS_WEEK","LAST_WEEK","NEXT_WEEK","THIS_MONTH","LAST_MONTH","NEXT_MONTH","THIS_YEAR","LAST_YEAR","NEXT_YEAR"]),Mt=new Set(["TODAY","NOW","LOGINUSER","PRIMARY_ORGANIZATION"]),zn=new Set([...Mt,...Ai]),Ft="WHERE_RELATIVE_DATE_REQUIRES_EXACT_PUSHDOWN",at="WHERE_KINTONE_FUNCTION_REQUIRES_EXACT_PUSHDOWN";function J(e){return Ai.has(e)}function fn(e){return Mt.has(e)}function Be(e){return zn.has(e)}var UE=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})}),ga=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})}),qn="v1";function W(e){throw new Error(`UnsupportedError: APPLY ${qn} scope does not support ${e}`)}function kE(e,t){let n=qn;qn=e;try{return t()}finally{qn=n}}function ME(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 mn(e,t){return kE(e,()=>FE(t,UE[e]))}function FE(e,t){let n=ME(e);if(n===null)return;if(n.type==="UPSERT"){KE(n,t);return}let r=n.applyBlocks;if(ma(r),!t.multipleBlocks&&r.length!==1&&W("multiple APPLY blocks in this phase"),n.type==="INSERT"){BE(n,r,t);return}let i=n;i.subtableCode&&W("a subtable UPDATE as the parent statement in this phase"),!t.updateFrom&&i.from!=null&&W("UPDATE ... FROM in this phase"),!t.check&&i.checkGroups?.length&&W("CHECK in this phase"),!t.onErrorSkip&&i.onErrorSkip&&W("ON ERROR SKIP in this phase"),!t.rejectLimit&&i.rejectLimit!=null&&W("REJECT LIMIT in this phase"),$E(i.where,t.multipleParents),_u(r,t)}function _u(e,t){for(let n of e){for(let r of n.operations)t.operations.has(r.kind)||W(`${r.kind} in this phase`);Du(n);for(let r of n.operations){if(r.kind==="APPEND"){for(let i of r.fields)Si(i,"APPEND targets");Rn(r.values,"APPEND values");continue}if(r.kind==="REMOVE"){!t.expectRows&&r.expectRows&&W("EXPECT ROWS in this phase"),r.selector.kind==="WHERE"&&Lu(r.selector.where,t.idxSelectors);continue}if(r.kind==="PATCH"){!t.expectRows&&r.expectRows&&W("EXPECT ROWS in this phase"),r.assignments.length===0&&W("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(".")&&W("parent or qualified PATCH targets in this phase")}Rn(r.assignments,"PATCH assignments"),r.selector.kind==="WHERE"&&Lu(r.selector.where,t.idxSelectors)}}}}function Du(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 xE=new Set(["MULTI_SELECT","CHECK_BOX","USER_SELECT","ORGANIZATION_SELECT","GROUP_SELECT"]);function vu(e,t){if(Du(e),e.targetKind==="MULTI_VALUE"){if(!xE.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 ma(e){let t=new Set;for(let n of e){if(t.has(n.field))throw new Error(`ArgumentError: APPLY ${qn} scope allows only one block for table ${n.field}`);t.add(n.field)}}function KE(e,t){t.upsert||W("UPSERT in this phase"),!t.check&&e.checkGroups?.length&&W("CHECK in this phase"),!t.onErrorSkip&&e.onErrorSkip&&W("ON ERROR SKIP in this phase"),!t.rejectLimit&&e.rejectLimit!=null&&W("REJECT LIMIT in this phase");let n=e.onInsertApplyBlocks??[],r=e.onUpdateApplyBlocks??[];ma(n),ma(r),!t.multipleBlocks&&(n.length>1||r.length>1)&&W("multiple APPLY blocks in this phase"),Uu(n,"UPSERT ON INSERT"),_u(r,{...t,idxSelectors:!1,expectRows:!1})}function Uu(e,t){for(let n of e)for(let r of n.operations){r.kind!=="APPEND"&&W(`${r.kind} for ${t} in this phase`);for(let i of r.fields)Si(i,"APPEND targets");Rn(r.values,"APPEND values")}}function BE(e,t,n){n.insert||W("INSERT in this phase"),e.subtableCode&&W("a subtable INSERT as the parent statement in this phase"),!n.check&&e.checkGroups?.length&&W("CHECK in this phase"),!n.onErrorSkip&&e.onErrorSkip&&W("ON ERROR SKIP in this phase"),!n.rejectLimit&&e.rejectLimit!=null&&W("REJECT LIMIT in this phase"),Uu(t,"INSERT")}function st(e){if(e.type!=="BINARY"||e.op!=="="||e.left.type!=="FIELD"||e.left.tableAlias!==null||e.left.field!=="$id"||e.right.type!=="NUMBER")return!1;let t=e.right.raw??String(e.right.value);return/^\d+$/.test(t)&&e.right.value>0&&Number.isSafeInteger(e.right.value)}function Ti(e,t){let n=ga[e],r="validateOnly"in t&&t.validateOnly===!0;if(t.type!=="EXPLAIN"&&!r&&ha(t)&&e!=="phase15b")throw new Error(`UnsupportedError: APPLY ${En(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 ${En(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 ${En(e)} INSERT execution is not connected`);return}if(!(t.type!=="UPDATE"||!t.applyBlocks?.length)&&!n.multipleParentPreflight&&!st(t.where))throw new Error(`UnsupportedError: APPLY ${En(e)} execution does not support multiple-parent APPLY`)}function ha(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 ku(e,t){if(!(t.type!=="UPDATE"||!t.applyBlocks?.length||st(t.where))&&!ga[e].publicMultipleParentWrite)throw new Error(`UnsupportedError: APPLY ${En(e)} public multiple-parent write is not connected`)}function yn(e){if(!ga[e].internalPreparedWrite)throw new Error(`UnsupportedError: APPLY ${En(e)} internal prepared write is not available`)}function En(e){return`Phase ${e.slice(5)}`}function $E(e,t){st(e)||(e.type==="BINARY"&&e.op==="="&&e.left.type==="FIELD"&&e.left.tableAlias===null&&e.left.field==="$id"&&W("a parent $id that is not a positive safe integer in this phase"),t||W("a parent WHERE other than the single condition $id = <positive safe integer> in this phase"),ya(e,t))}function ya(e,t){if(Array.isArray(e)){for(let o of e)ya(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")&&W("KLIKE in parent WHERE"),(r==="SELECT"||r==="SCALAR_SUBQUERY"||r==="SUBQUERY_IN_LIST"||r==="EXISTS")&&W("subqueries in parent WHERE"),(r==="WINDOW_COL"||r==="AGGREGATE"||r==="AGG_REF"||r==="AGG_ARITH"||r==="ARITH_AGG_COL")&&W("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)&&W("aggregate or window expressions in parent WHERE"),r==="KINTONE_FUNC"&&!(typeof n.name=="string"&&J(n.name))&&W("non-deterministic kintone functions in parent WHERE");for(let o of Object.values(n))ya(o,t)}function Lu(e,t){Rn(e,"child row selectors",t)}function Rn(e,t,n=!1){if(Array.isArray(e)){for(let s of e)Rn(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")&&W(`KLIKE in ${t}`),(i==="SELECT"||i==="SCALAR_SUBQUERY"||i==="SUBQUERY_IN_LIST"||i==="EXISTS")&&W(`subqueries in ${t}`),(i==="WINDOW_COL"||i==="AGGREGATE"||i==="AGG_REF"||i==="AGG_ARITH"||i==="ARITH_AGG_COL")&&W(`aggregate or window expressions in ${t}`),i==="KINTONE_FUNC"&&!(typeof r.name=="string"&&J(r.name))&&W(`non-deterministic kintone functions in ${t}`),i==="FIELD"){let s=r.tableAlias,l=r.field;s!=null&&W(`qualified or parent field references in ${t}`),Si(l,t,n)}if(i==="FIELD_REF"&&Si(r.field,t,n),!(o==="PATCH"||o==="APPEND"||o==="REMOVE"))for(let s of Object.values(r))Rn(s,t,n)}function Si(e,t,n=!1){if(typeof e!="string")return;let r=e.toLowerCase();r==="_idx"&&!n&&W(`_idx in ${t}`),(r.startsWith("_p.")||r.includes("."))&&W(`parent or qualified field references in ${t}`),/^(count|sum|avg|min|max|group_concat)\s*\(/i.test(e)&&W(`aggregate expressions in ${t}`)}function Jn(e){switch(e.type){case"BOOLEAN":return{type:"BOOLEAN",value:!e.value};case"BINARY":{let t=GE(e.op);if(t===null)throw new ie(`NOT ${e.op} \u306F\u30B5\u30DD\u30FC\u30C8\u5BFE\u8C61\u5916\u3067\u3059`);return{...e,op:t}}case"NULL_CHECK":return{...e,not:!e.not};case"LOGICAL":return{type:"LOGICAL",op:e.op==="AND"?"OR":"AND",left:Jn(e.left),right:Jn(e.right)};case"NOT":return e.expr;case"GROUP":return{type:"GROUP",expr:Jn(e.expr)};case"EXISTS":return{...e,not:!e.not}}}function GE(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 Mu(e){return e.includes("%")||e.includes("_")}function Xn(e){return e.type==="BINARY"&&(e.op==="LIKE"||e.op==="NOT_LIKE")}function St(e){return e.type==="BINARY"&&(e.op==="KLIKE"||e.op==="NOT_KLIKE")}function At(e){if(e===null)return!1;if(Xn(e))return!0;switch(e.type){case"LOGICAL":return At(e.left)||At(e.right);case"NOT":case"GROUP":return At(e.expr);case"BINARY":case"NULL_CHECK":case"EXISTS":case"BOOLEAN":return!1}}function pe(e){if(e===null)return!1;if(St(e))return!0;switch(e.type){case"LOGICAL":return pe(e.left)||pe(e.right);case"NOT":case"GROUP":return pe(e.expr);case"BINARY":case"NULL_CHECK":case"EXISTS":case"BOOLEAN":return!1}}function G(e){switch(e.type){case"BINARY":return VE(e);case"NULL_CHECK":return HE(e);case"LOGICAL":return YE(e);case"NOT":return jE(e);case"GROUP":return zE(e);case"EXISTS":throw new ie("EXISTS \u306F kintone \u30AF\u30A8\u30EA\u306B\u5909\u63DB\u3067\u304D\u307E\u305B\u3093");case"BOOLEAN":throw new ie("internal error: BOOLEAN predicate reached kintone query conversion")}}function VE(e){if(Xn(e))throw new ie("LIKE / NOT LIKE \u306F kintone \u30AF\u30A8\u30EA\u306B\u5909\u63DB\u3067\u304D\u307E\u305B\u3093\uFF08\u5E38\u306B JS \u8A55\u4FA1\u304C\u5FC5\u8981\u3067\u3059\uFF09");let t=xu(e.left),n=WE(e.op),r=qE(e.right,e.op);return`${t} ${n} ${r}`}function WE(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 HE(e){let t=xu(e.field);return e.not?`${t} != ""`:`${t} = ""`}function YE(e){let t=G(e.left),n=G(e.right),r=e.op==="AND"?"and":"or",i=Fu(e.left)?`(${t})`:t,o=Fu(e.right)?`(${n})`:n;return`${i} ${r} ${o}`}function jE(e){return G(Jn(e.expr))}function zE(e){return`(${G(e.expr)})`}function xu(e){if(e.type==="FUNC_FIELD")throw new ie(`WHERE \u53E5\u306E\u95A2\u6570\uFF08${e.expr.func}\uFF09\u306F kintone \u30AF\u30A8\u30EA\u306B\u5909\u63DB\u3067\u304D\u307E\u305B\u3093`);if(e.type==="ARITH_FIELD")throw new ie("WHERE \u53E5\u306E\u7B97\u8853\u5F0F\u306F kintone \u30AF\u30A8\u30EA\u306B\u5909\u63DB\u3067\u304D\u307E\u305B\u3093");if(e.type==="CASE_FIELD")throw new ie("WHERE \u53E5\u306E CASE WHEN \u306F kintone \u30AF\u30A8\u30EA\u306B\u5909\u63DB\u3067\u304D\u307E\u305B\u3093");if(e.type==="GROUPING_FIELD")throw new ie("GROUPING() \u306F kintone \u30AF\u30A8\u30EA\u306B\u5909\u63DB\u3067\u304D\u307E\u305B\u3093");return rR(e.field)}function qE(e,t){switch(e.type){case"VARIABLE":throw new ie(`\u672A\u89E3\u6C7A\u306E\u30D0\u30C3\u30C1\u5909\u6570 @${e.name} \u304C\u3042\u308A\u307E\u3059`);case"VARIABLE_IN_LIST":throw new ie(`\u672A\u89E3\u6C7A\u306E\u914D\u5217\u5909\u6570 @${e.name} \u304C\u3042\u308A\u307E\u3059`);case"STRING":return Ku(e);case"NUMBER":return H(e);case"KINTONE_FUNC":return Bu(e);case"IN_LIST":return tR(e,t);case"ARITH_VALUE":throw new ie("WHERE \u53E5\u306E\u53F3\u8FBA\u7B97\u8853\u5F0F\u306F kintone \u30AF\u30A8\u30EA\u306B\u5909\u63DB\u3067\u304D\u307E\u305B\u3093");case"CASE_VALUE":throw new ie("WHERE \u53E5\u306E\u53F3\u8FBA CASE WHEN \u306F kintone \u30AF\u30A8\u30EA\u306B\u5909\u63DB\u3067\u304D\u307E\u305B\u3093");case"SUBQUERY_IN_LIST":throw new ie("IN (SELECT ...) \u306F kintone \u30AF\u30A8\u30EA\u306B\u5909\u63DB\u3067\u304D\u307E\u305B\u3093");case"SCALAR_SUBQUERY":throw new ie("\u30B9\u30AB\u30E9\u30FC\u30B5\u30D6\u30AF\u30A8\u30EA\u306F kintone \u30AF\u30A8\u30EA\u306B\u5909\u63DB\u3067\u304D\u307E\u305B\u3093");case"ARRAY":throw new ie("\u914D\u5217\u30EA\u30C6\u30E9\u30EB\u306F WHERE \u53E5\u3067\u306F\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093")}}function Ku(e){return`"${e.value.replace(/\\/g,"\\\\").replace(/"/g,'\\"')}"`}function Bu(e){switch(e.name){case"TODAY":case"NOW":case"LOGINUSER":case"PRIMARY_ORGANIZATION":return`${e.name}()`}return JE(e)}function JE(e){switch(e.name){case"YESTERDAY":case"TOMORROW":case"THIS_YEAR":case"LAST_YEAR":case"NEXT_YEAR":return e.args?.kind!=="NONE"?Qn():`${e.name}()`;case"FROM_TODAY":return e.args?.kind!=="FROM_TODAY"||!ZE(e.args.offset,e.args.offsetText)||!XE.has(e.args.unit)?Qn():`${e.name}(${e.args.offsetText}, ${e.args.unit})`;case"THIS_WEEK":case"LAST_WEEK":case"NEXT_WEEK":return e.args?.kind!=="WEEK"||e.args.weekday!==null&&!QE.has(e.args.weekday)?Qn():e.args.weekday===null?`${e.name}()`:`${e.name}(${e.args.weekday})`;case"THIS_MONTH":case"LAST_MONTH":case"NEXT_MONTH":return e.args?.kind!=="MONTH"||!eR(e.args.day)?Qn():e.args.day===null?`${e.name}()`:`${e.name}(${e.args.day})`}return Qn()}var XE=new Set(["DAYS","WEEKS","MONTHS","YEARS"]),QE=new Set(["SUNDAY","MONDAY","TUESDAY","WEDNESDAY","THURSDAY","FRIDAY","SATURDAY"]);function ZE(e,t){return!Number.isSafeInteger(e)||!/^(?:0|[1-9]\d*|-[1-9]\d*)$/.test(t)?!1:Number(t)===e}function eR(e){return e===null||e==="LAST"||typeof e=="number"&&Number.isInteger(e)&&e>=1&&e<=31}function Qn(){throw new ie("internal error: invalid relative date function AST reached kintone query conversion")}function tR(e,t){if(t!=="IN"&&t!=="NOT_IN")throw new ie("IN_LIST \u306F IN / NOT IN \u6F14\u7B97\u5B50\u3067\u306E\u307F\u4F7F\u7528\u3067\u304D\u307E\u3059");return nR(e.values),`(${e.values.map(r=>r.type==="STRING"?Ku(r):r.type==="NUMBER"?H(r):Bu(r)).join(",")})`}function nR(e){let t=e.find(n=>n.type==="VARIABLE");if(t?.type==="VARIABLE")throw new ie(`\u672A\u89E3\u6C7A\u306E\u30D0\u30C3\u30C1\u5909\u6570 @${t.name} \u304C\u3042\u308A\u307E\u3059`)}function rR(e){return/^[\w$\u3000-\u9FFF]+$/u.test(e)?e:`"${e.replace(/"/g,'\\"')}"`}function Fu(e){return e.type==="LOGICAL"}var ie=class extends Error{constructor(t){super(t),this.name="KintoneQueryError"}};function Ii(e){return`'${e.replace(/'/g,"''")}'`}function gn(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 H(e);if(e.type==="STRING_FUNC")return Sa(e);let n=`${gn(e.left)}${e.op}${gn(e.right)}`;return t?n:`(${n})`}function $u(e){if(e.type==="FIELD")return e.tableAlias?`${e.tableAlias}.${e.field}`:e.field;if(e.type==="FUNC_FIELD")return Sa(e.expr);if(e.type==="ARITH_FIELD")return gn(e.expr);if(e.type==="GROUPING_FIELD"){let t=e.ref.field;return`GROUPING(${t.tableAlias?`${t.tableAlias}.`:""}${t.field})`}return Aa(e.expr)}function Vu(e){switch(e.type){case"STRING":return Ii(e.value);case"NUMBER":return H(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=>Ii(t.value)).join(",")}]`;case"IN_LIST":return`(${e.values.map(Vu).join(",")})`;case"ARITH_VALUE":return gn(e.expr);case"CASE_VALUE":return Aa(e.expr);case"SUBQUERY_IN_LIST":return"(SUBQUERY)";case"SCALAR_SUBQUERY":return"(SUBQUERY)"}}function Zn(e){switch(e.type){case"BINARY":return`${$u(e.left)} ${e.op.replace("_"," ")} ${Vu(e.right)}`;case"NULL_CHECK":return`${$u(e.field)} IS ${e.not?"NOT ":""}NULL`;case"LOGICAL":return`(${Zn(e.left)} ${e.op} ${Zn(e.right)})`;case"NOT":return`NOT (${Zn(e.expr)})`;case"GROUP":return`(${Zn(e.expr)})`;case"BOOLEAN":return e.value?"TRUE":"FALSE";case"EXISTS":return`${e.not?"NOT ":""}EXISTS (SUBQUERY)`}}function Gu(e){return e.type==="ARRAY"?`[${e.elements.map(t=>Ii(t.value)).join(",")}]`:e.type==="FIELD_REF"||e.type==="ARITH"?gn(e):xt(e)}function Aa(e){let t=e.branches.map(r=>`WHEN ${Zn(r.condition)} THEN ${Gu(r.result)}`).join(" "),n=e.elseResult===null?"":` ELSE ${Gu(e.elseResult)}`;return`CASE ${t}${n} END`}function iR(e){return e.type==="AGG_REF"?we(e.func,e.distinct,e.arg):e.type==="AGG_ARITH"?er(e):xt(e)}function Sa(e){return`${e.func}(${e.args.map(iR).join(",")})`}function xt(e){switch(e.type){case"STRING":return Ii(e.value);case"NUMBER":return H(e);case"VARIABLE":return`@${e.name}`;case"FIELD":return e.tableAlias?`${e.tableAlias}.${e.field}`:e.field;case"STRING_FUNC":return Sa(e);case"CASE_WHEN":return Aa(e);case"SCALAR_ARITH":return`(${xt(e.left)}${e.op}${xt(e.right)})`;case"CONCAT_OP":return`(${xt(e.left)}||${xt(e.right)})`}}function oR(e){return e.type==="WILDCARD"?"*":e.type==="FIELD_REF"||e.type==="ARITH"?gn(e,!0):xt(e)}function we(e,t,n){let r=oR(n);return t?`${e}(DISTINCT ${r})`:`${e}(${r})`}function er(e){return e.type==="NUMBER"?H(e):e.type==="AGG_REF"?we(e.func,e.distinct,e.arg):`${er(e.left)}${e.op}${er(e.right)}`}function aR(e){return e.some(t=>t.type==="WINDOW_COL")}function _e(e){return e.from.subtableCode||e.joins.some(t=>t.table.subtableCode)||e.joins.length>0||ne(e).type!=="NONE"||e.distinct||aR(e.columns)||e.columns.some(t=>t.type==="AGGREGATE"||t.type==="ARITH_AGG_COL"||t.type==="SCALAR_SUBQUERY_COL"||t.type==="STRFUNC_COL"&&zu(t.expr)||t.type==="SCALAR_VALUE_COL"&&nr(t.expr))||Tt(e.where)||e.orderBy.some(t=>t.key.type!=="FIELD_NAME")?"FULL_SCAN":"SIMPLE"}function Tt(e){if(e===null)return!1;switch(e.type){case"BOOLEAN":return!0;case"BINARY":return Wu(e.left)||e.right.type==="ARITH_VALUE"||e.right.type==="CASE_VALUE"||e.right.type==="SUBQUERY_IN_LIST"||e.right.type==="SCALAR_SUBQUERY"||Xn(e);case"NULL_CHECK":return Wu(e.field);case"LOGICAL":return Tt(e.left)||Tt(e.right);case"NOT":case"GROUP":return Tt(e.expr);case"EXISTS":return!0}}function Wu(e){return e.type==="FUNC_FIELD"||e.type==="ARITH_FIELD"||e.type==="CASE_FIELD"}function wi(e){let t=[],r=(e.limit!==null||e.offset!==null)&&e.orderBy.length===0;if(e.where!==null&&t.push(G(e.where)),e.orderBy.length>0){let i=e.orderBy.map(sR).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:lR(e.columns),totalCount:!1}}function ju(e,t){let n=[];return e.where!==null&&e.joins.length===0&&!Tt(e.where)&&n.push(G(e.where)),{app:t,query:n.join(" "),fields:[]}}function Kt(e,t,n){let i=Ju(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 sR(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 lR(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(Ia(r.field)):r.type==="ARITH_COL"?tr(r.expr,n):r.type==="STRFUNC_COL"?wa(r.expr,n):r.type==="SCALAR_VALUE_COL"&&hn(r.expr,n);return[...new Set(n)]}function uR(e,t){tr(e.left,t),tr(e.right,t)}function tr(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(Ia(e.field)):e.type==="ARITH"?uR(e,t):e.type==="STRING_FUNC"&&wa(e,t)}function Ia(e){let t=e.indexOf(".");return t<=0?e:e.slice(t+1)||e}function wa(e,t){for(let n of e.args)cR(n,t)}function cR(e,t){if(e.type==="AGG_REF"||e.type==="AGG_ARITH"){Ta(e,t);return}hn(e,t)}function hn(e,t){if(e.type==="FIELD"){t.push(Ia(e.tableAlias?`${e.tableAlias}.${e.field}`:e.field));return}if(e.type==="STRING_FUNC"){wa(e,t);return}if(e.type==="SCALAR_ARITH"||e.type==="CONCAT_OP"){hn(e.left,t),hn(e.right,t);return}if(e.type==="CASE_WHEN"){for(let n of e.branches)Hu(n.result,t);e.elseResult&&Hu(e.elseResult,t)}}function Hu(e,t){if(e.type!=="ARRAY"){if(e.type==="FIELD_REF"||e.type==="ARITH"){tr(e,t);return}hn(e,t)}}function Ta(e,t){if(e.type==="AGG_REF"){e.arg.type!=="WILDCARD"&&pR(e.arg,t);return}e.type==="AGG_ARITH"&&(Ta(e.left,t),Ta(e.right,t))}function pR(e,t){e.type==="FIELD_REF"||e.type==="ARITH"?tr(e,t):hn(e,t)}function zu(e){return e.args.some(t=>t.type==="AGG_REF"||t.type==="AGG_ARITH"?!0:nr(t))}function nr(e){return e.type==="STRING_FUNC"?zu(e):e.type==="SCALAR_ARITH"||e.type==="CONCAT_OP"?nr(e.left)||nr(e.right):e.type==="CASE_WHEN"?e.branches.some(t=>Yu(t.result))||e.elseResult!==null&&Yu(e.elseResult):!1}function Yu(e){return e.type==="ARRAY"||e.type==="FIELD_REF"||e.type==="ARITH"?!1:nr(e)}function qu(e,t){let n=new Set,r=Ju(e,t,{includeMaterialized:!0,unqualified:n});return{bySource:new Map([...r.entries()].map(([i,o])=>[i,new Set(o.fields)])),unqualified:n}}function Ju(e,t,n){let r=[e.from,...e.joins.map(A=>A.table)],i=[e.from,...e.joins.map(A=>A.table)].filter(A=>A.cteName===null),o=n?r:i,a=new Map;for(let A of o)a.set(A,{table:A,allFields:!1,fields:new Set});if(a.size===0)return a;let s=o[0]??null,l=o.find(A=>!!A.subtableCode)??null,d=new Map;for(let A of o)A.alias&&d.set(A.alias,A),A.cteName!==null?d.set(A.cteName,A):A.subtableCode||(d.set(`APP${A.appId}`,A),d.set(`app${A.appId}`,A));let p=dR(e.columns),c=A=>{let C=a.get(A);C&&(C.allFields=!0,C.fields.clear())},u=()=>{for(let A of o)c(A)},f=()=>{for(let A of o)A.subtableCode&&c(A)},E=(A,C)=>{let x=a.get(A);if(!(!x||x.allFields)){if(A.subtableCode){if(C.startsWith("_p.")){let O=C.slice(3);O&&O!=="*"&&x.fields.add(O);return}return void 0}C&&x.fields.add(C)}},R=(A,C="select",x)=>{if(!A||A==="*")return;if(A==="_p.*"){f();return}if(A.endsWith(".*")){let F=A.slice(0,-2);if(!F){u();return}if(F==="_p"){f();return}let j=d.get(F);if(j){c(j);return}return}if(C==="groupBy"&&x!==void 0){if(x.kind==="PHYSICAL"){let F=r[x.sourceIndex];F&&(n||F.cteName===null)&&E(F,x.fieldCode)}return}if((C==="orderBy"||C==="having"||C==="groupBy")&&p.has(A)||(C==="orderBy"||C==="having"||C==="groupBy")&&fR(A))return;let O=A.indexOf(".");if(O>0){let F=A.slice(0,O),j=A.slice(O+1);if(F==="_p"){l&&E(l,`_p.${j}`);return}let q=d.get(F);if(q){E(q,j);return}if(n)return}n?n.unqualified.add(A):s&&E(s,A)},m=(A,C,x="select")=>{if(C){if(C==="_p"){l&&E(l,`_p.${A}`);return}let O=d.get(C);if(O){E(O,A);return}if(n)return}R(A,x)},g=(A,C="select")=>{if(A.type==="VARIABLE")throw new Error(`InternalError: unresolved arithmetic variable @${A.name} reached source-aware field collection.`);if(A.type==="FIELD_REF"){R(A.field,C);return}if(A.type==="ARITH"){g(A.left,C),g(A.right,C);return}if(A.type==="STRING_FUNC"){S(A,C);return}},y=(A,C="select")=>{if(A.type==="AGG_REF"){A.arg.type!=="WILDCARD"&&I(A.arg,C);return}A.type==="AGG_ARITH"&&(y(A.left,C),y(A.right,C))},h=(A,C="select")=>{if(A.type==="AGG_REF"||A.type==="AGG_ARITH"){y(A,C);return}w(A,C)},S=(A,C="select")=>{for(let x of A.args)h(x,C)},w=(A,C="select")=>{if(A.type==="FIELD"){m(A.field,A.tableAlias,C);return}if(A.type==="STRING_FUNC"){S(A,C);return}if(A.type==="SCALAR_ARITH"||A.type==="CONCAT_OP"){w(A.left,C),w(A.right,C);return}A.type==="CASE_WHEN"&&b(A,C)},I=(A,C="select")=>{if(A.type==="FIELD_REF"||A.type==="ARITH"){g(A,C);return}w(A,C)},L=(A,C="select")=>{if(A.type!=="ARRAY"){if(A.type==="FIELD_REF"||A.type==="ARITH"){g(A,C);return}w(A,C)}},b=(A,C="select")=>{for(let x of A.branches)D(x.condition,C),L(x.result,C);A.elseResult&&L(A.elseResult,C)},v=(A,C="select")=>{if(A.type==="FIELD"){m(A.field,A.tableAlias,C);return}if(A.type==="FUNC_FIELD"){S(A.expr,C);return}if(A.type==="ARITH_FIELD"){g(A.expr,C);return}A.type!=="GROUPING_FIELD"&&b(A.expr,C)},P=(A,C="select")=>{if(A.type==="ARITH_VALUE"){g(A.expr,C);return}if(A.type==="CASE_VALUE"){b(A.expr,C);return}},D=(A,C="where")=>{if(A)switch(A.type){case"BINARY":v(A.left,C),P(A.right,C);return;case"NULL_CHECK":v(A.field,C);return;case"LOGICAL":D(A.left,C),D(A.right,C);return;case"NOT":case"GROUP":D(A.expr,C);return;case"EXISTS":case"BOOLEAN":return}},M=(A,C)=>{if(A.type==="FIELD_NAME"){R(A.name,"groupBy",C);return}if(A.type==="ARITH_KEY"){g(A.expr,"groupBy");return}S(A.expr,"groupBy")},N=(A,C="orderBy")=>{if(A.type==="FIELD_NAME"){R(A.name,C);return}if(A.type==="ARITH_KEY"){g(A.expr,C);return}A.type!=="GROUPING_KEY"&&S(A.expr,C)};for(let A of e.columns)switch(A.type){case"WILDCARD":u();break;case"PARENT_WILDCARD":f();break;case"FIELD":R(A.field,"select");break;case"LITERAL_COL":break;case"VARIABLE_COL":throw new Error(`internal error: unresolved SELECT variable @${A.name}`);case"AGGREGATE":A.arg.type!=="WILDCARD"&&I(A.arg,"select");break;case"ARITH_AGG_COL":y(A.expr,"select");break;case"ARITH_COL":g(A.expr,"select");break;case"CASE_COL":b(A.expr,"select");break;case"STRFUNC_COL":S(A.expr,"select");break;case"SCALAR_VALUE_COL":w(A.expr,"select");break;case"GROUPING_COL":break;case"SCALAR_SUBQUERY_COL":break;case"WINDOW_COL":for(let C of A.partitionBy)m(C.field,C.tableAlias,"select");for(let C of A.orderBy)N(C.key,"select");break}for(let A of e.joins)m(A.on.left.field,A.on.left.tableAlias,"where"),m(A.on.right.field,A.on.right.tableAlias,"where");D(e.where,"where");let _=ne(e);if(_.type==="PLAIN")_.allItems.forEach((A,C)=>M(A,t?.items[C]));else if(_.type==="GROUPING_SETS")for(let A of _.allItems)m(A.field,A.tableAlias,"select");D(e.having,"having");for(let A of e.orderBy)N(A.key);return a}function dR(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(we(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 fR(e){return/^(COUNT|SUM|AVG|MAX|MIN|GROUP_CONCAT|STDDEV_POP|STDDEV_SAMP|VAR_POP|VAR_SAMP|MEDIAN|MODE)\(/i.test(e)}function It(e){if(e.ctes.length!==1)return!1;let t=e.ctes[0];if(t.query.type!=="SELECT"||_e(t.query)!=="SIMPLE"||!t.query.columns.every(r=>r.type==="WILDCARD"||r.type==="FIELD"&&(r.alias===null||r.alias===r.field)))return!1;let n=e.query;return n.type!=="SELECT"||n.from.cteName!==t.name||n.joins.length>0||Tu(n)||n.distinct?!1:!n.columns.some(r=>r.type==="AGGREGATE"||r.type==="ARITH_AGG_COL")}function wt(e){let t=e.ctes[0].query,n=e.query,r=bi(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 bi(e,t){if(e===null||t===null)return e;switch(e.type){case"BINARY":return{...e,left:Xu(e.left,t)};case"NULL_CHECK":return{...e,field:Xu(e.field,t)};case"LOGICAL":return{...e,left:bi(e.left,t),right:bi(e.right,t)};case"NOT":case"GROUP":return{...e,expr:bi(e.expr,t)};case"EXISTS":case"BOOLEAN":return e}}function Xu(e,t){return e.type==="FIELD"&&e.tableAlias===t?{...e,tableAlias:null}:e}function An(e,t={}){return rr(e,n=>ER(n,t))}function ir(e,t={}){return rr(e,n=>Qu(n,t)||Zu(n,t))}function rr(e,t){switch(e.type){case"BINARY":return t(e)?e:null;case"LOGICAL":if(e.op!=="AND")return null;{let n=rr(e.left,t),r=rr(e.right,t);return n&&r?{...e,left:n,right:r}:n??r??null}case"GROUP":return rr(e.expr,t);case"NULL_CHECK":case"NOT":case"EXISTS":case"BOOLEAN":return null}}function ER(e,t){return RR(e,t)||gR(e,t)?!0:Qu(e,t)?t.fieldTypes?.get(e.left.field)==="NUMBER":yR(e,t)}function RR(e,t){return t.allowKlike===!1||e.op!=="KLIKE"&&e.op!=="NOT_KLIKE"||e.left.type!=="FIELD"||!ba(e.left,t)?!1:e.right.type==="STRING"||t.allowUnresolvedKlikeVariables===!0&&e.right.type==="VARIABLE"}var mR=new Set(["DROP_DOWN","RADIO_BUTTON","CHECK_BOX","MULTI_SELECT","STATUS"]);function yR(e,t){if(!Zu(e,t)||e.left.type!=="FIELD"||e.right.type!=="IN_LIST")return!1;let n=t.fieldTypes?.get(e.left.field);if(n===void 0||!mR.has(n))return!1;let r=t.fieldOptions?.get(e.left.field);return r===void 0?!1:e.right.values.every(i=>i.type==="STRING"&&i.value!==""&&r.has(i.value))}function gR(e,t){return!hR(e.left,t)||e.right.type!=="NUMBER"?!1:e.op==="="||e.op===">"||e.op==="<"||e.op===">="||e.op==="<="}function hR(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 Qu(e,t){return e.left.type!=="FIELD"||e.left.field==="$id"||!ba(e.left,t)||e.right.type!=="NUMBER"?!1:e.op==="="?!0:(e.op==="<"||e.op===">")&&/^[+-]?\d+$/.test(H(e.right))&&Number.isSafeInteger(e.right.value)}function Zu(e,t){return e.left.type!=="FIELD"||e.left.field==="$id"||!ba(e.left,t)||e.op!=="IN"&&e.op!=="NOT_IN"||e.right.type!=="IN_LIST"||e.right.values.length===0?!1:e.right.values.every(n=>n.type==="STRING"&&n.value!=="")}function ba(e,t){let n=t.tableAlias??null;return e.tableAlias===n?!0:t.allowUnqualifiedFields===!0&&e.tableAlias===null}function or(e,t={}){let n=e!==null&&t.extractCondition!==!1?An(e,t):null,r=new Set;Sn(n,r);let i=new Set;return Sn(e,i),{condition:n,appliedKlikes:r,allKlikes:[...i]}}function Tn(e,t={}){let r={allowKlike:e.joins.every(p=>p.type==="INNER"),allowUnresolvedKlikeVariables:t.allowUnresolvedVariables},i=!e.from.subtableCode&&e.from.cteName===null,o=e.joins.length===0||e.from.alias!==null,a=or(e.where,{...r,extractCondition:i&&o,tableAlias:e.from.alias??void 0,allowUnqualifiedFields:e.joins.length===0,fieldTypes:t.fieldTypesByApp?.get(e.from.appId),fieldOptions:t.fieldOptionsByApp?.get(e.from.appId)}),s=a.condition,l=new Map;if(e.where!==null)for(let p of e.joins){if(!p.table.alias||p.table.subtableCode||p.table.cteName!==null)continue;let c=An(e.where,{...r,tableAlias:p.table.alias,fieldTypes:t.fieldTypesByApp?.get(p.table.appId),fieldOptions:t.fieldOptionsByApp?.get(p.table.appId)});c!==null&&l.set(p.table.alias,c)}let d=new Set(a.appliedKlikes);for(let p of l.values())Sn(p,d);return{mainCondition:s,joinConditions:l,appliedKlikes:d,allKlikes:a.allKlikes}}function Pa(e){return e.allKlikes.filter(t=>!e.appliedKlikes.has(t))}function Sn(e,t){if(e!==null){if(St(e)){t.add(e);return}switch(e.type){case"LOGICAL":Sn(e.left,t),Sn(e.right,t);return;case"NOT":case"GROUP":Sn(e.expr,t);return;case"BINARY":case"NULL_CHECK":case"EXISTS":case"BOOLEAN":return}}}function Pi(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=ue(t.where);if(l.length===0||!TR(l,a)||o===null||!ec(o,l))return null;let d={prefilterWhere:t.where,residualWhere:null,exactRelativeLeaves:SR(t.where),relativeFunctionNames:new Set(l),appliedKlikes:new Set,capability:r.capability,reasons:r.reasons},p={allowForm:"FULL_SCAN_EXACT",clientWhereEvaluation:!1,serializedWholeWhere:o,prefilterPlan:d};return AR(p,e,l),p}function AR(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(!ec(e.serializedWholeWhere,n))throw new Error("FULL_SCAN_EXACT invariant: relative occurrence serialization")}function ue(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"&&Be(i.name)){t.push(i.name);return}Object.values(i).forEach(n)}};return n(e),t}function SR(e){let t=[],n=r=>{switch(r.type){case"BINARY":(r.right.type==="KINTONE_FUNC"&&Be(r.right.name)||r.right.type==="IN_LIST"&&r.right.values.length===1&&r.right.values[0].type==="KINTONE_FUNC"&&Be(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 TR(e,t){return e.length===t.length&&e.every((n,r)=>n===t[r])}function ec(e,t){let n=new Map;for(let r of t){if(!Be(r))return!1;n.set(r,(n.get(r)??0)+1)}for(let[r,i]of n)if((e.match(new RegExp(`\\b${r}\\s*\\(`,"g"))?.length??0)<i)return!1;return!0}var oe=class extends Error{constructor(t){super(`ArgumentError: ${t}`),this.name="ArgumentError"}};function tc(e){nc(e)}function Ca(e){if(Pa(e).length>0)throw new oe("FULL_SCAN \u306E KLIKE / NOT KLIKE \u3092\u5B89\u5168\u306B\u62BC\u3057\u4E0B\u3052\u3089\u308C\u307E\u305B\u3093\u3002OR / NOT \u914D\u4E0B\u3001CTE\u30FB\u4E00\u6642\u30C6\u30FC\u30D6\u30EB\u3001LEFT / RIGHT JOIN \u3092\u78BA\u8A8D\u3057\u3066\u304F\u3060\u3055\u3044")}function nc(e){switch(e.type){case"SELECT":In(e);return;case"UNION":La(e);return;case"WITH":rc(e);return;case"EXPLAIN":nc(e.query);return;case"CREATE_TEMP_TABLE":Oa(e.query);return;case"SET_VARIABLE":case"DECLARE_VARIABLE":case"ASSERT":Bt(e);return;case"UPDATE":if(e.applyBlocks?.length&&!st(e.where)&&pe(e.where)){Na(e.where),Bt(e);return}if(bt(e)&&e.subtableCode)throw new oe("KLIKE / NOT KLIKE \u306F\u30B5\u30D6\u30C6\u30FC\u30D6\u30EB UPDATE \u306E WHERE \u3067\u306F\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093");if(!e.applyBlocks?.length&&!e.subtableCode&&pe(e.where)&&!bR(e,e.where)){Na(e.where),Bt(e);return}if(bt(e))throw new oe("KLIKE / NOT KLIKE \u306F\u901A\u5E38\u89AA UPDATE \u306E WHERE\u3001\u307E\u305F\u306F APPLY \u8907\u6570\u89AA UPDATE \u306E\u5B89\u5168\u306A\u89AA WHERE \u3060\u3051\u3067\u4F7F\u7528\u3067\u304D\u307E\u3059");return;case"DELETE":if(bt(e)&&e.subtableCode)throw new oe("KLIKE / NOT KLIKE \u306F\u30B5\u30D6\u30C6\u30FC\u30D6\u30EB DELETE \u306E WHERE \u3067\u306F\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093");if(!e.subtableCode&&pe(e.where)){Na(e.where),Bt(e);return}if(bt(e))throw new oe("KLIKE / NOT KLIKE \u306F\u901A\u5E38\u89AA DELETE \u306E WHERE \u3060\u3051\u3067\u4F7F\u7528\u3067\u304D\u307E\u3059");return;case"INSERT":case"INSERT_SELECT":if(bt(e))throw new oe("KLIKE / NOT KLIKE \u306F INSERT / INSERT SELECT \u3067\u306F\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093");return;case"UPSERT":case"UPSERT_SELECT":if(bt(e))throw new oe("KLIKE / NOT KLIKE \u306F UPSERT / UPSERT SELECT \u3067\u306F\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093");return;case"REORDER":if(bt(e))throw new oe("KLIKE / NOT KLIKE \u306F\u30B5\u30D6\u30C6\u30FC\u30D6\u30EB REORDER \u306E WHERE \u3067\u306F\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093");return;case"VALIDATE":if(bt(e))throw new oe("KLIKE / NOT KLIKE \u306F VALIDATE \u306E WHERE / CHECK \u3067\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093");return;case"SHOW_APPS":case"DESCRIBE":case"DROP_TEMP_TABLE":return}}function Na(e){Ci(e,t=>{if(!St(t))return;let n=t.right;if(n.type!=="STRING"&&n.type!=="VARIABLE")throw new oe("KLIKE / NOT KLIKE \u306E\u53F3\u8FBA\u306B\u306F\u6587\u5B57\u5217\u30EA\u30C6\u30E9\u30EB\u307E\u305F\u306F\u6587\u5B57\u5217\u30D0\u30C3\u30C1\u5909\u6570\u304C\u5FC5\u8981\u3067\u3059");if(n.type==="STRING"&&n.value.includes("%"))throw new oe("KLIKE / NOT KLIKE \u306E\u691C\u7D22\u8A9E\u306B % \u306F\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093\u3002SQL \u30EF\u30A4\u30EB\u30C9\u30AB\u30FC\u30C9\u691C\u7D22\u306B\u306F LIKE \u3092\u4F7F\u7528\u3057\u3066\u304F\u3060\u3055\u3044")})}function Oa(e){e.type==="SELECT"?In(e):e.type==="UNION"?La(e):rc(e)}function La(e){Oa(e.left),In(e.right)}function rc(e){if(It(e)){In(wt(e));return}for(let t of e.ctes)t.query.type==="SELECT"?In(t.query):t.query.type==="UNION"&&La(t.query);Oa(e.query)}function In(e){if(wR(e),pe(e.where)&&!(_e(e)==="SIMPLE"&&e.from.cteName===null&&e.joins.every(n=>n.table.cteName===null))){let n=Tn(e,{allowUnresolvedVariables:!0});if(Pa(n).length===0){Bt(e);return}if(IR(e)){Bt(e);return}throw new oe("FULL_SCAN \u306E KLIKE / NOT KLIKE \u306F\u3001\u7269\u7406\u30C6\u30FC\u30D6\u30EB\u306B\u5BFE\u3059\u308B AND \u30EA\u30FC\u30D5\u3068\u3057\u3066\u5FC5\u305A\u62BC\u3057\u4E0B\u3052\u3089\u308C\u308B\u5FC5\u8981\u304C\u3042\u308A\u307E\u3059\u3002OR / NOT \u914D\u4E0B\u3001CTE\u30FB\u4E00\u6642\u30C6\u30FC\u30D6\u30EB\u3001LEFT / RIGHT JOIN \u3067\u306F\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093")}Bt(e)}function IR(e){return e.where!==null&&ue(e.where).length>0&&e.joins.length>0&&e.joins.every(t=>t.type==="INNER")&&[e.from,...e.joins.map(t=>t.table)].every(t=>t.alias!==null&&t.cteName===null&&!t.subtableCode)}function wR(e){Ci(e,t=>{if(!St(t))return;if(!Ni(e.where,t))throw new oe("KLIKE / NOT KLIKE \u306F SELECT \u306E WHERE \u53E5\u3067\u306E\u307F\u4F7F\u7528\u3067\u304D\u307E\u3059");let n=t.right;if(n.type!=="STRING"&&n.type!=="VARIABLE")throw new oe("KLIKE / NOT KLIKE \u306E\u53F3\u8FBA\u306B\u306F\u6587\u5B57\u5217\u30EA\u30C6\u30E9\u30EB\u307E\u305F\u306F\u6587\u5B57\u5217\u30D0\u30C3\u30C1\u5909\u6570\u304C\u5FC5\u8981\u3067\u3059");if(n.type==="STRING"&&n.value.includes("%"))throw new oe("KLIKE / NOT KLIKE \u306E\u691C\u7D22\u8A9E\u306B % \u306F\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093\u3002SQL \u30EF\u30A4\u30EB\u30C9\u30AB\u30FC\u30C9\u691C\u7D22\u306B\u306F LIKE \u3092\u4F7F\u7528\u3057\u3066\u304F\u3060\u3055\u3044")})}function Bt(e){Oi(e,t=>{t.type==="SELECT"&&In(t)},!0)}function bt(e){let t=!1;return Oi(e,n=>{n.type==="BINARY"&&(n.op==="KLIKE"||n.op==="NOT_KLIKE")&&(t=!0)}),t}function bR(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 Ni(e,t){if(e===null)return!1;if(e===t)return!0;switch(e.type){case"LOGICAL":return Ni(e.left,t)||Ni(e.right,t);case"NOT":case"GROUP":return Ni(e.expr,t);case"BINARY":case"NULL_CHECK":case"EXISTS":return!1;case"BOOLEAN":return!1}}function Ci(e,t){if(Array.isArray(e)){for(let r of e)Ci(r,t);return}if(e===null||typeof e!="object")return;let n=e;(n.type==="BINARY"||n.type==="NULL_CHECK"||n.type==="LOGICAL"||n.type==="NOT"||n.type==="GROUP"||n.type==="EXISTS")&&t(n);for(let r of Object.values(n))r!==e&&PR(r)||Ci(r,t)}function Oi(e,t,n=!1){if(Array.isArray(e)){for(let i of e)Oi(i,t);return}if(e===null||typeof e!="object")return;let r=e;n||t(r);for(let i of Object.values(r))Oi(i,t)}function PR(e){return e!==null&&typeof e=="object"&&e.type==="SELECT"}var ar=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 ic(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(NR(t))throw new ar;return;default:return}}function NR(e){let t=!1;return Li(e,n=>{t||!Object.prototype.hasOwnProperty.call(n,"where")||CR(n.where)&&(t=!0)}),t}function CR(e){let t=!1;return Li(e,n=>{n.type==="KINTONE_FUNC"&&n.name==="PRIMARY_ORGANIZATION"&&(t=!0)}),t}function Li(e,t){if(Array.isArray(e)){for(let r of e)Li(r,t);return}if(e===null||typeof e!="object")return;let n=e;t(n);for(let r of Object.values(n))Li(r,t)}function $e(e){ic(e),tc(e)}var oc=Symbol("ksql.groupingRowMeta"),ac=new WeakMap;function sc(e,t){return Object.defineProperty(e,oc,{value:{includedCanonicalIds:t},enumerable:!1,configurable:!1,writable:!1}),e}function OR(e){return e[oc]}function LR(e){return OR(e)?.includedCanonicalIds}function lc(e,t){ac.set(e,t)}function wn(e,t){let n=LR(t);if(!n)throw new Error("internal error: GROUPING() evaluation requires B65 grouping row membership.");let r=ac.get(e);if(!r)throw new Error("internal error: GROUPING() reference was not resolved during B65 planning.");return n.has(r)?"0":"1"}var cc=e=>{if(e.expandedSetCount>64)throw new Error(`ArgumentError: B65 expanded grouping set count ${e.expandedSetCount} exceeds limit ${64} (reason=GROUPING_SET_LIMIT_EXCEEDED).`);if(e.canonicalItemCount>16)throw new Error(`ArgumentError: B65 canonical grouping item count ${e.canonicalItemCount} exceeds limit ${16} (reason=GROUPING_ITEM_LIMIT_EXCEEDED).`)};function vi(e){return e.tableAlias?`${e.tableAlias}.${e.field}`:e.field}function Da(e){let t=e.indexOf(".");return t>0?{type:"FIELD",tableAlias:e.slice(0,t),field:e.slice(t+1)}:{type:"FIELD",tableAlias:null,field:e}}function De(e,t){if(e===null||typeof e!="object")return;if(Array.isArray(e)){e.forEach(r=>De(r,t));return}let n=e;if(!(n.type==="SELECT"||n.type==="SCALAR_SUBQUERY")){if(n.type==="GROUPING_REF"){t.push(n);return}Object.values(n).forEach(r=>De(r,t))}}function Ui(e,t){if(e===null||typeof e!="object")return;if(Array.isArray(e)){e.forEach(r=>Ui(r,t));return}let n=e;if(!(n.type==="SELECT"||n.type==="SCALAR_SUBQUERY")){if(n.type==="AGGREGATE"||n.type==="AGG_REF"){De(n.arg,t);return}Object.values(n).forEach(r=>Ui(r,t))}}function sr(e,t){if(e===null||typeof e!="object")return;if(Array.isArray(e)){e.forEach(i=>sr(i,t));return}let n=e,r=n.type;if(!(r==="SELECT"||r==="SCALAR_SUBQUERY"||r==="GROUPING_REF"||r==="AGG_REF"||r==="AGG_ARITH")){if(r==="FIELD"&&typeof n.field=="string"){t.push({type:"FIELD",tableAlias:typeof n.tableAlias=="string"?n.tableAlias:null,field:n.field});return}if(r==="FIELD_REF"&&typeof n.field=="string"){t.push(Da(n.field));return}Object.values(n).forEach(i=>sr(i,t))}}function lr(e){if(e===null||typeof e!="object")return!1;if(Array.isArray(e))return e.some(lr);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(lr)}function _R(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"?lr(e):!1}function DR(e){return new Set(e.flatMap(t=>"alias"in t&&typeof t.alias=="string"?[t.alias]:[]))}function uc(e){return e.tableAlias===null&&/^(COUNT|SUM|AVG|MAX|MIN|GROUP_CONCAT|STDDEV_POP|STDDEV_SAMP|VAR_POP|VAR_SAMP|MEDIAN|MODE)\(/.test(e.field)}function vR(e,t,n){let r=t(e.field);if(!r.physical)throw new Error(`ArgumentError: B65 grouping reference ${vi(e.field)} must resolve to a physical APP field.`);if(!n.has(r.canonicalId))throw new Error(`ArgumentError: B65 GROUPING argument ${vi(e.field)} is not present in grouping allItems (reason=B65_GROUPING_ARG_NOT_ITEM).`);lc(e,r.canonicalId)}function _a(e,t,n,r){let i=t(e);if(!i.physical||!n.has(i.canonicalId))throw new Error(`ArgumentError: B65 non-aggregate field ${vi(e)} in ${r} is not a grouping item (reason=B65_NON_GROUPED_DEPENDENCY).`)}function UR(e){if(e.type==="GROUPING_KEY")return[];if(e.type==="FIELD_NAME")return[Da(e.name)];let t=[];return sr(e,t),t}function va(e){let t=ne(e),n=[];for(let i of e.columns)i.type!=="WINDOW_COL"&&De(i,n);De(e.having,n),De(e.orderBy,n);let r=[];De(e.where,r),De(e.joins,r),Ui(e.columns,r),Ui(e.having,r);for(let i of e.columns)i.type==="WINDOW_COL"&&De(i,r);if(r.length>0)throw new Error("ArgumentError: B65 GROUPING() is not allowed in WHERE, JOIN, window, aggregate arguments, or DML expressions.");if(t.type!=="GROUPING_SETS"){if(n.length>0)throw new Error("ArgumentError: B65 GROUPING() requires GROUP BY ROLLUP or GROUPING SETS.");return}if(e.orderMode==="KINTONE_NATIVE")throw new Error("ArgumentError: B65 KORDER BY is not supported in Phase1.");if(e.columns.some(i=>i.type==="WINDOW_COL"))throw new Error("ArgumentError: B65 window functions are not supported in Phase1.");if(e.columns.some(i=>i.type==="WILDCARD"||i.type==="PARENT_WILDCARD"))throw new Error("ArgumentError: B65 wildcard projection is not supported in Phase1.")}function pc(e,t,n=()=>{}){va(e);let r=ne(e),i=[];for(let p of e.columns)p.type!=="WINDOW_COL"&&De(p,i);if(De(e.having,i),De(e.orderBy,i),r.type!=="GROUPING_SETS")return null;let o=Iu(e,t),a=new Set,s=[];for(let p of o.allItems){let c=p;if(!c.physical)throw new Error(`ArgumentError: B65 grouping item ${vi(p.field)} must resolve to a physical APP field.`);a.has(c.canonicalId)||(a.add(c.canonicalId),s.push(c))}n({expandedSetCount:r.sets.length,canonicalItemCount:a.size});for(let p of i)vR(p,t,a);let l=DR(e.columns);for(let p of e.columns){if(p.type==="GROUPING_COL"||p.type==="AGGREGATE"||p.type==="ARITH_AGG_COL"||p.type==="LITERAL_COL"||p.type==="VARIABLE_COL"||p.type==="SCALAR_SUBQUERY_COL")continue;let c=[];p.type==="FIELD"?c.push(Da(p.field)):sr(p,c);for(let u of c)_a(u,t,a,"SELECT")}if(e.having){let p=[];sr(e.having,p);for(let c of p)c.tableAlias===null&&l.has(c.field)||uc(c)||_a(c,t,a,"HAVING")}for(let p of e.orderBy)for(let c of UR(p.key))c.tableAlias===null&&l.has(c.field)||uc(c)||_a(c,t,a,"ORDER BY");let d=new Set;for(let p of s)d.add(p.directKey),p.unqualifiedBridgeKey!==null&&d.add(p.unqualifiedBridgeKey);for(let p of e.columns){if(!_R(p))continue;let c="alias"in p?p.alias:null;if(c!==null&&d.has(c))throw new Error(`ArgumentError: B65 aggregate alias ${c} collides with a grouping runtime key (reason=B65_AGGREGATE_ALIAS_COLLISION).`)}return o}var ki=16,dc=64,Z=class extends Error{constructor(n,r){super(n);this.statementIndex=r}};function ur(e,t,n){if(Array.isArray(e)){for(let r of e)ur(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))ur(a,t,n)}}function Ua(e,t){if(Array.isArray(e)){for(let n of e)Ua(n,t);return}if(e!==null&&typeof e=="object"){let n=e,r=n.type;if((r==="VARIABLE"||r==="VARIABLE_COL"||r==="VARIABLE_IN_LIST")&&typeof n.name=="string"){t.push({name:n.name,kind:r==="VARIABLE"?"scalar":r==="VARIABLE_COL"?"select-column":"array-in-list"});return}for(let i of Object.values(n))Ua(i,t)}}function ka(e){if(Array.isArray(e)){for(let t of e)ka(t);return}if(e!==null&&typeof e=="object"){let t=e;t.type==="SELECT"&&va(e);for(let n of Object.values(t))ka(n)}}function Ma(e){if(e.length===0)throw new Z("ArgumentError: SQL is empty.",0);if(e.forEach((c,u)=>{try{ka(c)}catch(f){throw f instanceof Error?new Z(f.message,u):f}try{mn("phase15b",c),$e(c)}catch(f){throw f instanceof oe||f instanceof ar?new Z(f.message,u):f instanceof Error&&/^(UnsupportedError|ArgumentError): APPLY /.test(f.message)?new Z(f.message,u):f}}),e.length===1){let c=e[0].type;if(c==="SET_VARIABLE"||c==="DECLARE_VARIABLE"){let u=c==="SET_VARIABLE"?"SET":"DECLARE";throw new Z(`ArgumentError: ${u} variable requires a batch.`,0)}if(c==="CREATE_TEMP_TABLE"||c==="DROP_TEMP_TABLE"){let u=c==="CREATE_TEMP_TABLE"?"CREATE TEMP TABLE":"DROP TEMP TABLE";throw new Z(`ArgumentError: ${u} requires a batch (temp tables are batch-scoped).`,0)}}let t=new Map,n=new Map,r=[],i=[],o=new Map,a=[];e.forEach((c,u)=>{let f=c.type==="VALIDATE"&&c.errorTable?c.errorTable:"validationErrorTable"in c&&c.validationErrorTable?c.validationErrorTable:"onErrorSkip"in c&&c.onErrorSkip?c.errorTable??null:null;if(e.length===1&&f){let L=c.type==="VALIDATE"?"ArgumentError: VALIDATE INTO requires a batch.":"onErrorSkip"in c&&c.onErrorSkip?"ArgumentError: ON ERROR SKIP requires a batch.":"ArgumentError: VALIDATE ONLY INTO requires a batch.";throw new Z(L,u)}let E=hi(c),R=[],m=[],g=new Set,y=new Set,h=new Set,S=[];Ua(c,S);let w=new Set;for(let L of S){let b=o.get(L.name);if(b===void 0)throw new Z(`ParseError: variable @${L.name} is not defined before statement ${u+1}.`,u);if(b.kind==="scalar"&&L.kind==="array-in-list")throw new Z(`ParseError: scalar variable @${L.name} cannot be used as IN @${L.name}; use IN (@${L.name}) instead.`,u);if(b.kind==="array"&&L.kind!=="array-in-list")throw new Z(`ParseError: array variable @${L.name} can only be used as IN @${L.name}.`,u);w.has(L.name)||(b.referencedBy.push(u),w.add(L.name))}if(c.type==="SET_VARIABLE"||c.type==="DECLARE_VARIABLE"){if(o.has(c.name))throw new Z(`ParseError: variable @${c.name} is already defined.`,u);if(o.set(c.name,{index:u,kind:c.type==="SET_VARIABLE"&&c.expr.type==="ARRAY"?"array":"scalar",referencedBy:[]}),a.push(c.name),a.length>dc)throw new Z(`ParseError: batch exceeds ${dc} variables.`,u)}c.type==="CREATE_TEMP_TABLE"?ur(c.query,g,y):c.type==="DROP_TEMP_TABLE"||ur(c,g,y);let I=!1;if(c.type==="INSERT_SELECT"||c.type==="UPSERT_SELECT"){let L=new Set,b=new Set;ur(c.select,L,b),I=L.size>0&&b.size===0}for(let L of g){let b=t.get(L);if(b===void 0)throw new Z(`ParseError: temp table ${L} is not defined in this batch.`,u);h.add(b)}if(f){let L=c.type==="VALIDATE"?c.summary?["$id","$err_subtable","$err_field","$err_code","$err_count"]:["$id","$err_field","$err_code","$err_message","$err_value","$err_subtable","$err_subrow","$err_subrow_id","$err_count"]:c.type==="IMPORT"&&c.targets?.some(P=>P.kind==="SUBTABLE")?[...new Set(c.targets.flatMap(P=>P.kind==="FIELD"?[P.field]:P.children)),"$err_subtable","$err_subrow","$err_source_row"]:c.type==="UPDATE"?["$id",...c.assignments.map(P=>P.field)]:"fields"in c?c.fields:[],b=JSON.stringify(L),v=t.get(f);if(v===void 0){if(t.set(f,u),n.set(f,b),r.push(f),R.push(f),t.size>ki)throw new Z(`ParseError: batch exceeds ${ki} temp tables.`,u)}else{if(n.get(f)!==b)throw new Z(`ParseError: validation error table ${f} has a different payload schema.`,u);h.add(v)}}if(c.type==="CREATE_TEMP_TABLE"){if(t.has(c.name))throw new Z(`ParseError: temp table ${c.name} is already defined.`,u);if(t.set(c.name,u),r.push(c.name),R.push(c.name),t.size>ki)throw new Z(`ParseError: batch exceeds ${ki} temp tables.`,u)}if(c.type==="DROP_TEMP_TABLE"){let L=t.get(c.name);if(L===void 0)throw new Z(`ParseError: temp table ${c.name} is not defined in this batch.`,u);h.add(L),m.push(c.name),t.delete(c.name)}i.push({index:u,statementType:E,isDml:Ra(c),isReadOnly:dn(c),hasWhere:Cu(c),insertValuesCount:Ou(c),appIds:[...y].sort((L,b)=>L-b),tempTablesCreated:R,tempTablesReferenced:[...g],tempTablesDropped:m,dependsOn:[...h].sort((L,b)=>L-b),tempOnlySource:I,targetAppId:kt(E)&&typeof c.appId=="number"?c.appId:null,isUpdateFrom:c.type==="UPDATE"&&c.from!=null,isValidationOnly:"validateOnly"in c&&c.validateOnly===!0,isOnErrorSkip:"onErrorSkip"in c&&c.onErrorSkip===!0,requiresCompleteInput:Pu(c)})});let s=i.some(c=>c.isDml),l=i.some(c=>c.isValidationOnly),d=i.some(c=>c.requiresCompleteInput),p=a.map(c=>({name:c,kind:o.get(c).kind,referencedBy:[...o.get(c).referencedBy]}));return{statementCount:e.length,isReadOnlyBatch:!s&&i.every(c=>c.isReadOnly),containsDml:s,containsValidationOnly:l,requiresCompleteInput:d,tempTables:r,variables:p,warnings:p.filter(c=>c.referencedBy.length===0).map(c=>`variable @${c.name} is never used.`),statements:i}}var Mi=new Map([["UNION","UNION"],["ALL","ALL"],["WITH","WITH"],["SHOW","SHOW"],["DESCRIBE","DESCRIBE"],["APPS","APPS"],["EXPLAIN","EXPLAIN"],["UPSERT","UPSERT"],["REORDER","REORDER"],["DUPLICATE","DUPLICATE"],["SELECT","SELECT"],["DISTINCT","DISTINCT"],["FROM","FROM"],["AS","AS"],["WHERE","WHERE"],["INSERT","INSERT"],["INTO","INTO"],["VALUES","VALUES"],["UPDATE","UPDATE"],["SET","SET"],["DELETE","DELETE"],["INNER","INNER"],["LEFT","LEFT"],["RIGHT","RIGHT"],["JOIN","JOIN"],["ON","ON"],["GROUP","GROUP"],["BY","BY"],["HAVING","HAVING"],["ORDER","ORDER"],["KORDER","KORDER"],["ASC","ASC"],["DESC","DESC"],["LIMIT","LIMIT"],["OFFSET","OFFSET"],["COUNT","COUNT"],["SUM","SUM"],["AVG","AVG"],["MAX","MAX"],["MIN","MIN"],["GROUP_CONCAT","GROUP_CONCAT"],["STDDEV_POP","STDDEV_POP"],["STDDEV_SAMP","STDDEV_SAMP"],["VAR_POP","VAR_POP"],["VAR_SAMP","VAR_SAMP"],["MEDIAN","MEDIAN"],["MODE","MODE"],["ROW_NUMBER","ROW_NUMBER"],["RANK","RANK"],["DENSE_RANK","DENSE_RANK"],["ASSERT","ASSERT"],["AND","AND"],["OR","OR"],["NOT","NOT"],["EXISTS","EXISTS"],["IS","IS"],["NULL","NULL"],["LIKE","LIKE"],["KLIKE","KLIKE"],["IN","IN"],["BETWEEN","BETWEEN"],["TODAY","TODAY"],["NOW","NOW"],["LOGINUSER","LOGINUSER"],["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 ye=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"}},Pt=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(bn(n))return this.readNumber(t);let r=this.tryReadOperator(t);if(r)return r;if(Fa(n))return this.readIdentOrKeyword(t);if(n==="#")return this.readHashIdent(t);if(n==="@")return this.readVariable(t);throw new ye(`\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 ye("\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 ye("\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&&bn(this.input[this.pos]);)this.pos++;if(this.pos<this.input.length&&this.input[this.pos]==="."&&this.pos+1<this.input.length&&bn(this.input[this.pos+1]))for(this.pos++;this.pos<this.input.length&&bn(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||!bn(this.input[this.pos]))throw new ye("\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&&bn(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&&fc(this.input[this.pos]);)this.pos++;let n=this.input.slice(t,this.pos),r=n.toUpperCase(),i=Mi.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(!Fa(n))throw new ye("\u300C#\u300D \u306E\u76F4\u5F8C\u306B\u306F\u8B58\u5225\u5B50\u304C\u5FC5\u8981\u3067\u3059",t,this.input);for(;this.pos<this.input.length&&fc(this.input[this.pos]);)this.pos++;let r=this.input.slice(t,this.pos);if(this.input[this.pos]==="@")throw new ye(`@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 ye("\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 ye("\u5909\u6570\u540D\u306F 64 \u6587\u5B57\u4EE5\u5185\u3067\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044",t,this.input);return this.makeToken("VARIABLE",this.input.slice(t,this.pos),t)}skipWhitespaceAndComments(){for(;this.pos<this.input.length;){let t=this.input[this.pos];if(t===" "||t===" "||t==="\r"||t===`
|
|
2
2
|
`){this.pos++;continue}if(t==="-"&&this.input[this.pos+1]==="-"){for(;this.pos<this.input.length&&this.input[this.pos]!==`
|
|
3
|
-
`;)this.pos++;continue}if(t==="/"&&this.input[this.pos+1]==="*"){let n=this.pos;this.pos+=2;let r=!1;for(;this.pos<this.input.length;){if(this.input[this.pos]==="*"&&this.input[this.pos+1]==="/"){this.pos+=2,r=!0;break}this.pos++}if(!r)throw new ye("\u30D6\u30ED\u30C3\u30AF\u30B3\u30E1\u30F3\u30C8\u304C\u9589\u3058\u3089\u308C\u3066\u3044\u307E\u305B\u3093",n,this.input,!0);continue}break}}makeToken(t,n,r){return{kind:t,value:n,pos:r}}};function ka(e){let t=e.codePointAt(0);return t>=65&&t<=90||t>=97&&t<=122||t===95||t===36||bR(t)}function sc(e){let t=e.codePointAt(0);return ka(e)||t>=48&&t<=57}function bn(e){let t=e.codePointAt(0);return t>=48&&t<=57}function bR(e){return e>=12352&&e<=12543||e>=13312&&e<=40959||e>=63744&&e<=64255||e>=65281&&e<=65376}var uc=20,Ma=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"}),pc=Object.freeze(["CURRENT_DATE","CURRENT_TIMESTAMP"]),Fa=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"}),GT=Object.freeze(Object.values(Fa).filter(e=>e!==void 0)),PR=Object.freeze(["COUNT","SUM","AVG","MAX","MIN"]),NR=new Set(PR);function CR(e){return NR.has(e)}var dc=Object.freeze({ROW_NUMBER:"ROW_NUMBER",RANK:"RANK",DENSE_RANK:"DENSE_RANK"}),Ui=Object.freeze({TODAY:"TODAY",NOW:"NOW",LOGINUSER:"LOGINUSER",PRIMARY_ORGANIZATION:"PRIMARY_ORGANIZATION"});function cc(e){return Ui[e]!==void 0}var OR=Object.freeze([...yi]),LR=new Set(["DAYS","WEEKS","MONTHS","YEARS"]),_R=new Set(["SUNDAY","MONDAY","TUESDAY","WEDNESDAY","THURSDAY","FRIDAY","SATURDAY"]);function DR(e){return LR.has(e)}function vR(e){return _R.has(e)}function UR(e){return Number.isInteger(e)&&e>=1&&e<=31}var VT=Object.freeze(Array.from(new Set([...Object.keys(Ma),...pc,...Object.keys(Fa),...Object.keys(dc),...Object.keys(Ui),...OR,"IF"]))),kR=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 MR(e,t){return e.kind==="("||e.kind==="."||t.kind===")"||t.kind===","||t.kind==="."?!1:t.kind==="("?!kR.has(e.kind):!0}var T=class extends Error{constructor(n,r){super(`${n}\uFF08\u4F4D\u7F6E ${r.pos}\u3001\u30C8\u30FC\u30AF\u30F3: \u300C${r.value}\u300D\uFF09`);this.token=r;this.name="ParseError"}},Nt=class{constructor(t,n={}){this.tokens=t;this.capabilities=n;this.allowUnaryPlusNumber=!1;this.scalarAllowsAggregateArgs=!0;this.scalarAllowsCase=!0;this.pos=0;this.insideAggregateArg=0;this.groupingFieldContext="FORBIDDEN";this.allowRelativeDateFunctions=!1;this.cteNames=new Set;this.tempTableRefs=[];this.allowSelectArithVariable=!1}parse(){let t=this.parseStatements();if(t.length===0)throw new T("SQL \u6587\u304C\u3042\u308A\u307E\u305B\u3093",this.peek());if(t.length>1)throw new T("\u3053\u306E API \u306F\u5358\u6587\u306E\u307F\u53D7\u3051\u4ED8\u3051\u307E\u3059\uFF08\u8907\u6587\u306F\u30D0\u30C3\u30C1\u5B9F\u884C API \u3092\u4F7F\u7528\u3057\u3066\u304F\u3060\u3055\u3044\uFF09",this.peek());if(this.tempTableRefs.length>0){let n=this.tempTableRefs[0];throw new T(`temp table ${n.value} is not defined in this batch.`,n)}return t[0]}parseStatements(){let t=[];for(;;){for(;this.peek().kind===";";)this.advance();if(this.peek().kind==="EOF")break;let n=this.peek();if(t.push(this.parseStatement()),t.length>uc)throw new T(`batch exceeds ${uc} statements.`,n);let r=this.peek();if(r.kind!==";"&&r.kind!=="EOF")throw new T("\u6587\u306E\u533A\u5207\u308A\u306B\u306F ; \u304C\u5FC5\u8981\u3067\u3059",r)}return this.expect("EOF"),t}parseStatement(){let t=this.peek();switch(t.kind){case"WITH":return this.parseWith();case"SELECT":return this.tryParseUnionChain(this.parseSelect(!0));case"INSERT":return this.parseInsert();case"UPDATE":return this.parseUpdate();case"DELETE":return this.parseDelete();case"REORDER":return this.parseReorder();case"UPSERT":return this.parseUpsert();case"SHOW":return this.parseShow();case"DESCRIBE":case"DESC":return this.parseDescribe();case"EXPLAIN":return this.parseExplain();case"SET":return this.parseSetVariable();case"ASSERT":return this.parseAssert();case"IDENT":{let n=t.value.toUpperCase();if(n==="CREATE")return this.parseCreateTempTable();if(n==="DROP")return this.parseDropTempTable();if(n==="DECLARE")return this.parseDeclareVariable();if(n==="VALIDATE")return this.parseValidate();if(n==="IMPORT"){if(!this.capabilities.import)throw new T("IMPORT is not supported (capability is disabled).",t);return this.parseImport()}break}default:break}throw new T("SELECT / INSERT / UPDATE / DELETE / REORDER / VALIDATE / WITH / SHOW / DESCRIBE / EXPLAIN / CREATE TEMP TABLE / DROP TEMP TABLE / SET / DECLARE / ASSERT \u306E\u3044\u305A\u308C\u304B\u3067\u59CB\u307E\u308B SQL \u6587\u304C\u5FC5\u8981\u3067\u3059",t)}parseSetVariable(){this.expect("SET");let t=this.expect("VARIABLE","SET \u306E\u5F8C\u306B\u306F\u5909\u6570\u540D\uFF08\u4F8B: @name\uFF09\u304C\u5FC5\u8981\u3067\u3059");this.expect("=");let n=this.peek().kind==="["?this.parseArrayLiteral():this.parseScalarExpr("SET",!0);return{type:"SET_VARIABLE",name:t.value.slice(1).toLowerCase(),expr:n}}parseDeclareVariable(){this.advance();let t=this.expect("VARIABLE","DECLARE \u306E\u5F8C\u306B\u306F\u5909\u6570\u540D\uFF08\u4F8B: @name\uFF09\u304C\u5FC5\u8981\u3067\u3059");this.expect("=");let n=this.parseScalarExpr("DECLARE",!1);if(n.type==="SCALAR_SUBQUERY")throw new T("DECLARE \u306E\u65E2\u5B9A\u5024\u306B\u30B9\u30AB\u30E9\u30FC\u30B5\u30D6\u30AF\u30A8\u30EA\u306F\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093",this.peek());return{type:"DECLARE_VARIABLE",name:t.value.slice(1).toLowerCase(),default:n}}parseScalarExpr(t,n){let r=this.peek();if(r.kind==="VARIABLE")throw new T(`${t} \u306E\u53F3\u8FBA\u3067\u306F\u4ED6\u306E\u5909\u6570\u3092\u53C2\u7167\u3067\u304D\u307E\u305B\u3093`,r);if(r.kind==="NULL")throw new T(`${t} \u306E\u53F3\u8FBA\u3067 NULL \u306F\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093`,r);if(r.kind==="("&&this.peekAt(1).kind==="SELECT"){if(!n)throw new T("DECLARE \u306E\u65E2\u5B9A\u5024\u306B\u30B9\u30AB\u30E9\u30FC\u30B5\u30D6\u30AF\u30A8\u30EA\u306F\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093",r);this.advance();let a=this.parseSelect();if(this.expect(")"),this.isArithOp(this.peek().kind))throw new T("\u30B9\u30AB\u30E9\u30FC\u30B5\u30D6\u30AF\u30A8\u30EA\u306E\u5F8C\u306B\u7B97\u8853\u6F14\u7B97\u5B50\u306F\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093\u3002\u30B5\u30D6\u30AF\u30A8\u30EA\u5185\u3067\u8A08\u7B97\u3057\u3066\u304F\u3060\u3055\u3044",this.peek());if(!a.columns.some(l=>l.type==="WILDCARD"||l.type==="PARENT_WILDCARD")&&a.columns.length!==1)throw new T("scalar subquery in SET must return exactly 1 column.",r);return{type:"SCALAR_SUBQUERY",query:a}}if(r.kind==="STRING")return this.advance(),{type:"STRING",value:r.value};let i=Ui[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.parseTempTableName();this.expect("AS","CREATE TEMP TABLE \u306B\u306F AS SELECT \u304C\u5FC5\u8981\u3067\u3059");let n=this.peek(),r;if(n.kind==="WITH")r=this.parseWith();else if(n.kind==="SELECT")r=this.tryParseUnionChain(this.parseSelect());else throw new T("CREATE TEMP TABLE ... AS \u306E\u5F8C\u306B\u306F SELECT / WITH \u304C\u5FC5\u8981\u3067\u3059",n);return{type:"CREATE_TEMP_TABLE",name:t,query:r}}parseDropTempTable(){return this.advance(),this.expectSoftKeyword("TEMP","DROP \u306E\u5F8C\u306B\u306F TEMP TABLE \u304C\u5FC5\u8981\u3067\u3059\uFF08\u4F8B: DROP TEMP TABLE #temp\uFF09"),this.expectSoftKeyword("TABLE","DROP TEMP \u306E\u5F8C\u306B\u306F TABLE \u304C\u5FC5\u8981\u3067\u3059"),{type:"DROP_TEMP_TABLE",name:this.parseTempTableName()}}expectSoftKeyword(t,n){let r=this.peek();if(r.kind==="IDENT"&&r.value.toUpperCase()===t){this.advance();return}throw new T(n,r)}parseTempTableName(){let t=this.peek();if(t.kind==="IDENT"&&t.value.startsWith("#"))return this.advance(),t.value;throw new T("\u4E00\u6642\u30C6\u30FC\u30D6\u30EB\u540D\u306F # \u3067\u59CB\u307E\u308B\u5FC5\u8981\u304C\u3042\u308A\u307E\u3059\uFF08\u4F8B: #temp\uFF09",t)}parseShow(){if(this.advance(),!this.consume("APPS"))throw new T("SHOW \u306E\u5F8C\u306B\u306F APPS \u304C\u5FC5\u8981\u3067\u3059\uFF08\u4F8B: SHOW APPS\uFF09",this.peek());return{type:"SHOW_APPS"}}parseDescribe(){this.advance();let t=this.parseIdentifier(),{appId:n,subtableCode:r}=lt(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}=lt(n,this.prev());if(i)throw new T("IMPORT does not support subtables in Phase 1.",this.prev());this.expect("(");let o=[],a=[],s=new Set;for(;;){let b=this.parseIdentifier();if(s.has(b))throw new T(`IMPORT target ${b} is declared more than once.`,this.prev());if(s.add(b),this.peek().kind==="("){this.advance();let L=this.parseIdentList();if(this.expect(")"),new Set(L).size!==L.length)throw new T(`IMPORT subtable ${b} contains duplicate child declarations.`,this.prev());let I;if(this.isSoftKeyword("ROW")){this.advance();for(let v of["ID","SOURCE"]){if(!this.isSoftKeyword(v))throw new T("ROW must be followed by ID SOURCE <header>.",this.peek());this.advance()}I=this.parseIdentifier()}o.push({kind:"SUBTABLE",subtableCode:b,children:L,...I?{rowIdSourceHeader:I}:{}})}else a.push(b),o.push({kind:"FIELD",field:b});if(this.peek().kind!==",")break;this.advance()}if(this.expect(")"),this.expect("FROM"),!this.isSoftKeyword("CSV")&&!this.isSoftKeyword("JSON"))throw new T("IMPORT FROM requires CSV or JSON.",this.peek());let l=this.peek().value.toUpperCase();this.advance();let d=this.parseIdentifier(),p,c=!0,u;if(this.isSoftKeyword("ENCODING")){if(l==="JSON")throw new T("JSON source is UTF-8 only; ENCODING is not allowed.",this.peek());this.advance();let b=this.parseIdentifier().toUpperCase();if(b!=="UTF8"&&b!=="SJIS")throw new T("ENCODING must be UTF8 or SJIS.",this.prev());p=b==="UTF8"?"utf8":"sjis"}if(this.peek().kind==="NOT"&&this.peekAt(1).kind==="IDENT"&&this.peekAt(1).value.toUpperCase()==="HEADER"){if(l==="JSON")throw new T("NO HEADER is CSV-only.",this.peek());this.advance(),this.advance(),c=!1}else if(this.isSoftKeyword("NO")&&this.peekAt(1).kind==="IDENT"&&this.peekAt(1).value.toUpperCase()==="HEADER"){if(l==="JSON")throw new T("NO HEADER is CSV-only.",this.peek());this.advance(),this.advance(),c=!1}if(this.isSoftKeyword("COLUMNS")){if(l==="JSON")throw new T("COLUMNS is CSV-only.",this.peek());if(c)throw new T("COLUMNS requires NO HEADER.",this.peek());this.advance(),this.expect("("),u=this.parseIdentList(),this.expect(")")}let f;if(this.peek().kind==="SELECT"){if(l==="JSON")throw new T("SELECT projection is CSV-only.",this.peek());if(f=this.parseSelect(),f.from.cteName!==qe||f.joins.length>0)throw new T("IMPORT projection cannot use FROM or JOIN.",this.prev());if(f.where||f.groupBy.length||f.grouping!==void 0||f.having||f.orderBy.length||f.limit!==null||f.offset!==null)throw new T("IMPORT projection supports SELECT expressions only.",this.prev());if(this.validateImportProjectionScope(f,this.prev()),o.some(b=>b.kind==="SUBTABLE"))throw new T("IMPORT subtable sources cannot use SELECT projection.",this.prev());if(f.columns.length!==a.length)throw new T(`IMPORT projection has ${f.columns.length} columns; target has ${a.length}.`,this.prev())}let E="POSITION",R=!1;if(this.peek().kind==="BY"||this.isSoftKeyword("BY")){if(l==="JSON")throw new T("BY NAME is CSV-only.",this.peek());if(this.advance(),!this.isSoftKeyword("NAME"))throw new T("BY must be followed by NAME in IMPORT.",this.peek());if(this.advance(),!c)throw new T("BY NAME requires HEADER.",this.prev());if(f)throw new T("BY NAME and SELECT projection are mutually exclusive.",this.prev());if(E="BY_NAME",this.isSoftKeyword("IGNORE")){if(this.advance(),!this.isSoftKeyword("UNKNOWN"))throw new T("IGNORE must be followed by UNKNOWN COLUMNS.",this.peek());if(this.advance(),!this.isSoftKeyword("COLUMNS"))throw new T("IGNORE UNKNOWN must be followed by COLUMNS.",this.peek());this.advance(),R=!0}}let h,m;if(this.isSoftKeyword("MATCH")){this.advance();for(let b of["RECORD","NUMBER","SOURCE"]){if(!this.isSoftKeyword(b))throw new T("MATCH must be followed by RECORD NUMBER SOURCE <header>.",this.peek());this.advance()}m=this.parseIdentifier()}this.peek().kind==="ON"&&this.peekAt(1).kind==="DUPLICATE"&&(h=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 g=o.filter(b=>b.kind==="SUBTABLE");if(g.length){if(f)throw new T("IMPORT subtables cannot use SELECT projection.",this.prev());if(l==="JSON"){if(g.some(b=>b.rowIdSourceHeader))throw new T("JSON subtable IMPORT does not accept ROW ID SOURCE.",this.prev());if(y)throw new T("REPLACE SUBTABLES is CSV-only; JSON uses nested-array replacement semantics.",this.prev())}else{if(t!=="UPDATE_RECORD_NUMBER"||!m)throw new T("CSV subtable IMPORT requires IMPORT UPDATE and MATCH RECORD NUMBER SOURCE.",this.prev());if(E!=="BY_NAME")throw new T("CSV subtable IMPORT requires BY NAME.",this.prev());if(!y)throw new T("CSV subtable IMPORT requires REPLACE SUBTABLES (...).",this.prev());let b=new Set(y);for(let L of g){if(!L.rowIdSourceHeader)throw new T(`CSV subtable ${L.subtableCode} requires ROW ID SOURCE <header>.`,this.prev());if(!b.has(L.subtableCode))throw new T(`IMPORT declares child columns for non-replaced subtable ${L.subtableCode}.`,this.prev())}for(let L of b)if(!g.some(I=>I.subtableCode===L))throw new T(`REPLACE SUBTABLES target ${L} 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(E!=="BY_NAME")throw new T("IMPORT UPDATE requires BY NAME.",this.prev());if(!m)throw new T("IMPORT UPDATE requires MATCH RECORD NUMBER SOURCE <header>.",this.peek());if(h)throw new T("IMPORT UPDATE and ON DUPLICATE are mutually exclusive.",this.prev())}else if(m)throw new T("MATCH RECORD NUMBER SOURCE requires IMPORT UPDATE.",this.prev());let S=this.parseCheckGroups(),P=this.parseDmlControlSuffix();return{type:"IMPORT",appId:r,fields:a,targets:o,source:l==="JSON"?{kind:"JSON",sourceName:d}:{kind:"CSV",sourceName:d,encoding:p,hasHeader:c,mappingMode:E,ignoreUnknownColumns:R,...u?{columns:u}:{},...f?{projection:f}:{}},...t?{writeMode:t,recordNumberSourceHeader:m}:{},...y?{replaceSubtables:y}:{},...h?{keyFields:h}:{},...S,...P}}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}=lt(n,this.prev());if(i)throw new T(`VALIDATE APP${r}$${i} \u306F\u30B5\u30DD\u30FC\u30C8\u3055\u308C\u3066\u3044\u307E\u305B\u3093\u3002VALIDATE APP${r} (${i}) \u3092\u4F7F\u7528\u3057\u3066\u304F\u3060\u3055\u3044`,this.prev());let o;if(this.consume("(")){o=[];do{let c=this.parseIdentifier();if(this.consume("(")){let u=this.peek().kind===")"?[]:this.parseIdentList();this.expect(")"),o.push({kind:"SUBTABLE",subtableCode:c,children:u})}else o.push({kind:"FIELD",field:c})}while(this.consume(","));this.expect(")")}let a;this.isSoftKeyword("SUMMARY")&&(this.advance(),a=!0);let s=this.consume("WHERE")?this.parseWhereExpr(void 0,!0):null,l=this.parseCheckGroups(),d;if(this.consume("INTO")){let c=this.peek();if(c.kind!=="IDENT"||!c.value.startsWith("#"))throw new T("VALIDATE INTO \u306B\u306F # \u3067\u59CB\u307E\u308B\u4E00\u6642\u30C6\u30FC\u30D6\u30EB\u540D\u304C\u5FC5\u8981\u3067\u3059",c);d=this.parseTableName()}let p={type:"VALIDATE",appId:r,targets:o,...a?{summary:a}:{},where:s,...l,...d?{errorTable:d}:{}};return this.assertValidateExpressions(p,t),p}assertValidateExpressions(t,n){let r=i=>{if(Array.isArray(i)){i.forEach(r);return}if(i===null||typeof i!="object")return;let o=i;if(o.type==="EXISTS"||o.type==="SUBQUERY_IN_LIST"||o.type==="SCALAR_SUBQUERY")throw new T("VALIDATE \u306E WHERE / CHECK \u306B\u30B5\u30D6\u30AF\u30A8\u30EA\u306F\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093",n);if(o.type==="FIELD"&&o.tableAlias!==null&&o.tableAlias!==void 0)throw new T("VALIDATE \u306E WHERE / CHECK \u3067\u306F\u4FEE\u98FE\u30D5\u30A3\u30FC\u30EB\u30C9\u53C2\u7167\u3092\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093",n);if(o.type==="FIELD_REF"&&typeof o.field=="string"&&o.field.includes("."))throw new T("VALIDATE \u306E WHERE / CHECK \u3067\u306F\u4FEE\u98FE\u30D5\u30A3\u30FC\u30EB\u30C9\u53C2\u7167\u3092\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093",n);Object.values(o).forEach(r)};r(t.where),r(t.checkGroups)}parseAssert(){this.expect("ASSERT");let t=this.pos,n=this.parseAssertOperand(),r=this.peek();if(this.consume("BETWEEN")){let a=this.parseAssertOperand();this.expect("AND","ASSERT \u306E BETWEEN \u306B\u306F AND \u304C\u5FC5\u8981\u3067\u3059\uFF08\u4F8B: ASSERT (SELECT COUNT(*) FROM #t) BETWEEN 1 AND 500\uFF09");let s=this.parseAssertOperand();return this.rejectAssertCompound(),{type:"ASSERT",left:n,op:"BETWEEN",right:null,low:a,high:s,text:this.renderTokenRange(t,this.pos)}}let i=this.tryAssertCompareOp();if(i===null)throw new T("ASSERT \u306B\u306F\u6BD4\u8F03\u6F14\u7B97\u5B50\uFF08= <> < <= > >=\uFF09\u307E\u305F\u306F BETWEEN \u304C\u5FC5\u8981\u3067\u3059\uFF08\u5024\u306E\u307F\u306E ASSERT \u306F\u4E0D\u53EF\uFF09",r);let o=this.parseAssertOperand();return this.rejectAssertCompound(),{type:"ASSERT",left:n,op:i,right:o,low:null,high:null,text:this.renderTokenRange(t,this.pos)}}parseAssertOperand(){let t=this.peek();if(t.kind==="VARIABLE")return this.advance(),{type:"VARIABLE",name:t.value.slice(1).toLowerCase()};if(t.kind==="STRING")return this.advance(),{type:"STRING",value:t.value};if(t.kind==="("&&this.peekAt(1).kind==="SELECT"){this.advance();let n=this.parseSelect();if(this.expect(")"),this.isArithOp(this.peek().kind))throw new T("\u30B9\u30AB\u30E9\u30FC\u30B5\u30D6\u30AF\u30A8\u30EA\u306E\u5F8C\u306B\u7B97\u8853\u6F14\u7B97\u5B50\u306F\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093\u3002\u30B5\u30D6\u30AF\u30A8\u30EA\u5185\u3067\u8A08\u7B97\u3057\u3066\u304F\u3060\u3055\u3044\uFF08\u4F8B: ASSERT (SELECT COUNT(*) * 2 FROM APP100) > 10\uFF09",this.peek());if(!n.columns.some(i=>i.type==="WILDCARD"||i.type==="PARENT_WILDCARD")&&n.columns.length>1)throw new T("scalar subquery in ASSERT must return exactly 1 column.",t);return{type:"SCALAR_SUBQUERY",query:n}}if(t.kind==="NUMBER"||t.kind==="("||t.kind==="-"){let n=this.parseArithAddSub();return this.rejectNonLiteralArith(n,t),n.type==="NUMBER",n}throw this.tryStringFuncName()!==null?new T("ASSERT \u306E\u5F0F\u3067\u306F\u95A2\u6570\u306F\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093\uFF08\u30B9\u30AB\u30E9\u30FC\u30B5\u30D6\u30AF\u30A8\u30EA\u5185\u3067\u8A08\u7B97\u3057\u3066\u304F\u3060\u3055\u3044\uFF09",t):new T("ASSERT \u306E\u5F0F\u306B\u306F\u30EA\u30C6\u30E9\u30EB\u30FB\u7B97\u8853\u5F0F\u30FB\u30B9\u30AB\u30E9\u30FC\u30B5\u30D6\u30AF\u30A8\u30EA\u3092\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044\uFF08\u30D5\u30A3\u30FC\u30EB\u30C9\u53C2\u7167\u306F\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093\uFF09",t)}rejectNonLiteralArith(t,n){if(t.type==="FIELD_REF")throw new T(`ASSERT \u3067\u306F\u30D5\u30A3\u30FC\u30EB\u30C9\u53C2\u7167\u306F\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093\uFF08FROM \u30B3\u30F3\u30C6\u30AD\u30B9\u30C8\u304C\u3042\u308A\u307E\u305B\u3093\uFF09: ${t.field}`,n);if(t.type==="STRING_FUNC")throw new T("ASSERT \u306E\u5F0F\u3067\u306F\u95A2\u6570\u306F\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093\uFF08\u30B9\u30AB\u30E9\u30FC\u30B5\u30D6\u30AF\u30A8\u30EA\u5185\u3067\u8A08\u7B97\u3057\u3066\u304F\u3060\u3055\u3044\uFF09",n);t.type==="ARITH"&&(this.rejectNonLiteralArith(t.left,n),this.rejectNonLiteralArith(t.right,n))}tryAssertCompareOp(){switch(this.peek().kind){case"=":return this.advance(),"=";case"!=":return this.advance(),"!=";case"<>":return this.advance(),"<>";case">":return this.advance(),">";case"<":return this.advance(),"<";case">=":return this.advance(),">=";case"<=":return this.advance(),"<=";default:return null}}rejectAssertCompound(){let t=this.peek();if(t.kind==="AND"||t.kind==="OR")throw new T("ASSERT \u306F AND / OR \u306B\u3088\u308B\u8907\u5408\u6761\u4EF6\u306B\u5BFE\u5FDC\u3057\u3066\u3044\u307E\u305B\u3093\uFF08\u8907\u6570\u306E ASSERT \u6587\u306B\u5206\u3051\u3066\u304F\u3060\u3055\u3044\uFF09",t)}renderTokenRange(t,n){let r="";for(let i=t;i<n;i++){let o=this.tokens[i],a;o.kind==="STRING"?a=`'${o.value.replace(/'/g,"''")}'`:o.kind==="BIDENT"?a=`\`${o.value}\``:a=o.value,r.length>0&&MR(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:qe},a=i?this.parseJoins():[],s=this.consume("WHERE")?this.parseWhereExpr(void 0,!0):null,l=[],d,p=null;if(this.consume("GROUP")){if(this.expect("BY"),this.peek().kind==="DISTINCT"||this.isSoftKeyword("DISTINCT"))throw new T("B65: GROUP BY DISTINCT is not supported in Phase1.",this.peek());if(this.isGroupingSetsStart()?d=this.parseGroupingSetsClause():this.isRollupStart()?d=this.parseRollupClause():this.isCubeStart()?d=this.parseCubeClause():l=this.parseGroupByKeys(),d&&this.peek().kind===",")throw new T("B65: ordinary GROUP BY items cannot be mixed with grouping elements.",this.peek());this.consume("HAVING")&&(p=this.parseWhereExpr("HAVING"))}let c="CANONICAL",u=[];if(this.consume("ORDER"))this.expect("BY"),u=this.parseOrderBy();else if(this.consume("KORDER")){if(!t)throw new T("KORDER BY \u306F\u5229\u7528\u8005\u3078\u7D50\u679C\u3092\u8FD4\u3059\u30C8\u30C3\u30D7\u30EC\u30D9\u30EB SELECT \u3067\u306E\u307F\u4F7F\u7528\u3067\u304D\u307E\u3059",this.prev());c="KINTONE_NATIVE",this.expect("BY"),u=this.parseOrderBy()}let f=this.consume("LIMIT")?this.parseUnsignedInt():null,E=this.consume("OFFSET")?this.parseUnsignedInt():null,R=r.some(m=>m.type==="WINDOW_COL"),h=r.some(m=>this.selectColumnHasAggregate(m));if(R&&(l.length>0||d!==void 0||h))throw new T("\u30A6\u30A3\u30F3\u30C9\u30A6\u95A2\u6570\u306F GROUP BY / \u96C6\u8A08\u95A2\u6570\u3068\u540C\u3058 SELECT \u3067\u306F\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093",this.peek());if(d&&c==="KINTONE_NATIVE")throw new T("B65: KORDER BY cannot be combined with grouping sets in Phase1.",this.peek());return{type:"SELECT",distinct:n,columns:r,from:o,joins:a,where:s,groupBy:l,...d?{grouping:d}:{},having:p,orderMode:c,orderBy:u,limit:f,offset:E}}parseWith(){this.expect("WITH");let t=[];do{let r=this.parseIdentifier();this.expect("AS"),this.expect("(");let i,o=this.peek().kind;o==="SHOW"?i=this.parseShow():o==="DESCRIBE"||o==="DESC"?i=this.parseDescribe():i=this.tryParseUnionChain(this.parseSelect()),this.expect(")"),t.push({name:r,query:i}),this.cteNames.add(r)}while(this.consume(","));let n=this.tryParseUnionChain(this.parseSelect());return this.cteNames.clear(),{type:"WITH",ctes:t,query:n}}tryParseUnionChain(t){if(this.peek().kind!=="UNION")return t;if(t.type==="SELECT"&&t.orderMode==="KINTONE_NATIVE")throw new T("KORDER BY \u306F UNION \u5206\u5C90\u3067\u306F\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093",this.peek());this.advance();let n=this.consume("ALL"),r=this.parseSelect(),i={type:"UNION",all:n,left:t,right:r};return this.tryParseUnionChain(i)}parseSelectColumns(){let t=[];do t.push(this.parseSelectColumn());while(this.consume(","));return t}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 o=this.parseGroupingRef(),a=this.consume("AS")?this.parseAliasName():null;return{type:"GROUPING_COL",ref:o,alias:a}}if(this.tryAggregateFunc()===null&&this.hasTopLevelTokenBeforeValueEnd("||")){let o=this.parseScalarValueExpr({allowAggregateArgs:!0}),a=this.consume("AS")?this.parseAliasName():null;return{type:"SCALAR_VALUE_COL",expr:o,alias:a}}if(this.peek().kind==="VARIABLE"){let o=this.advance();if(!this.consume("AS"))throw new T("SELECT \u5217\u306E\u30D0\u30C3\u30C1\u5909\u6570\u306B\u306F AS alias \u304C\u5FC5\u8981\u3067\u3059",this.peek());return{type:"VARIABLE_COL",name:o.value.slice(1).toLowerCase(),alias:this.parseAliasName()}}let t=this.tryWindowFunc();if(t!==null)return this.parseWindowColumn(t);if(this.peek().kind==="CASE"){let o=this.parseCaseWhenExpr(!0),a=this.consume("AS")?this.parseAliasName():null;return{type:"CASE_COL",expr:o,alias:a}}if(this.peek().kind==="IF"){let o=this.parseIfExpr(!0),a=this.consume("AS")?this.parseAliasName():null;return{type:"CASE_COL",expr:o,alias:a}}if(this.tryStringFuncName()!==null){let o=this.parseStringFuncExpr();if(this.isArithOp(this.peek().kind)){let s=this.parseSelectArith(()=>this.continueArith(o)),l=this.consume("AS")?this.parseAliasName():null;return{type:"ARITH_COL",expr:s,alias:l}}let a=this.consume("AS")?this.parseAliasName():null;return{type:"STRFUNC_COL",expr:o,alias:a}}let n=this.tryAggregateFunc();if(n!==null){let o=this.parseAggregateRef(n);if(this.isArithOp(this.peek().kind)){let s=this.continueAggArith(o),l=this.consume("AS")?this.parseAliasName():null;return{type:"ARITH_AGG_COL",expr:s,alias:l}}let a=this.consume("AS")?this.parseAliasName():null;return{type:"AGGREGATE",func:o.func,distinct:o.distinct,arg:o.arg,...o.separator!==void 0?{separator:o.separator}:{},alias:a}}if(this.peek().kind==="("&&this.peekAt(1).kind==="SELECT"){this.advance();let o=this.parseSelect();this.expect(")");let a=this.consume("AS")?this.parseAliasName():null;return{type:"SCALAR_SUBQUERY_COL",query:o,alias:a}}if(this.peek().kind==="STRING"){let o=this.expect("STRING").value,a=this.consume("AS")?this.parseAliasName():null;return{type:"LITERAL_COL",value:o,alias:a}}if(this.peek().kind==="("||this.peek().kind==="NUMBER"){let o=this.parseSelectArith(()=>this.parseArithAddSub()),a=this.consume("AS")?this.parseAliasName():null;return{type:"ARITH_COL",expr:o,alias:a}}let r=this.parseColumnFieldRef();if(r==="_p.*")return{type:"PARENT_WILDCARD"};if(r==="_parent.*")throw new T("_parent.* \u306F\u5EC3\u6B62\u3057\u307E\u3057\u305F\u3002_p.* \u3092\u4F7F\u7528\u3057\u3066\u304F\u3060\u3055\u3044",this.prev());if(this.isArithOp(this.peek().kind)){let o={type:"FIELD_REF",field:r},a=this.parseSelectArith(()=>this.continueArith(o)),s=this.consume("AS")?this.parseAliasName():null;return{type:"ARITH_COL",expr:a,alias:s}}let i=this.consume("AS")?this.parseAliasName():null;return{type:"FIELD",field:r,alias:i}}tryWindowFunc(){return dc[this.peek().kind]??null}parseWindowColumn(t){if(this.advance(),this.expect("("),this.peek().kind!==")")throw new T(`${t} \u306F\u5F15\u6570\u3092\u53D7\u3051\u4ED8\u3051\u307E\u305B\u3093`,this.peek());this.expect(")"),this.expectSoftKeyword("OVER",`${t} \u306B\u306F OVER (...) \u304C\u5FC5\u8981\u3067\u3059`),this.expect("(");let n=[];if(this.isSoftKeyword("PARTITION")){this.advance(),this.expect("BY","PARTITION \u306E\u5F8C\u306B\u306F BY \u304C\u5FC5\u8981\u3067\u3059");do{let o=this.parseQualifiedIdent();n.push({type:"FIELD",tableAlias:o.tableAlias,field:o.field})}while(this.consume(","))}let r=this.consume("ORDER")?(this.expect("BY"),this.parseOrderBy(!1)):[];if(this.expect(")"),!this.consume("AS"))throw new T("\u30A6\u30A3\u30F3\u30C9\u30A6\u95A2\u6570\u306B\u306F AS alias \u304C\u5FC5\u8981\u3067\u3059",this.peek());let i=this.parseAliasName();return{type:"WINDOW_COL",func:t,partitionBy:n,orderBy:r,alias:i}}selectColumnHasAggregate(t){return t.type==="AGGREGATE"||t.type==="ARITH_AGG_COL"?!0:t.type==="STRFUNC_COL"?t.expr.args.some(n=>this.stringFuncArgHasAggregate(n)):t.type==="SCALAR_VALUE_COL"?this.scalarValueHasAggregate(t.expr):!1}stringFuncArgHasAggregate(t){return t.type==="AGG_REF"||t.type==="AGG_ARITH"?!0:this.scalarValueHasAggregate(t)}scalarValueHasAggregate(t){return t.type==="STRING_FUNC"?t.args.some(n=>this.stringFuncArgHasAggregate(n)):t.type==="SCALAR_ARITH"||t.type==="CONCAT_OP"?this.scalarValueHasAggregate(t.left)||this.scalarValueHasAggregate(t.right):t.type==="CASE_WHEN"?[...t.branches.map(r=>r.result),...t.elseResult?[t.elseResult]:[]].some(r=>r.type==="ARRAY"||r.type==="FIELD_REF"||r.type==="ARITH"?!1:this.scalarValueHasAggregate(r)):!1}isArithOp(t){return t==="+"||t==="-"||t==="*"||t==="/"||t==="%"}continueAggArith(t){return this.continueAggArithAddSub(this.continueAggArithMulDiv(t))}continueAggArithMulDiv(t){for(;this.peek().kind==="*"||this.peek().kind==="/"||this.peek().kind==="%";){let n=this.parseArithOp();t={type:"AGG_ARITH",left:t,op:n,right:this.parseAggPrimary()}}return t}continueAggArithAddSub(t){for(;this.peek().kind==="+"||this.peek().kind==="-";){let n=this.parseArithOp();t={type:"AGG_ARITH",left:t,op:n,right:this.parseAggArithMulDiv()}}return t}parseAggArithMulDiv(){return this.continueAggArithMulDiv(this.parseAggPrimary())}parseAggPrimary(){if(this.consume("(")){let n=this.continueAggArith(this.parseAggPrimary());return this.expect(")"),n}if(this.peek().kind==="-"){this.advance();let n=this.parseAggPrimary();return n.type==="NUMBER"?Re(`-${H(n)}`):{type:"AGG_ARITH",left:Re("0"),op:"-",right:n}}if(this.peek().kind==="NUMBER"){let n=this.advance();return Re(n.value)}let t=this.tryAggregateFunc();if(t!==null)return this.parseAggregateRef(t);throw new T("\u96C6\u8A08\u7B97\u8853\u5F0F\u306B\u306F\u96C6\u8A08\u95A2\u6570\u307E\u305F\u306F\u6570\u5024\u304C\u5FC5\u8981\u3067\u3059",this.peek())}parseScalarValueExpr(t={}){let n=this.scalarAllowsAggregateArgs,r=this.scalarAllowsCase;this.scalarAllowsAggregateArgs=t.allowAggregateArgs===!0,this.scalarAllowsCase=t.allowCase!==!1;let i;try{i=this.parseScalarAddSubConcat(this.scalarAllowsCase)}finally{this.scalarAllowsAggregateArgs=n,this.scalarAllowsCase=r}let o=this.peek();if(o.kind==="IS"||o.kind==="="||o.kind==="!="||o.kind==="<>"||o.kind===">"||o.kind==="<"||o.kind===">="||o.kind==="<="||o.kind==="LIKE"||o.kind==="KLIKE"||o.kind==="IN"||o.kind==="BETWEEN")throw new T("\u30B9\u30AB\u30E9\u30FC\u5024\u5F0F\u306B\u6BD4\u8F03\u30FB\u8FF0\u8A9E\u306F\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093",o);return i}parseScalarAddSubConcat(t){let n=this.parseScalarMulDiv(t);for(;this.peek().kind==="+"||this.peek().kind==="-"||this.peek().kind==="||";){let r=this.advance(),i=this.parseScalarMulDiv(t);n=r.kind==="||"?{type:"CONCAT_OP",left:n,right:i}:{type:"SCALAR_ARITH",left:n,op:r.kind==="+"?"+":"-",right:i}}return n}parseScalarMulDiv(t){let n=this.parseScalarPrimary(t);for(;this.peek().kind==="*"||this.peek().kind==="/"||this.peek().kind==="%";){let r=this.advance(),i=r.kind==="*"?"*":r.kind==="/"?"/":"%";n={type:"SCALAR_ARITH",left:n,op:i,right:this.parseScalarPrimary(t)}}return n}parseScalarPrimary(t){let n=this.peek();if(n.kind==="("){if(this.peekAt(1).kind==="SELECT")throw new T("\u30B9\u30AB\u30E9\u30FC\u5024\u5F0F\u306B\u30B5\u30D6\u30AF\u30A8\u30EA\u306F\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093",n);this.advance();let r=this.parseScalarAddSubConcat(t);return this.expect(")"),r}if(n.kind==="+"||n.kind==="-"){if(this.advance(),this.peek().kind==="+"||this.peek().kind==="-")throw new T("\u5358\u9805\u7B26\u53F7\u3092\u91CD\u306D\u3066\u6307\u5B9A\u3059\u308B\u3053\u3068\u306F\u3067\u304D\u307E\u305B\u3093",this.peek());let r=this.parseScalarPrimary(t);if(r.type==="NUMBER")return Re(`${n.kind==="-"?"-":"+"}${H(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:Re("0"),op:"-",right:r}}if(n.kind==="STRING")return this.advance(),{type:"STRING",value:n.value};if(n.kind==="NUMBER")return this.advance(),Re(n.value);if(n.kind==="VARIABLE")return this.advance(),{type:"VARIABLE",name:n.value.slice(1).toLowerCase()};if(n.kind==="CASE"){if(!t)throw new T("\u3053\u306E\u30B9\u30AB\u30E9\u30FC\u5024\u5F0F\u3067\u306F CASE \u3092\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093",n);return this.parseCaseWhenExpr()}if(this.tryAggregateFunc()!==null)throw new T(this.insideAggregateArg>0?"\u96C6\u8A08\u95A2\u6570\u306E\u5F15\u6570\u5185\u306B\u96C6\u8A08\u95A2\u6570\u306F\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093":"\u30B9\u30AB\u30E9\u30FC\u5024\u5F0F\u306B\u96C6\u7D04\u95A2\u6570\u306F\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093",n);if(this.tryStringFuncName()!==null)return this.parseStringFuncExpr();if(n.kind==="IDENT"||n.kind==="BIDENT")return this.advance(),this.consume(".")?{type:"FIELD",tableAlias:n.value,field:this.parseIdentifier()}:{type:"FIELD",tableAlias:null,field:n.value};throw new T("\u30B9\u30AB\u30E9\u30FC\u5024\u5F0F\u306E\u30AA\u30DA\u30E9\u30F3\u30C9\u304C\u5FC5\u8981\u3067\u3059",n)}hasTopLevelTokenBeforeValueEnd(t){let n=0;for(let r=this.pos;r<this.tokens.length;r++){let i=this.tokens[r].kind;if(i==="("||i==="[")n++;else if(i===")"||i==="]"){if(n===0)break;n--}if(i===t)return!0;if(n===0&&(i===","||i==="AS"||i==="FROM"||i==="WHERE"||i==="WHEN"||i==="THEN"||i==="ELSE"||i==="END"||i===";"||i==="EOF"))break}return!1}parseArithAddSub(){return this.continueArithAddSub(this.parseArithMulDiv())}parseArithMulDiv(){return this.continueArithMulDiv(this.parseArithPrimary())}continueArith(t){return this.continueArithAddSub(this.continueArithMulDiv(t))}continueArithMulDiv(t){for(;this.peek().kind==="*"||this.peek().kind==="/"||this.peek().kind==="%";){let n=this.parseArithOp(),r=this.parseArithPrimary();t={type:"ARITH",left:t,op:n,right:r}}return t}continueArithAddSub(t){for(;this.peek().kind==="+"||this.peek().kind==="-";){let n=this.parseArithOp(),r=this.parseArithMulDiv();t={type:"ARITH",left:t,op:n,right:r}}return t}parseArithPrimary(){if(this.consume("(")){let n=this.parseArithAddSub();return this.expect(")"),n}if(this.allowUnaryPlusNumber&&this.peek().kind==="+"){this.advance();let n=this.expect("NUMBER","\u5358\u9805 + \u306E\u76F4\u5F8C\u306B\u306F\u6570\u5024\u30EA\u30C6\u30E9\u30EB\u304C\u5FC5\u8981\u3067\u3059");return Re(`+${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"?Re(`-${H(n)}`):{type:"ARITH",left:Re("0"),op:"-",right:n}}if(this.tryStringFuncName()!==null)return this.parseStringFuncExpr();let t=this.peek();if(t.kind==="NUMBER")return this.advance(),Re(t.value);if(this.allowSelectArithVariable&&t.kind==="VARIABLE")return this.advance(),{type:"VARIABLE",name:t.value.slice(1).toLowerCase()};if(t.kind==="IDENT"||t.kind==="BIDENT"){this.advance();let n=t.value;if(this.peek().kind==="."){this.advance();let r=this.advance();n=`${n}.${r.value}`}return{type:"FIELD_REF",field:n}}throw new T("\u7B97\u8853\u5F0F\u306E\u30AA\u30DA\u30E9\u30F3\u30C9\u306B\u306F\u8B58\u5225\u5B50\u30FB\u6570\u5024\u30FB\u62EC\u5F27\u5F0F\u3092\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044",t)}parseIfExpr(t=!1){this.advance(),this.expect("(");let n=this.parseCaseCondition(t);this.expect(",");let r=this.parseCaseResult();this.expect(",");let i=this.parseCaseResult();return this.expect(")"),{type:"CASE_WHEN",branches:[{condition:n,result:r}],elseResult:i}}parseCaseWhenExpr(t=!1){this.expect("CASE");let n=[];for(;this.peek().kind==="WHEN";){this.advance();let i=this.parseCaseCondition(t);this.expect("THEN");let o=this.parseCaseResult();n.push({condition:i,result:o})}if(n.length===0)throw new T("CASE \u306E\u5F8C\u306B\u306F WHEN \u304C\u6700\u4F4E 1 \u3064\u5FC5\u8981\u3067\u3059",this.peek());let r=null;return this.consume("ELSE")&&(r=this.parseCaseResult()),this.expect("END"),{type:"CASE_WHEN",branches:n,elseResult:r}}parseCaseCondition(t){return t?this.parseWhereExpr("SELECT_CASE"):this.parseWhereExpr()}parseCaseResult(){let t=this.peek();if(this.insideAggregateArg>0&&this.tryAggregateFunc()!==null)throw new T("\u96C6\u8A08\u95A2\u6570\u306E\u5F15\u6570\u5185\u306B\u96C6\u8A08\u95A2\u6570\u306F\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093",t);return t.kind==="["?this.parseArrayLiteral():this.hasTopLevelTokenBeforeValueEnd("||")?this.parseScalarValueExpr({allowAggregateArgs:!0}):t.kind==="STRING"?(this.advance(),{type:"STRING",value:t.value}):this.tryStringFuncName()!==null?this.parseStringFuncExpr():this.parseArithAddSub()}tryStringFuncName(){if(this.peekAt(1).kind==="("){let n=Ma[this.peek().kind];if(n==="LEFT"||n==="RIGHT")return n}let t=Ma[this.peek().kind]??null;if(t!==null&&t!=="LEFT"&&t!=="RIGHT")return t;if(this.peek().kind==="IDENT"){let n=this.peek().value.toUpperCase();if(pc.includes(n)&&this.peekAt(1).kind==="(")return n}return null}parseStringFuncExpr(){let t=this.peek().kind,n=this.tryStringFuncName();if(this.advance(),this.expect("("),t==="CAST"){let i=this.parseStringFuncArg();this.expect("AS");let o=this.parseCastType();return this.expect(")"),{type:"STRING_FUNC",func:"CAST",args:[i,o]}}if(t==="CONVERT"){let i=this.parseStringFuncArg();this.expect(",");let o=this.parseCastType();return this.expect(")"),{type:"STRING_FUNC",func:"CAST",args:[i,o]}}let r=[];if(this.peek().kind!==")")do r.push(this.parseStringFuncArg());while(this.consume(","));return this.expect(")"),{type:"STRING_FUNC",func:n,args:r}}parseCastType(){let t=this.peek(),n;if(t.kind==="IDENT"||t.kind==="BIDENT")this.advance(),n=t.value.toUpperCase();else throw new T("\u30AD\u30E3\u30B9\u30C8\u5148\u306E\u578B\u540D\uFF08TEXT, NUMBER, INT \u306A\u3069\uFF09\u304C\u5FC5\u8981\u3067\u3059",t);this.peek().kind==="("&&(this.advance(),this.parseUnsignedInt(),this.expect(")"));let r=FR(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 Fa[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(!CR(t))throw new T(`${t}(*) \u306F\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093\u3002\u30D5\u30A3\u30FC\u30EB\u30C9\u307E\u305F\u306F\u5F0F\u3092\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044`,this.prev());i={type:"WILDCARD"}}else i=this.parseAggregateArgExpr();let o;if(this.isSoftKeyword("SEPARATOR")){let a=this.advance();if(t!=="GROUP_CONCAT")throw new T("SEPARATOR \u306F GROUP_CONCAT \u3067\u306E\u307F\u4F7F\u7528\u3067\u304D\u307E\u3059",a);o=this.expect("STRING","SEPARATOR \u306E\u5F8C\u306B\u306F\u6587\u5B57\u5217\u30EA\u30C6\u30E9\u30EB\u304C\u5FC5\u8981\u3067\u3059").value}return this.expect(")"),{type:"AGG_REF",func:t,distinct:n,arg:i,...o!==void 0?{separator:o}:{}}}isAggregateArgEnd(){return this.peek().kind===")"||this.isSoftKeyword("SEPARATOR")}parseAggregateArgExpr(){let t=this.pos;try{let n=this.parseArithAddSub();if(this.isAggregateArgEnd())return n}catch{}this.pos=t,this.insideAggregateArg++;try{let n;try{n=this.parseScalarValueExpr({allowCase:!0,allowAggregateArgs:!1})}catch(r){if(r instanceof T){if(r.message.includes("\u6BD4\u8F03\u30FB\u8FF0\u8A9E"))throw new T("\u96C6\u8A08\u95A2\u6570\u306E\u5F15\u6570\u306B\u6BD4\u8F03\u30FB\u8FF0\u8A9E\u306F\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093\u3002CASE \u3067\u5024\u3092\u660E\u793A\u3057\u3066\u304F\u3060\u3055\u3044\u3002\u4F8B: SUM(CASE WHEN amount > 0 THEN 1 ELSE 0 END)",r.token);if(r.message.includes("\u96C6\u7D04\u95A2\u6570"))throw new T("\u96C6\u8A08\u95A2\u6570\u306E\u5F15\u6570\u5185\u306B\u96C6\u8A08\u95A2\u6570\u306F\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093",r.token)}throw r}if(!this.isAggregateArgEnd())throw new T("\u3053\u306E\u96C6\u8A08\u95A2\u6570\u306E\u5F15\u6570\u5F62\u5F0F\u306F\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093\u3002CASE \u3067\u5024\u3092\u660E\u793A\u3059\u308B\u304B\u3001CTE \u3067\u5F0F\u3092\u5217\u306B\u3057\u3066\u304B\u3089\u96C6\u8A08\u3057\u3066\u304F\u3060\u3055\u3044\u3002",this.peek());return this.assertNoNestedAggregate(n),n}finally{this.insideAggregateArg--}}assertNoNestedAggregate(t){let n=r=>{if(r===null||typeof r!="object")return;let i=r;if(i.type==="AGG_REF"||i.type==="AGG_ARITH")throw new T("\u96C6\u8A08\u95A2\u6570\u306E\u5F15\u6570\u5185\u306B\u96C6\u8A08\u95A2\u6570\u306F\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093",this.peek());for(let o of Object.values(i))n(o)};n(t)}parseTableRef(){let t=this.peek(),n=this.parseTableName();if(t.kind==="IDENT"&&n.startsWith("#"))return this.tempTableRefs.push(this.prev()),{appId:0,alias:this.consume("AS")?this.parseTableAliasName():this.tryParseImplicitAlias(),cteName:n};if(this.cteNames.has(n))return{appId:0,alias:this.consume("AS")?this.parseTableAliasName():this.tryParseImplicitAlias(),cteName:n};let{appId:r,subtableCode:i}=lt(n,this.prev());if(i){let s=this.consume("AS")?this.parseTableAliasName():this.tryParseImplicitAlias();return{appId:r,alias:s,cteName:null,subtableCode:i}}let o=this.tryParseImplicitAlias(),a=this.consume("AS")?this.parseTableAliasName():o??n;return{appId:r,alias:a,cteName:null}}parseTableAliasName(){let t=this.peek();if((t.kind==="IDENT"||t.kind==="BIDENT")&&t.value.startsWith("#"))throw new T("\u30A8\u30A4\u30EA\u30A2\u30B9\u540D\u306B # \u3067\u59CB\u307E\u308B\u540D\u524D\u306F\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093",t);return this.parseIdentifier()}tryParseImplicitAlias(){let t=this.peek().kind;return t==="IDENT"||t==="BIDENT"?t==="IDENT"&&this.peek().value.toUpperCase()==="VALIDATE"&&this.peekAt(1).kind==="IDENT"&&this.peekAt(1).value.toUpperCase()==="ONLY"||t==="IDENT"&&this.peek().value.toUpperCase()==="CHECK"&&this.peekAt(1).kind==="WHEN"?null:this.parseTableAliasName():null}parseJoins(){let t=[];for(;;){let n=this.tryJoinType();if(n===null)break;let r=this.parseTableRef();this.expect("ON");let i=this.parseJoinCondition();t.push({type:n,table:r,on:i})}return t}tryJoinType(){return this.consume("INNER")?(this.expect("JOIN"),"INNER"):this.consume("LEFT")?(this.expect("JOIN"),"LEFT"):this.consume("RIGHT")?(this.expect("JOIN"),"RIGHT"):this.consume("JOIN")?"INNER":null}parseJoinCondition(){let t=this.parseQualifiedIdent();this.expect("=");let n=this.parseQualifiedIdent();return{left:t,right:n}}parseQualifiedIdent(){let t=this.parseIdentifier();if(this.consume(".")){if(this.peek().kind==="*")throw new T("\u3053\u3053\u3067\u306F * \u306F\u6307\u5B9A\u3067\u304D\u307E\u305B\u3093",this.peek());let n=this.parseIdentifier();return{tableAlias:t,field:n}}return{tableAlias:null,field:t}}parseWhereExpr(t=this.groupingFieldContext,n=this.allowRelativeDateFunctions){let r=this.groupingFieldContext,i=this.allowRelativeDateFunctions;this.groupingFieldContext=t??r,this.allowRelativeDateFunctions=n;try{return this.parseOrExpr()}finally{this.groupingFieldContext=r,this.allowRelativeDateFunctions=i}}parseOrExpr(){let t=this.parseAndExpr();for(;this.consume("OR");){let n=this.parseAndExpr();t={type:"LOGICAL",op:"OR",left:t,right:n}}return t}parseAndExpr(){let t=this.parseNotExpr();for(;this.consume("AND");){let n=this.parseNotExpr();t={type:"LOGICAL",op:"AND",left:t,right:n}}return t}parseNotExpr(){if(this.consume("EXISTS")){this.expect("(");let t=this.parseSelect();return this.expect(")"),{type:"EXISTS",not:!1,query:t}}if(this.consume("NOT")){if(this.consume("EXISTS")){this.expect("(");let n=this.parseSelect();return this.expect(")"),{type:"EXISTS",not:!0,query:n}}return{type:"NOT",expr:this.parseNotExpr()}}return this.parseCompareExpr()}isArithParen(){let t=0,n=this.pos;for(;n<this.tokens.length;){let r=this.tokens[n].kind;if(r==="(")t++;else if(r===")"&&(t--,t===0)){let i=this.tokens[n+1]?.kind;return i==="*"||i==="/"||i==="+"||i==="-"}n++}return!1}parseCompareExpr(){if(this.peek().kind==="("&&!this.isArithParen()){this.advance();let i=this.parseWhereExpr();return this.expect(")"),{type:"GROUP",expr:i}}let t=this.parseFieldValue();if(this.consume("IS")){let i=this.consume("NOT");return this.expect("NULL"),{type:"NULL_CHECK",field:t,not:i}}if(this.consume("BETWEEN")){let i=this.parseWhereSqlValue();this.expect("AND");let o=this.parseWhereSqlValue();return{type:"LOGICAL",op:"AND",left:{type:"BINARY",op:">=",left:t,right:i},right:{type:"BINARY",op:"<=",left:t,right:o}}}if(this.consume("NOT")){if(this.consume("IN")){let i=this.parseInRight();return{type:"BINARY",op:"NOT_IN",left:t,right:i}}if(this.consume("LIKE")){let i=this.parseSqlValue();return{type:"BINARY",op:"NOT_LIKE",left:t,right:i}}if(this.consume("KLIKE")){let i=this.parseKlikePattern();return{type:"BINARY",op:"NOT_KLIKE",left:t,right:i}}throw new T("NOT \u306E\u5F8C\u306B\u306F IN\u3001LIKE\u3001KLIKE \u306E\u3044\u305A\u308C\u304B\u304C\u5FC5\u8981\u3067\u3059",this.peek())}if(this.consume("IN")){let i=this.parseInRight();return{type:"BINARY",op:"IN",left:t,right:i}}if(this.consume("KLIKE")){let i=this.parseKlikePattern();return{type:"BINARY",op:"KLIKE",left:t,right:i}}let n=this.parseCompareOp(),r=this.parseWhereSqlValue();return{type:"BINARY",op:n,left:t,right:r}}parseCompareOp(){let t=this.advance();switch(t.kind){case"=":return"=";case"!=":return"!=";case"<>":return"<>";case">":return">";case"<":return"<";case">=":return">=";case"<=":return"<=";case"LIKE":return"LIKE";default:throw new T("\u6BD4\u8F03\u6F14\u7B97\u5B50\uFF08=, !=, >, <, >=, <=, LIKE, KLIKE, IN, IS\uFF09\u304C\u5FC5\u8981\u3067\u3059",t)}}parseKlikePattern(){let t=this.peek();if(t.kind==="STRING")return this.advance(),{type:"STRING",value:t.value};if(t.kind==="VARIABLE")return this.advance(),{type:"VARIABLE",name:t.value.slice(1).toLowerCase()};throw new T("KLIKE / NOT KLIKE \u306E\u53F3\u8FBA\u306B\u306F\u6587\u5B57\u5217\u30EA\u30C6\u30E9\u30EB\u307E\u305F\u306F\u30D0\u30C3\u30C1\u5909\u6570\u304C\u5FC5\u8981\u3067\u3059",t)}parseFieldValue(){if(this.isUnsupportedGroupingIdStart())throw new T("B65: GROUPING_ID is not supported in Phase1.",this.peek());if(this.isGroupingFunctionStart()){if(this.groupingFieldContext==="FORBIDDEN"||this.insideAggregateArg>0)throw new T("B65: GROUPING() is only allowed in SELECT, SELECT CASE conditions, HAVING, and direct ORDER BY.",this.peek());return{type:"GROUPING_FIELD",ref:this.parseGroupingRef()}}if(this.tryStringFuncName()!==null){let r=this.parseStringFuncExpr();return this.isArithOp(this.peek().kind)?{type:"ARITH_FIELD",expr:this.continueArith(r)}:{type:"FUNC_FIELD",expr:r}}let t=this.tryAggregateFunc();if(t!==null){if(this.insideAggregateArg>0)throw new T("\u96C6\u8A08\u95A2\u6570\u306E\u5F15\u6570\u5185\u306B\u96C6\u8A08\u95A2\u6570\u306F\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093",this.peek());let r=this.parseAggregateRef(t);return{type:"FIELD",tableAlias:null,field:we(r.func,r.distinct,r.arg)}}if(this.peek().kind==="CASE")return{type:"CASE_FIELD",expr:this.parseCaseWhenExpr()};if(this.peek().kind==="IF")return{type:"CASE_FIELD",expr:this.parseIfExpr()};if(this.peek().kind==="("){this.advance();let r=this.parseArithAddSub();return this.expect(")"),{type:"ARITH_FIELD",expr:this.continueArith(r)}}if(this.peek().kind==="-")return{type:"ARITH_FIELD",expr:this.parseArithAddSub()};let n=this.parseQualifiedIdent();if(this.isArithOp(this.peek().kind)){let i={type:"FIELD_REF",field:n.tableAlias?`${n.tableAlias}.${n.field}`:n.field};return{type:"ARITH_FIELD",expr:this.continueArith(i)}}return{type:"FIELD",tableAlias:n.tableAlias,field:n.field}}parseWhereSqlValue(){let t=this.peek();return this.allowRelativeDateFunctions&&t.kind==="IDENT"&&this.peekAt(1).kind==="("&&J(t.value.toUpperCase())?this.parseRelativeDateFunction():this.parseSqlValue()}parseRelativeDateFunction(){let t=this.expect("IDENT"),n=t.value.toUpperCase();switch(this.expect("("),n){case"YESTERDAY":case"TOMORROW":case"THIS_YEAR":case"LAST_YEAR":case"NEXT_YEAR":return this.expect(")",`${n}() \u306F\u5F15\u6570\u3092\u53D7\u3051\u53D6\u308A\u307E\u305B\u3093`),{type:"KINTONE_FUNC",name:n,args:{kind:"NONE"}};case"FROM_TODAY":{let r="";if(this.consume("-")&&(r="-"),this.peek().kind==="+")throw new T("FROM_TODAY \u306E offset \u306B + \u7B26\u53F7\u306F\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093",this.peek());let i=this.expect("NUMBER","FROM_TODAY \u306B\u306F\u6574\u6570 offset \u3068\u5358\u4F4D\u304C\u5FC5\u8981\u3067\u3059");if(!/^\d+$/.test(i.value))throw new T("FROM_TODAY \u306E offset \u306F10\u9032\u6574\u6570\u3067\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044",i);let o=`${r}${i.value}`,a=Number(o);if(!Number.isSafeInteger(a))throw new T("FROM_TODAY \u306E offset \u306F\u5B89\u5168\u306A\u6574\u6570\u306E\u7BC4\u56F2\u3067\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044",i);this.expect(",","FROM_TODAY \u306E offset \u3068\u5358\u4F4D\u306F\u30AB\u30F3\u30DE\u3067\u533A\u5207\u3063\u3066\u304F\u3060\u3055\u3044");let s=this.expect("IDENT","FROM_TODAY \u306E\u5358\u4F4D\u306B\u306F\u975E\u5F15\u7528\u306E DAYS / WEEKS / MONTHS / YEARS \u304C\u5FC5\u8981\u3067\u3059"),l=s.value.toUpperCase();if(!DR(l))throw new T("FROM_TODAY \u306E\u5358\u4F4D\u306B\u306F DAYS / WEEKS / MONTHS / YEARS \u304C\u5FC5\u8981\u3067\u3059",s);this.expect(")","FROM_TODAY \u306F offset \u3068\u5358\u4F4D\u306E2\u5F15\u6570\u3060\u3051\u3092\u53D7\u3051\u53D6\u308A\u307E\u3059");let d=String(a===0?0:a);return{type:"KINTONE_FUNC",name:n,args:{kind:"FROM_TODAY",offset:a,offsetText:d,unit:l}}}case"THIS_WEEK":case"LAST_WEEK":case"NEXT_WEEK":{let r=null;if(this.peek().kind!==")"){let i=this.expect("IDENT",`${n} \u306E\u66DC\u65E5\u306B\u306F\u975E\u5F15\u7528\u306E SUNDAY ... SATURDAY \u304C\u5FC5\u8981\u3067\u3059`),o=i.value.toUpperCase();if(!vR(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(!UR(o))throw new T(`${n} \u306E\u65E5\u306F 1 \u304B\u3089 31 \u3067\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044`,i);r=o}else throw new T(`${n} \u306E\u65E5\u306F\u975E\u5F15\u7528\u306E LAST \u307E\u305F\u306F 1 \u304B\u3089 31 \u304C\u5FC5\u8981\u3067\u3059`,i)}return this.expect(")",`${n} \u306F\u65E5\u3092\u6700\u59271\u500B\u3060\u3051\u53D7\u3051\u53D6\u308A\u307E\u3059`),{type:"KINTONE_FUNC",name:n,args:{kind:"MONTH",day:r}}}default:throw new T(`\u672A\u77E5\u306E\u76F8\u5BFE\u65E5\u4ED8\u95A2\u6570 ${n} \u3067\u3059`,t)}}parseSqlValue(){let t=this.peek();if(t.kind==="VARIABLE")return this.advance(),{type:"VARIABLE",name:t.value.slice(1).toLowerCase()};if(t.kind==="STRING")return this.advance(),{type:"STRING",value:t.value};if(cc(t.kind))return this.advance(),this.expect("("),this.expect(")"),{type:"KINTONE_FUNC",name:Ui[t.kind]};if(t.kind==="CASE")return{type:"CASE_VALUE",expr:this.parseCaseWhenExpr()};if(t.kind==="IF")return{type:"CASE_VALUE",expr:this.parseIfExpr()};if(t.kind==="("&&this.peekAt(1).kind==="SELECT"){this.advance();let n=this.parseSelect();if(this.expect(")"),this.isArithOp(this.peek().kind))throw new T("\u30B9\u30AB\u30E9\u30FC\u30B5\u30D6\u30AF\u30A8\u30EA\u306E\u5F8C\u306B\u7B97\u8853\u6F14\u7B97\u5B50\u306F\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093\u3002\u30B5\u30D6\u30AF\u30A8\u30EA\u5185\u3067\u8A08\u7B97\u3057\u3066\u304F\u3060\u3055\u3044\uFF08\u4F8B: (SELECT AVG(\u5408\u8A08\u8CBB\u7528)/2 FROM APP88)\uFF09",this.peek());return{type:"SCALAR_SUBQUERY",query:n}}if(t.kind==="NUMBER"||t.kind==="IDENT"||t.kind==="BIDENT"||t.kind==="("||t.kind==="-"||this.tryStringFuncName()!==null){let n=this.parseArithAddSub();return n.type==="NUMBER"?n:{type:"ARITH_VALUE",expr:n}}throw new T("\u5024\uFF08\u6587\u5B57\u5217\u30FB\u6570\u5024\u30FB\u30D5\u30A3\u30FC\u30EB\u30C9\u53C2\u7167\u30FBTODAY()\u30FBNOW()\u30FBLOGINUSER()\uFF09\u304C\u5FC5\u8981\u3067\u3059",t)}parseInRight(){if(this.consume("(")){let n=this.parseInListOrSubquery();return this.expect(")"),n}return{type:"VARIABLE_IN_LIST",name:this.expect("VARIABLE","IN / NOT IN \u306E\u5F8C\u306B\u306F (\u5024\u30EA\u30B9\u30C8\u307E\u305F\u306F SELECT) \u304B\u914D\u5217\u5909\u6570\u304C\u5FC5\u8981\u3067\u3059").value.slice(1).toLowerCase()}}parseInListOrSubquery(){if(this.peek().kind==="SELECT"){let t=this.parseSelect(),n=t.columns[0],r=n&&n.type==="FIELD"?n.alias??n.field:null;return{type:"SUBQUERY_IN_LIST",query:t,column:r}}return{type:"IN_LIST",values:this.parseInValues()}}parseInValues(){let t=[],n="IN \u30EA\u30B9\u30C8\u306B\u306F\u6587\u5B57\u5217\u3001\u6570\u5024\u3001\u30D0\u30C3\u30C1\u5909\u6570\u3001\u307E\u305F\u306F\u5358\u72EC\u306E LOGINUSER() \u304C\u5FC5\u8981\u3067\u3059",r="LOGINUSER() \u306F IN / NOT IN \u30EA\u30B9\u30C8\u306E\u5358\u72EC\u8981\u7D20\u3068\u3057\u3066\u306E\u307F\u4F7F\u7528\u3067\u304D\u307E\u3059";do{let i=this.advance();if(i.kind==="STRING")t.push({type:"STRING",value:i.value});else if(i.kind==="NUMBER")t.push(Re(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(Re(`${a}${o.value}`))}else if(i.kind==="VARIABLE")t.push({type:"VARIABLE",name:i.value.slice(1).toLowerCase()});else if(i.kind==="LOGINUSER"){if(t.length>0)throw new T(r,i);if(this.expect("(","LOGINUSER \u306E\u76F4\u5F8C\u306B\u306F\u7A7A\u5F15\u6570\u306E () \u304C\u5FC5\u8981\u3067\u3059"),this.expect(")","LOGINUSER \u306E\u76F4\u5F8C\u306B\u306F\u7A7A\u5F15\u6570\u306E () \u304C\u5FC5\u8981\u3067\u3059"),t.push({type:"KINTONE_FUNC",name:"LOGINUSER"}),this.peek().kind===",")throw new T(r,this.peek())}else 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=Ru(t);return{type:"GROUPING_SETS",source:"CUBE",allItems:this.groupingAllItems(n),sets:n}}parseGroupingRef(){let t=this.advance();if(this.expect("("),this.peek().kind===")")throw new T("B65: GROUPING() requires exactly one physical field argument.",this.peek());let n=this.parseQualifiedIdent();if(this.peek().kind!==")")throw new T("B65: GROUPING() requires exactly one physical field argument.",t);return this.expect(")"),{type:"GROUPING_REF",field:{type:"FIELD",tableAlias:n.tableAlias,field:n.field}}}parseGroupByKey(){if(this.tryStringFuncName()!==null){let n=this.parseStringFuncExpr();return this.isArithOp(this.peek().kind)?{type:"ARITH_KEY",expr:this.continueArith(n)}:{type:"FUNC_KEY",expr:n}}if(this.peek().kind==="("||this.peek().kind==="NUMBER")return{type:"ARITH_KEY",expr:this.parseArithAddSub()};let t=this.parseFieldPath();if(this.isArithOp(this.peek().kind)){let n={type:"FIELD_REF",field:t};return{type:"ARITH_KEY",expr:this.continueArith(n)}}return{type:"FIELD_NAME",name:t}}parseOrderBy(t=!0){let n=[];do{let r=this.parseOrderByKey(t),i="ASC";this.consume("DESC")?i="DESC":this.consume("ASC"),n.push({key:r,direction:i})}while(this.consume(","));return n}parseOrderByKey(t=!0){if(this.isUnsupportedGroupingIdStart())throw new T("B65: GROUPING_ID is not supported in Phase1.",this.peek());if(this.isGroupingFunctionStart()){if(!t)throw new T("B65: GROUPING() is not allowed in window ORDER BY.",this.peek());return{type:"GROUPING_KEY",ref:this.parseGroupingRef()}}if(this.tryStringFuncName()!==null){let r=this.parseStringFuncExpr();return this.isArithOp(this.peek().kind)?{type:"ARITH_KEY",expr:this.continueArith(r)}:{type:"FUNC_KEY",expr:r}}if(this.peek().kind==="("||this.peek().kind==="NUMBER")return{type:"ARITH_KEY",expr:this.parseArithAddSub()};let n=this.parseFieldPath();if(this.isArithOp(this.peek().kind)){let r={type:"FIELD_REF",field:n};return{type:"ARITH_KEY",expr:this.continueArith(r)}}return{type:"FIELD_NAME",name:n}}parseInsert(){this.expect("INSERT"),this.expect("INTO"),this.rejectTempTableDml();let t=this.parseIdentifier(),{appId:n,subtableCode:r}=lt(t,this.prev());this.expect("(");let i=this.parseIdentList();if(this.expect(")"),this.peek().kind==="SELECT"){let p=this.parseSelect();if(this.isApplyBlockStart()||this.prev().kind==="IDENT"&&this.prev().value.toUpperCase()==="APPLY"&&(this.peek().kind==="IDENT"||this.peek().kind==="BIDENT")&&this.peekAt(1).kind==="(")throw new T("INSERT INTO ... SELECT \u306F APPLY \u306B\u5BFE\u5FDC\u3057\u3066\u3044\u307E\u305B\u3093",this.prev());if(r)throw new T("INSERT INTO ... SELECT \u306F\u30B5\u30D6\u30C6\u30FC\u30D6\u30EB\u4EEE\u60F3\u30C6\u30FC\u30D6\u30EB\u3067\u306F\u672A\u5BFE\u5FDC\u3067\u3059",this.prev());let c=this.parseCheckGroups(),u=this.parseDmlControlSuffix();return{type:"INSERT_SELECT",appId:n,fields:i,select:p,...c,...u}}this.expect("VALUES");let o=[];do{this.expect("(");let p=this.parseInsertRow(i.length);this.expect(")"),o.push(p)}while(this.consume(","));let a=[];for(;this.isApplyBlockStart();)a.push(this.parseApplyBlock());if(this.isSoftKeyword("APPLY")&&this.peekAt(1).kind==="IDENT"&&this.peekAt(1).value.toUpperCase()==="SUBTABLE")throw new T("APPLY SUBTABLE noun is not supported; use APPLY <field> (...)",this.peek());if(a.length>0&&this.isSoftKeyword("CHECK"))throw new T("APPLY \u30D6\u30ED\u30C3\u30AF\u306E\u5F8C\u306B CHECK \u306F\u6307\u5B9A\u3067\u304D\u307E\u305B\u3093",this.peek());if(a.length>0&&(this.peek().kind==="ON"||this.isSoftKeyword("REJECT")))throw new T("ON ERROR SKIP / REJECT LIMIT \u306F APPLY \u3068\u4F75\u7528\u3067\u304D\u307E\u305B\u3093",this.peek());let s=this.parseCheckGroups(),l=this.parseDmlControlSuffix();if(this.isSoftKeyword("APPLY"))throw new T("APPLY \u306F CHECK / VALIDATE ONLY \u3088\u308A\u524D\u306B\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044",this.peek());if(r&&s.checkGroups)throw new T("CHECK \u306F\u30B5\u30D6\u30C6\u30FC\u30D6\u30EB INSERT \u306B\u5BFE\u5FDC\u3057\u3066\u3044\u307E\u305B\u3093",this.prev());if(r&&(l.validateOnly||l.onErrorSkip))throw new T("VALIDATE ONLY / ON ERROR SKIP \u306F\u30B5\u30D6\u30C6\u30FC\u30D6\u30EB INSERT \u306B\u5BFE\u5FDC\u3057\u3066\u3044\u307E\u305B\u3093",this.prev());let d=a.length>0?{applyBlocks:a}:{};return r?{type:"INSERT",appId:n,subtableCode:r,fields:i,values:o,...d,...s,...l}:{type:"INSERT",appId:n,fields:i,values:o,...d,...s,...l}}parseUpsert(){this.expect("UPSERT"),this.expect("INTO"),this.rejectTempTableDml();let t=this.parseIdentifier(),{appId:n,subtableCode:r}=lt(t,this.prev());if(r)throw new T("UPSERT \u306F\u307E\u3060\u30B5\u30D6\u30C6\u30FC\u30D6\u30EB\u4EEE\u60F3\u30C6\u30FC\u30D6\u30EB\u306B\u5BFE\u5FDC\u3057\u3066\u3044\u307E\u305B\u3093",this.prev());this.expect("(");let i=this.parseIdentList();if(this.expect(")"),this.peek().kind==="SELECT"){let c=this.parseSelect(),u=this.parseOnDuplicate();if(this.isUpsertApplyBranchStart()||this.isApplyBlockStart())throw new T("UPSERT INTO ... SELECT \u306F ON INSERT / ON UPDATE APPLY \u306B\u5BFE\u5FDC\u3057\u3066\u3044\u307E\u305B\u3093",this.peek());let f=this.parseCheckGroups(),E=this.parseDmlControlSuffix();if(this.isUpsertApplyBranchStart()||this.isApplyBlockStart())throw new T("UPSERT INTO ... SELECT \u306F ON INSERT / ON UPDATE APPLY \u306B\u5BFE\u5FDC\u3057\u3066\u3044\u307E\u305B\u3093",this.peek());return{type:"UPSERT_SELECT",appId:n,fields:i,select:c,keyFields:u,...f,...E}}this.expect("VALUES");let o=[];do this.expect("("),o.push(this.parseInsertRow(i.length)),this.expect(")");while(this.consume(","));let a=this.parseOnDuplicate(),s=this.parseUpsertApplyBranches(),l=s.onInsertApplyBlocks!==void 0||s.onUpdateApplyBlocks!==void 0;if(l&&this.isSoftKeyword("CHECK"))throw new T("UPSERT \u306E\u5206\u5C90 APPLY \u306F CHECK \u3068\u4F75\u7528\u3067\u304D\u307E\u305B\u3093",this.peek());if(l&&(this.peek().kind==="ON"||this.isSoftKeyword("REJECT")))throw new T("UPSERT \u306E\u5206\u5C90 APPLY \u306F ON ERROR SKIP / REJECT LIMIT \u3068\u4F75\u7528\u3067\u304D\u307E\u305B\u3093",this.peek());let d=this.parseCheckGroups(),p=this.parseDmlControlSuffix();if(this.isUpsertApplyBranchStart()||this.isApplyBlockStart())throw new T("ON INSERT / ON UPDATE APPLY \u306F CHECK / VALIDATE ONLY \u3088\u308A\u524D\u306B\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044",this.peek());return{type:"UPSERT",appId:n,fields:i,values:o,keyFields:a,...s,...d,...p}}parseOnDuplicate(){if(this.expectKeyword("ON","UPSERT \u306B\u306F ON DUPLICATE (\u30AD\u30FC\u30D5\u30A3\u30FC\u30EB\u30C9) \u304C\u5FC5\u8981\u3067\u3059"),!this.consume("DUPLICATE"))throw new T("ON \u306E\u5F8C\u306B\u306F DUPLICATE \u304C\u5FC5\u8981\u3067\u3059",this.peek());this.expect("(");let t=this.parseIdentList();if(this.expect(")"),t.length===0)throw new T("ON DUPLICATE \u306B\u306F\u30AD\u30FC\u30D5\u30A3\u30FC\u30EB\u30C9\u304C\u6700\u4F4E 1 \u3064\u5FC5\u8981\u3067\u3059",this.prev());return t}isUpsertApplyBranchStart(){return this.peek().kind==="ON"&&(this.peekAt(1).kind==="INSERT"||this.peekAt(1).kind==="UPDATE")}parseUpsertApplyBranches(){let t,n;for(;this.isUpsertApplyBranchStart();){this.advance();let r=this.advance(),i=r.kind==="INSERT";if(i&&t||!i&&n)throw new T(`ON ${i?"INSERT":"UPDATE"} APPLY \u306F 1 \u56DE\u3060\u3051\u6307\u5B9A\u3067\u304D\u307E\u3059`,r);if(!this.isApplyBlockStart())throw new T(`ON ${i?"INSERT":"UPDATE"} \u306E\u5F8C\u306B\u306F APPLY \u30D6\u30ED\u30C3\u30AF\u304C\u5FC5\u8981\u3067\u3059`,this.peek());let o=[];for(;this.isApplyBlockStart();)o.push(this.parseApplyBlock());i?t=o:n=o}if(this.isApplyBlockStart())throw new T("UPSERT \u306E APPLY \u306B\u306F ON INSERT \u307E\u305F\u306F ON UPDATE \u304C\u5FC5\u8981\u3067\u3059",this.peek());return{...t?{onInsertApplyBlocks:t}:{},...n?{onUpdateApplyBlocks:n}:{}}}parseArrayLiteral(){this.expect("[");let t=[];if(this.peek().kind!=="]")do{let n=this.expect("STRING");t.push({type:"STRING",value:n.value})}while(this.consume(","));return this.expect("]"),{type:"ARRAY",elements:t}}parseInsertRow(t){let n=[];do if(this.peek().kind==="[")n.push(this.parseArrayLiteral());else if(this.peek().kind==="CASE"){let r=this.parseCaseWhenExpr();n.push({type:"CASE_VALUE",expr:r})}else if(this.peek().kind==="IF"){let r=this.parseIfExpr();n.push({type:"CASE_VALUE",expr:r})}else if(this.peek().kind==="-"||this.peek().kind==="+"){let r=this.advance(),i=this.expect("NUMBER","INSERT \u306E\u5358\u9805\u7B26\u53F7\u306E\u76F4\u5F8C\u306B\u306F\u6570\u5024\u30EA\u30C6\u30E9\u30EB\u304C\u5FC5\u8981\u3067\u3059");n.push(Re(`${r.kind==="-"?"-":"+"}${i.value}`))}else{let r=this.advance();if(r.kind==="STRING")n.push({type:"STRING",value:r.value});else if(r.kind==="NUMBER")n.push(Re(r.value));else throw new T("INSERT \u306E\u5024\u306B\u306F\u6587\u5B57\u5217\u30FB\u6570\u5024\u30FB\u914D\u5217\u30EA\u30C6\u30E9\u30EB\u30FBCASE WHEN \u304C\u5FC5\u8981\u3067\u3059",r)}while(this.consume(","));if(n.length!==t)throw new T(`\u30AB\u30E9\u30E0\u6570\uFF08${t}\uFF09\u3068\u5024\u306E\u6570\uFF08${n.length}\uFF09\u304C\u4E00\u81F4\u3057\u307E\u305B\u3093`,this.prev());return n}parseUpdate(){this.expect("UPDATE"),this.rejectTempTableDml();let t=this.parseIdentifier(),{appId:n,subtableCode:r}=lt(t,this.prev());this.expect("SET");let i=this.parseAssignments();if(r&&i.some(u=>u.value.type==="STRING_FUNC"))throw new T("\u30B5\u30D6\u30C6\u30FC\u30D6\u30EB UPDATE SET \u3067\u306F\u6587\u5B57\u5217\u95A2\u6570\u3092\u76F4\u63A5\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093",this.prev());let o=null;if(this.consume("FROM")){let u=this.parseTableRef();if(u.subtableCode)throw new T("UPDATE ... FROM \u306E\u30BD\u30FC\u30B9\u306B\u30B5\u30D6\u30C6\u30FC\u30D6\u30EB\u306F\u6307\u5B9A\u3067\u304D\u307E\u305B\u3093",this.prev());if(u.cteName!==null&&!u.cteName.startsWith("#"))throw new T("UPDATE ... FROM \u306E\u30BD\u30FC\u30B9\u306F #temp \u307E\u305F\u306F APP<n> \u3092\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044\uFF08CTE \u306F\u975E\u5BFE\u5FDC\uFF09",this.prev());if(!u.alias)throw new T("UPDATE ... FROM \u306E\u30BD\u30FC\u30B9\u306B\u306F\u30A8\u30A4\u30EA\u30A2\u30B9\u304C\u5FC5\u8981\u3067\u3059",this.prev());if(u.alias.toLowerCase()===`app${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:u.appId,cteName:u.cteName,alias:u.alias,targetJoinField:"",joinKeyField:"",targetFilter:null}}let a=this.peek();if(!this.consume("WHERE"))throw new T("UPDATE \u6587\u306B\u306F WHERE \u53E5\u304C\u5FC5\u8981\u3067\u3059\uFF08\u5168\u4EF6\u66F4\u65B0\u3092\u9632\u3050\u305F\u3081\uFF09",a);let s=this.parseWhereExpr(void 0,!0),l=[];for(;this.isApplyBlockStart();)l.push(this.parseApplyBlock());if(this.isSoftKeyword("APPLY")&&this.peekAt(1).kind==="IDENT"&&this.peekAt(1).value.toUpperCase()==="SUBTABLE")throw new T("APPLY SUBTABLE noun is not supported; use APPLY <field> (...)",this.peek());if(l.length>0&&this.peek().kind==="WHERE")throw new T("\u89AA WHERE \u306F APPLY \u30D6\u30ED\u30C3\u30AF\u3088\u308A\u524D\u306B\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044",this.peek());if(o!==null){if(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 u=this.decomposeUpdateFromWhere(s,n,o.alias,a);o.targetJoinField=u.targetJoinField,o.joinKeyField=u.joinKeyField,o.targetFilter=u.targetFilter}else{if(i.some(u=>u.value.type==="SOURCE_FIELD"))throw new T("SET \u306E\u5024\u306B\u30D5\u30A3\u30FC\u30EB\u30C9\u53C2\u7167\u3092\u5358\u72EC\u3067\u6307\u5B9A\u3059\u308B\u3053\u3068\u306F\u3067\u304D\u307E\u305B\u3093",a);if(i.some(u=>u.value.type==="STRING_FUNC"&&this.nodeContainsAnyQualifier(u.value)))throw new T("UPDATE SET \u306E\u6587\u5B57\u5217\u95A2\u6570\u3067\u306F\u66F4\u65B0\u5148\u30D5\u30A3\u30FC\u30EB\u30C9\u3092\u4FEE\u98FE\u3057\u306A\u3044\u3067\u304F\u3060\u3055\u3044",a)}if(l.length>0&&this.isSoftKeyword("CHECK"))throw new T("APPLY \u30D6\u30ED\u30C3\u30AF\u306E\u5F8C\u306B CHECK \u306F\u6307\u5B9A\u3067\u304D\u307E\u305B\u3093",this.peek());if(l.length>0&&(this.peek().kind==="ON"||this.isSoftKeyword("REJECT")))throw new T("ON ERROR SKIP / REJECT LIMIT \u306F APPLY \u3068\u4F75\u7528\u3067\u304D\u307E\u305B\u3093",this.peek());let d=this.parseCheckGroups(),p=this.parseDmlControlSuffix();if(this.isSoftKeyword("APPLY"))throw new T("APPLY \u306F VALIDATE ONLY \u3088\u308A\u524D\u306B\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044",this.peek());if(r&&d.checkGroups)throw new T("CHECK \u306F\u30B5\u30D6\u30C6\u30FC\u30D6\u30EB UPDATE \u306B\u5BFE\u5FDC\u3057\u3066\u3044\u307E\u305B\u3093",this.prev());if(r&&(p.validateOnly||p.onErrorSkip))throw new T("VALIDATE ONLY / ON ERROR SKIP \u306F\u30B5\u30D6\u30C6\u30FC\u30D6\u30EB UPDATE \u306B\u5BFE\u5FDC\u3057\u3066\u3044\u307E\u305B\u3093",this.prev());let c=l.length>0?{applyBlocks:l}:{};return o!==null?{type:"UPDATE",appId:n,assignments:i,where:s,from:o,...c,...d,...p}:r?{type:"UPDATE",appId:n,subtableCode:r,assignments:i,where:s,...c,...d,...p}:{type:"UPDATE",appId:n,assignments:i,where:s,...c,...d,...p}}isApplyBlockStart(){return this.isSoftKeyword("APPLY")&&(this.peekAt(1).kind==="IDENT"||this.peekAt(1).kind==="BIDENT")&&this.peekAt(2).kind==="("}parseApplyBlock(){this.advance();let t=this.parseIdentifier();if(this.expect("("),this.peek().kind===")"||this.peek().kind===";")throw new T("APPLY \u30D6\u30ED\u30C3\u30AF\u306B\u306F\u64CD\u4F5C\u304C\u6700\u4F4E 1 \u3064\u5FC5\u8981\u3067\u3059",this.peek());let n=[];for(;n.push(this.parseApplyOperation()),!(!this.consume(";")||this.peek().kind===")");)if(this.peek().kind===";")throw new T("APPLY \u30D6\u30ED\u30C3\u30AF\u306B\u7A7A\u306E\u64CD\u4F5C\u306F\u6307\u5B9A\u3067\u304D\u307E\u305B\u3093",this.peek());this.expect(")","APPLY \u30D6\u30ED\u30C3\u30AF\u306E\u672B\u5C3E\u306B\u306F ) \u304C\u5FC5\u8981\u3067\u3059");let r=n.some(o=>o.kind==="PATCH"||o.kind==="APPEND"||o.kind==="REMOVE"),i=n.some(o=>o.kind==="ADD"||o.kind==="REMOVE_VALUE");if(r&&i)throw new T("1 \u3064\u306E APPLY \u30D6\u30ED\u30C3\u30AF\u306B\u884C\u64CD\u4F5C\u3068\u591A\u5024\u64CD\u4F5C\u306F\u6DF7\u5728\u3067\u304D\u307E\u305B\u3093",this.prev());return i?{field:t,targetKind:"MULTI_VALUE",operations:n}:{field:t,targetKind:"SUBTABLE",operations:n}}parseApplyOperation(){if(this.isSoftKeyword("ADD"))return this.advance(),{kind:"ADD",value:this.expect("STRING","ADD \u306E\u5F8C\u306B\u306F\u6587\u5B57\u5217\u30EA\u30C6\u30E9\u30EB\u304C\u5FC5\u8981\u3067\u3059").value};if(this.isSoftKeyword("PATCH")){this.advance(),this.expect("SET","PATCH \u306E\u5F8C\u306B\u306F SET \u304C\u5FC5\u8981\u3067\u3059");let t=this.parseAssignments(),n=this.parseApplyRowSelector(),r=this.parseExpectRowsGuard();return{kind:"PATCH",assignments:t,selector:n,...r?{expectRows:r}:{}}}if(this.isSoftKeyword("APPEND")){if(this.advance(),this.expect("(","APPEND \u306E\u5F8C\u306B\u306F\u30D5\u30A3\u30FC\u30EB\u30C9\u4E00\u89A7\u304C\u5FC5\u8981\u3067\u3059"),this.peek().kind===")")throw new T("APPEND \u306E\u30D5\u30A3\u30FC\u30EB\u30C9\u4E00\u89A7\u306F\u7A7A\u306B\u3067\u304D\u307E\u305B\u3093",this.peek());let t=[];do t.push(this.parseIdentifier());while(this.consume(","));this.expect(")"),this.expect("VALUES","APPEND \u306E\u30D5\u30A3\u30FC\u30EB\u30C9\u4E00\u89A7\u306E\u5F8C\u306B\u306F VALUES \u304C\u5FC5\u8981\u3067\u3059");let n=[];do this.expect("(","APPEND VALUES \u306E\u5404\u884C\u306F ( \u3067\u59CB\u3081\u3066\u304F\u3060\u3055\u3044"),n.push(this.parseInsertRow(t.length)),this.expect(")");while(this.consume(","));return{kind:"APPEND",fields:t,values:n}}if(this.isSoftKeyword("REMOVE")){if(this.advance(),this.peek().kind==="STRING")return{kind:"REMOVE_VALUE",value:this.advance().value};let t=this.parseApplyRowSelector(),n=this.parseExpectRowsGuard();return{kind:"REMOVE",selector:t,...n?{expectRows:n}:{}}}throw new T("APPLY \u306E\u64CD\u4F5C\u306B\u306F PATCH / APPEND / REMOVE / ADD \u304C\u5FC5\u8981\u3067\u3059",this.peek())}parseApplyRowSelector(){if(this.consume("WHERE"))return{kind:"WHERE",where:this.parseWhereExpr(void 0,!0)};if(this.consume("ALL")){if(!this.isSoftKeyword("ROWS"))throw new T("ALL \u306E\u5F8C\u306B\u306F ROWS \u304C\u5FC5\u8981\u3067\u3059",this.peek());return this.advance(),{kind:"ALL_ROWS"}}throw new T("PATCH / REMOVE \u306B\u306F WHERE \u307E\u305F\u306F ALL ROWS \u304C\u5FC5\u8981\u3067\u3059",this.peek())}parseExpectRowsGuard(){if(this.isSoftKeyword("EXPECT")){if(this.advance(),!this.isSoftKeyword("ROWS"))throw new T("EXPECT \u306E\u5F8C\u306B\u306F ROWS \u304C\u5FC5\u8981\u3067\u3059",this.peek());if(this.advance(),this.consume("BETWEEN")){let t=this.parseExpectRowsCount();this.expect("AND","EXPECT ROWS BETWEEN \u306E\u4E0B\u9650\u3068\u4E0A\u9650\u306F AND \u3067\u533A\u5207\u3063\u3066\u304F\u3060\u3055\u3044");let n=this.parseExpectRowsCount();if(t>n)throw new T("EXPECT ROWS BETWEEN \u306E\u4E0B\u9650\u306F\u4E0A\u9650\u4EE5\u4E0B\u306B\u3057\u3066\u304F\u3060\u3055\u3044",this.peek());return{kind:"BETWEEN",min:t,max:n}}if(this.isSoftKeyword("AT")){if(this.advance(),this.peek().value.toUpperCase()==="LEAST")return this.advance(),{kind:"AT_LEAST",count:this.parseExpectRowsCount()};if(this.isSoftKeyword("MOST"))return this.advance(),{kind:"AT_MOST",count:this.parseExpectRowsCount()};throw new T("EXPECT ROWS AT \u306E\u5F8C\u306B\u306F LEAST \u307E\u305F\u306F MOST \u304C\u5FC5\u8981\u3067\u3059",this.peek())}return{kind:"EXACT",count:this.parseExpectRowsCount()}}}parseExpectRowsCount(){let t=this.expect("NUMBER","EXPECT ROWS \u306B\u306F 0 \u4EE5\u4E0A\u306E\u6574\u6570\u304C\u5FC5\u8981\u3067\u3059");if(!/^\d+$/.test(t.value)||!Number.isSafeInteger(Number(t.value)))throw new T("EXPECT ROWS \u306F 0 \u4EE5\u4E0A\u306E\u5B89\u5168\u306A\u6574\u6570\u3067\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044",t);return Number(t.value)}parseCheckGroups(){let t=[];for(;this.isSoftKeyword("CHECK")&&this.peekAt(1).kind==="WHEN";){let n=this.advance(),r=[];for(;this.consume("WHEN");){let i=this.parseWhereExpr();this.expect("THEN","CHECK WHEN \u306E\u6761\u4EF6\u306E\u5F8C\u306B\u306F THEN \u304C\u5FC5\u8981\u3067\u3059");let o=this.parseScalarValueExpr({allowCase:!1});r.push({condition:i,message:o})}if(r.length===0)throw new T("CHECK \u306E\u5F8C\u306B\u306F WHEN \u304C\u6700\u4F4E 1 \u3064\u5FC5\u8981\u3067\u3059",n);t.push({rules:r})}return t.length>0?{checkGroups:t}:{}}parseDmlControlSuffix(){if(this.peek().kind==="ON")return this.parseOnErrorSkipSuffix();if(this.isSoftKeyword("REJECT"))throw new T("REJECT LIMIT \u306B\u306F ON ERROR SKIP INTO \u304C\u5FC5\u8981\u3067\u3059",this.peek());if(!this.isSoftKeyword("VALIDATE"))return{};let t=this.advance();if(!this.isSoftKeyword("ONLY"))throw new T("VALIDATE \u306E\u5F8C\u306B\u306F ONLY \u304C\u5FC5\u8981\u3067\u3059",this.peek());this.advance();let n=null;if(this.consume("INTO")){let r=this.peek();if(r.kind!=="IDENT"||!r.value.startsWith("#"))throw new T("VALIDATE ONLY INTO \u306B\u306F # \u3067\u59CB\u307E\u308B\u4E00\u6642\u30C6\u30FC\u30D6\u30EB\u540D\u304C\u5FC5\u8981\u3067\u3059",r);n=this.parseTableName()}if(this.peek().kind==="ON"||this.isSoftKeyword("REJECT"))throw new T("VALIDATE ONLY \u3068 ON ERROR / REJECT LIMIT \u306F\u4F75\u8A18\u3067\u304D\u307E\u305B\u3093",t);return{validateOnly:!0,validationErrorTable:n}}parseOnErrorSkipSuffix(){let t=this.advance();if(!this.isSoftKeyword("ERROR"))throw new T("ON \u306E\u5F8C\u306B\u306F ERROR \u304C\u5FC5\u8981\u3067\u3059",this.peek());if(this.advance(),!this.isSoftKeyword("SKIP"))throw new T("ON ERROR \u306E\u5F8C\u306B\u306F SKIP \u304C\u5FC5\u8981\u3067\u3059",this.peek());this.advance(),this.expect("INTO","ON ERROR SKIP \u306B\u306F INTO #\u4E00\u6642\u30C6\u30FC\u30D6\u30EB \u304C\u5FC5\u8981\u3067\u3059");let n=this.peek();if(n.kind!=="IDENT"||!n.value.startsWith("#"))throw new T("ON ERROR SKIP INTO \u306B\u306F # \u3067\u59CB\u307E\u308B\u4E00\u6642\u30C6\u30FC\u30D6\u30EB\u540D\u304C\u5FC5\u8981\u3067\u3059",n);let r=this.parseTableName(),i=null;if(this.isSoftKeyword("REJECT")){this.advance(),this.expect("LIMIT","REJECT \u306E\u5F8C\u306B\u306F LIMIT \u304C\u5FC5\u8981\u3067\u3059");let o=this.expect("NUMBER","REJECT LIMIT \u306B\u306F 0 \u4EE5\u4E0A\u306E\u6574\u6570\u304C\u5FC5\u8981\u3067\u3059");if(!/^\d+$/.test(o.value))throw new T("REJECT LIMIT \u306F 0 \u4EE5\u4E0A\u306E\u5B89\u5168\u306A\u6574\u6570\u3067\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044",o);if(i=Number(o.value),!Number.isSafeInteger(i))throw new T("REJECT LIMIT \u306F 0 \u4EE5\u4E0A\u306E\u5B89\u5168\u306A\u6574\u6570\u3067\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044",o)}if(this.isSoftKeyword("REJECT")||this.isSoftKeyword("VALIDATE")||this.peek().kind==="ON")throw new T("ON ERROR SKIP \u306E\u53E5\u304C\u91CD\u8907\u307E\u305F\u306F\u7AF6\u5408\u3057\u3066\u3044\u307E\u3059",t);return{onErrorSkip:!0,errorTable:r,rejectLimit:i}}isSoftKeyword(t){return this.peek().kind==="IDENT"&&this.peek().value.toUpperCase()===t}validateUpdateFromAssignments(t,n,r){for(let i of t){if(i.value.type==="STRING_FUNC")throw new T("UPDATE ... FROM \u306E SET \u3067\u306F\u6587\u5B57\u5217\u95A2\u6570\u3092\u76F4\u63A5\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093",r);if(i.value.type==="SOURCE_FIELD"){if(i.value.alias.toLowerCase()!==n.toLowerCase())throw new T(`UPDATE ... FROM \u306E SET \u53C2\u7167\u306F\u30BD\u30FC\u30B9 alias ${n} \u3067\u4FEE\u98FE\u3057\u3066\u304F\u3060\u3055\u3044`,r);continue}if(this.nodeContainsQualifiedField(i.value,n))throw new T("UPDATE ... FROM \u306E\u30BD\u30FC\u30B9\u5217\u306F SET \u306E\u76F4\u63A5\u5024\u3068\u3057\u3066\u306E\u307F\u53C2\u7167\u3067\u304D\u307E\u3059",r);if(i.value.type==="SCALAR_SUBQUERY")throw new T("UPDATE ... FROM \u306E SET \u3067\u306F\u30B9\u30AB\u30E9\u30FC\u30B5\u30D6\u30AF\u30A8\u30EA\u3092\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093",r);if(this.nodeContainsAnyQualifier(i.value))throw new T("UPDATE ... FROM \u306E\u30BF\u30FC\u30B2\u30C3\u30C8\u5F0F\u3067\u306F\u30D5\u30A3\u30FC\u30EB\u30C9\u3092\u4FEE\u98FE\u3057\u306A\u3044\u3067\u304F\u3060\u3055\u3044",r)}}decomposeUpdateFromWhere(t,n,r,i){let o=this.flattenTopLevelAnd(t),a=[];if(o.forEach((p,c)=>{let u=this.matchUpdateFromJoin(p,n,r);u!==null&&a.push({index:c,...u})}),a.length!==1)throw new T("UPDATE ... FROM \u306E WHERE \u306B\u306F target.key = source.key \u306E\u7D50\u5408\u7B49\u5024\u304C\u3061\u3087\u3046\u30691\u3064\u5FC5\u8981\u3067\u3059",i);let s=a[0];for(let p=0;p<o.length;p++){if(p!==s.index&&this.nodeContainsQualifiedField(o[p],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(p!==s.index&&this.nodeContainsForeignQualifier(o[p],n))throw new T(`UPDATE ... FROM \u306E\u30BF\u30FC\u30B2\u30C3\u30C8\u30D5\u30A3\u30EB\u30BF\u306F APP${n} \u306E\u30D5\u30A3\u30FC\u30EB\u30C9\u3060\u3051\u3092\u53C2\u7167\u3067\u304D\u307E\u3059`,i)}let d=o.filter((p,c)=>c!==s.index).reduce((p,c)=>p===null?c:{type:"LOGICAL",op:"AND",left:p,right:c},null);return{targetJoinField:s.targetField,joinKeyField:s.sourceField,targetFilter:d}}flattenTopLevelAnd(t){return t.type==="GROUP"?this.flattenTopLevelAnd(t.expr):t.type==="LOGICAL"&&t.op==="AND"?[...this.flattenTopLevelAnd(t.left),...this.flattenTopLevelAnd(t.right)]:[t]}matchUpdateFromJoin(t,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(cc(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}=lt(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}=lt(n,this.prev());if(!i)throw new T("REORDER \u306F\u30B5\u30D6\u30C6\u30FC\u30D6\u30EB\u4EEE\u60F3\u30C6\u30FC\u30D6\u30EB\u306E\u307F\u6307\u5B9A\u3067\u304D\u307E\u3059\uFF08\u4F8B: REORDER APP100$\u660E\u7D30 ...\uFF09",this.prev());this.expect("BY");let o=this.parseOrderBy();if(o.length===0)throw new T("REORDER \u306B\u306F BY \u30AD\u30FC\u304C\u5FC5\u8981\u3067\u3059",this.prev());let a=null;if(t){if(this.peek().kind==="WHERE")throw new T("REORDER ALL \u3067\u306F WHERE \u306F\u6307\u5B9A\u3067\u304D\u307E\u305B\u3093",this.peek())}else{let s=this.peek();if(!this.consume("WHERE"))throw new T("REORDER \u306B\u306F WHERE \u53E5\u304C\u5FC5\u9808\u3067\u3059\uFF08\u8AA4\u64CD\u4F5C\u9632\u6B62\uFF09",s);a=this.parseWhereExpr(void 0,!0)}return{type:"REORDER",appId:r,subtableCode:i,all:t,by:o,where:a}}peek(){return this.tokens[this.pos]??{kind:"EOF",value:"",pos:-1}}peekAt(t){return this.tokens[this.pos+t]??{kind:"EOF",value:"",pos:-1}}prev(){return this.tokens[this.pos-1]??{kind:"EOF",value:"",pos:-1}}advance(){let t=this.peek();return t.kind!=="EOF"&&this.pos++,t}consume(t){return this.peek().kind===t?(this.advance(),!0):!1}expect(t,n){let r=this.peek();if(r.kind!==t)throw new T(n??`\u300C${t}\u300D\u304C\u5FC5\u8981\u3067\u3059`,r);return this.advance()}expectKeyword(t,n){return this.expect(t,n)}parseUnsignedInt(){let t=this.expect("NUMBER","\u6574\u6570\u304C\u5FC5\u8981\u3067\u3059"),n=Number(t.value);if(!Number.isInteger(n)||n<0)throw new T("\u6B63\u306E\u6574\u6570\u304C\u5FC5\u8981\u3067\u3059",t);return n}parseIdentifier(){let t=this.peek();if(t.kind==="IDENT"||t.kind==="BIDENT"){if(t.kind==="IDENT"&&t.value.startsWith("#"))throw new T("\u4E00\u6642\u30C6\u30FC\u30D6\u30EB\u540D\uFF08# \u3067\u59CB\u307E\u308B\u540D\u524D\uFF09\u306F FROM / JOIN / CREATE / DROP TEMP TABLE \u3067\u306E\u307F\u4F7F\u7528\u3067\u304D\u307E\u3059",t);return this.advance(),t.value}throw new T("\u30D5\u30A3\u30FC\u30EB\u30C9\u540D\u307E\u305F\u306F\u30C6\u30FC\u30D6\u30EB\u540D\u304C\u5FC5\u8981\u3067\u3059",t)}parseTableName(){let t=this.peek();if(t.kind==="IDENT"||t.kind==="BIDENT")return this.advance(),t.value;throw new T("\u30D5\u30A3\u30FC\u30EB\u30C9\u540D\u307E\u305F\u306F\u30C6\u30FC\u30D6\u30EB\u540D\u304C\u5FC5\u8981\u3067\u3059",t)}rejectTempTableDml(){let t=this.peek();if(t.kind==="IDENT"&&t.value.startsWith("#"))throw new T(`DML on temp table ${t.value} is not supported.`,t)}parseAliasName(){let t=this.peek();if(t.value.startsWith("#"))throw new T("\u30A8\u30A4\u30EA\u30A2\u30B9\u540D\u306B # \u3067\u59CB\u307E\u308B\u540D\u524D\u306F\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093",t);if(t.kind==="IDENT"||t.kind==="BIDENT"||vi.has(t.value.toUpperCase()))return this.advance(),t.value.toLowerCase();throw new T("\u30A8\u30A4\u30EA\u30A2\u30B9\u540D\u304C\u5FC5\u8981\u3067\u3059",t)}parseFieldPath(){let t=this.parseIdentifier();if(this.peek().kind!==".")return t;this.advance();let n=this.parseIdentifier();return`${t}.${n}`}parseColumnFieldRef(){let t=this.parseIdentifier();if(this.peek().kind!==".")return t;if(this.advance(),this.consume("*"))return`${t}.*`;let n=this.parseIdentifier();return`${t}.${n}`}};function FR(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 lt(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}}var xR=new Set(["SINGLE_LINE_TEXT","MULTI_LINE_TEXT","RICH_TEXT","LINK","DATE","TIME","DATETIME","CREATED_TIME","UPDATED_TIME","CREATOR","MODIFIER"]),KR=new Set(["DROP_DOWN","RADIO_BUTTON","CHECK_BOX","MULTI_SELECT","STATUS"]);function X(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":KR.has(e.fieldType)?t="option":xR.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 Pn(e,t,n){return{...e,source:{appId:t,fieldCode:n}}}function ki(e,t){if(e===t)return!0;if(!e||!t||e.fieldType!==t.fieldType||e.compareMode!==t.compareMode||e.inSubtable!==t.inSubtable||e.requiresCollectionOperators!==t.requiresCollectionOperators||e.source?.appId!==t.source?.appId||e.source?.fieldCode!==t.source?.fieldCode)return!1;let n=e.optionOrder,r=t.optionOrder;if(n===r)return!0;if(!n||!r||n.size!==r.size)return!1;for(let[i,o]of n)if(r.get(i)!==o)return!1;return!0}function Ct(e,t){let n=e[Symbol.iterator](),r=t[Symbol.iterator]();for(;;){let i=n.next(),o=r.next();if(i.done||o.done)return i.done&&o.done?0:i.done?-1:1;let a=i.value.codePointAt(0)??0,s=o.value.codePointAt(0)??0;if(a<s)return-1;if(a>s)return 1}}function BR(e,t){return e<t?-1:e>t?1:0}function fc(e){if(e==="")return{band:0};let t=Le(e);if(t!==null)return{band:2,value:t};let n=Number(e);return n===Number.NEGATIVE_INFINITY?{band:1}:n===Number.POSITIVE_INFINITY?{band:3}:e==="NaN"?{band:4}:{band:5,value:e}}function $R(e,t){let n=fc(e),r=fc(t);return n.band!==r.band?n.band<r.band?-1:1:n.band===2&&r.band===2?di(n.value,r.value):n.band===5&&r.band===5?Ct(n.value,r.value):0}function Ec(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 GR(e,t,n){let r=Ec(e,n),i=Ec(t,n);if(r.empty||i.empty)return r.empty===i.empty?0:r.empty?-1:1;if(r.normalizedId.length!==i.normalizedId.length)return r.normalizedId.length<i.normalizedId.length?-1:1;let o=Ct(r.normalizedId,i.normalizedId);return o!==0?o:Ct(r.display,i.display)}function VR(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 Rc(e,t){let n=t.optionOrder??new Map,i=[...new Set(VR(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(mc),i}function mc(e,t){return e.knownBand!==t.knownBand?e.knownBand<t.knownBand?-1:1:e.rank!==t.rank?e.rank<t.rank?-1:1:Ct(e.label,t.label)}function WR(e,t,n){let r=Rc(e,n),i=Rc(t,n),o=Math.min(r.length,i.length);for(let a=0;a<o;a++){let s=mc(r[a],i[a]);if(s!==0)return s}return r.length<i.length?-1:r.length>i.length?1:0}function $t(e,t,n){switch(n.compareMode){case"string":return Ct(e,t);case"number":return $R(e,t);case"recordNumber":return GR(e,t,n.fieldType==="RECORD_NUMBER");case"option":return WR(e,t,n);case"unsupported":throw new Error(`ArgumentError: values of type ${n.fieldType} cannot be compared.`)}}function Gt(e,t,n,r=B("string")){let i=$t(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 yc(e,t){if(t==="least"&&e.includes(""))return"";let n=t==="greatest"?e.filter(o=>o!==""):[...e];if(n.length===0)return"";let r=n.every(o=>!Number.isNaN(Number(o))),i=(o,a)=>{if(r){let s=Le(o),l=Le(a),d=s!==null&&l!==null?di(s,l):BR(Number(o),Number(a));if(d!==0)return d}return Ct(o,a)};return n.reduce((o,a)=>{let s=i(a,o);return t==="greatest"?s>0?a:o:s<0?a:o})}function ae(e,t){if(e.type==="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(ut(t,e.field));if(e.type==="STRING_FUNC")return Number(se(e,t));let n=ae(e.left,t),r=ae(e.right,t);switch(e.op){case"+":return n+r;case"-":return n-r;case"*":return n*r;case"/":return r!==0?n/r:NaN;case"%":return r!==0?n%r:NaN}}function de(e,t,n,r){switch(e.type){case"STRING":return e.value;case"NUMBER":return e.value;case"FIELD":return ut(t,e.tableAlias?`${e.tableAlias}.${e.field}`:e.field);case"VARIABLE":throw new Error(`ArgumentError: unresolved variable @${e.name} reached scalar evaluator.`);case"STRING_FUNC":return se(e,t,n,r);case"CASE_WHEN":return ve(e,t,n,r);case"CONCAT_OP":return se({type:"STRING_FUNC",func:"CONCAT",args:[e.left,e.right]},t,n,r);case"SCALAR_ARITH":{let i=Number(de(e.left,t,n,r)),o=Number(de(e.right,t,n,r));switch(e.op){case"+":return i+o;case"-":return i-o;case"*":return i*o;case"/":return o!==0?i/o:NaN;case"%":return o!==0?i%o:NaN}}}}function Ot(e,t,n,r){switch(e.type){case"CASE_WHEN":return Sc(e,t,n,r);case"SCALAR_ARITH":{let i=Ot(e.left,t,n,r),o=Ot(e.right,t,n,r);if(i===null||o===null)return null;let a=Number(i),s=Number(o);switch(e.op){case"+":return a+s;case"-":return a-s;case"*":return a*s;case"/":return s!==0?a/s:NaN;case"%":return s!==0?a%s:NaN}}case"CONCAT_OP":{let i=Ot(e.left,t,n,r),o=Ot(e.right,t,n,r);return`${i??""}${o??""}`}default:return de(e,t,n,r)}}function Mi(e,t,n){let r=Math.pow(10,n),i=Math[e](t*r)/r;return n>0?String(parseFloat(i.toFixed(n))):String(i)}function HR(e){return e>=55296&&e<=56319}function YR(e){return e>=56320&&e<=57343}function xi(e,t){return t>0&&t<e.length&&HR(e.charCodeAt(t-1))&&YR(e.charCodeAt(t))}function hc(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 Ka(e,t){let n=Math.min(Math.max(0,t),e.length);return xi(e,n)&&(n-=1),e.slice(0,n)}function jR(e,t){let n=Math.max(0,e.length-t);return xi(e,n)&&(n+=1),e.slice(n)}function qR(e,t,n){let r=hc(t,e.length),i=hc(n,e.length);return i<=r?"":(xi(e,r)&&(r+=1),xi(e,i)&&(i-=1),e.slice(r,Math.max(r,i)))}function zR(e,t){let n=e.repeat(Math.ceil(t/e.length));return Ka(n,t)}var JR=200,cr=new Map;function XR(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 xa(e,t,n=!1){let r=XR(t)+(n?"g":""),i=`${e}\0${r}`,o=cr.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(cr.size>=JR){let s=cr.keys().next().value;s!==void 0&&cr.delete(s)}return cr.set(i,a),a}function QR(e){if(e.includes("$`")||e.includes("$'"))throw new Error("ArgumentError: REGEXP_REPLACE replacement must not contain $` or $'.")}function ZR(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 em(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 p=Number(s+l);if(p>=1&&p<=n.length){i+=n[p-1]??"",o+=2;continue}}let d=Number(s);if(d>=1&&d<=n.length){i+=n[d-1]??"",o+=1;continue}}i+="$"}return i}function tm(e,t,n,r){let i=0;return e.replace(t,(o,...a)=>{if(i+=1,i!==r)return o;let s=a[a.length-1],l=typeof s=="object"&&s!==null,d=a.length-(l?3:2),p=a.slice(0,d);return em(n,o,p,l?s:void 0)})}function se(e,t,n,r){let i=e.args.map(o=>um(o,t,n,r));switch(e.func){case"UPPER":return(i[0]??"").toUpperCase();case"LOWER":return(i[0]??"").toLowerCase();case"TRIM":return(i[0]??"").trim();case"LTRIM":return(i[0]??"").trimStart();case"RTRIM":return(i[0]??"").trimEnd();case"LENGTH":return String((i[0]??"").length);case"LENGTH_CHAR":return he("LENGTH_CHAR",i,1,1),String([...i[0]??""].length);case"SUBSTRING":{let o=i[0]??"",a=Math.max(0,Number(i[1]??"1")-1),s=i[2]!==void 0?Number(i[2]):void 0;return qR(o,a,s!==void 0?a+s:o.length)}case"LEFT":{he("LEFT",i,2,2);let o=i[0],a=Math.trunc(Number(i[1]));return Number.isNaN(a)||a<=0?"":Ka(o,a)}case"RIGHT":{he("RIGHT",i,2,2);let o=i[0],a=Math.trunc(Number(i[1]));return Number.isNaN(a)||a<=0?"":jR(o,a)}case"INSTR":return he("INSTR",i,2,2),String(i[0].indexOf(i[1])+1);case"LPAD":case"RPAD":{he(e.func,i,2,3);let o=i[0],a=Math.trunc(Number(i[1]));if(Number.isNaN(a)||a<=0)return"";if(o.length>=a)return Ka(o,a);let s=i[2]??" ";if(s==="")return o;let l=zR(s,a-o.length);return e.func==="LPAD"?l+o:o+l}case"GREATEST":case"LEAST":return he(e.func,i,2),yc(i,e.func==="GREATEST"?"greatest":"least");case"CONCAT":return i.join("");case"REPLACE":{let o=i[0]??"",a=i[1]??"",s=i[2]??"";return a===""?o:o.split(a).join(s)}case"REGEXP_LIKE":return he("REGEXP_LIKE",i,2,3),xa(i[1],i[2]??"").test(i[0])?"1":"0";case"REGEXP_REPLACE":{he("REGEXP_REPLACE",i,3,5),QR(i[2]);let o=ZR(i[4]),a=xa(i[1],i[3]??"",!0);return o===0?i[0].replace(a,i[2]):tm(i[0],a,i[2],o)}case"REGEXP_SUBSTR":return he("REGEXP_SUBSTR",i,2,3),xa(i[1],i[2]??"").exec(i[0])?.[0]??"";case"TRANSLATE":{he("TRANSLATE",i,3,3);let o=[...i[1]],a=[...i[2]];if(o.length!==a.length)throw new Error(`ArgumentError: TRANSLATE \u306E from \u3068 to \u306F\u540C\u3058\u6587\u5B57\u6570\u3067\u3042\u308B\u5FC5\u8981\u304C\u3042\u308A\u307E\u3059\uFF08from=${o.length}, to=${a.length}\uFF09`);let s=new Map;return o.forEach((l,d)=>{s.has(l)||s.set(l,a[d])}),[...i[0]].map(l=>s.get(l)??l).join("")}case"COALESCE":return i.find(o=>o!=="")??"";case"NULLIF":return(i[0]??"")===(i[1]??"")?"":i[0]??"";case"ISNULL":return(i[0]??"")!==""?i[0]??"":i[1]??"";case"ROUND":return Mi("round",Number(i[0]??"0"),Number(i[1]??"0"));case"FLOOR":return Mi("floor",Number(i[0]??"0"),Number(i[1]??"0"));case"CEIL":return Mi("ceil",Number(i[0]??"0"),Number(i[1]??"0"));case"TRUNCATE":return he("TRUNCATE",i,1,2),Mi("trunc",Number(i[0]),Number(i[1]??"0"));case"CAST":{let o=i[0]??"";if((i[1]??"TEXT")==="NUMBER"){let s=Number(o);return isNaN(s)?o:String(s)}return o}case"FORMAT":{let o=Number(i[0]??"0"),a=i[1]??"0";return sm(o,a)}case"YEAR":{let o=i[0]??"";return o.length>=4?String(parseInt(o.slice(0,4),10)):""}case"MONTH":{let o=i[0]??"";return o.length>=7?String(parseInt(o.slice(5,7),10)):""}case"DAY":{let o=i[0]??"";return o.length>=10?String(parseInt(o.slice(8,10),10)):""}case"DAYOFWEEK":return he(e.func,i,1,1),Fi(i[0])?String(Ba(i[0])+1):"";case"QUARTER":return he(e.func,i,1,1),Fi(i[0])?String(Math.ceil(Number(i[0].slice(5,7))/3)):"";case"WEEK":return he(e.func,i,1,1),Fi(i[0])?String(Ac(i[0])):"";case"DATE_FORMAT":return rm(i[0]??"",i[1]??"");case"DATEDIFF":return im(i[0]??"",i[1]??"");case"DATE_ADD":return om(i[0]??"",Number(i[1]??"0"),(i[2]??"DAY").toUpperCase());case"LAST_DAY":return he("LAST_DAY",i,1,1),am(i[0]);case"ABS":return String(Math.abs(Number(i[0]??"0")));case"MOD":{let o=Number(i[0]??"0"),a=Number(i[1]??"0");return String(a!==0?o%a:NaN)}case"POWER":return String(Math.pow(Number(i[0]??"0"),Number(i[1]??"0")));case"SQRT":return String(Math.sqrt(Number(i[0]??"0")));case"CURRENT_DATE":{let o=new Date,a=o.getFullYear(),s=String(o.getMonth()+1).padStart(2,"0"),l=String(o.getDate()).padStart(2,"0");return`${a}-${s}-${l}`}case"CURRENT_TIMESTAMP":return new Date().toISOString()}}function he(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 pr(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 Ki(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 Fi(e){let t=e.slice(0,10);if(!/^\d{4}-\d{2}-\d{2}$/.test(t))return!1;let n=Ki(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 Ba(e){return Ki(e).getUTCDay()}function gc(e){let t=Ki(e),n=t.getUTCDay()||7;return t.setUTCDate(t.getUTCDate()+4-n),t}function nm(e){return gc(e).getUTCFullYear()}function Ac(e){let t=gc(e),n=t.getUTCFullYear(),r=Ki(`${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 rm(e,t){if(!e||e.length<10)return"";let{y:n,mo:r,d:i,h:o,mi:a,sec:s}=pr(e),l=Fi(e);return t.replace(/%[YymcdeHiswavG]/g,d=>{switch(d){case"%Y":return n;case"%y":return n.slice(2);case"%m":return r;case"%c":return String(parseInt(r,10));case"%d":return i;case"%e":return String(parseInt(i,10));case"%H":return o;case"%i":return a;case"%s":return s;case"%w":return l?String(Ba(e)):"";case"%a":return l?["\u65E5","\u6708","\u706B","\u6C34","\u6728","\u91D1","\u571F"][Ba(e)]:"";case"%v":return l?String(Ac(e)).padStart(2,"0"):"";case"%G":return l?String(nm(e)).padStart(4,"0"):"";default:return d}})}function im(e,t){if(e.length<10||t.length<10)return"0";let n=pr(e),r=pr(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 om(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}=pr(e),a=new Date(Date.UTC(+r,+i-1,+o));switch(n){case"YEAR":a.setUTCFullYear(a.getUTCFullYear()+t);break;case"MONTH":a.setUTCMonth(a.getUTCMonth()+t);break;case"DAY":a.setUTCDate(a.getUTCDate()+t);break}let s=String(a.getUTCFullYear()).padStart(4,"0"),l=String(a.getUTCMonth()+1).padStart(2,"0"),d=String(a.getUTCDate()).padStart(2,"0");return`${s}-${l}-${d}`}function am(e){if(!e||e.length<10)return e;let{y:t,mo:n}=pr(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 sm(e,t){if(/^-?\d+$/.test(t.trim()))return lm(e,Math.max(0,Number(t)));let n=t.endsWith("%"),r=t.includes(","),i=n?e*100:e,o=t.replace(/%$/,"").lastIndexOf("."),a=o>=0?t.slice(o+1).replace(/%$/,""):"",s=(a.match(/0/g)??[]).length,l=(a.match(/#/g)??[]).length,d=s+l,p=i.toFixed(d),[c,u=""]=p.split(".");l>0&&(u=u.replace(/0+$/,""));let f=r?c.replace(/\B(?=(\d{3})+(?!\d))/g,","):c,E=u?`${f}.${u}`:f;return n?E+"%":E}function lm(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 um(e,t,n,r){return e.type==="AGG_REF"||e.type==="AGG_ARITH"?"":e.type==="NUMBER"?H(e):String(de(e,t,n,r))}function ut(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 te(e,t,n,r,i){switch(e.type){case"BOOLEAN":return e.value;case"BINARY":return cm(e,t,n,r,i);case"NULL_CHECK":return mm(e,t);case"LOGICAL":return ym(e,t,n,r,i);case"NOT":return!te(e.expr,t,n,r,i);case"GROUP":return te(e.expr,t,n,r,i);case"EXISTS":{let o=e.resolved;return e.not?!o:o}}}function cm(e,t,n,r,i){if(e.op==="KLIKE"||e.op==="NOT_KLIKE"){if(r?.has(e))return!0;throw new Error("KLIKE / NOT KLIKE \u306F\u62BC\u3057\u4E0B\u3052\u6E08\u307F\u96C6\u5408\u306B\u542B\u307E\u308C\u306A\u3044\u305F\u3081 JavaScript \u5074\u3067\u306F\u8A55\u4FA1\u3067\u304D\u307E\u305B\u3093")}let o=Oc(e.left,t,n,i),a=e.left.type==="FIELD"?n?.(e.left):void 0,s=dm(e.left,a,i);return pm(e.op,o,e.right,t,a,n,s,i)}function pm(e,t,n,r,i,o,a=B("string"),s){if(e==="IN"||e==="NOT_IN"){let d=null;if(n.type==="IN_LIST"&&(Rm(n.values),d=new Set(n.values.map(c=>c.type==="NUMBER"?i==="NUMBER"?H(c):String(c.value):c.value))),n.type==="SUBQUERY_IN_LIST"&&(d=n.resolved),d===null)return e==="NOT_IN";let p=Em(t,d,i);return e==="IN"?p:!p}if(e==="LIKE"){let d=$a(n,r,o);return Cc(t,d)}if(e==="NOT_LIKE"){let d=$a(n,r,o);return!Cc(t,d)}if(e==="KLIKE"||e==="NOT_KLIKE")throw new Error("KLIKE / NOT KLIKE \u306F JavaScript \u5074\u3067\u306F\u8A55\u4FA1\u3067\u304D\u307E\u305B\u3093\uFF08SIMPLE SELECT \u3067\u306E\u307F\u4F7F\u7528\u3067\u304D\u307E\u3059\uFF09");let l=$a(n,r,o,s);return Gt(e,t,l,a)}var Tc=new Set(["LENGTH","LENGTH_CHAR","INSTR","ROUND","FLOOR","CEIL","TRUNCATE","YEAR","MONTH","DAY","DATEDIFF","ABS","MOD","POWER","SQRT","DAYOFWEEK","QUARTER","WEEK"]);function dm(e,t,n){if(e.type==="FIELD")return n?.(e)??(t?X({fieldType:t}):B("string"));if(e.type==="ARITH_FIELD")return B("number");if(e.type==="FUNC_FIELD")return B(Tc.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(Tc.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 Ic=new Set(["CHECK_BOX","MULTI_SELECT"]),wc=new Set(["USER_SELECT","ORGANIZATION_SELECT","GROUP_SELECT","STATUS_ASSIGNEE"]),fm=new Set(["CREATOR","MODIFIER"]);function Em(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=>Gt("=",e,a,o))}let i;if(Ic.has(n)||wc.has(n)||fm.has(n))try{i=JSON.parse(e)}catch{return r()}else return r();return Ic.has(n)?!Array.isArray(i)||!i.every(o=>typeof o=="string")?r():i.length===0&&t.has("")?!0:i.some(o=>t.has(o)):wc.has(n)?!Array.isArray(i)||!i.every(bc)?r():i.length===0&&t.has("")?!0:i.some(o=>t.has(o.code)):bc(i)?t.has(i.code):r()}function bc(e){return e!==null&&typeof e=="object"&&!Array.isArray(e)&&typeof e.code=="string"}function Rm(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}: ${at}`)}function mm(e,t){let n=Oc(e.field,t);return e.not?n!=="":n===""}function ym(e,t,n,r,i){return e.op==="AND"?te(e.left,t,n,r,i)&&te(e.right,t,n,r,i):te(e.left,t,n,r,i)||te(e.right,t,n,r,i)}function Oc(e,t,n,r){if(e.type==="FUNC_FIELD")return se(e.expr,t);if(e.type==="ARITH_FIELD")return String(ae(e.expr,t));if(e.type==="CASE_FIELD")return ve(e.expr,t,n,r);if(e.type==="GROUPING_FIELD")return wn(e.ref,t);let i=e.tableAlias?`${e.tableAlias}.${e.field}`:e.field;return ut(t,i)}function $a(e,t,n,r){switch(e.type){case"VARIABLE":throw new Error(`ParseError: unresolved batch variable @${e.name}.`);case"VARIABLE_IN_LIST":throw new Error(`ParseError: unresolved batch array variable @${e.name}.`);case"STRING":return e.value;case"NUMBER":return H(e);case"KINTONE_FUNC":return hm(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"?ut(t,e.expr.field):e.expr.type==="STRING_FUNC"?se(e.expr,t):String(ae(e.expr,t));case"CASE_VALUE":return ve(e.expr,t,n,r);case"ARRAY":return e.elements.map(i=>i.value).join(",")}}function ve(e,t,n,r){for(let i of e.branches)if(te(i.condition,t,n,void 0,r))return Nc(i.result,t,n,r);return e.elseResult!==null?Nc(e.elseResult,t,n,r):""}function Sc(e,t,n,r){for(let i of e.branches)if(te(i.condition,t,n,void 0,r))return Pc(i.result,t,n,r);return e.elseResult===null?null:Pc(e.elseResult,t,n,r)}function Pc(e,t,n,r){return e.type==="ARRAY"?e.elements.map(i=>i.value).join(","):e.type==="FIELD_REF"?t[e.field]??"":e.type==="ARITH"?ae(e,t):Ot(e,t,n,r)}function Nc(e,t,n,r){return e.type==="ARRAY"?e.elements.map(i=>i.value).join(","):e.type==="FIELD_REF"?t[e.field]??"":e.type==="ARITH"?String(ae(e,t)):String(de(e,t,n,r))}function Lc(e){let t=new Date;switch(e){case"TODAY":{let n=t.getFullYear(),r=String(t.getMonth()+1).padStart(2,"0"),i=String(t.getDate()).padStart(2,"0");return`${n}-${r}-${i}`}case"NOW":return t.toISOString();case"LOGINUSER":case"PRIMARY_ORGANIZATION":return""}}function hm(e){throw J(e)?new Error(`${e}: ${Ft}`):fn(e)?new Error(`${e}: ${at}`):new Error(`InternalError: unexpected KINTONE_FUNC name: ${e}`)}var Bi=new Map,gm=200;function Cc(e,t){if(!Lu(t))return e.includes(t);let n=Bi.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"),Bi.size>=gm&&Bi.clear(),Bi.set(t,n)}return n.test(e)}function Nn(e){return Dc(e)}function _c(e){return Dc(e.flatMap(t=>t.rules.map(n=>n.condition)))}function Dc(e){let t=[],n=new Set,r=o=>{if(Array.isArray(o)){o.forEach(r);return}if(o===null||typeof o!="object")return;let a=o;if(a.type==="EXISTS"||a.type==="SUBQUERY_IN_LIST"||a.type==="SCALAR_SUBQUERY")throw fe("CHECK \u306B\u30B5\u30D6\u30AF\u30A8\u30EA\u306F\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093");if(a.type==="FIELD"&&typeof a.field=="string")i(typeof a.tableAlias=="string"?a.tableAlias:null,a.field);else if(a.type==="FIELD_REF"&&typeof a.field=="string"){let s=a.field.indexOf(".");i(s>0?a.field.slice(0,s):null,s>0?a.field.slice(s+1):a.field)}for(let s of Object.values(a))r(s)},i=(o,a)=>{if(/^(COUNT|SUM|AVG|MIN|MAX|GROUP_CONCAT|STDDEV_POP|STDDEV_SAMP|VAR_POP|VAR_SAMP|MEDIAN|MODE)\(/i.test(a))throw fe("CHECK \u306B\u96C6\u7D04\u95A2\u6570\u306F\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093");let s=`${o??""}\0${a}`;n.has(s)||(n.add(s),t.push({tableAlias:o,field:a}))};return r(e),t}function fe(e){return new T(e,{kind:"EOF",value:"CHECK",pos:0})}function $i(e,t,n){let r=[];return e.forEach((i,o)=>{for(let a of i.rules){if(!te(a.condition,t,n))continue;let s=de(a.message,t);r.push({groupIndex:o,message:s==null?"":String(s)});break}}),r}function Va(e){if(At(e))throw new Q("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 Am=new Set(["USER_SELECT","ORGANIZATION_SELECT","GROUP_SELECT"]),Sm=new Set(["CHECK_BOX","MULTI_SELECT"]);function Vi(e,t=new Map){let n=e.values.map(r=>Tm(e.fields,r,t));return Rr(n,100).map(r=>({app:e.appId,records:r}))}function Tm(e,t,n){let r={};return e.forEach((i,o)=>{let a=t[o];a.type==="CASE_VALUE"?r[i]={value:Lt(a.expr,{},n.get(i))}:r[i]={value:ct(a,n.get(i))}}),r}function fr(e){Va(e.where);let t=Hc(e);return{app:e.appId,query:G(e.where),fields:["$id",...t],totalCount:!1}}function Er(e,t,n=new Map){let r=Im(e.assignments,n);return Rr(t,100).map(i=>({app:e.appId,records:i.map(o=>({id:o,record:r}))}))}function Im(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:ct(i,t.get(r))});return n}function Mc(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 Wi(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 Wa(e){Va(e.where);let t=new Set;for(let{value:n}of e.assignments)n.type==="ARITH"?Fc(n,t):n.type==="SCALAR_ARITH"||n.type==="CONCAT_OP"?Cn(n,t):n.type==="STRING_FUNC"?Ha(n,t):n.type==="CASE_VALUE"&&xc(n.expr,t);return Hc(e).forEach(n=>t.add(n)),{app:e.appId,query:G(e.where),fields:["$id",...t],totalCount:!1}}function Fc(e,t){dr(e.left,t),dr(e.right,t)}function dr(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"?Fc(e,t):e.type==="STRING_FUNC"&&Ha(e,t)}function Ha(e,t){for(let n of e.args)wm(n,t)}function wm(e,t){if(e.type==="AGG_REF"||e.type==="AGG_ARITH"){Ga(e,t);return}Cn(e,t)}function Cn(e,t){if(e.type==="FIELD"){t.add(e.tableAlias?`${e.tableAlias}.${e.field}`:e.field);return}if(e.type==="STRING_FUNC"){Ha(e,t);return}if(e.type==="SCALAR_ARITH"||e.type==="CONCAT_OP"){Cn(e.left,t),Cn(e.right,t);return}e.type==="CASE_WHEN"&&xc(e,t)}function Ga(e,t){if(e.type==="AGG_REF"){e.arg.type!=="WILDCARD"&&bm(e.arg,t);return}e.type==="AGG_ARITH"&&(Ga(e.left,t),Ga(e.right,t))}function bm(e,t){e.type==="FIELD_REF"||e.type==="ARITH"?dr(e,t):Cn(e,t)}function vc(e,t){if(e.type!=="ARRAY"){if(e.type==="FIELD_REF"||e.type==="ARITH"){dr(e,t);return}Cn(e,t)}}function xc(e,t){for(let n of e.branches)Gi(n.condition,t),vc(n.result,t);e.elseResult!==null&&vc(e.elseResult,t)}function Gi(e,t){switch(e.type){case"BINARY":e.left.type==="FIELD"?t.add(e.left.field):e.left.type==="ARITH_FIELD"&&dr(e.left.expr,t);break;case"NULL_CHECK":e.field.type==="FIELD"&&t.add(e.field.field);break;case"LOGICAL":Gi(e.left,t),Gi(e.right,t);break;case"NOT":case"GROUP":Gi(e.expr,t);break;case"EXISTS":case"BOOLEAN":break}}function Ya(e,t,n=new Map){let r=t.map(i=>{let o=Number(i.$id.value),a=Kc(i),s={};for(let{field:l,value:d}of e.assignments)s[l]={value:ja(d,a,n.get(l),i)};return{id:o,record:s}});return Rr(r,100).map(i=>({app:e.appId,records:i}))}function ja(e,t,n,r){if(e.type==="ARITH")return String(r?za(e,r):ae(e,t));if(e.type==="SCALAR_ARITH"||e.type==="CONCAT_OP")return String(de(e,t));if(e.type==="STRING_FUNC")return se(e,t);if(e.type==="CASE_VALUE")return Lt(e.expr,t,n);if(e.type==="SOURCE_FIELD")throw new Q("SOURCE_FIELD \u306F UPDATE ... FROM \u5C02\u7528\u3067\u3059");return ct(e,n)}function Hi(e,t,n){if(e.type==="STRING")return e.value;if(e.type==="NUMBER")return H(e);if(e.type==="ARITH")return String(ae(e,t));if(e.type==="CASE_VALUE")return ve(e.expr,t,n);throw new Error(`${e.type} \u306F\u30B5\u30D6\u30C6\u30FC\u30D6\u30EB UPDATE \u306E\u5024\u3068\u3057\u3066\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093`)}var Pm=new Set(["CHECK_BOX","MULTI_SELECT","USER_SELECT","ORGANIZATION_SELECT","GROUP_SELECT","FILE"]);function qa(e,t,n=new Map){let r=t.map(({target:i,source:o})=>{let a=Number(i.$id?.value);if(!Number.isSafeInteger(a)||a<=0)throw new Q("UPDATE ... FROM \u306E\u5BFE\u8C61\u30EC\u30B3\u30FC\u30C9\u756A\u53F7\u304C\u4E0D\u6B63\u3067\u3059");let s=Kc(i),l={};for(let{field:d,value:p}of e.assignments){let c=n.get(d);if(p.type==="SOURCE_FIELD"){if(Pm.has(c??""))throw new Q(`UPDATE ... FROM \u306E SOURCE_FIELD \u306F ${c} \u30D5\u30A3\u30FC\u30EB\u30C9\u306B\u5BFE\u5FDC\u3057\u3066\u3044\u307E\u305B\u3093\uFF08\u30D5\u30A3\u30FC\u30EB\u30C9: ${d}\uFF09`);if(!Object.prototype.hasOwnProperty.call(o,p.field))throw new Q(`UPDATE ... FROM \u306E\u30BD\u30FC\u30B9\u5217 ${p.field} \u304C\u5B58\u5728\u3057\u307E\u305B\u3093`);let u=o[p.field];if(typeof u!="string")throw new Q(`UPDATE ... FROM \u306E SOURCE_FIELD \u306F\u30B9\u30AB\u30E9\u30FC\u5024\u306E\u307F\u5BFE\u5FDC\u3057\u3066\u3044\u307E\u3059\uFF08\u5217: ${p.field}\uFF09`);if((c==="NUMBER"||c==="CALC")&&u!==""&&!Number.isFinite(Number(u)))throw new Q(`\u6570\u5024\u30D5\u30A3\u30FC\u30EB\u30C9 ${d} \u306B\u5909\u63DB\u3067\u304D\u306A\u3044\u5024\u3067\u3059: ${u}`);l[d]={value:ct({type:"STRING",value:u},c)}}else{if(p.type==="STRING_FUNC")throw new Q("UPDATE ... FROM \u306E SET \u3067\u306F\u6587\u5B57\u5217\u95A2\u6570\u3092\u76F4\u63A5\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093");p.type==="ARITH"?l[d]={value:String(za(p,i))}:p.type==="SCALAR_ARITH"||p.type==="CONCAT_OP"?l[d]={value:String(de(p,s))}:p.type==="CASE_VALUE"?l[d]={value:Lt(p.expr,s,c)}:l[d]={value:ct(p,c)}}}return{id:a,record:l}});return Rr(r,100).map(i=>({app:e.appId,records:i}))}function Kc(e){return Object.fromEntries(Object.entries(e).map(([t,n])=>[t,typeof n.value=="string"?n.value:JSON.stringify(n.value??"")]))}function za(e,t){let n=Uc(e.left,t),r=Uc(e.right,t);switch(e.op){case"+":return n+r;case"-":return n-r;case"*":return n*r;case"/":if(r===0)throw new Q("\u7B97\u8853\u5F0F\u3067\u30BC\u30ED\u9664\u7B97\u304C\u767A\u751F\u3057\u307E\u3057\u305F");return n/r;case"%":if(r===0)throw new Q("\u7B97\u8853\u5F0F\u3067\u30BC\u30ED\u9664\u7B97\u304C\u767A\u751F\u3057\u307E\u3057\u305F");return n%r}}function Uc(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 za(e,t);if(e.type==="STRING_FUNC")throw new Q("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 Q(`\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 Bc(e){return Va(e.where),{app:e.appId,query:G(e.where),fields:["$id"],totalCount:!1}}function $c(e,t){return Rr(t,100).map(n=>({app:e,ids:n}))}function Gc(e){return Am.has(e??"")}function Nm(e){return Sm.has(e??"")}function Cm(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 Om(e){return!e||/^\d{4}-\d{2}-\d{2}$/.test(e)?e:e.replace(/\//g,"-")}function Vc(e,t){return Gc(t)?e===""?[]:e.split(",").map(n=>({code:n.trim()})):Nm(t)?e===""?[]:e.split(",").map(n=>n.trim()):t==="DATETIME"?Cm(e):t==="DATE"?Om(e):e}function Wc(e,t){return Gc(t)?e.map(n=>({code:n})):e}function kc(e,t,n){return e.type==="ARRAY"?Wc(e.elements.map(r=>r.value),n):e.type==="STRING"?Vc(e.value,n):e.type==="STRING_FUNC"?se(e,t):e.type==="FIELD_REF"||e.type==="ARITH"?String(ae(e,t)):String(de(e,t))}function Hc(e){if(!e.checkGroups)return[];let t=`app${e.appId}`.toLowerCase();return[...new Set(Nn(e.checkGroups).filter(n=>n.tableAlias===null||n.tableAlias.toLowerCase()===t).map(n=>n.field).filter(n=>n!=="$id"))]}function Lt(e,t,n){for(let r of e.branches)if(te(r.condition,t))return kc(r.result,t,n);return e.elseResult!==null?kc(e.elseResult,t,n):""}function ct(e,t){let n=Ja(e,t);if(!n.ok)throw new Q(n.message);return n.value}function Ja(e,t){try{return{ok:!0,value:Lm(e,t)}}catch(n){return{ok:!1,message:n instanceof Error?n.message:String(n)}}}function Lm(e,t){switch(e.type){case"VARIABLE":throw new Q(`\u672A\u89E3\u6C7A\u306E\u30D0\u30C3\u30C1\u5909\u6570 @${e.name} \u304C\u3042\u308A\u307E\u3059`);case"VARIABLE_IN_LIST":throw new Q(`\u672A\u89E3\u6C7A\u306E\u914D\u5217\u5909\u6570 @${e.name} \u304C\u3042\u308A\u307E\u3059`);case"STRING":return Vc(e.value,t);case"NUMBER":return H(e);case"ARRAY":return Wc(e.elements.map(n=>n.value),t);case"KINTONE_FUNC":throw new Q(`${e.name}() \u306F INSERT / UPDATE \u306E\u5024\u3068\u3057\u3066\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093`);case"IN_LIST":throw new Q("IN_LIST \u306F INSERT / UPDATE \u306E\u5024\u3068\u3057\u3066\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093");case"ARITH_VALUE":throw new Q("\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 Q("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 Q("IN (SELECT ...) \u306F INSERT / UPDATE \u306E\u5024\u3068\u3057\u3066\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093");case"SCALAR_SUBQUERY":throw new Q("\u30B9\u30AB\u30E9\u30FC\u30B5\u30D6\u30AF\u30A8\u30EA\u306F INSERT / UPDATE \u306E\u5024\u3068\u3057\u3066\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093")}}function Rr(e,t){let n=[];for(let r=0;r<e.length;r+=t)n.push(e.slice(r,r+t));return n}var Q=class extends Error{constructor(t){super(t),this.name="DmlConvertError"}};var Xa=new Set(["CHECK_BOX","MULTI_SELECT"]),_m=new Set(["USER_SELECT","ORGANIZATION_SELECT","GROUP_SELECT"]);function mr(e){throw new Error(`ArgumentError: ${e}`)}function Yc(e,t,n){let r=Dm(n.fieldType,e.field),i=vm(t,r,e.field),o=new Set(i),a=[],s=new Set,l=new Set;for(let m of e.operations){let y=m.value;y!==""&&(m.kind==="ADD"?(s.has(y)||a.push(y),s.add(y)):l.add(y))}for(let m of s)l.has(m)&&mr(`APPLY multi-value field ${e.field} has conflicting ADD and REMOVE for ${JSON.stringify(m)}.`);let d=i.filter(m=>!l.has(m)),p=a.filter(m=>!o.has(m)),c=[...d,...p],u=new Set(i.filter(m=>l.has(m))).size,f=new Set,E=new Set,R=e.operations.map(m=>{let y=m.kind==="ADD"?f:E,g=!y.has(m.value);return y.add(m.value),{kind:m.kind,value:m.value,changed:m.value!==""&&g&&(m.kind==="ADD"?!o.has(m.value):o.has(m.value))}}),h=Xa.has(r)?c:c.map(m=>({code:m}));return{field:e.field,fieldType:r,operations:R,postImageValue:h,addedValues:p.length,removedValues:u,changedValues:p.length+u}}function Dm(e,t){return Xa.has(e)||_m.has(e)?e:mr(`APPLY multi-value target ${t} has unsupported type ${e}.`)}function vm(e,t,n){if(!Array.isArray(e))return mr(`APPLY snapshot for ${n} must be an array.`);let r=e.map((i,o)=>Xa.has(t)?typeof i!="string"?mr(`APPLY snapshot for ${n} must contain string values (item ${o+1}).`):i:typeof i!="object"||i===null||typeof i.code!="string"?mr(`APPLY snapshot for ${n} must contain {code: string} values (item ${o+1}).`):i.code);return[...new Set(r.filter(i=>i!==""))]}function Y(e){throw new Error(`ArgumentError: ${e}`)}function es(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?Y("APPLY parent selector must be a single positive $id."):t.right.value}function pt(e,t){let n=e.applyBlocks;if(!n?.length)return Y("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)Qa(s.field,null,r),Um(s.value,r);for(let s of n){(i.has(s.field)||o.has(s.field))&&Y(`APPLY has more than one block for field ${s.field}.`),e.assignments.some(c=>c.field===s.field)&&Y(`APPLY target ${s.field} is also assigned by parent SET.`);let l=t.find(c=>c.code===s.field&&!c.inSubtable);if(!l)return s.targetKind==="SUBTABLE"?Y(`APPLY target ${s.field} is not a SUBTABLE.`):Y(`APPLY target ${s.field} does not exist as a top-level field.`);if(Nu(s,l.fieldType),s.targetKind==="MULTI_VALUE"){l.writable===!1&&Y(`APPLY target ${s.field} is not writable (${l.fieldType}).`),o.set(s.field,l);continue}let d=l,p=new Map(t.filter(c=>c.inSubtable&&c.subtableCode===s.field).map(c=>[c.code,c]));i.set(s.field,d),a.set(s.field,p);for(let c of s.operations)if(c.kind==="PATCH"){for(let u of c.assignments)Qa(u.field,s.field,r,p),Za(u.value,s.field,r,p);c.selector.kind==="WHERE"&&Za(c.selector.where,s.field,r,p)}else if(c.kind==="APPEND"){let u=new Set;for(let f of c.fields)u.has(f)&&Y(`APPLY APPEND specifies child ${f} more than once.`),u.add(f),Qa(f,s.field,r,p)}else c.kind==="REMOVE"&&c.selector.kind==="WHERE"&&Za(c.selector.where,s.field,r,p)}return{targetTables:i,targetMultiValueFields:o,childrenByTable:a,fieldsByCode:r}}function Um(e,t){yr(e,n=>{if(n==="$id"||n==="$revision")return;let r=t.get(n);(!r||r.inSubtable)&&Y(`APPLY parent reference ${n} is not a top-level field.`),r.fieldType==="FILE"&&Y(`APPLY parent FILE reference ${n} is not supported.`)})}function Qa(e,t,n,r){(e.startsWith("_")||e.startsWith("$"))&&Y(`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&&Y(`APPLY child ${e} does not belong to subtable ${t}.`),Y(`APPLY ${t===null?"parent field":"child"} ${e} does not exist.`)}(i.fieldType==="SUBTABLE"||i.fieldType==="FILE"||i.writable===!1)&&Y(`APPLY assignment target ${e} is not writable (${i.fieldType}).`)}function Za(e,t,n,r){yr(e,i=>{if(i==="_rid"||i==="_idx"||r.has(i))return;n.get(i)?.inSubtable&&Y(`APPLY child reference ${i} does not belong to subtable ${t}.`),Y(`APPLY child reference ${i} does not exist in subtable ${t}.`)})}function Yi(e,t){let n=pt(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)yr(i.value,o=>{let a=n.fieldsByCode.get(o);!a?.inSubtable&&a?.fieldType!=="FILE"&&r.add(o)});return[...r]}function ji(e,t){let n={_rid:e.id??"",_idx:String(t)};for(let[r,i]of Object.entries(e.value??{}))n[r]=Qc(i?.value);return n}function qc(e){let{statement:t,snapshot:n,fieldInfos:r}=e,i=e.metadata??pt(t,r),o=rs(n.$id?.value,"APPLY snapshot $id"),a=es(t);return o!==a&&Y(`APPLY snapshot $id ${o} does not match requested $id ${a}.`),Jc(t,n,i,o)}function zc(e,t,n,r=pt(e,n)){let i=new Set;return t.map(o=>{let a=rs(o.$id?.value,"APPLY snapshot $id");return i.has(a)&&Y(`APPLY snapshots contain duplicate parentId ${a}.`),i.add(a),Jc(e,o,r,a)})}function Jc(e,t,n,r){let i=rs(t.$revision?.value,"APPLY snapshot $revision"),o=[],a=[];for(let p of e.applyBlocks){if(p.targetKind==="MULTI_VALUE"){let w=n.targetMultiValueFields.get(p.field);w||Y(`APPLY multi-value metadata for ${p.field} is missing.`),a.push(Yc(p,t[p.field]?.value,w));continue}let c=n.childrenByTable.get(p.field),u=Bm(t,p.field),f=new Set;for(let w of u)w.id||Y(`APPLY snapshot for ${p.field} contains a row without _rid.`),f.has(w.id)&&Y(`APPLY snapshot for ${p.field} contains duplicate _rid ${w.id}.`),f.add(w.id);let E=w=>w.field==="_rid"?"SINGLE_LINE_TEXT":w.field==="_idx"?"NUMBER":c.get(w.field)?.fieldType,R=[],h=[],m=[],y=new Set,g=new Set,S=new Set,P=p.operations.some(w=>w.kind==="REMOVE");for(let[w,D]of p.operations.entries()){if(D.kind==="APPEND"){let N=ts(D,c,p.field);m.push({kind:"APPEND",addedRows:N.length}),h.push(...N);continue}if(D.kind==="REMOVE"){let N=Fm(D,u,E,p.field);D.expectRows&&jc(D.expectRows,N.length,r,p.field,w,D.kind),m.push({kind:"REMOVE",removedRows:N.length});for(let _ of N){let A=u[_].id;g.has(_)&&Y(`APPLY row ${A} is selected by both PATCH and REMOVE.`),S.has(_)&&Y(`APPLY removes row ${A} more than once.`),S.add(_)}continue}if(D.kind!=="PATCH")continue;let M=Mm(D,u,E,p.field);D.expectRows&&jc(D.expectRows,M.length,r,p.field,w,D.kind),m.push({kind:"PATCH",matchedRows:M.length,changedRows:M.length});for(let N of M){let _=u[N];S.has(N)&&Y(`APPLY row ${_.id} is selected by both PATCH and REMOVE.`),g.add(N);let A=ji(_,N);for(let C of D.assignments){let x=`${_.id}\0${C.field}`;y.has(x)&&Y(`APPLY patches cell ${_.id}.${C.field} more than once.`),y.add(x),R.push({rowIndex:N,field:C.field,value:Hi(C.value,A,E)})}}}let b=new Map;for(let w of R){let D=b.get(w.rowIndex)??{};D[w.field]={value:w.value},b.set(w.rowIndex,D)}let I=[...u.flatMap((w,D)=>S.has(D)?[]:[{id:w.id,value:{...w.value,...b.get(D)??{}}}]),...h],v={table:p.field,operations:m,changedSubtableRows:b.size+S.size+h.length,deletedRows:S.size,snapshotRowIds:u.map(w=>w.id),postImageRows:I};P?o.push({...v,payloadShape:"FULL_SURVIVORS",removedRowIds:u.flatMap((w,D)=>S.has(D)?[w.id]:[]),payloadRows:I.map(w=>({...w.id===void 0?{}:{id:w.id},value:w.value}))}):o.push({...v,payloadShape:"PATCH_ONLY",payloadRows:[...u.map((w,D)=>{let M=b.get(D);return M?{id:w.id,value:M}:{id:w.id}}),...h.map(w=>({value:w.value}))]})}let s=$m(t),l={};for(let p of e.assignments){let c=n.fieldsByCode.get(p.field)?.fieldType;l[p.field]={value:ja(p.value,s,c,t)}}let d={...t};Object.assign(d,l);for(let p of o)d[p.table]={value:p.postImageRows};for(let p of a)d[p.field]={value:p.postImageValue};return{app:e.appId,parentId:r,revision:i,parentRows:1,changedSubtableRows:o.reduce((p,c)=>p+c.changedSubtableRows,0),parentValues:l,postImage:d,tables:o,multiValues:a}}function jc(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}`;Y(`APPLY EXPECT ROWS mismatch for parent $id ${n}, table ${r}, operation ${i+1} (${o}): expected ${s}, actual ${t}.`)}function qi(e,t){let n=e.tables.map(o=>{let a=t[o.table]?.value;if(!Array.isArray(a)||a.length!==o.postImageRows.length)return Y(`APPLY normalized post-image for ${o.table} has an unexpected row count.`);let s=o.payloadRows.map((l,d)=>{let p=a[d];return p?.value?l.id===void 0?{value:p.value}:l.value===void 0?{id:l.id}:{id:l.id,value:Object.fromEntries(Object.keys(l.value).map(c=>[c,p.value[c]]))}:Y(`APPLY normalized post-image for ${o.table} row ${d+1} has no value.`)});return{...o,payloadRows:s,postImageRows:a}}),r=Object.fromEntries(Object.keys(e.parentValues).map(o=>[o,t[o]??e.parentValues[o]])),i=e.multiValues.map(o=>{let a=t[o.field]?.value;return Array.isArray(a)?{...o,postImageValue:a}:Y(`APPLY normalized post-image for ${o.field} is not an array.`)});return{...e,parentValues:r,tables:n,multiValues:i,postImage:t}}function ts(e,t,n){return e.values.map(r=>({value:km(e,r,t,n)}))}function km(e,t,n,r){if(t.length!==e.fields.length)return Y(`APPLY APPEND for ${r} has ${t.length} values for ${e.fields.length} fields.`);let i=new Map(e.fields.map((a,s)=>[a,t[s]])),o={};for(let a of n.values()){if(a.fieldType==="FILE"||a.writable===!1)continue;let s=i.get(a.code);o[a.code]={value:s===void 0?ns(a):s.type==="CASE_VALUE"?Lt(s.expr,{},a.fieldType):ct(s,a.fieldType)}}return o}function ns(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 Mm(e,t,n,r){return Xc(e.selector,t,n,r)}function Fm(e,t,n,r){return Xc(e.selector,t,n,r)}function Xc(e,t,n,r){if(e.kind==="ALL_ROWS")return t.map((l,d)=>d);let i=e.where,o=t.flatMap((l,d)=>te(i,ji(l,d),n)?[d]:[]),a=xm(i);a!==null&&o.length===0&&Y(`APPLY _rid ${a} does not exist in snapshot table ${r}.`);let s=Km(i);return s!==null&&o.length===0&&Y(`APPLY _idx ${s} does not exist in snapshot table ${r}.`),o}function xm(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 Km(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 Bm(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:{}}}):Y(`APPLY snapshot field ${t} is not a subtable value.`)}function rs(e,t){let n=Number(e);return(!Number.isSafeInteger(n)||n<=0)&&Y(`${t} must be a positive integer.`),n}function $m(e){let t={};for(let[n,r]of Object.entries(e))t[n]=Qc(r?.value);return t}function Qc(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 yr(e,t){if(Array.isArray(e)){e.forEach(r=>yr(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))yr(r,t)}function re(e){throw new Error(`ArgumentError: ${e}`)}function Ji(e){let t=Number(e.$revision?.value);return!Number.isSafeInteger(t)||t<=0?re("APPLY snapshot $revision must be a positive integer."):t}function hr(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),Gm(i),t[i.table]={value:i.payloadRows};return{app:e.app,records:[{id:e.parentId,revision:e.revision,record:t}]}}function Zc(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 Gm(e){let t=is(e.snapshotRowIds,`${e.table} snapshot`),n=e.payloadRows.flatMap(p=>p.id===void 0?[]:[p.id]);for(let p of e.payloadRows)p.id===void 0&&p.value===void 0&&re(`APPLY ${e.payloadShape} table ${e.table} contains an APPEND row without value.`);if(is(n,`${e.table} payload`),e.payloadShape==="PATCH_ONLY"){e.operations.some(u=>u.kind==="REMOVE")&&re(`APPLY PATCH_ONLY table ${e.table} cannot contain REMOVE.`);let p=e.payloadRows.slice(0,t.length).map(u=>u.id??"");zi(t,p,`APPLY PATCH_ONLY table ${e.table} must retain every snapshot row id in order.`),e.payloadRows.slice(t.length).some(u=>u.id!==void 0)&&re(`APPLY PATCH_ONLY table ${e.table} must place every APPEND row after snapshot rows.`);let c=e.postImageRows.slice(0,t.length).map(u=>u.id??"");zi(t,c,`APPLY PATCH_ONLY table ${e.table} post-image must retain every snapshot row id in order.`),e.postImageRows.slice(t.length).some(u=>u.id!==void 0)&&re(`APPLY PATCH_ONLY table ${e.table} post-image must place every APPEND row after snapshot rows.`);return}e.operations.some(p=>p.kind==="REMOVE")||re(`APPLY FULL_SURVIVORS table ${e.table} requires a REMOVE operation.`);let r=is(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(p=>p.id===void 0?[]:[p.id]),o=new Set(r),a=new Set(i);for(let p of r)a.has(p)&&re(`APPLY FULL_SURVIVORS table ${e.table} has intersecting survivor/removed id ${p}.`);let s=t.filter(p=>!o.has(p));zi(s,i,`APPLY FULL_SURVIVORS table ${e.table} must retain every survivor in snapshot order.`);let l=e.payloadRows.slice(0,i.length).map(p=>p.id??"");zi(i,l,`APPLY FULL_SURVIVORS table ${e.table} payload must enumerate every survivor in order.`),(e.payloadRows.slice(i.length).some(p=>p.id!==void 0)||e.postImageRows.slice(i.length).some(p=>p.id!==void 0))&&re(`APPLY FULL_SURVIVORS table ${e.table} must place every APPEND row after survivors.`),e.payloadRows.some(p=>p.value===void 0)&&re(`APPLY FULL_SURVIVORS table ${e.table} requires values for every survivor.`),e.payloadRows.some((p,c)=>!os(p.value,e.postImageRows[c]?.value))&&re(`APPLY FULL_SURVIVORS table ${e.table} payload must contain every post-image child value.`);let d=new Set([...i,...r]);(d.size!==t.length||t.some(p=>!d.has(p)))&&re(`APPLY FULL_SURVIVORS table ${e.table} does not partition every snapshot row.`)}function is(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 zi(e,t,n){(e.length!==t.length||e.some((r,i)=>r!==t[i]))&&re(n)}function os(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)=>os(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)&&os(n[a],r[a]))}function ep(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 tp(e){let t=e.numberPrecision;if(t==null||typeof t!="object")throw new Error("SettingsError: numberPrecision is missing from app settings.");let n=ep(t.digits,"digits",1,30),r=ep(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 np(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 Vm=new Set(["CHECK_BOX","MULTI_SELECT"]),Wm=new Set(["DROP_DOWN","RADIO_BUTTON","CHECK_BOX","MULTI_SELECT"]);function Ne(e,t,n){if(t.fieldType==="DATE"||t.fieldType==="TIME"||t.fieldType==="DATETIME"){let i=Hm(e);if(i!==""&&!Ym(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=gr(e,t.fieldType)}catch(i){let o=i instanceof Error?i.message:String(i);return{ok:!1,code:jm(t.fieldType),message:o}}if(t.required&&Xi(r))return{ok:!1,code:"ERR_REQUIRED",message:`${t.code} \u306F\u5FC5\u9808\u3067\u3059`};if(!Xi(r)&&t.fieldType==="NUMBER"){let i=String(r),o=Le(i);if(o===null)return{ok:!1,code:"ERR_TYPE_NUMBER",message:`${t.code} \u306F\u6570\u5024\u3067\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044`};if(t.minValue!=null&&fi(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&&fi(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}=np(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(!Xi(r)&&(t.fieldType==="DATE"||t.fieldType==="TIME"||t.fieldType==="DATETIME")&&!Vt(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!Xi(r)&&Wm.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 Hm(e){return e==null?"":Qi(e)&&e.type==="NUMBER"?H(e):Qi(e)&&e.type==="STRING"?e.value:typeof e=="string"||typeof e=="number"?String(e):""}function Ym(e,t){if(t==="DATE")return Vt(e.replace(/\//g,"-"),"DATE");if(t==="TIME")return Vt(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)?Vt(n.slice(0,10),"DATE")&&Vt(n.slice(11),"TIME"):Vt(n,"DATETIME")}function gr(e,t){if(Qi(e)){let r=Ja(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(Vm.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 Qi(e){return typeof e=="object"&&e!==null&&typeof e.type=="string"}function Wt(e){if(e==null||e==="")return!0;if(Array.isArray(e))return e.length===0;if(Qi(e)){if(e.type==="STRING")return e.value==="";if(e.type==="ARRAY")return e.elements.length===0}return!1}function Xi(e){return e===""||Array.isArray(e)&&e.length===0}function jm(e){return e==="NUMBER"?"ERR_TYPE_NUMBER":"ERR_TYPE_DATE"}function Vt(e,t){if(t==="TIME"){let d=/^(\d{2}):(\d{2})(?::(\d{2}))?$/.exec(e);return d!==null&&Number(d[1])<=23&&Number(d[2])<=59&&Number(d[3]??0)<=59}let n=t==="DATE"?e:e.slice(0,10),r=/^(\d{4})-(\d{2})-(\d{2})$/.exec(n);if(!r)return!1;let i=Number(r[1]),o=Number(r[2]),a=Number(r[3]),s=new Date(Date.UTC(i,o-1,a));if(s.getUTCFullYear()!==i||s.getUTCMonth()!==o-1||s.getUTCDate()!==a)return!1;if(t==="DATE")return!0;let l=e.slice(11,e.endsWith("Z")?-1:e.length-6).replace(/\.\d+$/,"");return/^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}(?::\d{2})?(?:\.\d+)?(?:Z|[+-]\d{2}:\d{2})$/.test(e)&&Vt(l,"TIME")}var On=["$err_statement","$err_operation","$err_row","$err_field","$err_code","$err_message","$err_value","$err_subtable","$err_subrow","$err_subrow_id"];function as(e,t,n){let r=new Map(n.map(i=>[i.code,i]));for(let i of e)if(i.mode==="update"){i.record??(i.record={});for(let o of t){if(!i.payload.has(o))continue;let a=i.payload.get(o),s=r.get(o).fieldType,l=["USER_SELECT","ORGANIZATION_SELECT","GROUP_SELECT"].includes(s)&&Array.isArray(a)&&a.every(p=>typeof p=="object"&&p!==null&&"code"in p),d=a;try{d=gr(a,s)}catch{}i.record[o]={value:l?a:d}}}}function ss(e,t,n,r,i,o,a,s=[],l=!0,d=!0,p={}){let c=new Map(i.map(h=>[h.code,h])),u=[],f=new Set,E=[];p.validateUpdateBuiltIns===!1&&as(e,r,i);let R;for(let h of e){h.record??(h.record={});let m=d?[...h.preErrors]:[],y=[],g=[],S=h.mode==="create"||p.validateUpdateBuiltIns!==!1;for(let I of r){if(!h.payload.has(I))continue;let v=h.payload.get(I),w=c.get(I).fieldType,D=["USER_SELECT","ORGANIZATION_SELECT","GROUP_SELECT"].includes(w)&&Array.isArray(v)&&v.every(N=>typeof N=="object"&&N!==null&&"code"in N);if(!S)continue;let M=Ne(v,c.get(I),a);M.ok?h.record[I]={value:D?v:M.value}:y.push({field:I,code:M.code,message:M.message})}if(l&&h.mode==="create")for(let I of i){if(I.inSubtable||h.payload.has(I.code))continue;if(Wt(I.defaultValue)){let w=Ne("",I,a);w.ok?I.required&&y.push({field:I.code,code:"ERR_REQUIRED",message:`${I.code} \u306F\u5FC5\u9808\u3067\u3059`}):y.push({field:I.code,code:w.code,message:w.message})}else{let w=Ne(I.defaultValue,I,a);w.ok||y.push({field:I.code,code:w.code,message:`\u65E2\u5B9A\u5024: ${w.message}`})}}if(s.length>0){let I=h.evaluationRow??Object.fromEntries([...h.payload].map(([D,M])=>[D,ze(M)])),v=h.evaluationFieldTypes,w=D=>{let M=D.tableAlias?`${D.tableAlias}.${D.field}`:D.field;return v?.get(M)??v?.get(D.field)};try{for(let D of $i(s,I,w))g.push({field:"",code:"ERR_CHECK",message:D.message})}catch(D){R??(R=D)}}let P=I=>I.map(v=>{let w={};for(let D of n)w[D]=ze(h.payload.get(D));return w.$err_statement=String(o),w.$err_operation=t,w.$err_row=String(h.rowNumber),w.$err_field=v.field,w.$err_code=v.code,w.$err_message=v.message,w.$err_value="",w.$err_subtable="",w.$err_subrow="",w.$err_subrow_id="",w}),b={rowNumber:h.rowNumber,preErrors:P(m),builtInErrors:P(y),checkErrors:P(g)};E.push(b);let L=[...b.preErrors,...b.builtInErrors,...b.checkErrors];L.length>0&&f.add(h.rowNumber),u.push(...L)}if(R!==void 0)throw R;return{errors:u,invalidRows:f.size,invalidRowNumbers:f,candidateResults:E}}function ze(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 ls=["required","length","range","choice"];function us(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 cs(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 qm(e){return us(e).length>0}function zm(e){return e.fieldType==="NUMBER"||qm(e)}function Zi(e,t,n){return{subtable:e,subrow:t+1,subrowId:String(n.id??"")}}function ps(e,t){let{topByCode:n,childrenByTable:r}=cs(t),i=zm;if(e.targets===void 0)return[...t.filter(l=>!l.inSubtable&&l.fieldType!=="SUBTABLE"&&i(l)),...t.filter(l=>l.inSubtable&&!!l.subtableCode&&i(l))].map(l=>({field:l,...l.subtableCode?{subtableCode:l.subtableCode}:{}}));let o=[],a=new Set,s=(l,d)=>{let p=d?`${d}\0${l.code}`:l.code;if(a.has(p))throw new Error(`ArgumentError: VALIDATE \u306E\u30D5\u30A3\u30FC\u30EB\u30C9 ${l.code} \u304C\u91CD\u8907\u3057\u3066\u3044\u307E\u3059\u3002`);if(a.add(p),!i(l))throw new Error(`ArgumentError: VALIDATE \u306E\u30D5\u30A3\u30FC\u30EB\u30C9 ${l.code} \u306B\u306F\u76E3\u67FB\u53EF\u80FD\u306A\u5236\u7D04\u304C\u3042\u308A\u307E\u305B\u3093\u3002`);o.push({field:l,...d?{subtableCode:d}:{}})};for(let l of e.targets){if(l.kind==="SUBTABLE"){let c=r.get(l.subtableCode);if(!c)throw new Error(`ArgumentError: VALIDATE \u306E\u30B5\u30D6\u30C6\u30FC\u30D6\u30EB ${l.subtableCode} \u306F\u5B58\u5728\u3057\u307E\u305B\u3093\u3002`);if(l.children.length===0)throw new Error(`ArgumentError: VALIDATE \u306E\u30B5\u30D6\u30C6\u30FC\u30D6\u30EB ${l.subtableCode} \u306B\u306F1\u3064\u4EE5\u4E0A\u306E\u5B50\u30D5\u30A3\u30FC\u30EB\u30C9\u304C\u5FC5\u8981\u3067\u3059\u3002`);for(let u of l.children){let f=c.find(E=>E.code===u);if(!f){let E=[...r.entries()].some(([R,h])=>R!==l.subtableCode&&h.some(m=>m.code===u));throw new Error(E?`ArgumentError: VALIDATE \u306E\u5B50\u30D5\u30A3\u30FC\u30EB\u30C9 ${u} \u306F\u30B5\u30D6\u30C6\u30FC\u30D6\u30EB ${l.subtableCode} \u306B\u5C5E\u3057\u3066\u3044\u307E\u305B\u3093\u3002`:`ArgumentError: VALIDATE \u306E\u5B50\u30D5\u30A3\u30FC\u30EB\u30C9 ${u} \u306F\u30B5\u30D6\u30C6\u30FC\u30D6\u30EB ${l.subtableCode} \u306B\u5B58\u5728\u3057\u307E\u305B\u3093\u3002`)}s(f,l.subtableCode)}continue}let d=l.field;if(d==="$id")throw new Error("ArgumentError: VALIDATE \u3067\u306F\u30B7\u30B9\u30C6\u30E0\u30D5\u30A3\u30FC\u30EB\u30C9 $id \u3092\u76E3\u67FB\u3067\u304D\u307E\u305B\u3093\u3002");let p=n.get(d);if(p?.fieldType==="SUBTABLE"){let c=(r.get(d)??[]).filter(i);if(c.length===0)throw new Error(`ArgumentError: VALIDATE \u306E\u30B5\u30D6\u30C6\u30FC\u30D6\u30EB ${d} \u306B\u306F\u76E3\u67FB\u53EF\u80FD\u306A\u5B50\u30D5\u30A3\u30FC\u30EB\u30C9\u304C\u3042\u308A\u307E\u305B\u3093\u3002`);c.forEach(u=>s(u,d));continue}if(p){s(p);continue}throw[...r.values()].some(c=>c.some(u=>u.code===d))?new Error(`ArgumentError: VALIDATE \u306E\u5B50\u30D5\u30A3\u30FC\u30EB\u30C9 ${d} \u306F\u6240\u6709\u30B5\u30D6\u30C6\u30FC\u30D6\u30EB\u3092\u542B\u3080 T(${d}) \u5F62\u5F0F\u3067\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044\u3002`):new Error(`ArgumentError: VALIDATE \u306E\u30D5\u30A3\u30FC\u30EB\u30C9 ${d} \u306F\u5B58\u5728\u3057\u307E\u305B\u3093\u3002`)}return o}function Ar(e,t){return Wt(e)?"":ze(gr(e,t))}var Jm=new Set(["CALC","RECORD_NUMBER","CREATOR","CREATED_TIME","MODIFIER","UPDATED_TIME","STATUS","STATUS_ASSIGNEE","CATEGORY","REFERENCE_TABLE"]),Sr=On;function Je(e,t=["$id"]){let n=cs(e),r=n.topLevel.filter(o=>o.fieldType!=="SUBTABLE"&&o.fieldType!=="FILE"&&!Jm.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 Ht(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 Yt(e,t,n,r,i=1,o="UPDATE"){let a=Xm(e),s=[],l=new Set,d=[...t.payloadFields,...Sr],p=ze(e.$id?.value),c=(u,f,E,R)=>{l.add(i);let h={};for(let m of t.payloadFields)h[m]=m==="$id"?p:ze(e[m]?.value);h.$err_statement=String(r),h.$err_operation=o,h.$err_row=String(i),h.$err_field=u.code,h.$err_code=E.code,h.$err_message=E.message,h.$err_value=Ar(f,u.fieldType),h.$err_subtable=R?.subtable??"",h.$err_subrow=R?String(R.subrow):"",h.$err_subrow_id=R?.subrowId??"",s.push(h)};for(let u of t.topLevel){let f=e[u.code]?.value,E=Ne(f,u,n);E.ok?a[u.code]={value:rp(f,u.fieldType,E.value)}:c(u,f,E)}for(let[u,f]of t.subtables){let E=e[u]?.value;if(!Array.isArray(E))continue;let R=a[u]?.value;for(let h=0;h<E.length;h++){let m=E[h],y=R[h];for(let g of f){let S=m.value?.[g.code]?.value,P=Ne(S,g,n);P.ok?(y.value??(y.value={}),y.value[g.code]={value:rp(S,g.fieldType,P.value)}):c(g,S,P,Zi(u,h,m))}}}return{normalizedRecord:a,errors:s,columns:d,invalidRows:l.size,invalidRowNumbers:l,errorCount:s.length}}function rp(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 Xm(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 eo(e){let{statement:t,snapshots:n,fieldInfos:r,metadata:i,dmlMaxRows:o,dmlMaxSubtableRows:a,statementNumber:s=1}=e;ip(o,"dmlMaxRows"),ip(a,"dmlMaxSubtableRows");for(let g of n)Ji(g);let l=zc(t,n,r,i),d=Je(r,t.assignments.map(g=>g.field)),p=l.some(g=>Ht(g.postImage,d));if(p&&!e.loadNumberPrecision)throw new Error("InternalError: APPLY number precision loader is required for NUMBER post-images.");let c=p?await e.loadNumberPrecision():void 0,u=l.map((g,S)=>Yt(g.postImage,d,c,s,e.parentRowNumbers?.[S]??S+1));if(!t.validateOnly){let g=u.flatMap(S=>S.errors);if(g.length>0)throw new Error(`ArgumentError: APPLY post-image validation failed: ${JSON.stringify({columns:u[0]?.columns??[],errors:g})}`)}let f=l.length,E=l.reduce((g,S)=>g+S.changedSubtableRows,0),R=f>o||E>a;if(!t.validateOnly&&f>o)throw new Error(`ArgumentError: APPLY parent rows (${f}) exceed dmlMaxRows (${o}).`);if(!t.validateOnly&&E>a)throw new Error(`ArgumentError: APPLY changed subtable rows (${E}) exceed dmlMaxSubtableRows (${a}).`);let h=l.map((g,S)=>qi(g,u[S].normalizedRecord)),m=h.flatMap(g=>hr(g).records),y=u.map(g=>({errors:g.errors,columns:g.columns,invalidRows:g.invalidRows,errorCount:g.errorCount}));return op({plans:h,records:m,validations:y,guards:{revisionRequired:!0,parentRows:f,dmlMaxRows:o,subtableRows:E,dmlMaxSubtableRows:a,wouldExceed:R}})}function ip(e,t){if(!Number.isSafeInteger(e)||e<=0)throw new Error(`ArgumentError: ${t} must be a positive safe integer.`)}function op(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))op(n,t);return Object.freeze(e)}var ds=new Set(["CALC","RECORD_NUMBER","CREATOR","CREATED_TIME","MODIFIER","UPDATED_TIME","STATUS","STATUS_ASSIGNEE","CATEGORY","REFERENCE_TABLE"]);function to(e,t){if(new Set(e.fields).size!==e.fields.length)return Xe("DML target fields contain duplicates.");let n=new Map(t.map(o=>[o.code,o]));for(let o of e.fields)ap(o,null,n);let r=new Map,i=new Map;for(let o of e.applyBlocks??[]){if(r.has(o.field))return Xe(`APPLY has more than one block for table ${o.field}.`);let a=t.find(l=>l.code===o.field&&!l.inSubtable);if(!a||a.fieldType!=="SUBTABLE")return Xe(`APPLY target ${o.field} is not a SUBTABLE.`);let s=new Map(t.filter(l=>l.inSubtable&&l.subtableCode===o.field).map(l=>[l.code,l]));r.set(o.field,a),i.set(o.field,s);for(let l of o.operations){if(l.kind!=="APPEND")return Xe(`APPLY INSERT supports APPEND only (${l.kind}).`);let d=new Set;for(let p of l.fields){if(d.has(p))return Xe(`APPLY APPEND specifies child ${p} more than once.`);d.add(p),ap(p,o.field,n,s)}for(let p of l.values)if(p.length!==l.fields.length)return Xe(`APPLY APPEND for ${o.field} has ${p.length} values for ${l.fields.length} fields.`)}}return{targetTables:r,targetMultiValueFields:new Map,childrenByTable:i,fieldsByCode:n}}function Qm(e,t,n=to(e,t),r){let i=new Map(t.map(s=>[s.code,s.fieldType])),o=Vi(e,i).flatMap(s=>s.records);if(r&&r.length!==o.length)throw new Error("InternalError: APPLY create parent row number count differs from VALUES rows.");let a=(e.applyBlocks??[]).map(s=>{let l=n.childrenByTable.get(s.field),d=s.operations.flatMap(p=>ts(p,l,s.field));return{table:s.field,rows:d,addedRows:d.length}});return o.map((s,l)=>{let d={};for(let c of t)c.inSubtable||c.fieldType==="SUBTABLE"||c.fieldType==="FILE"||c.writable===!1||ds.has(c.fieldType)||(d[c.code]=s[c.code]??{value:ns(c)});let p={...s};for(let c of a){let u=c.rows.map(f=>({value:f.value}));d[c.table]={value:u},p[c.table]={value:u}}return{parentRowNumber:r?.[l]??l+1,tables:a,postImage:d,record:p}})}async function Tr(e){let{statement:t,fieldInfos:n,dmlMaxRows:r,dmlMaxSubtableRows:i,statementNumber:o=1}=e;sp(r,"dmlMaxRows"),sp(i,"dmlMaxSubtableRows");let a=e.metadata??to(t,n),s=Qm(t,n,a,e.parentRowNumbers),l=n.filter(S=>S.fieldType==="SUBTABLE"||S.fieldType!=="FILE"&&S.writable!==!1&&!ds.has(S.fieldType)),d=Je(l,t.fields),p=s.some(S=>Ht(S.postImage,d));if(p&&!e.loadNumberPrecision)throw new Error("InternalError: APPLY number precision loader is required for NUMBER post-images.");let c=p?await e.loadNumberPrecision():void 0,u=s.map(S=>Yt(S.postImage,d,c,o,S.parentRowNumber,"INSERT"));if(!t.validateOnly){let S=u.flatMap(P=>P.errors);if(S.length>0)throw new Error(`ArgumentError: APPLY post-image validation failed: ${JSON.stringify({columns:u[0]?.columns??[],errors:S})}`)}let f=s.length,E=s.reduce((S,P)=>S+P.tables.reduce((b,L)=>b+L.addedRows,0),0),R=f>r||E>i;if(!t.validateOnly&&f>r)throw new Error(`ArgumentError: APPLY parent rows (${f}) exceed dmlMaxRows (${r}).`);if(!t.validateOnly&&E>i)throw new Error(`ArgumentError: APPLY changed subtable rows (${E}) exceed dmlMaxSubtableRows (${i}).`);let h=s.map((S,P)=>{let b=u[P].normalizedRecord,L={};for(let I of t.fields)L[I]=b[I];for(let I of S.tables){let v=b[I.table]?.value;L[I.table]={value:I.rows.map((w,D)=>({value:Object.fromEntries(Object.keys(w.value).map(M=>[M,v[D]?.value?.[M]??w.value[M]]))}))}}return{...S,postImage:b,record:L}}),m=h.map(S=>S.record),y=[];for(let S=0;S<m.length;S+=100)y.push({app:t.appId,records:m.slice(S,S+100)});let g=u.map(S=>({errors:S.errors,columns:S.columns,invalidRows:S.invalidRows,errorCount:S.errorCount}));return lp({applyBlocks:t.applyBlocks??[],candidates:h,records:m,batches:y,validations:g,guards:{revisionRequired:!1,parentRows:f,dmlMaxRows:r,subtableRows:E,dmlMaxSubtableRows:i,wouldExceed:R}})}function ap(e,t,n,r){if(e.startsWith("_")||e.startsWith("$"))return Xe(`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?Xe(`APPLY child ${e} does not belong to subtable ${t}.`):Xe(`APPLY ${t===null?"parent field":"child"} ${e} does not exist.`)}if(i.fieldType==="SUBTABLE"||i.fieldType==="FILE"||i.writable===!1||ds.has(i.fieldType))return Xe(`APPLY assignment target ${e} is not writable (${i.fieldType}).`)}function sp(e,t){if(!Number.isSafeInteger(e)||e<=0)throw new Error(`ArgumentError: ${t} must be a positive safe integer.`)}function Xe(e){throw new Error(`ArgumentError: ${e}`)}function lp(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))lp(n,t);return Object.freeze(e)}async function cp(e){let{statement:t,matches:n,fieldInfos:r,dmlMaxRows:i,dmlMaxSubtableRows:o,statementNumber:a=1}=e;up(i,"dmlMaxRows"),up(o,"dmlMaxSubtableRows"),ry(t,n);let s=n.filter(m=>m.targetId===void 0),l=n.filter(m=>m.targetId!==void 0),d=Zm(t,s.map(m=>m.sourceRowIndex)),p=await Tr({statement:d,fieldInfos:r,metadata:to(d,r),dmlMaxRows:i,dmlMaxSubtableRows:o,statementNumber:a,parentRowNumbers:s.map(m=>m.sourceRowIndex+1),loadNumberPrecision:e.loadNumberPrecision}),c=[],u=new Set;for(let m of l){let y=m.targetId;u.has(y)&&fs(`UPSERT APPLY resolves more than one source row to parent $id ${y}.`),u.add(y),m.snapshot||fs(`UPSERT APPLY snapshot for parent $id ${y} is missing.`);let g=Number(m.snapshot.$id?.value);g!==y&&fs(`UPSERT APPLY snapshot $id ${g} does not match target $id ${y}.`);let S=ey(t,m.sourceRowIndex,y),P=S.applyBlocks?.length?pt(S,r):ty(r);c.push(await eo({statement:S,snapshots:[m.snapshot],fieldInfos:r,metadata:P,dmlMaxRows:i,dmlMaxSubtableRows:o,statementNumber:a,parentRowNumbers:[m.sourceRowIndex+1],loadNumberPrecision:e.loadNumberPrecision}))}let f=ny(c,i,o),E=p.guards.parentRows+f.guards.parentRows,R=p.guards.subtableRows+f.guards.subtableRows,h=E>i||R>o;if(!t.validateOnly){let m=[...p.validations.flatMap(y=>y.errors),...f.validations.flatMap(y=>y.errors)];if(m.length>0)throw new Error(`ArgumentError: APPLY post-image validation failed: ${JSON.stringify({columns:p.validations[0]?.columns??f.validations[0]?.columns??[],errors:m})}`)}if(!t.validateOnly&&E>i)throw new Error(`ArgumentError: APPLY parent rows (${E}) exceed dmlMaxRows (${i}).`);if(!t.validateOnly&&R>o)throw new Error(`ArgumentError: APPLY changed subtable rows (${R}) exceed dmlMaxSubtableRows (${o}).`);return Es({create:p,update:f,createBatches:p.batches,updateBatches:iy(f.records,t.appId),guards:{revisionRequired:f.guards.parentRows>0,parentRows:E,dmlMaxRows:i,subtableRows:R,dmlMaxSubtableRows:o,wouldExceed:h,create:p.guards,update:f.guards}})}function Zm(e,t){return{type:"INSERT",appId:e.appId,fields:[...e.fields],values:t.map(n=>e.values[n]),applyBlocks:e.onInsertApplyBlocks??[],validateOnly:!0}}function ey(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 ty(e){return{targetTables:new Map,targetMultiValueFields:new Map,childrenByTable:new Map,fieldsByCode:new Map(e.map(t=>[t.code,t]))}}function ny(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 Es({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 ry(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 iy(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 up(e,t){if(!Number.isSafeInteger(e)||e<=0)throw new Error(`ArgumentError: ${t} must be a positive safe integer.`)}function fs(e){throw new Error(`ArgumentError: ${e}`)}function Es(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))Es(n,t);return Object.freeze(e)}function wr(e){return Ln("UPDATE",[fp(e)])}function Rs(e){return Ln("INSERT",[dp(e)])}function ms(e){return Ln("UPSERT",[dp(e.create),fp(e.update)])}function Ue(e,t){let n=t.failedBranch?.toLowerCase(),r=e.branches.map(i=>{let o=e.statementKind==="UPSERT"?i.branch==="insert"?t.successfulInserts:t.successfulUpdates:t.successfulParents,a=e.statementKind==="UPSERT"?i.branch==="insert"?t.successfulInsertChunks:t.successfulUpdateChunks:t.successfulChunks,s=n===i.branch;return{...i,...o!==void 0?{successfulParents:o}:{},chunk:{...i.chunk,...a!==void 0?{successfulChunks:a}:{},...s&&t.failedChunkIndex!==void 0?{failedChunkIndex:t.failedChunkIndex}:{},...s&&t.failedStage!==void 0?{failedStage:t.failedStage}:{}}}});return{...e,branches:r,partialSuccess:{possible:!0,successfulParents:t.successfulParents,successfulChunks:t.successfulChunks,...n?{failedBranch:n}:{},...t.retryAttempted!==void 0?{retryAttempted:t.retryAttempted}:{}}}}function ro(e,t,n){return e.type==="UPDATE"?Ln("UPDATE",[no("update",e.applyBlocks??[],null,!0,t,n)]):e.type==="INSERT"?Ln("INSERT",[no("insert",e.applyBlocks??[],e.values.length,!1,t,n)]):Ln("UPSERT",[no("insert",e.onInsertApplyBlocks??[],null,!1,t,n),no("update",e.onUpdateApplyBlocks??[],null,!0,t,n)])}function Ln(e,t){return{statementKind:e,branches:t,nonTransactional:!0,partialSuccess:{possible:!0}}}function dp(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 fp(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:pp(a?.operations,o.operations.map(s=>({...s,count:s.kind==="PATCH"?s.changedRows:s.kind==="APPEND"?s.addedRows:s.removedRows}))),changedCount:(a?.changedCount??0)+o.changedSubtableRows}),i||(i=o.deletedRows>0)}for(let o of r.multiValues){let a=t.get(o.field),s={parentId:r.parentId,value:o.postImageValue};t.set(o.field,{targetKind:"MULTI_VALUE",field:o.field,fieldType:o.fieldType,operations:pp(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 pp(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:Ir(i.count,n.count),...n.matchedRows!==void 0?{matchedRows:Ir(i.matchedRows,n.matchedRows)}:{},...n.changedRows!==void 0?{changedRows:Ir(i.changedRows,n.changedRows)}:{},...n.addedRows!==void 0?{addedRows:Ir(i.addedRows,n.addedRows)}:{},...n.removedRows!==void 0?{removedRows:Ir(i.removedRows,n.removedRows)}:{}}}):t.map(n=>({...n}))}function Ir(e,t){return e==null||t===null?null:e+t}function no(e,t,n,r,i,o){let a=t.map(p=>{let c=p.operations.map(f=>oy(f,n)),u=c.every(f=>f.count!==null)?c.reduce((f,E)=>f+E.count,0):null;return{targetKind:p.targetKind,field:p.field,operations:c,changedCount:u}}),s=a.filter(p=>p.targetKind==="SUBTABLE"),l=s.every(p=>p.changedCount!==null)?s.reduce((p,c)=>p+c.changedCount,0):null,d=n===null||l===null?null:n>i||l>o;return{branch:e,parentRows:n,targets:a,guards:{revisionRequired:r,parentRows:n,dmlMaxRows:i,subtableRows:l,dmlMaxSubtableRows:o,wouldExceed:d},chunk:{size:100,plannedChunks:n===null?null:Math.ceil(n/100)},deletedParentRows:e==="insert"?0:null}}function oy(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 Qe=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 Ep(e,t,n){yn("phase10c");let r=Zc(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 Qe({successfulChunks:i,successfulParents:o,failedChunkIndex:a,failedStage:"PUT_CHUNK",nonTransactional:!0,retryAttempted:!1,...n?{diagnostic:Ue(n,{successfulChunks:i,successfulParents:o,failedChunkIndex:a,failedStage:"PUT_CHUNK",failedBranch:"UPDATE",retryAttempted:!1})}:{}},l)}i+=1,o+=s.records.length}return{type:"UPDATE",updatedCount:o,successfulChunks:i,successfulParents:o,nonTransactional:!0}}async function Rp(e,t,n){yn("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 Qe({successfulChunks:i,successfulParents:o,failedChunkIndex:a,failedStage:"POST_CHUNK",nonTransactional:!0,retryAttempted:!1,...n?{diagnostic:Ue(n,{successfulChunks:i,successfulParents:o,failedChunkIndex:a,failedStage:"POST_CHUNK",failedBranch:"INSERT",retryAttempted:!1})}:{}},l)}i+=1,o+=s.records.length}return{type:"INSERT",createdIds:r,insertedCount:o,successfulChunks:i,successfulParents:o,nonTransactional:!0}}async function mp(e,t,n){yn("phase14c");let r=[],i=0,o=0,a=0,s=0;for(let l=0;l<e.createBatches.length;l+=1){let d=e.createBatches[l];try{let p=await t.postRecords({app:d.app,records:[...d.records]});r.push(p.ids)}catch(p){throw new Qe({successfulChunks:i+o,successfulParents:a+s,successfulInserts:a,successfulUpdates:s,failedChunkIndex:l,failedBranch:"INSERT",failedStage:"POST_CHUNK",nonTransactional:!0,retryAttempted:!1,...n?{diagnostic:Ue(n,{successfulChunks:i+o,successfulParents:a+s,successfulInserts:a,successfulUpdates:s,successfulInsertChunks:i,successfulUpdateChunks:o,failedChunkIndex:l,failedStage:"POST_CHUNK",failedBranch:"INSERT",retryAttempted:!1})}:{}},p)}i+=1,a+=d.records.length}for(let l=0;l<e.updateBatches.length;l+=1){let d=e.updateBatches[l];try{await t.putRecords({app:d.app,records:[...d.records]})}catch(p){throw new Qe({successfulChunks:i+o,successfulParents:a+s,successfulInserts:a,successfulUpdates:s,failedChunkIndex:l,failedBranch:"UPDATE",failedStage:"PUT_CHUNK",nonTransactional:!0,retryAttempted:!1,...n?{diagnostic:Ue(n,{successfulChunks:i+o,successfulParents:a+s,successfulInserts:a,successfulUpdates:s,successfulInsertChunks:i,successfulUpdateChunks:o,failedChunkIndex:l,failedStage:"PUT_CHUNK",failedBranch:"UPDATE",retryAttempted:!1})}:{}},p)}o+=1,s+=d.records.length}return{type:"UPSERT",createdIds:r,insertedCount:a,updatedCount:s,successfulChunks:i+o,successfulParents:a+s,successfulInsertChunks:i,successfulUpdateChunks:o,nonTransactional:!0}}var ay=/^[A-Za-z_][A-Za-z0-9_]{0,63}$/;function sy(e){if(!ay.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 ly(e){let t=Object.create(null);for(let[n,r]of Object.entries(e??{})){let i=sy(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 ys(e,t){let n=ly(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 uy(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 hs(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 uy(i)?!0:Object.values(i).some(n)};return n(e)}function yp(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 hp(e,t){let n=ne(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 Ze(e){if(e===null)return!1;switch(e.type){case"BINARY":return io(e.left);case"NULL_CHECK":return io(e.field);case"LOGICAL":return Ze(e.left)||Ze(e.right);case"NOT":case"GROUP":return Ze(e.expr);case"EXISTS":case"BOOLEAN":return!1}}function io(e){if(Array.isArray(e))return e.some(io);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(io)}async function Ge(e,t,n,r,i){let o=await Ie(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 oo(e,t,n,r){let{records:i,metrics:o}=await Ge(e,t,n,["$id"],r);return{ids:fu(i),metrics:o}}var ke=["=","!=",">","<",">=","<="],cy=new Set(["DATE","DATETIME","CREATED_TIME","UPDATED_TIME"]),py=new Set(ke),dy=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"])]]),fy=new Map([["TODAY",new Set(ke)],["NOW",new Set(ke)],["LOGINUSER",new Set(["in","not in"])],["PRIMARY_ORGANIZATION",new Set(["in","not in"])]]),Ey=["=","!=","in","not in"],Ry=new Map([["RECORD_NUMBER",new Set([...ke,"in","not in"])],["__ID__",new Set([...ke,"in","not in"])],["CREATOR",new Set(["in","not in"])],["MODIFIER",new Set(["in","not in"])],["CREATED_TIME",new Set(ke)],["UPDATED_TIME",new Set(ke)],["DATE",new Set(ke)],["TIME",new Set(ke)],["DATETIME",new Set(ke)],["SINGLE_LINE_TEXT",new Set(["=","!=","in","not in","like","not like"])],["LINK",new Set(["=","!=","in","not in","like","not like"])],["NUMBER",new Set([...ke,"in","not in"])],["CALC",new Set([...ke,"in","not in"])],["MULTI_LINE_TEXT",new Set(["like","not like"])],["RICH_TEXT",new Set(["like","not like"])],["CHECK_BOX",new Set(["in","not in"])],["RADIO_BUTTON",new Set(["in","not in"])],["DROP_DOWN",new Set(["in","not in"])],["MULTI_SELECT",new Set(["in","not in"])],["FILE",new Set(["like","not like"])],["USER_SELECT",new Set(["in","not in"])],["ORGANIZATION_SELECT",new Set(["in","not in"])],["GROUP_SELECT",new Set(["in","not in"])],["STATUS",new Set(Ey)]]),my=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"])]]),Sp=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"]),Tp=new Set(["CHECK_BOX","MULTI_SELECT","FILE","USER_SELECT","ORGANIZATION_SELECT","GROUP_SELECT","STATUS_ASSIGNEE","CATEGORY"]);function yy(e){return Ry.get(e)??new Set}function Ce(e,t){return e===null?{capability:"EXACT_PUSHDOWN",reasons:[{code:"WHERE_EXACT"}]}:Pr(e,t)}function Pr(e,t){switch(e.type){case"BOOLEAN":return{capability:"LOCAL_ONLY",reasons:[{code:"WHERE_EXPRESSION_LOCAL_ONLY"}]};case"BINARY":return hy(e.op,e.left,e.right,t);case"NULL_CHECK":return e.field.type!=="FIELD"?As():Sy(e.field,e.not?"IS NOT NULL":"IS NULL",t);case"EXISTS":return As();case"GROUP":return Pr(e.expr,t);case"NOT":{let n=Pr(e.expr,t);return n.capability!=="SUPERSET_PREFILTER"?n:wp(n.reasons)?Cr({capability:"LOCAL_ONLY",reasons:[{code:"WHERE_EXPRESSION_LOCAL_ONLY"},...n.reasons]}):{capability:"LOCAL_ONLY",reasons:[{code:"WHERE_EXPRESSION_LOCAL_ONLY"}]}}case"LOGICAL":{let n=Pr(e.left,t),r=Pr(e.right,t);return Iy(e.op,n,r)}}}function hy(e,t,n,r){if(n.type==="KINTONE_FUNC"&&J(n.name))return gy(e,t,n,r);if(n.type==="KINTONE_FUNC"&&gp(n))return Ap(e,t,n,r);if(n.type==="IN_LIST"){let p=n.values.filter(c=>c.type==="KINTONE_FUNC");if(p.length>0)return n.values.length===1&&p.length===1?Ap(e,t,p[0],r):ao("WHERE_KINTONE_FUNCTION_CONTEXT_UNSUPPORTED",p[0].name,t.type==="FIELD"?t.field:void 0,t.type==="FIELD"?r(t)?.fieldType:void 0,Nr(e))}if(t.type!=="FIELD")return As();let i=r(t);if(!i)return _n("WHERE_FIELD_UNRESOLVED",t.field,void 0,Nr(e));let o=Nr(e);if(!Ip(i.fieldType,o))return _n("WHERE_OPERATOR_INVALID_FOR_FIELD_TYPE",t.field,i.fieldType,o);if(!Ty(i.fieldType,e))return _n("WHERE_OPERATOR_UNSUPPORTED",t.field,i.fieldType,o);let a=yy(i.fieldType),s=n.type==="STRING"||n.type==="NUMBER"||n.type==="IN_LIST"||gp(n),l=!i.requiresCollectionOperators||o!=="="&&o!=="!=",d=e==="LIKE"||e==="NOT_LIKE";return s&&l&&a.has(o)&&!d?{capability:"EXACT_PUSHDOWN",reasons:[{code:"WHERE_EXACT",field:t.field,fieldType:i.fieldType,operator:o}]}:{capability:"LOCAL_ONLY",reasons:[{code:"WHERE_RESIDUAL",field:t.field,fieldType:i.fieldType,operator:o}]}}function gp(e){return e.type==="KINTONE_FUNC"&&Mt.has(e.name)}function Ap(e,t,n,r){let i=Nr(e),o=n.name;if(!Mt.has(o)||t.type!=="FIELD")return ao("WHERE_KINTONE_FUNCTION_CONTEXT_UNSUPPORTED",o,void 0,void 0,i);let a=r(t),s=dy.get(o);return!a||!s.has(a.fieldType)||a.inSubtable||a.requiresCollectionOperators?ao("WHERE_KINTONE_FUNCTION_FIELD_TYPE_UNSUPPORTED",o,t.field,a?.fieldType,i):fy.get(o).has(i)?{capability:"EXACT_PUSHDOWN",reasons:[{code:"WHERE_EXACT",functionName:o,field:t.field,fieldType:a.fieldType,operator:i}]}:ao("WHERE_KINTONE_FUNCTION_OPERATOR_UNSUPPORTED",o,t.field,a.fieldType,i)}function gy(e,t,n,r){let i=Nr(e),o=n.name;if(t.type!=="FIELD")return br("WHERE_RELATIVE_DATE_CONTEXT_UNSUPPORTED",o,void 0,void 0,i);let a=r(t);return a?Ay(n)?py.has(i)?!cy.has(a.fieldType)||a.inSubtable||a.requiresCollectionOperators?br("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}]}:br("WHERE_RELATIVE_DATE_OPERATOR_UNSUPPORTED",o,t.field,a.fieldType,i):br("WHERE_RELATIVE_DATE_ARGUMENT_INVALID",o,t.field,a.fieldType,i):br("WHERE_RELATIVE_DATE_FIELD_TYPE_UNSUPPORTED",o,t.field,void 0,i)}function Ay(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 Sy(e,t,n){let r=n(e);return r?Ip(r.fieldType,t)?!Sp.has(r.fieldType)&&!Tp.has(r.fieldType)?_n("WHERE_OPERATOR_UNSUPPORTED",e.field,r.fieldType,t):{capability:"LOCAL_ONLY",reasons:[{code:"WHERE_RESIDUAL",field:e.field,fieldType:r.fieldType,operator:t}]}:_n("WHERE_OPERATOR_INVALID_FOR_FIELD_TYPE",e.field,r.fieldType,t):_n("WHERE_FIELD_UNRESOLVED",e.field,void 0,t)}function Ip(e,t){let n=my.get(e);return n===void 0||n.has(t)}function Ty(e,t){return Sp.has(e)?!0:Tp.has(e)?t==="="||t==="!="||t==="<>"||t==="IN"||t==="NOT_IN"||t==="LIKE"||t==="NOT_LIKE"||t==="KLIKE"||t==="NOT_KLIKE":!1}function Nr(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 Iy(e,t,n){let r=[...t.reasons,...n.reasons];return t.capability==="UNSUPPORTED"||n.capability==="UNSUPPORTED"?Cr({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")?Cr({capability:"SUPERSET_PREFILTER",reasons:[{code:"WHERE_SUPERSET_PREFILTER"},...r]}):Cr({capability:"LOCAL_ONLY",reasons:r})}function As(){return{capability:"LOCAL_ONLY",reasons:[{code:"WHERE_EXPRESSION_LOCAL_ONLY"}]}}function _n(e,t,n,r){return{capability:"UNSUPPORTED",reasons:[{code:e,field:t,fieldType:n,operator:r}]}}function ao(e,t,n,r,i){return Cr({capability:"UNSUPPORTED",reasons:[{code:e,functionName:t,field:n,fieldType:r,operator:i}]})}function br(e,t,n,r,i){return bp({capability:"UNSUPPORTED",reasons:[{code:e,functionName:t,field:n,fieldType:r,operator:i}]})}function wp(e){return e.some(t=>t.code.startsWith("WHERE_RELATIVE_DATE_")||t.functionName!==void 0&&J(t.functionName))}function wy(e){return e.some(t=>t.code.startsWith("WHERE_KINTONE_FUNCTION_")||t.functionName!==void 0&&Mt.has(t.functionName))}function bp(e){if(e.capability==="EXACT_PUSHDOWN"||!wp(e.reasons)||e.reasons.some(n=>n.code==="WHERE_RELATIVE_DATE_REQUIRES_EXACT_PUSHDOWN"))return e;let t=e.reasons.find(n=>n.code.startsWith("WHERE_RELATIVE_DATE_")||n.functionName!==void 0&&J(n.functionName));return{capability:e.capability,reasons:[...e.reasons,{code:"WHERE_RELATIVE_DATE_REQUIRES_EXACT_PUSHDOWN",functionName:t.functionName,field:t.field,fieldType:t.fieldType,operator:t.operator}]}}function by(e){if(e.capability==="EXACT_PUSHDOWN"||!wy(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&&Mt.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 Cr(e){return by(bp(e))}var Py=new Set(["DROP_DOWN","RADIO_BUTTON","CHECK_BOX","MULTI_SELECT","STATUS"]),Ny=new Set(["SINGLE_LINE_TEXT","LINK","MULTI_LINE_TEXT","RICH_TEXT","FILE"]),Cy=new Set(["DATETIME","CREATED_TIME","UPDATED_TIME"]);function vn(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)?Np(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"}):Np(n[0],e.field)}function Ts(e,t){if(e.left.type!=="FIELD")return Or();let n=vn(e.left,t);if(n.status!=="OWNED"||n.source.sourceKind!=="APP")return Or();let r=n.source.fieldTypes.get(n.fieldCode);if(r===void 0||r.startsWith("KSQL_")||Ce(e,a=>{let s=vn(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:X({fieldType:l})}).capability!=="EXACT_PUSHDOWN")return Or();let o=vy(e,n,r);return o==="unsafe"?Or():Object.freeze({relation:o,owner:n})}function Cp(e,t){let n=ue(e);if(n.length===0||e.left.type!=="FIELD")return Object.freeze({relation:"unsafe"});let r=vn(e.left,t);return r.status!=="OWNED"||r.source.sourceKind!=="APP"?Object.freeze({relation:"unsafe"}):Ce(e,o=>{let a=vn(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:X({fieldType:s})}).capability!=="EXACT_PUSHDOWN"?Object.freeze({relation:"unsafe"}):Object.freeze({relation:"function-leaf-exact",owner:r,functionOccurrences:Object.freeze([...n])})}function Op(e,t){let n=new Set;jt(e,n);let i=(e===null?[]:Dp(Dn(e,t))).map(s=>Object.freeze({targetAlias:s.owner.alias,appId:s.owner.appId,predicate:s.predicate,relation:s.relation})),o=Oy(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)jt(s.predicate,a);return Object.freeze({items:Object.freeze(i),appliedKlikes:a,allKlikes:Object.freeze([...n]),rejections:Object.freeze(Dy(e,t)),fetchQueriesByAlias:new Map,...o})}function Lp(e,t){if(e.serverFunctionCandidate?.staticContract!=="CONFIRMED"||e.serverFunctionConsumptions.length===0||e.residualServerFunctionOccurrences.length!==0||!qt(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,Un(a,t));for(let a of e.serverFunctionConsumptions){if(!t.find(d=>d.alias===a.targetAlias&&d.appId===a.appId&&d.sourceKind==="APP"))return e;let l=Un({targetAlias:a.targetAlias,appId:a.appId,predicate:a.predicate,relation:"exact"},t);if(l!==a.serializedPredicate||!qt(fo(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 kn(e){if(e.serverFunctionCandidate===null||e.serverFunctionCandidate.staticContract!=="CONFIRMED"||e.serverFunctionCandidate.fetchContract!=="CONFIRMED"||e.serverFunctionConsumptions.length===0||e.residualServerFunctionOccurrences.length!==0||!qt(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&&!qt(fo(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))||_p(_y(e))!==e.allKlikes.length))}function Oy(e,t){if(e===null)return Pp(null);let n=Object.freeze([...ue(e)]);if(n.length===0)return Pp(e);let r=Ly(e,t,n);if(r!==null)return r;let i=uo(e),o=[],a=new Set;for(let c of i){let u=Cp(c,t);if(u.relation!=="function-leaf-exact")continue;let f={targetAlias:u.owner.alias,appId:u.owner.appId,predicate:c,relation:"exact"},E;try{E=Un(f,t)}catch{continue}let R=fo(E);qt(R,u.functionOccurrences)&&(a.add(c),o.push(Object.freeze({targetAlias:u.owner.alias,appId:u.owner.appId,predicate:c,functionLeaves:Object.freeze([c]),functionOccurrences:u.functionOccurrences,relation:u.relation,consumption:"leaf",serializedPredicate:E,staticProof:Object.freeze({classifier:"EXACT_PUSHDOWN",ownership:"OWNED",serialization:"OCCURRENCE_MULTISET_EXACT",residualIdentityConsumption:"CONFIRMED"}),fetchBinding:"PENDING_STEP_2"})))}let s=co(e,a),l=Object.freeze(s===null?[]:[...ue(s)]),d=Object.freeze(o.flatMap(c=>[...c.functionOccurrences])),p=qt(n,d)&&l.length===0?"CONFIRMED":"INCOMPLETE";return{serverFunctionCandidate:Object.freeze({variant:"EXACT_LEAF",staticContract:p,fetchContract:"PENDING_STEP_2"}),serverFunctionConsumptions:Object.freeze(o),allServerFunctionOccurrences:n,adoptedServerFunctionOccurrences:d,residualWhere:s,residualServerFunctionOccurrences:l}}function Ly(e,t,n){let r=so(e,t);if(r===null)return null;let i={targetAlias:r.alias,appId:r.appId,predicate:e,relation:"exact"},o;try{o=Un(i,t)}catch{return null}if(!qt(fo(o),n))return null;let a=new Set;if(jt(e,a),_p(o)!==a.size)return null;let s=Object.freeze(lo(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 so(e,t){switch(e.type){case"BINARY":{if(ue(e).length>0){let i=Cp(e,t);return i.relation==="function-leaf-exact"?i.owner:null}let r=Ts(e,t);return r.relation==="exact"&&r.owner!==void 0?r.owner:null}case"LOGICAL":{let n=so(e.left,t),r=so(e.right,t);return n!==null&&r!==null&&Eo(n,r)?n:null}case"GROUP":case"NOT":return so(e.expr,t);case"NULL_CHECK":case"EXISTS":case"BOOLEAN":return null}}function lo(e){switch(e.type){case"BINARY":return ue(e).length>0?[e]:[];case"LOGICAL":return[...lo(e.left),...lo(e.right)];case"GROUP":case"NOT":return lo(e.expr);case"NULL_CHECK":case"EXISTS":case"BOOLEAN":return[]}}function Pp(e){let t=e===null?[]:ue(e);return{serverFunctionCandidate:null,serverFunctionConsumptions:Object.freeze([]),allServerFunctionOccurrences:Object.freeze([...t]),adoptedServerFunctionOccurrences:Object.freeze([]),residualWhere:e,residualServerFunctionOccurrences:Object.freeze([...t])}}function uo(e){switch(e.type){case"BINARY":return ue(e).length>0?[e]:[];case"LOGICAL":return e.op==="AND"?[...uo(e.left),...uo(e.right)]:[];case"GROUP":return uo(e.expr);case"NOT":case"NULL_CHECK":case"EXISTS":case"BOOLEAN":return[]}}function co(e,t){if(e.type==="BINARY")return t.has(e)?null:e;if(e.type==="LOGICAL"){if(e.op!=="AND")return e;let n=co(e.left,t),r=co(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=co(e.expr,t);return n===null?null:n===e.expr?e:{...e,expr:n}}return e}function fo(e){let t=[];for(let n of qn){let r=new RegExp(`\\b${n}\\s*\\(`,"g"),i;for(;(i=r.exec(e))!==null;)t.push({name:n,index:i.index})}return t.sort((n,r)=>n.index-r.index).map(n=>n.name)}function qt(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 _p(e){return[...e.matchAll(/\s(?:not\s+)?like\s/g)].length}function _y(e){let t=e.serverFunctionConsumptions[0];return t===void 0?"":e.fetchQueriesByAlias.get(t.targetAlias)??""}function Dy(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=vn(i.left,t);if(o.status==="AMBIGUOUS"){n.add("AMBIGUOUS_FIELD");return}if(o.status==="UNKNOWN"){n.add("UNKNOWN_FIELD_OR_METADATA");return}if(po(i.right)){n.add("CROSS_TABLE_BINARY");return}Ts(i,t).relation==="unsafe"&&n.add("UNSAFE_RELATION");return}if(i.type==="LOGICAL"){if(i.op==="OR"){if(Mp(i)){n.add("KLIKE_OR");return}let o=Dn(i.left,t),a=Dn(i.right,t);if(o.length!==1||a.length!==1||!Eo(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 Un(e,t){return Lr(e.predicate,e,t),G(e.predicate)}function Lr(e,t,n){switch(e.type){case"LOGICAL":Lr(e.left,t,n),Lr(e.right,t,n);return;case"GROUP":Lr(e.expr,t,n);return;case"NOT":Lr(e.expr,t,n);return;case"BINARY":{if(e.left.type!=="FIELD"||po(e.right))throw Ss(t,"predicate contains a non-target or RHS field reference");let r=vn(e.left,n);if(r.status!=="OWNED"||r.alias!==t.targetAlias||r.appId!==t.appId||r.source.sourceKind!=="APP")throw Ss(t,`field ${e.left.field} is not uniquely owned by the target`);return}case"NULL_CHECK":case"EXISTS":case"BOOLEAN":throw Ss(t,"predicate shape is outside the Phase A serializer contract")}}function Ss(e,t){return new Error(`InternalError: JOIN pushdown ownership guard failed for ${e.targetAlias}/APP${e.appId}: ${t}.`)}function Dn(e,t){switch(e.type){case"BINARY":{let n=Ts(e,t);return n.relation==="unsafe"||n.owner===void 0?[]:[{owner:n.owner,predicate:e,relation:n.relation}]}case"LOGICAL":{let n=Dn(e.left,t),r=Dn(e.right,t);if(e.op==="AND")return Dp([...n,...r]);if(Mp(e))return[];if(n.length!==1||r.length!==1)return[];let i=n[0],o=r[0];return Eo(i.owner,o.owner)?[{owner:i.owner,predicate:{type:"LOGICAL",op:"OR",left:i.predicate,right:o.predicate},relation:vp(i.relation,o.relation)}]:[]}case"GROUP":return Dn(e.expr,t).map(n=>({...n,predicate:{type:"GROUP",expr:n.predicate}}));case"NOT":case"NULL_CHECK":case"EXISTS":case"BOOLEAN":return[]}}function Dp(e){let t=[];for(let n of e){let r=t.findIndex(o=>Eo(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:vp(i.relation,n.relation)}}return t}function vy(e,t,n){if(e.op==="LIKE"||e.op==="NOT_LIKE")return"unsafe";if(e.op==="KLIKE"||e.op==="NOT_KLIKE")return Ny.has(n)&&e.right.type==="STRING"&&e.right.value!==""?"exact":"unsafe";if(n==="__ID__"||t.fieldCode==="$id")return Uy(e.right)&&(e.op==="="||e.op==="<"||e.op===">"||e.op==="<="||e.op===">=")?"exact":"unsafe";if(n==="RECORD_NUMBER")return"unsafe";if(n==="NUMBER")return e.right.type!=="NUMBER"?"unsafe":e.op==="="||(e.op==="<"||e.op===">")&&Up(e.right)?"superset":"unsafe";if(n==="SINGLE_LINE_TEXT")return e.op==="="&&e.right.type==="STRING"&&e.right.value!==""?"superset":"unsafe";if(n==="DATE"||n==="TIME"||Cy.has(n))return e.op!=="="||e.right.type!=="STRING"?"unsafe":n==="DATE"?kp(e.right.value)?"superset":"unsafe":n==="TIME"?ky(e.right.value)?"superset":"unsafe":My(e.right.value)?"superset":"unsafe";if(Py.has(n)){if(e.op!=="IN"&&e.op!=="NOT_IN"||e.right.type!=="IN_LIST"||e.right.values.length===0)return"unsafe";let r=t.source.fieldOptions?.get(t.fieldCode);return r===void 0?"unsafe":e.right.values.every(i=>i.type==="STRING"&&i.value!==""&&r.has(i.value))?"exact":"unsafe"}return"unsafe"}function Np(e,t){return Object.freeze({status:"OWNED",alias:e.alias,appId:e.appId,fieldCode:t,source:e})}function Or(){return Object.freeze({relation:"unsafe"})}function Eo(e,t){return e.alias===t.alias&&e.appId===t.appId&&e.source===t.source}function vp(e,t){return e==="exact"&&t==="exact"?"exact":"superset"}function Uy(e){return e.type==="NUMBER"&&Up(e)&&e.value>0}function Up(e){return/^-?\d+$/.test(H(e))&&Number.isSafeInteger(e.value)}function kp(e){let t=/^(\d{4})-(\d{2})-(\d{2})$/.exec(e);if(!t)return!1;let n=Number(t[1]),r=Number(t[2]),i=Number(t[3]),o=new Date(Date.UTC(n,r-1,i));return o.getUTCFullYear()===n&&o.getUTCMonth()===r-1&&o.getUTCDate()===i}function ky(e){let t=/^(\d{2}):(\d{2})$/.exec(e);return t!==null&&Number(t[1])<=23&&Number(t[2])<=59}function My(e){let t=/^(\d{4}-\d{2}-\d{2})T(\d{2}):(\d{2}):(\d{2})Z$/.exec(e);return!t||!kp(t[1])?!1:Number(t[2])<=23&&Number(t[3])<=59&&Number(t[4])<=59}function jt(e,t){if(e!==null){if(St(e)){t.add(e);return}switch(e.type){case"LOGICAL":jt(e.left,t),jt(e.right,t);return;case"NOT":case"GROUP":jt(e.expr,t);return;case"BINARY":case"NULL_CHECK":case"EXISTS":case"BOOLEAN":return}}}function Mp(e){let t=new Set;return jt(e,t),t.size>0}function po(e){if(e===null||typeof e!="object")return!1;if(Array.isArray(e))return e.some(po);let t=e;return t.type==="FIELD"||t.type==="FIELD_REF"?!0:Object.values(t).some(po)}function Is(e,t){let n=or(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 Fy(e,t){return e.key.type==="FIELD_NAME"?t.get(e.key.name):void 0}function xy(e,t){return e.columns.some(n=>"alias"in n&&n.alias===t)}function _r(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=Fy(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"&&!xy(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 Ky=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 By(e,t){return e.columns.some(n=>"alias"in n&&n.alias===t)}function Dr(e){let{stmt:t}=e,n=[];t.orderMode!=="KINTONE_NATIVE"&&n.push("KORDER_MODE_REQUIRED"),(t.from.cteName!==null||t.from.subtableCode||e.staticMode!=="SIMPLE")&&n.push("KORDER_QUERY_SHAPE_UNSUPPORTED"),e.whereCapability!=="EXACT_PUSHDOWN"&&(n.push(...(e.whereReasons??[]).filter(s=>s.functionName!==void 0).map(s=>s.code)),n.push("KORDER_WHERE_NOT_EXACT")),e.hasKlike&&n.push("KORDER_KLIKE_UNSUPPORTED"),t.orderBy.length===0&&n.push("KORDER_KEY_REQUIRED");for(let s of t.orderBy){if(s.key.type!=="FIELD_NAME"){n.push(`KORDER_KEY_NOT_DIRECT_FIELD(key=${s.key.type})`);continue}let l=s.key.name,d=e.orderSemantics.get(l);if(!d){n.push(`KORDER_KEY_UNRESOLVED(field=${l})`);continue}if(By(t,l)){n.push(`KORDER_KEY_NOT_DIRECT_FIELD(field=${l})`);continue}if(l!=="$id"){if(!d.source||d.source.fieldCode!==l){n.push(`KORDER_KEY_NOT_DIRECT_FIELD(field=${l})`);continue}Ky.has(d.fieldType)||n.push(`KORDER_TYPE_UNSUPPORTED(field=${l}, type=${d.fieldType})`)}}(t.limit===null||!Number.isSafeInteger(t.limit)||t.limit<0)&&n.push(`KORDER_LIMIT_INVALID(limit=${String(t.limit)})`);let r=t.offset??0;(!Number.isSafeInteger(r)||r<0)&&n.push(`KORDER_OFFSET_INVALID(offset=${r})`);let i=t.limit===null?Number.NaN:r+t.limit;t.limit!==null&&!Number.isSafeInteger(i)&&n.push(`KORDER_SCAN_ROWS_INVALID(offset=${r}, limit=${t.limit})`);let o=[...new Set(n)];if(o.length>0)throw new Error(`ArgumentError: KORDER BY cannot be executed (mode=KINTONE_NATIVE; ${o.join(", ")}). Use ORDER BY for canonical local ordering or simplify the query.`);let a=t.limit<=500&&r<=1e4&&t.limit<=e.maxRecords;if(!a&&i>e.maxRecords)throw new Error(`ArgumentError: KORDER BY cannot be executed (mode=KINTONE_NATIVE; KORDER_SCAN_ROWS_EXCEEDS_MAX_RECORDS(scanRows=${i}, maxRecords=${e.maxRecords})). Use ORDER BY for canonical local ordering, raise maxRecords, or reduce LIMIT/OFFSET.`);return{kind:a?"KORDER_NATIVE":"KORDER_CURSOR",requiresCompleteInput:!1,localOrderBy:!1,applyLocalOffsetLimit:!1,reasonCodes:[],scanRows:i}}var Ro=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"}},mo=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}},yo=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 Fp(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 yo(a).message}}return{records:n,cleanupWarning:o}}function ws(e){let t=[];e.where&&t.push(G(e.where));let n=e.orderBy.map(r=>{if(r.key.type!=="FIELD_NAME")throw new Error("ArgumentError: KORDER cursor key must be a direct field.");return`${r.key.name} ${r.direction==="ASC"?"asc":"desc"}`});return t.push(`order by ${n.join(", ")}`),t.join(" ")}var xp=["$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 bs(e){return e.startsWith("_")||e.startsWith("$")}var $y=/^(COUNT|SUM|AVG|MAX|MIN|GROUP_CONCAT|STDDEV_POP|STDDEV_SAMP|VAR_POP|VAR_SAMP|MEDIAN|MODE)\(/;function Ns(e){if(e===null||typeof e!="object")return!1;if(Array.isArray(e))return e.some(Ns);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"?$y.test(t.field):Object.values(t).some(Ns)}function Gy(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 lr(e)||Ns(e)?"AGGREGATE_DEPENDENT":"SAFE"}}var Vy=["_pid","_rid","_idx"];function Ps(e){return[...new Set(e)]}function Wy(e){switch(e.kind){case"APP":return Ps([...e.fieldCodes,...xp]);case"SUBTABLE":return Ps([...e.childFieldCodes,...Vy,...e.parentFieldCodes.map(t=>`_p.${t}`)]);case"MATERIALIZED":return Ps(e.columns)}}function Kp(e,t){return[e.from,...e.joins.map(r=>r.table)].map((r,i)=>({sourceIndex:i,qualifier:r.alias??r.cteName,columns:Wy(t(r,i))}))}function Hy(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 Yy(e,t){return e.qualifier===null?t:`${e.qualifier}.${t}`}function jy(e){return"alias"in e&&typeof e.alias=="string"?e.alias:null}function qy(e,t,n){let r=Hy(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:Yy(l,r.fieldCode)}}if(r.qualifier!==null)return{kind:"UNKNOWN",name:e};let a=t.flatMap((l,d)=>jy(l)===e?[{column:l,columnIndex:d}]:[]);if(a.length>1)return{kind:"ALIAS_REJECT",reason:"DUPLICATE"};if(a.length===1){let l=a[0],d=Gy(l.column);return d==="SAFE"?{kind:"ALIAS_SAFE",columnIndex:l.columnIndex}:{kind:"ALIAS_REJECT",reason:d==="AGGREGATE_DEPENDENT"?"AGGREGATE":"POST_GROUP_ONLY"}}return t.some(l=>l.type==="AGGREGATE"&&l.alias===null&&we(l.func,l.distinct,l.arg)===e)?{kind:"ALIAS_REJECT",reason:"AGGREGATE"}:{kind:"UNKNOWN",name:e}}function Bp(e,t,n){return{items:e.map(r=>r.type==="FIELD_NAME"?qy(r.name,t,n):{kind:"EXPRESSION"})}}var zy={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 $p(e,t){let n=zy[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 Gp(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=>$p(s.fieldType,s.code)==="PROCESS")?(await n()).enable:!1;return[...r.filter(s=>{let l=$p(s.fieldType,s.code);return l==="RECORD"||l==="PROCESS"&&o}).map(s=>s.code),"$revision","$id"]}function dt(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 Jy(e,t,n,r={}){let{on:i,type:o}=n,a=i.left.tableAlias?`${i.left.tableAlias}.${i.left.field}`:i.left.field,s=i.right.tableAlias?`${i.right.tableAlias}.${i.right.field}`:i.right.field;if(Vp(e,a,r.leftColumns),Vp(t,s,r.rightColumns),o==="RIGHT"){let c=new Map;for(let E of e){let R=E[a]??"",h=c.get(R);h?h.push(E):c.set(R,[E])}let u={};for(let E of r.leftColumns??Object.keys(e[0]??{}))u[E]="";let f=[];for(let E of t){let R=E[s]??"",h=c.get(R)??[];if(h.length>0)for(let m of h)f.push({...m,...E});else f.push({...u,...E})}return f}let l=new Map;for(let c of t){let u=c[s]??"",f=l.get(u);f?f.push(c):l.set(u,[c])}let d=[],p={};for(let c of r.rightColumns??Object.keys(t[0]??{}))p[c]="";for(let c of e){let u=c[a]??"",f=l.get(u)??[];if(f.length>0)for(let E of f)d.push({...c,...E});else o==="LEFT"&&d.push({...c,...p})}return d}function Vp(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 Xy(e,t,n,r,i){return t===null?e:e.filter(o=>te(t,o,n,r,i))}function Jp(e){return e.some(t=>t.type==="AGGREGATE"||t.type==="ARITH_AGG_COL"||t.type==="STRFUNC_COL"&&Ur(t.expr)||t.type==="SCALAR_VALUE_COL"&&_t(t.expr))}function Qy(e,t,n,r,i,o={}){if(i&&i.items.length!==t.length)throw new Error("InternalError: plain GROUP BY resolution plan length does not match group keys.");let a=new Map;for(let l of e){let d=t.map((c,u)=>eh(c,l,i?.items[u],n,o)).join("\0"),p=a.get(d);p?p.push(l):a.set(d,[l])}a.size===0&&t.length===0&&Jp(n)&&a.set("",[]);let s=[];for(let l of a.values()){let d={...l[0]};for(let p of t)p.type==="ARITH_KEY"?d[vs(p.expr)]=String(ae(p.expr,l[0])):p.type==="FUNC_KEY"&&(d[Dt(p.expr)]=se(p.expr,l[0]));Xp(d,l,n,r),s.push(d)}return s}function Zy(e,t,n,r,i={}){let o=[],a=0,s=()=>{if(a++,i.maxGeneratedRows!==void 0&&a>i.maxGeneratedRows)throw new Error(`LimitError: B65 generated grouping rows ${a} exceed limit ${i.maxGeneratedRows} (reason=GROUPING_OUTPUT_LIMIT_EXCEEDED).`)};for(let l of t.sets){let d={children:new Map},p=[];for(let u of e){let f=d;for(let E of l.items){let R=Wp(E,u),h=f.children.get(R);h||(h={children:new Map},f.children.set(R,h)),f=h}f.rows||(s(),f.rows=[],p.push(f.rows)),f.rows.push(u)}e.length===0&&l.items.length===0&&(s(),d.rows=[],p.push(d.rows));let c=new Set(l.items.map(u=>u.canonicalId));for(let u of p){let f={...u[0]},E=new Map;for(let R of l.items)E.has(R.canonicalId)||E.set(R.canonicalId,Wp(R,u[0]));for(let R of t.allItems){let h=E.get(R.canonicalId)??"";f[R.directKey]=h,R.unqualifiedBridgeKey!==null&&(f[R.unqualifiedBridgeKey]=h)}Xp(f,u,n,r),tc(f,c),o.push(f)}}return o}function Wp(e,t){return t?t[e.directKey]??(e.unqualifiedBridgeKey===null?void 0:t[e.unqualifiedBridgeKey])??"":""}function Xp(e,t,n,r){for(let i of n)if(i.type==="AGGREGATE"){let o=we(i.func,i.distinct,i.arg),a=String(Os(i.func,i.distinct,i.arg,i.separator,t,r));e[i.alias??o]=a,i.alias&&(e[o]=a)}else if(i.type==="ARITH_AGG_COL"){let o=i.alias??Mn(i.expr);e[o]=String(ho(i.expr,t,r))}else if(i.type==="STRFUNC_COL"&&Ur(i.expr)){let o=i.alias??Dt(i.expr),a=Us(i.expr,t,r);e[o]=se(a,e)}else if(i.type==="SCALAR_VALUE_COL"&&_t(i.expr)){let o=i.alias??et(i.expr),a=Ao(i.expr,t,r);e[o]=String(de(a,e))}}function eh(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=go(o,t,n.columnIndex,i);if(typeof a!="string")throw new Error("InternalError: GROUP BY alias resolved to an expanded SELECT column.");return a}throw new Error(`InternalError: unresolved plain GROUP BY item ${n.kind} reached evaluation.`)}return e.type==="FUNC_KEY"?se(e.expr,t):String(ae(e.expr,t))}function Os(e,t,n,r,i,o){if(n.type==="WILDCARD")return e==="COUNT"?i.length:0;let a=[];for(let f of i){let E;if(n.type==="FIELD_REF"){let R=f[n.field];if(R===void 0||R===""&&e!=="MIN"&&e!=="MAX")continue;E=R}else if(n.type==="ARITH"||n.type==="NUMBER"||n.type==="STRING_FUNC"){let R=ae(n,f);if(isNaN(R))continue;E=String(R)}else{let R=Ot(n,f);if(R===null||R===""&&e!=="MIN"&&e!=="MAX"||typeof R=="number"&&Number.isNaN(R))continue;E=String(R)}a.push(E)}let s=e==="STDDEV_POP"||e==="STDDEV_SAMP"||e==="VAR_POP"||e==="VAR_SAMP"||e==="MEDIAN",l=s?a.map(f=>{let E=Number(f);if(!Number.isFinite(E))throw new Error(`ArgumentError: ${e} \u306E\u5F15\u6570\u306B\u975E\u6570\u5024\u307E\u305F\u306F\u975E\u6709\u9650\u306E\u5024\u304C\u3042\u308A\u307E\u3059: ${f}`);return E}):null,d=t?s?[...new Set(l)]:[...new Set(a)]:s?l:a;if(e==="COUNT")return d.length;if(e==="GROUP_CONCAT")return d.join(r??",");let p=e==="MIN"||e==="MAX"||e==="MODE"?Qp(n,o):void 0,c=typeof p=="string"?B(p):p??(n.type==="FIELD_REF"||n.type==="FIELD"||n.type==="STRING"||n.type==="CONCAT_OP"||n.type==="CASE_WHEN"?B("string"):B("number"));if(e==="MODE"){if(a.length===0)return"";let f=new Map;for(let h of a)f.set(h,(f.get(h)??0)+1);let E="",R=0;for(let[h,m]of f){if(m>R){E=h,R=m;continue}if(m!==R)continue;let y=$t(h,E,c);(y<0||y===0&&Ct(h,E)<0)&&(E=h)}return E}if(e==="MIN"||e==="MAX"){let f=d;if(f.length===0)return 0;let E=f[0];for(let R of f.slice(1)){let h=$t(R,E,c);(e==="MAX"&&h>0||e==="MIN"&&h<0)&&(E=R)}return E}let u=s?d:d.map(Number);switch(e){case"SUM":return u.reduce((f,E)=>f+E,0);case"AVG":return u.length===0?0:u.reduce((f,E)=>f+E,0)/u.length;case"MEDIAN":{if(u.length===0)return"";let f=[...u].sort((R,h)=>R-h),E=Math.floor(f.length/2);return f.length%2===1?f[E]:(f[E-1]+f[E])/2}case"VAR_POP":case"VAR_SAMP":case"STDDEV_POP":case"STDDEV_SAMP":{let f=e==="VAR_SAMP"||e==="STDDEV_SAMP";if(u.length===0||f&&u.length<2)return"";let E=u[0],R=0,h=0,m=0;for(let g of u){let S=g-E;R++;let P=S-h;h+=P/R,m+=P*(S-h)}let y=Math.max(0,m/(f?R-1:R));return e==="STDDEV_POP"||e==="STDDEV_SAMP"?Math.sqrt(y):y}}}function th(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 ho(e,t,n){if(e.type==="NUMBER")return e.value;if(e.type==="AGG_REF")return Number(Os(e.func,e.distinct,e.arg,e.separator,t,n));let r=ho(e.left,t,n),i=ho(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 Mn(e){return er(e)}function Qp(e,t){if(e.type==="FIELD_REF")return t?.(th(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=>Qp(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 nh(e,t,n,r){return t===null?e:e.filter(i=>te(t,i,n,void 0,r))}function rh(e,t,n,r,i){if(e.length===0)return e;let o=ih(e,t,{scalarCache:n,resolveFieldType:r,resolveFieldSemantics:i}),a=new Set;return e.filter(s=>{let l=o(s);return a.has(l)?!1:(a.add(l),!0)})}function ih(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(uh(t,a,o))}function Ls(e,t,n,r,i,o){return t.length===0?e:Zp(e,t,n,r,i,o).rows.map(a=>a.row)}function Zp(e,t,n,r,i,o){let a=t.map(({key:d})=>{if(d.type==="ARITH_KEY")return{semantics:B("number")};if(d.type==="FUNC_KEY")return{semantics:B(ed.has(d.expr.func)?"number":"string")};if(d.type==="GROUPING_KEY")return{semantics:B("number")};let p=i?.get(d.name);if(p)return{semantics:p};let c=n?.get(d.name);return c?{semantics:{fieldType:"MULTI_SELECT",compareMode:"option",inSubtable:!1,requiresCollectionOperators:!1,optionOrder:c}}:{semantics:B(r?.get(d.name)??"string")}}),s=e.map(d=>({row:d,keys:t.map(({key:p},c)=>({s:sh(p,d,o)}))})),l=(d,p)=>oh(d,p,t,a);return s.sort(l),{rows:s,compare:l}}function oh(e,t,n,r){for(let i=0;i<n.length;i++){let o=ah(e.keys[i],t.keys[i],r[i]);if(o!==0)return n[i].direction==="ASC"?o:-o}return 0}function ah(e,t,n){return $t(e.s,t.s,n.semantics)}var ed=new Set(["LENGTH","LENGTH_CHAR","INSTR","ROUND","FLOOR","CEIL","TRUNCATE","YEAR","MONTH","DAY","DATEDIFF","ABS","MOD","POWER","SQRT","DAYOFWEEK","QUARTER","WEEK"]);function sh(e,t,n){switch(e.type){case"FIELD_NAME":return n?.(e.name,t)??t[e.name]??"";case"ARITH_KEY":return String(ae(e.expr,t));case"FUNC_KEY":return se(e.expr,t);case"GROUPING_KEY":return wn(e.ref,t)}}function _s(e,t,n,r){let i=new Map;for(let[o,a]of e.entries()){if(!("alias"in a)||a.alias===null)continue;let s=a.alias;switch(a.type){case"FIELD":i.set(s,l=>ut(l,a.field));break;case"LITERAL_COL":i.set(s,()=>a.value);break;case"AGGREGATE":{let l=we(a.func,a.distinct,a.arg);i.set(s,d=>d[s]??d[l]??"0");break}case"ARITH_AGG_COL":{let l=Mn(a.expr);i.set(s,d=>d[s]??d[l]??"0");break}case"WINDOW_COL":i.set(s,l=>l[s]??"");break;case"ARITH_COL":i.set(s,l=>String(ae(a.expr,l)));break;case"STRFUNC_COL":{let l=Dt(a.expr);i.set(s,d=>Ur(a.expr)?d[s]??d[l]??se(a.expr,d,n,r):se(a.expr,d,n,r));break}case"CASE_COL":i.set(s,l=>ve(a.expr,l,n,r));break;case"SCALAR_VALUE_COL":{let l=et(a.expr);i.set(s,d=>_t(a.expr)?d[s]??d[l]??"":String(de(a.expr,d,n,r)));break}case"SCALAR_SUBQUERY_COL":i.set(s,()=>t?.get(o)??"");break;case"GROUPING_COL":i.set(s,l=>wn(a.ref,l));break;case"VARIABLE_COL":break}}return(o,a)=>i.get(o)?.(a)}function Ds(e,t,n,r,i){let o=t.filter(a=>a.type==="WINDOW_COL");if(e.length===0||o.length===0)return e;for(let a of o){let s=new Map;for(let l of e){let d=JSON.stringify(a.partitionBy.map(c=>lh(l,c))),p=s.get(d);p?p.push(l):s.set(d,[l])}for(let l of s.values()){let d=Zp(l,a.orderBy,n,r,i),p=d.rows,c=1,u=1;for(let f=0;f<p.length;f++){f>0&&d.compare(p[f-1],p[f])!==0&&(c=f+1,u++);let E=a.func==="ROW_NUMBER"?f+1:a.func==="RANK"?c:u;p[f].row[a.alias]=String(E)}}}return e}function lh(e,t){let n=t.tableAlias?`${t.tableAlias}.${t.field}`:t.field;return ut(e,n)}function So(e,t,n){let r=n??0;return t===null?e.slice(r):e.slice(r,r+t)}function go(e,t,n,r={}){switch(e.type){case"VARIABLE_COL":throw new Error(`internal error: unresolved SELECT variable @${e.name}`);case"WILDCARD":return{kind:"EXPANDED",entries:(r.wildcardKeys??Object.keys(t)).map(o=>[o,t[o]!==void 0?t[o]:null])};case"PARENT_WILDCARD":return{kind:"EXPANDED",entries:(r.parentWildcardKeys??Object.keys(t).filter(o=>o.startsWith("_p.")).sort()).map(o=>[o,t[o]!==void 0?t[o]:null])};case"FIELD":return ut(t,e.field);case"LITERAL_COL":return e.value;case"AGGREGATE":{let i=we(e.func,e.distinct,e.arg);return t[e.alias??i]??t[i]??"0"}case"ARITH_AGG_COL":{let i=e.alias??Mn(e.expr);return t[i]??"0"}case"ARITH_COL":return String(ae(e.expr,t));case"CASE_COL":return ve(e.expr,t,r.resolveFieldType,r.resolveFieldSemantics);case"GROUPING_COL":return wn(e.ref,t);case"STRFUNC_COL":{let i=Dt(e.expr);return Ur(e.expr)?t[e.alias??i]??t[i]??se(e.expr,t,r.resolveFieldType,r.resolveFieldSemantics):se(e.expr,t,r.resolveFieldType,r.resolveFieldSemantics)}case"SCALAR_VALUE_COL":{let i=et(e.expr);return _t(e.expr)?t[e.alias??i]??t[i]??"":String(de(e.expr,t,r.resolveFieldType,r.resolveFieldSemantics))}case"SCALAR_SUBQUERY_COL":return r.scalarCache?.get(n)??"";case"WINDOW_COL":return t[e.alias]??""}}function uh(e,t,n={}){return e.map((r,i)=>{let o=go(r,t,i,n);return typeof o=="string"?o:o.entries.map(([,a])=>a)})}function vr(e,t,n,r,i,o,a){if(t.length===1&&t[0].type==="WILDCARD"){let u=e.map(E=>{let R=qp(Yp(E),a),h=go(t[0],E,0,{wildcardKeys:Object.keys(R)}),m={};if(typeof h!="string")for(let[y,g]of h.entries)g!==null&&(m[y]=g);return m}),f=u.length>0?Object.keys(u[0]):[...i??[]];return{rows:u,columns:f}}let s=dh(t),l=t.some(u=>u.type==="WILDCARD"||u.type==="PARENT_WILDCARD"),d=l?null:ch(t,s),p=d??[];return l&&e.length===0?{rows:[],columns:ph(t,s)}:{rows:e.map((u,f)=>{let E={},R={scalarCache:n,resolveFieldType:r,resolveFieldSemantics:o,wildcardKeys:Object.keys(qp(Yp(u),a)),parentWildcardKeys:Object.keys(u).filter(h=>h.startsWith("_p.")).sort()};for(let[h,m]of t.entries()){let y=go(m,u,h,R);switch(m.type){case"VARIABLE_COL":break;case"WILDCARD":if(typeof y!="string")for(let[g,S]of y.entries)S!==null&&(E[g]=S);break;case"PARENT_WILDCARD":{if(typeof y!="string")for(let[g,S]of y.entries)S!==null&&(E[g]=S),f===0&&p.push(g);break}case"FIELD":{let g=d?.[h]??m.alias??s.get(h)??m.field;E[g]=y,d===null&&f===0&&p.push(g);break}case"LITERAL_COL":{let g=d?.[h]??m.alias??`'${m.value}'`;E[g]=y,d===null&&f===0&&p.push(g);break}case"AGGREGATE":{let g=we(m.func,m.distinct,m.arg),S=d?.[h]??m.alias??g;E[S]=y,d===null&&f===0&&p.push(S);break}case"ARITH_AGG_COL":{let g=d?.[h]??m.alias??Mn(m.expr);E[g]=y,d===null&&f===0&&p.push(g);break}case"ARITH_COL":{let g=d?.[h]??m.alias??vs(m.expr);E[g]=y,d===null&&f===0&&p.push(g);break}case"CASE_COL":{let g=d?.[h]??m.alias??"case";E[g]=y,d===null&&f===0&&p.push(g);break}case"GROUPING_COL":{let g=d?.[h]??m.alias??`GROUPING(${m.ref.field.tableAlias?`${m.ref.field.tableAlias}.`:""}${m.ref.field.field})`;E[g]=y,d===null&&f===0&&p.push(g);break}case"STRFUNC_COL":{let g=d?.[h]??m.alias??Dt(m.expr);E[g]=y,d===null&&f===0&&p.push(g);break}case"SCALAR_VALUE_COL":{let g=d?.[h]??m.alias??et(m.expr);E[g]=y,d===null&&f===0&&p.push(g);break}case"SCALAR_SUBQUERY_COL":{let g=d?.[h]??m.alias??"(subquery)";E[g]=y,d===null&&f===0&&p.push(g);break}case"WINDOW_COL":{let g=d?.[h]??m.alias;E[g]=y,d===null&&f===0&&p.push(g);break}}}return E}),columns:p}}function ch(e,t){return e.map((n,r)=>td(n,r,t))}function ph(e,t){let n=[],r=new Set;for(let[i,o]of e.entries()){if(o.type==="WILDCARD"||o.type==="PARENT_WILDCARD")continue;let a=td(o,i,t);r.has(a)||(r.add(a),n.push(a))}return n}function td(e,t,n){switch(e.type){case"VARIABLE_COL":throw new Error(`internal error: unresolved SELECT variable @${e.name}`);case"FIELD":return e.alias??n.get(t)??e.field;case"LITERAL_COL":return e.alias??`'${e.value}'`;case"AGGREGATE":return e.alias??we(e.func,e.distinct,e.arg);case"ARITH_AGG_COL":return e.alias??Mn(e.expr);case"ARITH_COL":return e.alias??vs(e.expr);case"CASE_COL":return e.alias??"case";case"STRFUNC_COL":return e.alias??Dt(e.expr);case"SCALAR_VALUE_COL":return e.alias??et(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 dh(e){let t=new Map;for(let r of e){if(r.type!=="FIELD"||r.alias)continue;let i=Hp(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=Hp(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 Hp(e){if(e.startsWith("_p."))return e;let t=e.indexOf(".");return t<=0?e:e.slice(t+1)||e}function Yp(e){let t={};for(let[n,r]of Object.entries(e))n.startsWith("_p.")||(t[n]=r);return t}function vs(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"?H(n):n.type==="STRING_FUNC"?Dt(n):`(${t(n.left)}${n.op}${t(n.right)})`};return e.type==="ARITH"?`${t(e.left)}${e.op}${t(e.right)}`:t(e)}function Dt(e){let t=e.args.map(n=>n.type==="AGG_REF"||n.type==="AGG_ARITH"?Mn(n):et(n));return`${e.func}(${t.join(",")})`}function et(e){switch(e.type){case"STRING":return`'${e.value}'`;case"NUMBER":return H(e);case"VARIABLE":return`@${e.name}`;case"FIELD":return e.tableAlias?`${e.tableAlias}.${e.field}`:e.field;case"STRING_FUNC":return Dt(e);case"CASE_WHEN":return"case";case"SCALAR_ARITH":return`${et(e.left)}${e.op}${et(e.right)}`;case"CONCAT_OP":return`${et(e.left)}||${et(e.right)}`}}function fh(e){return e.type==="AGG_REF"||e.type==="AGG_ARITH"?!0:_t(e)}function _t(e){return e.type==="STRING_FUNC"?Ur(e):e.type==="SCALAR_ARITH"||e.type==="CONCAT_OP"?_t(e.left)||_t(e.right):e.type==="CASE_WHEN"?e.branches.some(t=>jp(t.result))||e.elseResult!==null&&jp(e.elseResult):!1}function jp(e){return e.type==="ARRAY"||e.type==="FIELD_REF"||e.type==="ARITH"?!1:_t(e)}function Ur(e){return e.args.some(t=>fh(t))}function Eh(e,t,n){if(e.type==="AGG_REF"){let r=Os(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=ho(e,t,n);return{type:"NUMBER",value:r,raw:String(r)}}return e.type==="STRING_FUNC"?Us(e,t,n):Ao(e,t,n)}function Ao(e,t,n){return e.type==="STRING_FUNC"?Us(e,t,n):e.type==="SCALAR_ARITH"||e.type==="CONCAT_OP"?{...e,left:Ao(e.left,t,n),right:Ao(e.right,t,n)}:e}function Us(e,t,n){return{type:"STRING_FUNC",func:e.func,args:e.args.map(r=>Eh(r,t,n))}}function qp(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 zp(e,t){if(e!==void 0)return t?e.flatMap(n=>[`${t}.${n}`,n]):[...e]}function Cs(e,t,n){if(!(e===void 0&&t===void 0&&n.length===0))return[...new Set([...e??[],...t??[],...Object.keys(n[0]??{})])]}function Rh(e){let t=new Map;for(let n of e)!("alias"in n)||!n.alias||(n.type==="ARITH_COL"||n.type==="ARITH_AGG_COL"||n.type==="WINDOW_COL"?t.set(n.alias,B("number")):n.type==="AGGREGATE"?n.func==="COUNT"||n.func==="SUM"||n.func==="AVG"||n.func==="STDDEV_POP"||n.func==="STDDEV_SAMP"||n.func==="VAR_POP"||n.func==="VAR_SAMP"||n.func==="MEDIAN"?t.set(n.alias,B("number")):n.func==="GROUP_CONCAT"&&t.set(n.alias,B("string")):n.type==="LITERAL_COL"||n.type==="CASE_COL"||n.type==="SCALAR_SUBQUERY_COL"||n.type==="SCALAR_VALUE_COL"?t.set(n.alias,B("string")):n.type==="STRFUNC_COL"&&t.set(n.alias,B(ed.has(n.expr.func)?"number":"string")));return t}function ks(e){let{stmt:t,tables:n,scalarCache:r,optionOrders:i,sortKinds:o,orderSemantics:a,fieldTypeResolver:s,fieldSemanticsResolver:l,havingFieldTypeResolver:d,havingFieldSemanticsResolver:p,aggregateSortKindResolver:c,appliedKlikes:u,sourceColumns:f,tableColumns:E,hiddenQualifiedAliases:R,resolvedGroupingSpec:h,plainGroupByPlan:m}=e,y=Rh(t.columns);for(let[v,w]of a??[])y.set(v,w);let g=[],S=t.from.alias;g=(n.get(S)??n.get(null)??[]).map(v=>dt(v,S));let b=Cs(zp(E?.get(S),S),void 0,g);for(let v of t.joins){let w=v.table.alias,M=(n.get(w)??[]).map(_=>dt(_,w)),N=Cs(zp(E?.get(w),w),void 0,M);g=Jy(g,M,v,{leftColumns:b,rightColumns:N}),b=Cs(b,N,g)}let L=e.residualWhere!==void 0?e.residualWhere:t.where;g=Xy(g,L,s,u,l);let I=ne(t);if(I.type==="GROUPING_SETS"){if(!h)throw new Error("internal error: B65 grouping sets require a metadata-resolved grouping spec.");g=Zy(g,h,t.columns,c,{maxGeneratedRows:5e4})}else(I.type==="PLAIN"||Jp(t.columns))&&(g=Qy(g,I.type==="PLAIN"?I.allItems:[],t.columns,c,I.type==="PLAIN"?m:void 0,{scalarCache:r,resolveFieldType:s,resolveFieldSemantics:l}));return g=nh(g,t.having,d,p),g=Ds(g,t.columns,i,o,y),t.distinct&&(g=rh(g,t.columns,r,s,l)),g=Ls(g,t.orderBy,i,o,y,_s(t.columns,r,s,l)),g=So(g,t.limit,t.offset),vr(g,t.columns,r,s,f,l,R)}function nd(e,t){let n=[];for(let r of e){let i=Ms(r.$id?.value),o=mh(r[t]?.value);if(o.length!==0)for(let a=0;a<o.length;a++){let s=o[a],l={_pid:{value:i},_rid:{value:s.id??""},_idx:{value:String(a)}};for(let[d,p]of Object.entries(r)){if(d===t)continue;let c=Ms(p?.value);l[`_p.${d}`]={value:c}}for(let[d,p]of Object.entries(s.value??{}))l[d]={value:Ms(p?.value)};n.push(l)}}return n}function mh(e){return Array.isArray(e)?e.filter(t=>!!t&&typeof t=="object"):[]}function Ms(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 rd(e){return["$id",...new Set([...e.topLevel.map(t=>t.code).filter(t=>t!=="$id"&&t!=="$revision"),...e.subtables.keys()])]}function id(e,t){let n=kr(e);for(let[r,i]of Object.entries(t))n[r]=kr(i);return n}function od(e){let t=[...e.preErrors.map(i=>Fs(i)),...e.postImageErrors.map(i=>Fs(i,i.$err_subtable!=="")),...e.checkErrors.map(i=>Fs(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]=kr(e.normalizedPostImage[i])}return{errors:t,invalidRows:n.size,invalidRowNumbers:n,writeRecord:r}}function Fs(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 kr(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(kr(a,t));return o}let i={};t.set(n,i);for(let[o,a]of Object.entries(e))i[o]=kr(a,t);return i}function sd(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"&&Be(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 Ks(e){return sd(e,!0)}function To(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 Ve(e,t,n,r,i=!0,o=!0,a=r){let s=Ks(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:ue(e.where)}),To(e,e).forEach((l,d)=>Ve(l,`${t}.select-source[${d}]`,n,a,a?!1:i,a?!1:o,a))}function Mr(e,t,n,r,i=!0){e.left.type==="UNION"?Mr(e.left,`${t}.left`,n,r,i):Ve(e.left,`${t}.left`,n,r,!0,i),Ve(e.right,`${t}.right`,n,r,!0,i)}function ad(e,t,n,r){if(!r&&It(e)){Ve(wt(e),`${t}.inlined`,n,!1,!0,!0);return}e.ctes.forEach((i,o)=>{i.query.type==="SELECT"?Ve(i.query,`${t}.cte[${o}]`,n,r,!1,!r,!0):i.query.type==="UNION"&&Mr(i.query,`${t}.cte[${o}]`,n,!0,!1)}),e.query.type==="SELECT"?Ve(e.query,`${t}.main`,n,r,!1,!r,!0):Mr(e.query,`${t}.main`,n,!0,!1)}function ld(e,t,n,r=!1){switch(e.type){case"SELECT":Ve(e,t,n,r);return;case"UNION":Mr(e,t,n,r);return;case"WITH":ad(e,t,n,r);return;case"CREATE_TEMP_TABLE":e.query.type==="WITH"?ad(e.query,`${t}.query`,n,!1):e.query.type==="UNION"?Mr(e.query,`${t}.query`,n,!0,!1):Ve(e.query,`${t}.query`,n,!1,!1,!0,!0);return;case"EXPLAIN":ld(e.query,`${t}.query`,n,r);return;case"VALIDATE":case"REORDER":{let i=Ks(e.where);i.length>0&&n.push({kind:"FORBIDDEN",source:e,where:e.where,functionNames:i,path:t,allowFullScanExact:!1,relativeFunctionOccurrences:ue(e.where)}),To(e,e).forEach((o,a)=>Ve(o,`${t}.select-source[${a}]`,n,!0,!0,!1));return}case"UPDATE":case"DELETE":{let i=Ks(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:ue(e.where)})}if(e.type==="UPDATE"&&e.applyBlocks?.length){let o=sd(e.applyBlocks,!0);o.length>0&&n.push({kind:"FORBIDDEN",source:e,where:null,functionNames:o,path:`${t}.apply`,allowFullScanExact:!1,relativeFunctionOccurrences:[]})}To(e,e).forEach((o,a)=>Ve(o,`${t}.select-source[${a}]`,n,r,!1,!1));return}default:To(e,e).forEach((i,o)=>Ve(i,`${t}.select-source[${o}]`,n,r,!1,!1))}}function Io(e,t){let n=new Map;for(let r of t){if(!Be(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 Bs(e,t){return t.eligible===!0&&_e(e)==="FULL_SCAN"&&e.orderMode!=="KINTONE_NATIVE"&&e.from.cteName===null&&!e.from.subtableCode&&e.joins.length===0}function yh(e,t){return e.where!==null&&e.joins.length>0&&e.joins.every(n=>n.type==="INNER")&&[e.from,...e.joins.map(n=>n.table)].every(n=>n.alias!==null&&n.cteName===null&&!n.subtableCode)&&kn(t)}function hh(e){return{kind:e.kind,source:e.source,functionNames:e.functionNames,path:e.path,clientWhereEvaluation:!0,allowed:!1}}function gh(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 fn(e)?(n.some(r=>r!==at)||n.unshift("WHERE_KINTONE_FUNCTION_CONTEXT_UNSUPPORTED"),n.includes(at)||n.push(at)):n.includes(Ft)||n.push(Ft),[...new Set(n)]}function xs(e,t){let n=e.functionNames[0],r=fn(n)?at:Ft,i=gh(n,t);return{functionName:n,path:e.path,code:i.find(o=>o!==r)??r,reasonCodes:i}}async function ud(e,t){let n=[];ld(e,"statement",n);let r=[];for(let i of n){if(i.kind==="FORBIDDEN"){let p=hh(i);return r.push(p),{hasRelativeDate:i.functionNames.some(J),hasServerOnlyWhereFunction:!0,nodes:r,allowed:!1,rejection:xs(i)}}if(i.kind==="SELECT"){let p=i.source,c=p.from.cteName===null&&!p.from.subtableCode&&p.joins.length===0,u=_e(p),f=await t.select(p),E="";try{E=i.where===null?"":G(i.where)}catch{E=""}let R=c&&u==="SIMPLE"&&(p.orderBy.length===0||p.orderMode==="KINTONE_NATIVE")&&f.capability==="EXACT_PUSHDOWN"&&Io(E,i.relativeFunctionOccurrences),h,m;if(!R&&i.allowPhase2Prefilter!==!1&&f.capability==="SUPERSET_PREFILTER"&&t.prefilterDecomposition){let P=await t.prefilterDecomposition(p);P?.eligible===!0&&Bs(p,P)&&(h=P.plan,m=!0,R=!0)}let y;!R&&f.capability==="EXACT_PUSHDOWN"&&(y=Ii({select:p,selectMode:u,capability:f,context:{allowFullScanExact:i.allowFullScanExact},serializedWholeWhere:E||null,relativeFunctionNames:i.relativeFunctionOccurrences})??void 0,y&&(h=y.prefilterPlan,R=!0));let g;if(!R&&t.joinServerFunctionPlan){let P=await t.joinServerFunctionPlan(p);P!==null&&yh(p,P)&&(g=P,R=!0)}let S={kind:i.kind,source:i.source,functionNames:i.functionNames,path:i.path,selectMode:u,capability:f,restQuery:E,...h?{prefilterPlan:h,phase2PrefilterEligible:m}:{},...y?{fullScanExactPlan:y,allowForm:y.allowForm}:{},...g?{joinServerFunctionPlan:g,allowForm:"JOIN_SERVER_FUNCTION_EXACT",joinServerFunctionVariant:g.serverFunctionCandidate.variant}:{},clientWhereEvaluation:!R,allowed:R};if(r.push(S),!R)return{hasRelativeDate:n.some(P=>P.functionNames.some(J)),hasServerOnlyWhereFunction:!0,nodes:r,allowed:!1,rejection:xs(i,f)};continue}let o=i.source,a=await t.dml(o),s="";try{s=i.where===null?"":G(i.where)}catch{s=""}let l=a.capability==="EXACT_PUSHDOWN"&&Io(s,i.relativeFunctionOccurrences),d={kind:i.kind,source:i.source,functionNames:i.functionNames,path:i.path,capability:a,restQuery:s,clientWhereEvaluation:!l,allowed:l};if(r.push(d),!l)return{hasRelativeDate:n.some(p=>p.functionNames.some(J)),hasServerOnlyWhereFunction:!0,nodes:r,allowed:!1,rejection:xs(i,a)}}return{hasRelativeDate:n.some(i=>i.functionNames.some(J)),hasServerOnlyWhereFunction:n.length>0,nodes:r,allowed:!0}}function $s(e){if(!e.allowed&&e.rejection){let t=fn(e.rejection.functionName)?at:Ft,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 Gs(e,t,n={}){let r=Ce(e.where,t),i=(g,S="INELIGIBLE")=>({eligible:!1,disposition:S,reasonCodes:g,capability:r.capability,reasons:r.reasons});if(e.where===null)return i(["NO_WHERE"]);if(e.from.subtableCode)return i(["SUBTABLE_UNSUPPORTED"]);if(e.joins.length>0)return i(["JOIN_UNSUPPORTED"]);if(e.from.cteName!==null||e.from.appId<=0)return i(["NOT_DIRECT_PHYSICAL_APP"]);let o=xr(e.where);if(o.length===0)return i(["NO_RELATIVE_DATE"]);let a=Ah(e.where,t);if(!a.ok)return i(a.reasonCodes);if(!Sh(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=Ih(e.where,t),l=or(e.where,{tableAlias:e.from.alias??void 0,allowUnqualifiedFields:!0,allowKlike:!0,fieldTypes:s.fieldTypes,fieldOptions:s.fieldOptions}),d=n.serialize??G,p=n.containsFunctions??Io,c=[];for(let g of a.leaves){let S=No(g);if(S===null)return i(["RELATIVE_DATE_LEAF_COUNT_MISMATCH"]);let P;try{P=d(g)}catch{return i(["PREFILTER_SERIALIZATION_FAILED"])}if(!p(P,[S]))return i(["PREFILTER_FUNCTION_MISSING"]);c.push(g)}let u=Th(l.condition),f=new Set(c),E=bo(e.where,f,u);if(E===null)return i(["RELATIVE_DATE_LEAF_COUNT_MISMATCH"]);let R;try{R=d(E)}catch{return i(["PREFILTER_SERIALIZATION_FAILED"])}let h=c.map(g=>No(g));if(!p(R,[...new Set(h)])||!wh(R,h))return i(["PREFILTER_FUNCTION_MISSING"]);let m=n.rewriteResidual?n.rewriteResidual(e.where,f):Po(e.where,f);if(m!==null&&xr(m).length>0)return i(["RESIDUAL_RELATIVE_DATE_REMAINED"]);if(m===null)return i(["DEFER_TO_PHASE1"],"DEFER_PHASE1");let y=new Set;for(let g of h)y.add(g);return{eligible:!0,plan:{prefilterWhere:E,residualWhere:m,exactRelativeLeaves:c,relativeFunctionNames:y,appliedKlikes:l.appliedKlikes,capability:r.capability,reasons:r.reasons}}}function Ah(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}xr(o).length>0&&(r="RELATIVE_DATE_CONTEXT_UNSUPPORTED");return;case"NOT":xr(o).length>0&&(r="RELATIVE_DATE_CONTEXT_UNSUPPORTED");return;case"BINARY":{if(No(o)===null)return;if(Ce(o,t).capability!=="EXACT_PUSHDOWN"){r="RELATIVE_DATE_LEAF_NOT_EXACT";return}n.push(o);return}case"EXISTS":xr(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 No(e){return e.right.type==="KINTONE_FUNC"&&Be(e.right.name)?e.right.name:e.right.type==="IN_LIST"&&e.right.values.length===1&&e.right.values[0].type==="KINTONE_FUNC"&&Be(e.right.values[0].name)?e.right.values[0].name:null}function xr(e){let t=[],n=r=>{if(r.type==="BINARY"&&No(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 Sh(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 Th(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 bo(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=bo(e.left,t,n),i=bo(e.right,t,n);return r!==null&&i!==null?{...e,left:r,right:i}:r??i}case"GROUP":{let r=bo(e.expr,t,n);return r===null?null:{...e,expr:r}}case"NULL_CHECK":case"NOT":case"EXISTS":case"BOOLEAN":return null}}var Fr={type:"BOOLEAN",value:!0};function Po(e,t){if(e.type==="BINARY"&&t.has(e))return Fr;switch(e.type){case"LOGICAL":{if(e.op!=="AND")return e;let n=Po(e.left,t)??Fr,r=Po(e.right,t)??Fr;return wo(n)?wo(r)?null:r:wo(r)?n:n===e.left&&r===e.right?e:{...e,left:n,right:r}}case"GROUP":{let n=Po(e.expr,t)??Fr;return wo(n)?Fr:n===e.expr?e:{...e,expr:n}}case"BINARY":case"NULL_CHECK":case"NOT":case"EXISTS":case"BOOLEAN":return e}}function wo(e){return e.type==="BOOLEAN"&&e.value}function Ih(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 wh(e,t){let n=new Map;for(let r of t){if(!qn.has(r))return!1;n.set(r,(n.get(r)??0)+1)}for(let[r,i]of n)if((e.match(new RegExp(`\\b${r}\\s*\\(`,"g"))?.length??0)<i)return!1;return!0}var K=class extends Error{constructor(t){super(`ImportSourceError: ${t}`),this.name="ImportSourceError"}};function cd(e,t){if(!t)throw new K("IMPORT source capability is not available.");let n=t(e);if(!n)throw new K(`source "${e}" is not supplied.`);return n}async function Co(e,t){let n=t.get(e);return n||(n=e.load().then(r=>{if(!(r.bytes instanceof Uint8Array))throw new K("loader must return Uint8Array bytes.");if(r.bytes.byteLength>10485760)throw new K("source exceeds the 10485760 byte limit.");return r}),t.set(e,n)),n}function bh(e,t){try{return new TextDecoder(t==="sjis"?"shift_jis":"utf-8",{fatal:!0}).decode(e).replace(/^\uFEFF/,"")}catch{throw new K(`invalid ${t.toUpperCase()} byte sequence.`)}}function Ph(e){let t=[],n=[],r="",i=!1,o=!1,a=0,s=()=>{n.push(r),r="",o=!1},l=()=>{s(),t.push(n),n=[]};for(;a<e.length;){let d=e[a];if(i){if(d==='"'){if(e[a+1]==='"'){r+='"',a+=2;continue}i=!1,o=!0,a++;continue}r+=d,a++;continue}if(o&&d!==","&&d!=="\r"&&d!==`
|
|
3
|
+
`;)this.pos++;continue}if(t==="/"&&this.input[this.pos+1]==="*"){let n=this.pos;this.pos+=2;let r=!1;for(;this.pos<this.input.length;){if(this.input[this.pos]==="*"&&this.input[this.pos+1]==="/"){this.pos+=2,r=!0;break}this.pos++}if(!r)throw new ye("\u30D6\u30ED\u30C3\u30AF\u30B3\u30E1\u30F3\u30C8\u304C\u9589\u3058\u3089\u308C\u3066\u3044\u307E\u305B\u3093",n,this.input,!0);continue}break}}makeToken(t,n,r){return{kind:t,value:n,pos:r}}};function Fa(e){let t=e.codePointAt(0);return t>=65&&t<=90||t>=97&&t<=122||t===95||t===36||kR(t)}function fc(e){let t=e.codePointAt(0);return Fa(e)||t>=48&&t<=57}function bn(e){let t=e.codePointAt(0);return t>=48&&t<=57}function kR(e){return e>=12352&&e<=12543||e>=13312&&e<=40959||e>=63744&&e<=64255||e>=65281&&e<=65376}var Rc=20,xa=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"}),yc=Object.freeze(["CURRENT_DATE","CURRENT_TIMESTAMP"]),Ka=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"}),lI=Object.freeze(Object.values(Ka).filter(e=>e!==void 0)),MR=Object.freeze(["COUNT","SUM","AVG","MAX","MIN"]),FR=new Set(MR);function xR(e){return FR.has(e)}var gc=Object.freeze({ROW_NUMBER:"ROW_NUMBER",RANK:"RANK",DENSE_RANK:"DENSE_RANK"}),Fi=Object.freeze({TODAY:"TODAY",NOW:"NOW",LOGINUSER:"LOGINUSER",PRIMARY_ORGANIZATION:"PRIMARY_ORGANIZATION"});function mc(e){return Fi[e]!==void 0}var KR=Object.freeze([...Ai]),BR=new Set(["DAYS","WEEKS","MONTHS","YEARS"]),$R=new Set(["SUNDAY","MONDAY","TUESDAY","WEDNESDAY","THURSDAY","FRIDAY","SATURDAY"]);function GR(e){return BR.has(e)}function VR(e){return $R.has(e)}function WR(e){return Number.isInteger(e)&&e>=1&&e<=31}var uI=Object.freeze(Array.from(new Set([...Object.keys(xa),...yc,...Object.keys(Ka),...Object.keys(gc),...Object.keys(Fi),...KR,"IF"]))),HR=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 YR(e,t){return e.kind==="("||e.kind==="."||t.kind===")"||t.kind===","||t.kind==="."?!1:t.kind==="("?!HR.has(e.kind):!0}var T=class extends Error{constructor(n,r){super(`${n}\uFF08\u4F4D\u7F6E ${r.pos}\u3001\u30C8\u30FC\u30AF\u30F3: \u300C${r.value}\u300D\uFF09`);this.token=r;this.name="ParseError"}},Nt=class{constructor(t,n={}){this.tokens=t;this.capabilities=n;this.allowUnaryPlusNumber=!1;this.scalarAllowsAggregateArgs=!0;this.scalarAllowsCase=!0;this.pos=0;this.insideAggregateArg=0;this.groupingFieldContext="FORBIDDEN";this.allowRelativeDateFunctions=!1;this.cteNames=new Set;this.tempTableRefs=[];this.allowSelectArithVariable=!1}parse(){let t=this.parseStatements();if(t.length===0)throw new T("SQL \u6587\u304C\u3042\u308A\u307E\u305B\u3093",this.peek());if(t.length>1)throw new T("\u3053\u306E API \u306F\u5358\u6587\u306E\u307F\u53D7\u3051\u4ED8\u3051\u307E\u3059\uFF08\u8907\u6587\u306F\u30D0\u30C3\u30C1\u5B9F\u884C API \u3092\u4F7F\u7528\u3057\u3066\u304F\u3060\u3055\u3044\uFF09",this.peek());if(this.tempTableRefs.length>0){let n=this.tempTableRefs[0];throw new T(`temp table ${n.value} is not defined in this batch.`,n)}return t[0]}parseStatements(){let t=[];for(;;){for(;this.peek().kind===";";)this.advance();if(this.peek().kind==="EOF")break;let n=this.peek();if(t.push(this.parseStatement()),t.length>Rc)throw new T(`batch exceeds ${Rc} statements.`,n);let r=this.peek();if(r.kind!==";"&&r.kind!=="EOF")throw new T("\u6587\u306E\u533A\u5207\u308A\u306B\u306F ; \u304C\u5FC5\u8981\u3067\u3059",r)}return this.expect("EOF"),t}parseStatement(){let t=this.peek();switch(t.kind){case"WITH":return this.parseWith();case"SELECT":return this.tryParseUnionChain(this.parseSelect(!0));case"INSERT":return this.parseInsert();case"UPDATE":return this.parseUpdate();case"DELETE":return this.parseDelete();case"REORDER":return this.parseReorder();case"UPSERT":return this.parseUpsert();case"SHOW":return this.parseShow();case"DESCRIBE":case"DESC":return this.parseDescribe();case"EXPLAIN":return this.parseExplain();case"SET":return this.parseSetVariable();case"ASSERT":return this.parseAssert();case"IDENT":{let n=t.value.toUpperCase();if(n==="CREATE")return this.parseCreateTempTable();if(n==="DROP")return this.parseDropTempTable();if(n==="DECLARE")return this.parseDeclareVariable();if(n==="VALIDATE")return this.parseValidate();if(n==="IMPORT"){if(!this.capabilities.import)throw new T("IMPORT is not supported (capability is disabled).",t);return this.parseImport()}break}default:break}throw new T("SELECT / INSERT / UPDATE / DELETE / REORDER / VALIDATE / WITH / SHOW / DESCRIBE / EXPLAIN / CREATE TEMP TABLE / DROP TEMP TABLE / SET / DECLARE / ASSERT \u306E\u3044\u305A\u308C\u304B\u3067\u59CB\u307E\u308B SQL \u6587\u304C\u5FC5\u8981\u3067\u3059",t)}parseSetVariable(){this.expect("SET");let t=this.expect("VARIABLE","SET \u306E\u5F8C\u306B\u306F\u5909\u6570\u540D\uFF08\u4F8B: @name\uFF09\u304C\u5FC5\u8981\u3067\u3059");this.expect("=");let n=this.peek().kind==="["?this.parseArrayLiteral():this.parseScalarExpr("SET",!0);return{type:"SET_VARIABLE",name:t.value.slice(1).toLowerCase(),expr:n}}parseDeclareVariable(){this.advance();let t=this.expect("VARIABLE","DECLARE \u306E\u5F8C\u306B\u306F\u5909\u6570\u540D\uFF08\u4F8B: @name\uFF09\u304C\u5FC5\u8981\u3067\u3059");this.expect("=");let n=this.parseScalarExpr("DECLARE",!1);if(n.type==="SCALAR_SUBQUERY")throw new T("DECLARE \u306E\u65E2\u5B9A\u5024\u306B\u30B9\u30AB\u30E9\u30FC\u30B5\u30D6\u30AF\u30A8\u30EA\u306F\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093",this.peek());return{type:"DECLARE_VARIABLE",name:t.value.slice(1).toLowerCase(),default:n}}parseScalarExpr(t,n){let r=this.peek();if(r.kind==="VARIABLE")throw new T(`${t} \u306E\u53F3\u8FBA\u3067\u306F\u4ED6\u306E\u5909\u6570\u3092\u53C2\u7167\u3067\u304D\u307E\u305B\u3093`,r);if(r.kind==="NULL")throw new T(`${t} \u306E\u53F3\u8FBA\u3067 NULL \u306F\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093`,r);if(r.kind==="("&&this.peekAt(1).kind==="SELECT"){if(!n)throw new T("DECLARE \u306E\u65E2\u5B9A\u5024\u306B\u30B9\u30AB\u30E9\u30FC\u30B5\u30D6\u30AF\u30A8\u30EA\u306F\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093",r);this.advance();let a=this.parseSelect();if(this.expect(")"),this.isArithOp(this.peek().kind))throw new T("\u30B9\u30AB\u30E9\u30FC\u30B5\u30D6\u30AF\u30A8\u30EA\u306E\u5F8C\u306B\u7B97\u8853\u6F14\u7B97\u5B50\u306F\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093\u3002\u30B5\u30D6\u30AF\u30A8\u30EA\u5185\u3067\u8A08\u7B97\u3057\u3066\u304F\u3060\u3055\u3044",this.peek());if(!a.columns.some(l=>l.type==="WILDCARD"||l.type==="PARENT_WILDCARD")&&a.columns.length!==1)throw new T("scalar subquery in SET must return exactly 1 column.",r);return{type:"SCALAR_SUBQUERY",query:a}}if(r.kind==="STRING")return this.advance(),{type:"STRING",value:r.value};let i=Fi[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.parseTempTableName();this.expect("AS","CREATE TEMP TABLE \u306B\u306F AS SELECT \u304C\u5FC5\u8981\u3067\u3059");let n=this.peek(),r;if(n.kind==="WITH")r=this.parseWith();else if(n.kind==="SELECT")r=this.tryParseUnionChain(this.parseSelect());else throw new T("CREATE TEMP TABLE ... AS \u306E\u5F8C\u306B\u306F SELECT / WITH \u304C\u5FC5\u8981\u3067\u3059",n);return{type:"CREATE_TEMP_TABLE",name:t,query:r}}parseDropTempTable(){return this.advance(),this.expectSoftKeyword("TEMP","DROP \u306E\u5F8C\u306B\u306F TEMP TABLE \u304C\u5FC5\u8981\u3067\u3059\uFF08\u4F8B: DROP TEMP TABLE #temp\uFF09"),this.expectSoftKeyword("TABLE","DROP TEMP \u306E\u5F8C\u306B\u306F TABLE \u304C\u5FC5\u8981\u3067\u3059"),{type:"DROP_TEMP_TABLE",name:this.parseTempTableName()}}expectSoftKeyword(t,n){let r=this.peek();if(r.kind==="IDENT"&&r.value.toUpperCase()===t){this.advance();return}throw new T(n,r)}parseTempTableName(){let t=this.peek();if(t.kind==="IDENT"&&t.value.startsWith("#"))return this.advance(),t.value;throw new T("\u4E00\u6642\u30C6\u30FC\u30D6\u30EB\u540D\u306F # \u3067\u59CB\u307E\u308B\u5FC5\u8981\u304C\u3042\u308A\u307E\u3059\uFF08\u4F8B: #temp\uFF09",t)}parseShow(){if(this.advance(),!this.consume("APPS"))throw new T("SHOW \u306E\u5F8C\u306B\u306F APPS \u304C\u5FC5\u8981\u3067\u3059\uFF08\u4F8B: SHOW APPS\uFF09",this.peek());return{type:"SHOW_APPS"}}parseDescribe(){this.advance();let t=this.parseIdentifier(),{appId:n,subtableCode:r}=lt(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}=lt(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 I=this.parseIdentifier();if(s.has(I))throw new T(`IMPORT target ${I} is declared more than once.`,this.prev());if(s.add(I),this.peek().kind==="("){this.advance();let L=this.parseIdentList();if(this.expect(")"),new Set(L).size!==L.length)throw new T(`IMPORT subtable ${I} contains duplicate child declarations.`,this.prev());let b;if(this.isSoftKeyword("ROW")){this.advance();for(let v of["ID","SOURCE"]){if(!this.isSoftKeyword(v))throw new T("ROW must be followed by ID SOURCE <header>.",this.peek());this.advance()}b=this.parseIdentifier()}o.push({kind:"SUBTABLE",subtableCode:I,children:L,...b?{rowIdSourceHeader:b}:{}})}else a.push(I),o.push({kind:"FIELD",field:I});if(this.peek().kind!==",")break;this.advance()}if(this.expect(")"),this.expect("FROM"),!this.isSoftKeyword("CSV")&&!this.isSoftKeyword("JSON"))throw new T("IMPORT FROM requires CSV or JSON.",this.peek());let l=this.peek().value.toUpperCase();this.advance();let d=this.parseIdentifier(),p,c=!0,u;if(this.isSoftKeyword("ENCODING")){if(l==="JSON")throw new T("JSON source is UTF-8 only; ENCODING is not allowed.",this.peek());this.advance();let I=this.parseIdentifier().toUpperCase();if(I!=="UTF8"&&I!=="SJIS")throw new T("ENCODING must be UTF8 or SJIS.",this.prev());p=I==="UTF8"?"utf8":"sjis"}if(this.peek().kind==="NOT"&&this.peekAt(1).kind==="IDENT"&&this.peekAt(1).value.toUpperCase()==="HEADER"){if(l==="JSON")throw new T("NO HEADER is CSV-only.",this.peek());this.advance(),this.advance(),c=!1}else if(this.isSoftKeyword("NO")&&this.peekAt(1).kind==="IDENT"&&this.peekAt(1).value.toUpperCase()==="HEADER"){if(l==="JSON")throw new T("NO HEADER is CSV-only.",this.peek());this.advance(),this.advance(),c=!1}if(this.isSoftKeyword("COLUMNS")){if(l==="JSON")throw new T("COLUMNS is CSV-only.",this.peek());if(c)throw new T("COLUMNS requires NO HEADER.",this.peek());this.advance(),this.expect("("),u=this.parseIdentList(),this.expect(")")}let f;if(this.peek().kind==="SELECT"){if(l==="JSON")throw new T("SELECT projection is CSV-only.",this.peek());if(f=this.parseSelect(),f.from.cteName!==ze||f.joins.length>0)throw new T("IMPORT projection cannot use FROM or JOIN.",this.prev());if(f.where||f.groupBy.length||f.grouping!==void 0||f.having||f.orderBy.length||f.limit!==null||f.offset!==null)throw new T("IMPORT projection supports SELECT expressions only.",this.prev());if(this.validateImportProjectionScope(f,this.prev()),o.some(I=>I.kind==="SUBTABLE"))throw new T("IMPORT subtable sources cannot use SELECT projection.",this.prev());if(f.columns.length!==a.length)throw new T(`IMPORT projection has ${f.columns.length} columns; target has ${a.length}.`,this.prev())}let E="POSITION",R=!1;if(this.peek().kind==="BY"||this.isSoftKeyword("BY")){if(l==="JSON")throw new T("BY NAME is CSV-only.",this.peek());if(this.advance(),!this.isSoftKeyword("NAME"))throw new T("BY must be followed by NAME in IMPORT.",this.peek());if(this.advance(),!c)throw new T("BY NAME requires HEADER.",this.prev());if(f)throw new T("BY NAME and SELECT projection are mutually exclusive.",this.prev());if(E="BY_NAME",this.isSoftKeyword("IGNORE")){if(this.advance(),!this.isSoftKeyword("UNKNOWN"))throw new T("IGNORE must be followed by UNKNOWN COLUMNS.",this.peek());if(this.advance(),!this.isSoftKeyword("COLUMNS"))throw new T("IGNORE UNKNOWN must be followed by COLUMNS.",this.peek());this.advance(),R=!0}}let m,g;if(this.isSoftKeyword("MATCH")){this.advance();for(let I of["RECORD","NUMBER","SOURCE"]){if(!this.isSoftKeyword(I))throw new T("MATCH must be followed by RECORD NUMBER SOURCE <header>.",this.peek());this.advance()}g=this.parseIdentifier()}this.peek().kind==="ON"&&this.peekAt(1).kind==="DUPLICATE"&&(m=this.parseOnDuplicate());let y;if(this.peek().kind==="REPLACE"||this.isSoftKeyword("REPLACE")){if(this.advance(),!this.isSoftKeyword("SUBTABLES"))throw new 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 h=o.filter(I=>I.kind==="SUBTABLE");if(h.length){if(f)throw new T("IMPORT subtables cannot use SELECT projection.",this.prev());if(l==="JSON"){if(h.some(I=>I.rowIdSourceHeader))throw new T("JSON subtable IMPORT does not accept ROW ID SOURCE.",this.prev());if(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(E!=="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 I=new Set(y);for(let L of h){if(!L.rowIdSourceHeader)throw new T(`CSV subtable ${L.subtableCode} requires ROW ID SOURCE <header>.`,this.prev());if(!I.has(L.subtableCode))throw new T(`IMPORT declares child columns for non-replaced subtable ${L.subtableCode}.`,this.prev())}for(let L of I)if(!h.some(b=>b.subtableCode===L))throw new T(`REPLACE SUBTABLES target ${L} 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(E!=="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(m)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 S=this.parseCheckGroups(),w=this.parseDmlControlSuffix();return{type:"IMPORT",appId:r,fields:a,targets:o,source:l==="JSON"?{kind:"JSON",sourceName:d}:{kind:"CSV",sourceName:d,encoding:p,hasHeader:c,mappingMode:E,ignoreUnknownColumns:R,...u?{columns:u}:{},...f?{projection:f}:{}},...t?{writeMode:t,recordNumberSourceHeader:g}:{},...y?{replaceSubtables:y}:{},...m?{keyFields:m}:{},...S,...w}}validateImportProjectionScope(t,n){if(Array.isArray(t)){t.forEach(i=>this.validateImportProjectionScope(i,n));return}if(t===null||typeof t!="object")return;let r=t;if(r.type==="SCALAR_SUBQUERY"||r.type==="SCALAR_SUBQUERY_COL")throw new T("IMPORT projection cannot use subqueries.",n);if(typeof r.tableAlias=="string")throw new T("IMPORT projection cannot use qualified column references.",n);Object.values(r).forEach(i=>this.validateImportProjectionScope(i,n))}parseValidate(){let t=this.advance(),n=this.parseIdentifier(),{appId:r,subtableCode:i}=lt(n,this.prev());if(i)throw new T(`VALIDATE APP${r}$${i} \u306F\u30B5\u30DD\u30FC\u30C8\u3055\u308C\u3066\u3044\u307E\u305B\u3093\u3002VALIDATE APP${r} (${i}) \u3092\u4F7F\u7528\u3057\u3066\u304F\u3060\u3055\u3044`,this.prev());let o;if(this.consume("(")){o=[];do{let c=this.parseIdentifier();if(this.consume("(")){let u=this.peek().kind===")"?[]:this.parseIdentList();this.expect(")"),o.push({kind:"SUBTABLE",subtableCode:c,children:u})}else o.push({kind:"FIELD",field:c})}while(this.consume(","));this.expect(")")}let a;this.isSoftKeyword("SUMMARY")&&(this.advance(),a=!0);let s=this.consume("WHERE")?this.parseWhereExpr(void 0,!0):null,l=this.parseCheckGroups(),d;if(this.consume("INTO")){let c=this.peek();if(c.kind!=="IDENT"||!c.value.startsWith("#"))throw new T("VALIDATE INTO \u306B\u306F # \u3067\u59CB\u307E\u308B\u4E00\u6642\u30C6\u30FC\u30D6\u30EB\u540D\u304C\u5FC5\u8981\u3067\u3059",c);d=this.parseTableName()}let p={type:"VALIDATE",appId:r,targets:o,...a?{summary:a}:{},where:s,...l,...d?{errorTable:d}:{}};return this.assertValidateExpressions(p,t),p}assertValidateExpressions(t,n){let r=i=>{if(Array.isArray(i)){i.forEach(r);return}if(i===null||typeof i!="object")return;let o=i;if(o.type==="EXISTS"||o.type==="SUBQUERY_IN_LIST"||o.type==="SCALAR_SUBQUERY")throw new T("VALIDATE \u306E WHERE / CHECK \u306B\u30B5\u30D6\u30AF\u30A8\u30EA\u306F\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093",n);if(o.type==="FIELD"&&o.tableAlias!==null&&o.tableAlias!==void 0)throw new T("VALIDATE \u306E WHERE / CHECK \u3067\u306F\u4FEE\u98FE\u30D5\u30A3\u30FC\u30EB\u30C9\u53C2\u7167\u3092\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093",n);if(o.type==="FIELD_REF"&&typeof o.field=="string"&&o.field.includes("."))throw new T("VALIDATE \u306E WHERE / CHECK \u3067\u306F\u4FEE\u98FE\u30D5\u30A3\u30FC\u30EB\u30C9\u53C2\u7167\u3092\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093",n);Object.values(o).forEach(r)};r(t.where),r(t.checkGroups)}parseAssert(){this.expect("ASSERT");let t=this.pos,n=this.parseAssertOperand(),r=this.peek();if(this.consume("BETWEEN")){let a=this.parseAssertOperand();this.expect("AND","ASSERT \u306E BETWEEN \u306B\u306F AND \u304C\u5FC5\u8981\u3067\u3059\uFF08\u4F8B: ASSERT (SELECT COUNT(*) FROM #t) BETWEEN 1 AND 500\uFF09");let s=this.parseAssertOperand();return this.rejectAssertCompound(),{type:"ASSERT",left:n,op:"BETWEEN",right:null,low:a,high:s,text:this.renderTokenRange(t,this.pos)}}let i=this.tryAssertCompareOp();if(i===null)throw new T("ASSERT \u306B\u306F\u6BD4\u8F03\u6F14\u7B97\u5B50\uFF08= <> < <= > >=\uFF09\u307E\u305F\u306F BETWEEN \u304C\u5FC5\u8981\u3067\u3059\uFF08\u5024\u306E\u307F\u306E ASSERT \u306F\u4E0D\u53EF\uFF09",r);let o=this.parseAssertOperand();return this.rejectAssertCompound(),{type:"ASSERT",left:n,op:i,right:o,low:null,high:null,text:this.renderTokenRange(t,this.pos)}}parseAssertOperand(){let t=this.peek();if(t.kind==="VARIABLE")return this.advance(),{type:"VARIABLE",name:t.value.slice(1).toLowerCase()};if(t.kind==="STRING")return this.advance(),{type:"STRING",value:t.value};if(t.kind==="("&&this.peekAt(1).kind==="SELECT"){this.advance();let n=this.parseSelect();if(this.expect(")"),this.isArithOp(this.peek().kind))throw new T("\u30B9\u30AB\u30E9\u30FC\u30B5\u30D6\u30AF\u30A8\u30EA\u306E\u5F8C\u306B\u7B97\u8853\u6F14\u7B97\u5B50\u306F\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093\u3002\u30B5\u30D6\u30AF\u30A8\u30EA\u5185\u3067\u8A08\u7B97\u3057\u3066\u304F\u3060\u3055\u3044\uFF08\u4F8B: ASSERT (SELECT COUNT(*) * 2 FROM APP100) > 10\uFF09",this.peek());if(!n.columns.some(i=>i.type==="WILDCARD"||i.type==="PARENT_WILDCARD")&&n.columns.length>1)throw new T("scalar subquery in ASSERT must return exactly 1 column.",t);return{type:"SCALAR_SUBQUERY",query:n}}if(t.kind==="NUMBER"||t.kind==="("||t.kind==="-"){let n=this.parseArithAddSub();return this.rejectNonLiteralArith(n,t),n.type==="NUMBER",n}throw this.tryStringFuncName()!==null?new T("ASSERT \u306E\u5F0F\u3067\u306F\u95A2\u6570\u306F\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093\uFF08\u30B9\u30AB\u30E9\u30FC\u30B5\u30D6\u30AF\u30A8\u30EA\u5185\u3067\u8A08\u7B97\u3057\u3066\u304F\u3060\u3055\u3044\uFF09",t):new T("ASSERT \u306E\u5F0F\u306B\u306F\u30EA\u30C6\u30E9\u30EB\u30FB\u7B97\u8853\u5F0F\u30FB\u30B9\u30AB\u30E9\u30FC\u30B5\u30D6\u30AF\u30A8\u30EA\u3092\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044\uFF08\u30D5\u30A3\u30FC\u30EB\u30C9\u53C2\u7167\u306F\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093\uFF09",t)}rejectNonLiteralArith(t,n){if(t.type==="FIELD_REF")throw new T(`ASSERT \u3067\u306F\u30D5\u30A3\u30FC\u30EB\u30C9\u53C2\u7167\u306F\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093\uFF08FROM \u30B3\u30F3\u30C6\u30AD\u30B9\u30C8\u304C\u3042\u308A\u307E\u305B\u3093\uFF09: ${t.field}`,n);if(t.type==="STRING_FUNC")throw new T("ASSERT \u306E\u5F0F\u3067\u306F\u95A2\u6570\u306F\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093\uFF08\u30B9\u30AB\u30E9\u30FC\u30B5\u30D6\u30AF\u30A8\u30EA\u5185\u3067\u8A08\u7B97\u3057\u3066\u304F\u3060\u3055\u3044\uFF09",n);t.type==="ARITH"&&(this.rejectNonLiteralArith(t.left,n),this.rejectNonLiteralArith(t.right,n))}tryAssertCompareOp(){switch(this.peek().kind){case"=":return this.advance(),"=";case"!=":return this.advance(),"!=";case"<>":return this.advance(),"<>";case">":return this.advance(),">";case"<":return this.advance(),"<";case">=":return this.advance(),">=";case"<=":return this.advance(),"<=";default:return null}}rejectAssertCompound(){let t=this.peek();if(t.kind==="AND"||t.kind==="OR")throw new T("ASSERT \u306F AND / OR \u306B\u3088\u308B\u8907\u5408\u6761\u4EF6\u306B\u5BFE\u5FDC\u3057\u3066\u3044\u307E\u305B\u3093\uFF08\u8907\u6570\u306E ASSERT \u6587\u306B\u5206\u3051\u3066\u304F\u3060\u3055\u3044\uFF09",t)}renderTokenRange(t,n){let r="";for(let i=t;i<n;i++){let o=this.tokens[i],a;o.kind==="STRING"?a=`'${o.value.replace(/'/g,"''")}'`:o.kind==="BIDENT"?a=`\`${o.value}\``:a=o.value,r.length>0&&YR(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:ze},a=i?this.parseJoins():[],s=this.consume("WHERE")?this.parseWhereExpr(void 0,!0):null,l=[],d,p=null;if(this.consume("GROUP")){if(this.expect("BY"),this.peek().kind==="DISTINCT"||this.isSoftKeyword("DISTINCT"))throw new T("B65: GROUP BY DISTINCT is not supported in Phase1.",this.peek());if(this.isGroupingSetsStart()?d=this.parseGroupingSetsClause():this.isRollupStart()?d=this.parseRollupClause():this.isCubeStart()?d=this.parseCubeClause():l=this.parseGroupByKeys(),d&&this.peek().kind===",")throw new T("B65: ordinary GROUP BY items cannot be mixed with grouping elements.",this.peek());this.consume("HAVING")&&(p=this.parseWhereExpr("HAVING"))}let c="CANONICAL",u=[];if(this.consume("ORDER"))this.expect("BY"),u=this.parseOrderBy();else if(this.consume("KORDER")){if(!t)throw new T("KORDER BY \u306F\u5229\u7528\u8005\u3078\u7D50\u679C\u3092\u8FD4\u3059\u30C8\u30C3\u30D7\u30EC\u30D9\u30EB SELECT \u3067\u306E\u307F\u4F7F\u7528\u3067\u304D\u307E\u3059",this.prev());c="KINTONE_NATIVE",this.expect("BY"),u=this.parseOrderBy()}let f=this.consume("LIMIT")?this.parseUnsignedInt():null,E=this.consume("OFFSET")?this.parseUnsignedInt():null,R=r.some(g=>g.type==="WINDOW_COL"),m=r.some(g=>this.selectColumnHasAggregate(g));if(R&&(l.length>0||d!==void 0||m))throw new T("\u30A6\u30A3\u30F3\u30C9\u30A6\u95A2\u6570\u306F GROUP BY / \u96C6\u8A08\u95A2\u6570\u3068\u540C\u3058 SELECT \u3067\u306F\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093",this.peek());if(d&&c==="KINTONE_NATIVE")throw new T("B65: KORDER BY cannot be combined with grouping sets in Phase1.",this.peek());return{type:"SELECT",distinct:n,columns:r,from:o,joins:a,where:s,groupBy:l,...d?{grouping:d}:{},having:p,orderMode:c,orderBy:u,limit:f,offset:E}}parseWith(){this.expect("WITH");let t=[];do{let r=this.parseIdentifier();this.expect("AS"),this.expect("(");let i,o=this.peek().kind;o==="SHOW"?i=this.parseShow():o==="DESCRIBE"||o==="DESC"?i=this.parseDescribe():i=this.tryParseUnionChain(this.parseSelect()),this.expect(")"),t.push({name:r,query:i}),this.cteNames.add(r)}while(this.consume(","));let n=this.tryParseUnionChain(this.parseSelect());return this.cteNames.clear(),{type:"WITH",ctes:t,query:n}}tryParseUnionChain(t){if(this.peek().kind!=="UNION")return t;if(t.type==="SELECT"&&t.orderMode==="KINTONE_NATIVE")throw new T("KORDER BY \u306F UNION \u5206\u5C90\u3067\u306F\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093",this.peek());this.advance();let n=this.consume("ALL"),r=this.parseSelect(),i={type:"UNION",all:n,left:t,right:r};return this.tryParseUnionChain(i)}parseSelectColumns(){let t=[];do t.push(this.parseSelectColumn());while(this.consume(","));return t}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 o=this.parseGroupingRef(),a=this.consume("AS")?this.parseAliasName():null;return{type:"GROUPING_COL",ref:o,alias:a}}if(this.tryAggregateFunc()===null&&this.hasTopLevelTokenBeforeValueEnd("||")){let o=this.parseScalarValueExpr({allowAggregateArgs:!0}),a=this.consume("AS")?this.parseAliasName():null;return{type:"SCALAR_VALUE_COL",expr:o,alias:a}}if(this.peek().kind==="VARIABLE"){let o=this.advance();if(!this.consume("AS"))throw new T("SELECT \u5217\u306E\u30D0\u30C3\u30C1\u5909\u6570\u306B\u306F AS alias \u304C\u5FC5\u8981\u3067\u3059",this.peek());return{type:"VARIABLE_COL",name:o.value.slice(1).toLowerCase(),alias:this.parseAliasName()}}let t=this.tryWindowFunc();if(t!==null)return this.parseWindowColumn(t);if(this.peek().kind==="CASE"){let o=this.parseCaseWhenExpr(!0),a=this.consume("AS")?this.parseAliasName():null;return{type:"CASE_COL",expr:o,alias:a}}if(this.peek().kind==="IF"){let o=this.parseIfExpr(!0),a=this.consume("AS")?this.parseAliasName():null;return{type:"CASE_COL",expr:o,alias:a}}if(this.tryStringFuncName()!==null){let o=this.parseStringFuncExpr();if(this.isArithOp(this.peek().kind)){let s=this.parseSelectArith(()=>this.continueArith(o)),l=this.consume("AS")?this.parseAliasName():null;return{type:"ARITH_COL",expr:s,alias:l}}let a=this.consume("AS")?this.parseAliasName():null;return{type:"STRFUNC_COL",expr:o,alias:a}}let n=this.tryAggregateFunc();if(n!==null){let o=this.parseAggregateRef(n);if(this.isArithOp(this.peek().kind)){let s=this.continueAggArith(o),l=this.consume("AS")?this.parseAliasName():null;return{type:"ARITH_AGG_COL",expr:s,alias:l}}let a=this.consume("AS")?this.parseAliasName():null;return{type:"AGGREGATE",func:o.func,distinct:o.distinct,arg:o.arg,...o.separator!==void 0?{separator:o.separator}:{},alias:a}}if(this.peek().kind==="("&&this.peekAt(1).kind==="SELECT"){this.advance();let o=this.parseSelect();this.expect(")");let a=this.consume("AS")?this.parseAliasName():null;return{type:"SCALAR_SUBQUERY_COL",query:o,alias:a}}if(this.peek().kind==="STRING"){let o=this.expect("STRING").value,a=this.consume("AS")?this.parseAliasName():null;return{type:"LITERAL_COL",value:o,alias:a}}if(this.peek().kind==="("||this.peek().kind==="NUMBER"){let o=this.parseSelectArith(()=>this.parseArithAddSub()),a=this.consume("AS")?this.parseAliasName():null;return{type:"ARITH_COL",expr:o,alias:a}}let r=this.parseColumnFieldRef();if(r==="_p.*")return{type:"PARENT_WILDCARD"};if(r==="_parent.*")throw new T("_parent.* \u306F\u5EC3\u6B62\u3057\u307E\u3057\u305F\u3002_p.* \u3092\u4F7F\u7528\u3057\u3066\u304F\u3060\u3055\u3044",this.prev());if(this.isArithOp(this.peek().kind)){let o={type:"FIELD_REF",field:r},a=this.parseSelectArith(()=>this.continueArith(o)),s=this.consume("AS")?this.parseAliasName():null;return{type:"ARITH_COL",expr:a,alias:s}}let i=this.consume("AS")?this.parseAliasName():null;return{type:"FIELD",field:r,alias:i}}tryWindowFunc(){return gc[this.peek().kind]??null}parseWindowColumn(t){if(this.advance(),this.expect("("),this.peek().kind!==")")throw new T(`${t} \u306F\u5F15\u6570\u3092\u53D7\u3051\u4ED8\u3051\u307E\u305B\u3093`,this.peek());this.expect(")"),this.expectSoftKeyword("OVER",`${t} \u306B\u306F OVER (...) \u304C\u5FC5\u8981\u3067\u3059`),this.expect("(");let n=[];if(this.isSoftKeyword("PARTITION")){this.advance(),this.expect("BY","PARTITION \u306E\u5F8C\u306B\u306F BY \u304C\u5FC5\u8981\u3067\u3059");do{let o=this.parseQualifiedIdent();n.push({type:"FIELD",tableAlias:o.tableAlias,field:o.field})}while(this.consume(","))}let r=this.consume("ORDER")?(this.expect("BY"),this.parseOrderBy(!1)):[];if(this.expect(")"),!this.consume("AS"))throw new T("\u30A6\u30A3\u30F3\u30C9\u30A6\u95A2\u6570\u306B\u306F AS alias \u304C\u5FC5\u8981\u3067\u3059",this.peek());let i=this.parseAliasName();return{type:"WINDOW_COL",func:t,partitionBy:n,orderBy:r,alias:i}}selectColumnHasAggregate(t){return t.type==="AGGREGATE"||t.type==="ARITH_AGG_COL"?!0:t.type==="STRFUNC_COL"?t.expr.args.some(n=>this.stringFuncArgHasAggregate(n)):t.type==="SCALAR_VALUE_COL"?this.scalarValueHasAggregate(t.expr):!1}stringFuncArgHasAggregate(t){return t.type==="AGG_REF"||t.type==="AGG_ARITH"?!0:this.scalarValueHasAggregate(t)}scalarValueHasAggregate(t){return t.type==="STRING_FUNC"?t.args.some(n=>this.stringFuncArgHasAggregate(n)):t.type==="SCALAR_ARITH"||t.type==="CONCAT_OP"?this.scalarValueHasAggregate(t.left)||this.scalarValueHasAggregate(t.right):t.type==="CASE_WHEN"?[...t.branches.map(r=>r.result),...t.elseResult?[t.elseResult]:[]].some(r=>r.type==="ARRAY"||r.type==="FIELD_REF"||r.type==="ARITH"?!1:this.scalarValueHasAggregate(r)):!1}isArithOp(t){return t==="+"||t==="-"||t==="*"||t==="/"||t==="%"}continueAggArith(t){return this.continueAggArithAddSub(this.continueAggArithMulDiv(t))}continueAggArithMulDiv(t){for(;this.peek().kind==="*"||this.peek().kind==="/"||this.peek().kind==="%";){let n=this.parseArithOp();t={type:"AGG_ARITH",left:t,op:n,right:this.parseAggPrimary()}}return t}continueAggArithAddSub(t){for(;this.peek().kind==="+"||this.peek().kind==="-";){let n=this.parseArithOp();t={type:"AGG_ARITH",left:t,op:n,right:this.parseAggArithMulDiv()}}return t}parseAggArithMulDiv(){return this.continueAggArithMulDiv(this.parseAggPrimary())}parseAggPrimary(){if(this.consume("(")){let n=this.continueAggArith(this.parseAggPrimary());return this.expect(")"),n}if(this.peek().kind==="-"){this.advance();let n=this.parseAggPrimary();return n.type==="NUMBER"?Re(`-${H(n)}`):{type:"AGG_ARITH",left:Re("0"),op:"-",right:n}}if(this.peek().kind==="NUMBER"){let n=this.advance();return Re(n.value)}let t=this.tryAggregateFunc();if(t!==null)return this.parseAggregateRef(t);throw new T("\u96C6\u8A08\u7B97\u8853\u5F0F\u306B\u306F\u96C6\u8A08\u95A2\u6570\u307E\u305F\u306F\u6570\u5024\u304C\u5FC5\u8981\u3067\u3059",this.peek())}parseScalarValueExpr(t={}){let n=this.scalarAllowsAggregateArgs,r=this.scalarAllowsCase;this.scalarAllowsAggregateArgs=t.allowAggregateArgs===!0,this.scalarAllowsCase=t.allowCase!==!1;let i;try{i=this.parseScalarAddSubConcat(this.scalarAllowsCase)}finally{this.scalarAllowsAggregateArgs=n,this.scalarAllowsCase=r}let o=this.peek();if(o.kind==="IS"||o.kind==="="||o.kind==="!="||o.kind==="<>"||o.kind===">"||o.kind==="<"||o.kind===">="||o.kind==="<="||o.kind==="LIKE"||o.kind==="KLIKE"||o.kind==="IN"||o.kind==="BETWEEN")throw new T("\u30B9\u30AB\u30E9\u30FC\u5024\u5F0F\u306B\u6BD4\u8F03\u30FB\u8FF0\u8A9E\u306F\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093",o);return i}parseScalarAddSubConcat(t){let n=this.parseScalarMulDiv(t);for(;this.peek().kind==="+"||this.peek().kind==="-"||this.peek().kind==="||";){let r=this.advance(),i=this.parseScalarMulDiv(t);n=r.kind==="||"?{type:"CONCAT_OP",left:n,right:i}:{type:"SCALAR_ARITH",left:n,op:r.kind==="+"?"+":"-",right:i}}return n}parseScalarMulDiv(t){let n=this.parseScalarPrimary(t);for(;this.peek().kind==="*"||this.peek().kind==="/"||this.peek().kind==="%";){let r=this.advance(),i=r.kind==="*"?"*":r.kind==="/"?"/":"%";n={type:"SCALAR_ARITH",left:n,op:i,right:this.parseScalarPrimary(t)}}return n}parseScalarPrimary(t){let n=this.peek();if(n.kind==="("){if(this.peekAt(1).kind==="SELECT")throw new T("\u30B9\u30AB\u30E9\u30FC\u5024\u5F0F\u306B\u30B5\u30D6\u30AF\u30A8\u30EA\u306F\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093",n);this.advance();let r=this.parseScalarAddSubConcat(t);return this.expect(")"),r}if(n.kind==="+"||n.kind==="-"){if(this.advance(),this.peek().kind==="+"||this.peek().kind==="-")throw new T("\u5358\u9805\u7B26\u53F7\u3092\u91CD\u306D\u3066\u6307\u5B9A\u3059\u308B\u3053\u3068\u306F\u3067\u304D\u307E\u305B\u3093",this.peek());let r=this.parseScalarPrimary(t);if(r.type==="NUMBER")return Re(`${n.kind==="-"?"-":"+"}${H(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:Re("0"),op:"-",right:r}}if(n.kind==="STRING")return this.advance(),{type:"STRING",value:n.value};if(n.kind==="NUMBER")return this.advance(),Re(n.value);if(n.kind==="VARIABLE")return this.advance(),{type:"VARIABLE",name:n.value.slice(1).toLowerCase()};if(n.kind==="CASE"){if(!t)throw new T("\u3053\u306E\u30B9\u30AB\u30E9\u30FC\u5024\u5F0F\u3067\u306F CASE \u3092\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093",n);return this.parseCaseWhenExpr()}if(this.tryAggregateFunc()!==null)throw new T(this.insideAggregateArg>0?"\u96C6\u8A08\u95A2\u6570\u306E\u5F15\u6570\u5185\u306B\u96C6\u8A08\u95A2\u6570\u306F\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093":"\u30B9\u30AB\u30E9\u30FC\u5024\u5F0F\u306B\u96C6\u7D04\u95A2\u6570\u306F\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093",n);if(this.tryStringFuncName()!==null)return this.parseStringFuncExpr();if(n.kind==="IDENT"||n.kind==="BIDENT")return this.advance(),this.consume(".")?{type:"FIELD",tableAlias:n.value,field:this.parseIdentifier()}:{type:"FIELD",tableAlias:null,field:n.value};throw new T("\u30B9\u30AB\u30E9\u30FC\u5024\u5F0F\u306E\u30AA\u30DA\u30E9\u30F3\u30C9\u304C\u5FC5\u8981\u3067\u3059",n)}hasTopLevelTokenBeforeValueEnd(t){let n=0;for(let r=this.pos;r<this.tokens.length;r++){let i=this.tokens[r].kind;if(i==="("||i==="[")n++;else if(i===")"||i==="]"){if(n===0)break;n--}if(i===t)return!0;if(n===0&&(i===","||i==="AS"||i==="FROM"||i==="WHERE"||i==="WHEN"||i==="THEN"||i==="ELSE"||i==="END"||i===";"||i==="EOF"))break}return!1}parseArithAddSub(){return this.continueArithAddSub(this.parseArithMulDiv())}parseArithMulDiv(){return this.continueArithMulDiv(this.parseArithPrimary())}continueArith(t){return this.continueArithAddSub(this.continueArithMulDiv(t))}continueArithMulDiv(t){for(;this.peek().kind==="*"||this.peek().kind==="/"||this.peek().kind==="%";){let n=this.parseArithOp(),r=this.parseArithPrimary();t={type:"ARITH",left:t,op:n,right:r}}return t}continueArithAddSub(t){for(;this.peek().kind==="+"||this.peek().kind==="-";){let n=this.parseArithOp(),r=this.parseArithMulDiv();t={type:"ARITH",left:t,op:n,right:r}}return t}parseArithPrimary(){if(this.consume("(")){let n=this.parseArithAddSub();return this.expect(")"),n}if(this.allowUnaryPlusNumber&&this.peek().kind==="+"){this.advance();let n=this.expect("NUMBER","\u5358\u9805 + \u306E\u76F4\u5F8C\u306B\u306F\u6570\u5024\u30EA\u30C6\u30E9\u30EB\u304C\u5FC5\u8981\u3067\u3059");return Re(`+${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"?Re(`-${H(n)}`):{type:"ARITH",left:Re("0"),op:"-",right:n}}if(this.tryStringFuncName()!==null)return this.parseStringFuncExpr();let t=this.peek();if(t.kind==="NUMBER")return this.advance(),Re(t.value);if(this.allowSelectArithVariable&&t.kind==="VARIABLE")return this.advance(),{type:"VARIABLE",name:t.value.slice(1).toLowerCase()};if(t.kind==="IDENT"||t.kind==="BIDENT"){this.advance();let n=t.value;if(this.peek().kind==="."){this.advance();let r=this.advance();n=`${n}.${r.value}`}return{type:"FIELD_REF",field:n}}throw new T("\u7B97\u8853\u5F0F\u306E\u30AA\u30DA\u30E9\u30F3\u30C9\u306B\u306F\u8B58\u5225\u5B50\u30FB\u6570\u5024\u30FB\u62EC\u5F27\u5F0F\u3092\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044",t)}parseIfExpr(t=!1){this.advance(),this.expect("(");let n=this.parseCaseCondition(t);this.expect(",");let r=this.parseCaseResult();this.expect(",");let i=this.parseCaseResult();return this.expect(")"),{type:"CASE_WHEN",branches:[{condition:n,result:r}],elseResult:i}}parseCaseWhenExpr(t=!1){this.expect("CASE");let n=[];for(;this.peek().kind==="WHEN";){this.advance();let i=this.parseCaseCondition(t);this.expect("THEN");let o=this.parseCaseResult();n.push({condition:i,result:o})}if(n.length===0)throw new T("CASE \u306E\u5F8C\u306B\u306F WHEN \u304C\u6700\u4F4E 1 \u3064\u5FC5\u8981\u3067\u3059",this.peek());let r=null;return this.consume("ELSE")&&(r=this.parseCaseResult()),this.expect("END"),{type:"CASE_WHEN",branches:n,elseResult:r}}parseCaseCondition(t){return t?this.parseWhereExpr("SELECT_CASE"):this.parseWhereExpr()}parseCaseResult(){let t=this.peek();if(this.insideAggregateArg>0&&this.tryAggregateFunc()!==null)throw new T("\u96C6\u8A08\u95A2\u6570\u306E\u5F15\u6570\u5185\u306B\u96C6\u8A08\u95A2\u6570\u306F\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093",t);return t.kind==="["?this.parseArrayLiteral():this.hasTopLevelTokenBeforeValueEnd("||")?this.parseScalarValueExpr({allowAggregateArgs:!0}):t.kind==="STRING"?(this.advance(),{type:"STRING",value:t.value}):this.tryStringFuncName()!==null?this.parseStringFuncExpr():this.parseArithAddSub()}tryStringFuncName(){if(this.peekAt(1).kind==="("){let n=xa[this.peek().kind];if(n==="LEFT"||n==="RIGHT")return n}let t=xa[this.peek().kind]??null;if(t!==null&&t!=="LEFT"&&t!=="RIGHT")return t;if(this.peek().kind==="IDENT"){let n=this.peek().value.toUpperCase();if(yc.includes(n)&&this.peekAt(1).kind==="(")return n}return null}parseStringFuncExpr(){let t=this.peek().kind,n=this.tryStringFuncName();if(this.advance(),this.expect("("),t==="CAST"){let i=this.parseStringFuncArg();this.expect("AS");let o=this.parseCastType();return this.expect(")"),{type:"STRING_FUNC",func:"CAST",args:[i,o]}}if(t==="CONVERT"){let i=this.parseStringFuncArg();this.expect(",");let o=this.parseCastType();return this.expect(")"),{type:"STRING_FUNC",func:"CAST",args:[i,o]}}let r=[];if(this.peek().kind!==")")do r.push(this.parseStringFuncArg());while(this.consume(","));return this.expect(")"),{type:"STRING_FUNC",func:n,args:r}}parseCastType(){let t=this.peek(),n;if(t.kind==="IDENT"||t.kind==="BIDENT")this.advance(),n=t.value.toUpperCase();else throw new T("\u30AD\u30E3\u30B9\u30C8\u5148\u306E\u578B\u540D\uFF08TEXT, NUMBER, INT \u306A\u3069\uFF09\u304C\u5FC5\u8981\u3067\u3059",t);this.peek().kind==="("&&(this.advance(),this.parseUnsignedInt(),this.expect(")"));let r=jR(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 Ka[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(!xR(t))throw new T(`${t}(*) \u306F\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093\u3002\u30D5\u30A3\u30FC\u30EB\u30C9\u307E\u305F\u306F\u5F0F\u3092\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044`,this.prev());i={type:"WILDCARD"}}else i=this.parseAggregateArgExpr();let o;if(this.isSoftKeyword("SEPARATOR")){let a=this.advance();if(t!=="GROUP_CONCAT")throw new T("SEPARATOR \u306F GROUP_CONCAT \u3067\u306E\u307F\u4F7F\u7528\u3067\u304D\u307E\u3059",a);o=this.expect("STRING","SEPARATOR \u306E\u5F8C\u306B\u306F\u6587\u5B57\u5217\u30EA\u30C6\u30E9\u30EB\u304C\u5FC5\u8981\u3067\u3059").value}return this.expect(")"),{type:"AGG_REF",func:t,distinct:n,arg:i,...o!==void 0?{separator:o}:{}}}isAggregateArgEnd(){return this.peek().kind===")"||this.isSoftKeyword("SEPARATOR")}parseAggregateArgExpr(){let t=this.pos;try{let n=this.parseArithAddSub();if(this.isAggregateArgEnd())return n}catch{}this.pos=t,this.insideAggregateArg++;try{let n;try{n=this.parseScalarValueExpr({allowCase:!0,allowAggregateArgs:!1})}catch(r){if(r instanceof T){if(r.message.includes("\u6BD4\u8F03\u30FB\u8FF0\u8A9E"))throw new T("\u96C6\u8A08\u95A2\u6570\u306E\u5F15\u6570\u306B\u6BD4\u8F03\u30FB\u8FF0\u8A9E\u306F\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093\u3002CASE \u3067\u5024\u3092\u660E\u793A\u3057\u3066\u304F\u3060\u3055\u3044\u3002\u4F8B: SUM(CASE WHEN amount > 0 THEN 1 ELSE 0 END)",r.token);if(r.message.includes("\u96C6\u7D04\u95A2\u6570"))throw new T("\u96C6\u8A08\u95A2\u6570\u306E\u5F15\u6570\u5185\u306B\u96C6\u8A08\u95A2\u6570\u306F\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093",r.token)}throw r}if(!this.isAggregateArgEnd())throw new T("\u3053\u306E\u96C6\u8A08\u95A2\u6570\u306E\u5F15\u6570\u5F62\u5F0F\u306F\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093\u3002CASE \u3067\u5024\u3092\u660E\u793A\u3059\u308B\u304B\u3001CTE \u3067\u5F0F\u3092\u5217\u306B\u3057\u3066\u304B\u3089\u96C6\u8A08\u3057\u3066\u304F\u3060\u3055\u3044\u3002",this.peek());return this.assertNoNestedAggregate(n),n}finally{this.insideAggregateArg--}}assertNoNestedAggregate(t){let n=r=>{if(r===null||typeof r!="object")return;let i=r;if(i.type==="AGG_REF"||i.type==="AGG_ARITH")throw new T("\u96C6\u8A08\u95A2\u6570\u306E\u5F15\u6570\u5185\u306B\u96C6\u8A08\u95A2\u6570\u306F\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093",this.peek());for(let o of Object.values(i))n(o)};n(t)}parseTableRef(){let t=this.peek(),n=this.parseTableName();if(t.kind==="IDENT"&&n.startsWith("#"))return this.tempTableRefs.push(this.prev()),{appId:0,alias:this.consume("AS")?this.parseTableAliasName():this.tryParseImplicitAlias(),cteName:n};if(this.cteNames.has(n))return{appId:0,alias:this.consume("AS")?this.parseTableAliasName():this.tryParseImplicitAlias(),cteName:n};let{appId:r,subtableCode:i}=lt(n,this.prev());if(i){let s=this.consume("AS")?this.parseTableAliasName():this.tryParseImplicitAlias();return{appId:r,alias:s,cteName:null,subtableCode:i}}let o=this.tryParseImplicitAlias(),a=this.consume("AS")?this.parseTableAliasName():o??n;return{appId:r,alias:a,cteName:null}}parseTableAliasName(){let t=this.peek();if((t.kind==="IDENT"||t.kind==="BIDENT")&&t.value.startsWith("#"))throw new T("\u30A8\u30A4\u30EA\u30A2\u30B9\u540D\u306B # \u3067\u59CB\u307E\u308B\u540D\u524D\u306F\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093",t);return this.parseIdentifier()}tryParseImplicitAlias(){let t=this.peek().kind;return t==="IDENT"||t==="BIDENT"?t==="IDENT"&&this.peek().value.toUpperCase()==="VALIDATE"&&this.peekAt(1).kind==="IDENT"&&this.peekAt(1).value.toUpperCase()==="ONLY"||t==="IDENT"&&this.peek().value.toUpperCase()==="CHECK"&&this.peekAt(1).kind==="WHEN"?null:this.parseTableAliasName():null}parseJoins(){let t=[];for(;;){let n=this.tryJoinType();if(n===null)break;let r=this.parseTableRef();this.expect("ON");let i=this.parseJoinCondition();t.push({type:n,table:r,on:i})}return t}tryJoinType(){return this.consume("INNER")?(this.expect("JOIN"),"INNER"):this.consume("LEFT")?(this.expect("JOIN"),"LEFT"):this.consume("RIGHT")?(this.expect("JOIN"),"RIGHT"):this.consume("JOIN")?"INNER":null}parseJoinCondition(){let t=this.parseQualifiedIdent();this.expect("=");let n=this.parseQualifiedIdent();return{left:t,right:n}}parseQualifiedIdent(){let t=this.parseIdentifier();if(this.consume(".")){if(this.peek().kind==="*")throw new T("\u3053\u3053\u3067\u306F * \u306F\u6307\u5B9A\u3067\u304D\u307E\u305B\u3093",this.peek());let n=this.parseIdentifier();return{tableAlias:t,field:n}}return{tableAlias:null,field:t}}parseWhereExpr(t=this.groupingFieldContext,n=this.allowRelativeDateFunctions){let r=this.groupingFieldContext,i=this.allowRelativeDateFunctions;this.groupingFieldContext=t??r,this.allowRelativeDateFunctions=n;try{return this.parseOrExpr()}finally{this.groupingFieldContext=r,this.allowRelativeDateFunctions=i}}parseOrExpr(){let t=this.parseAndExpr();for(;this.consume("OR");){let n=this.parseAndExpr();t={type:"LOGICAL",op:"OR",left:t,right:n}}return t}parseAndExpr(){let t=this.parseNotExpr();for(;this.consume("AND");){let n=this.parseNotExpr();t={type:"LOGICAL",op:"AND",left:t,right:n}}return t}parseNotExpr(){if(this.consume("EXISTS")){this.expect("(");let t=this.parseSelect();return this.expect(")"),{type:"EXISTS",not:!1,query:t}}if(this.consume("NOT")){if(this.consume("EXISTS")){this.expect("(");let n=this.parseSelect();return this.expect(")"),{type:"EXISTS",not:!0,query:n}}return{type:"NOT",expr:this.parseNotExpr()}}return this.parseCompareExpr()}isArithParen(){let t=0,n=this.pos;for(;n<this.tokens.length;){let r=this.tokens[n].kind;if(r==="(")t++;else if(r===")"&&(t--,t===0)){let i=this.tokens[n+1]?.kind;return i==="*"||i==="/"||i==="+"||i==="-"}n++}return!1}parseCompareExpr(){if(this.peek().kind==="("&&!this.isArithParen()){this.advance();let i=this.parseWhereExpr();return this.expect(")"),{type:"GROUP",expr:i}}let t=this.parseFieldValue();if(this.consume("IS")){let i=this.consume("NOT");return this.expect("NULL"),{type:"NULL_CHECK",field:t,not:i}}if(this.consume("BETWEEN")){let i=this.parseWhereSqlValue();this.expect("AND");let o=this.parseWhereSqlValue();return{type:"LOGICAL",op:"AND",left:{type:"BINARY",op:">=",left:t,right:i},right:{type:"BINARY",op:"<=",left:t,right:o}}}if(this.consume("NOT")){if(this.consume("IN")){let i=this.parseInRight();return{type:"BINARY",op:"NOT_IN",left:t,right:i}}if(this.consume("LIKE")){let i=this.parseSqlValue();return{type:"BINARY",op:"NOT_LIKE",left:t,right:i}}if(this.consume("KLIKE")){let i=this.parseKlikePattern();return{type:"BINARY",op:"NOT_KLIKE",left:t,right:i}}throw new T("NOT \u306E\u5F8C\u306B\u306F IN\u3001LIKE\u3001KLIKE \u306E\u3044\u305A\u308C\u304B\u304C\u5FC5\u8981\u3067\u3059",this.peek())}if(this.consume("IN")){let i=this.parseInRight();return{type:"BINARY",op:"IN",left:t,right:i}}if(this.consume("KLIKE")){let i=this.parseKlikePattern();return{type:"BINARY",op:"KLIKE",left:t,right:i}}let n=this.parseCompareOp(),r=this.parseWhereSqlValue();return{type:"BINARY",op:n,left:t,right:r}}parseCompareOp(){let t=this.advance();switch(t.kind){case"=":return"=";case"!=":return"!=";case"<>":return"<>";case">":return">";case"<":return"<";case">=":return">=";case"<=":return"<=";case"LIKE":return"LIKE";default:throw new T("\u6BD4\u8F03\u6F14\u7B97\u5B50\uFF08=, !=, >, <, >=, <=, LIKE, KLIKE, IN, IS\uFF09\u304C\u5FC5\u8981\u3067\u3059",t)}}parseKlikePattern(){let t=this.peek();if(t.kind==="STRING")return this.advance(),{type:"STRING",value:t.value};if(t.kind==="VARIABLE")return this.advance(),{type:"VARIABLE",name:t.value.slice(1).toLowerCase()};throw new T("KLIKE / NOT KLIKE \u306E\u53F3\u8FBA\u306B\u306F\u6587\u5B57\u5217\u30EA\u30C6\u30E9\u30EB\u307E\u305F\u306F\u30D0\u30C3\u30C1\u5909\u6570\u304C\u5FC5\u8981\u3067\u3059",t)}parseFieldValue(){if(this.isUnsupportedGroupingIdStart())throw new T("B65: GROUPING_ID is not supported in Phase1.",this.peek());if(this.isGroupingFunctionStart()){if(this.groupingFieldContext==="FORBIDDEN"||this.insideAggregateArg>0)throw new T("B65: GROUPING() is only allowed in SELECT, SELECT CASE conditions, HAVING, and direct ORDER BY.",this.peek());return{type:"GROUPING_FIELD",ref:this.parseGroupingRef()}}if(this.tryStringFuncName()!==null){let r=this.parseStringFuncExpr();return this.isArithOp(this.peek().kind)?{type:"ARITH_FIELD",expr:this.continueArith(r)}:{type:"FUNC_FIELD",expr:r}}let t=this.tryAggregateFunc();if(t!==null){if(this.insideAggregateArg>0)throw new T("\u96C6\u8A08\u95A2\u6570\u306E\u5F15\u6570\u5185\u306B\u96C6\u8A08\u95A2\u6570\u306F\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093",this.peek());let r=this.parseAggregateRef(t);return{type:"FIELD",tableAlias:null,field:we(r.func,r.distinct,r.arg)}}if(this.peek().kind==="CASE")return{type:"CASE_FIELD",expr:this.parseCaseWhenExpr()};if(this.peek().kind==="IF")return{type:"CASE_FIELD",expr:this.parseIfExpr()};if(this.peek().kind==="("){this.advance();let r=this.parseArithAddSub();return this.expect(")"),{type:"ARITH_FIELD",expr:this.continueArith(r)}}if(this.peek().kind==="-")return{type:"ARITH_FIELD",expr:this.parseArithAddSub()};let n=this.parseQualifiedIdent();if(this.isArithOp(this.peek().kind)){let i={type:"FIELD_REF",field:n.tableAlias?`${n.tableAlias}.${n.field}`:n.field};return{type:"ARITH_FIELD",expr:this.continueArith(i)}}return{type:"FIELD",tableAlias:n.tableAlias,field:n.field}}parseWhereSqlValue(){let t=this.peek();return this.allowRelativeDateFunctions&&t.kind==="IDENT"&&this.peekAt(1).kind==="("&&J(t.value.toUpperCase())?this.parseRelativeDateFunction():this.parseSqlValue()}parseRelativeDateFunction(){let t=this.expect("IDENT"),n=t.value.toUpperCase();switch(this.expect("("),n){case"YESTERDAY":case"TOMORROW":case"THIS_YEAR":case"LAST_YEAR":case"NEXT_YEAR":return this.expect(")",`${n}() \u306F\u5F15\u6570\u3092\u53D7\u3051\u53D6\u308A\u307E\u305B\u3093`),{type:"KINTONE_FUNC",name:n,args:{kind:"NONE"}};case"FROM_TODAY":{let r="";if(this.consume("-")&&(r="-"),this.peek().kind==="+")throw new T("FROM_TODAY \u306E offset \u306B + \u7B26\u53F7\u306F\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093",this.peek());let i=this.expect("NUMBER","FROM_TODAY \u306B\u306F\u6574\u6570 offset \u3068\u5358\u4F4D\u304C\u5FC5\u8981\u3067\u3059");if(!/^\d+$/.test(i.value))throw new T("FROM_TODAY \u306E offset \u306F10\u9032\u6574\u6570\u3067\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044",i);let o=`${r}${i.value}`,a=Number(o);if(!Number.isSafeInteger(a))throw new T("FROM_TODAY \u306E offset \u306F\u5B89\u5168\u306A\u6574\u6570\u306E\u7BC4\u56F2\u3067\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044",i);this.expect(",","FROM_TODAY \u306E offset \u3068\u5358\u4F4D\u306F\u30AB\u30F3\u30DE\u3067\u533A\u5207\u3063\u3066\u304F\u3060\u3055\u3044");let s=this.expect("IDENT","FROM_TODAY \u306E\u5358\u4F4D\u306B\u306F\u975E\u5F15\u7528\u306E DAYS / WEEKS / MONTHS / YEARS \u304C\u5FC5\u8981\u3067\u3059"),l=s.value.toUpperCase();if(!GR(l))throw new T("FROM_TODAY \u306E\u5358\u4F4D\u306B\u306F DAYS / WEEKS / MONTHS / YEARS \u304C\u5FC5\u8981\u3067\u3059",s);this.expect(")","FROM_TODAY \u306F offset \u3068\u5358\u4F4D\u306E2\u5F15\u6570\u3060\u3051\u3092\u53D7\u3051\u53D6\u308A\u307E\u3059");let d=String(a===0?0:a);return{type:"KINTONE_FUNC",name:n,args:{kind:"FROM_TODAY",offset:a,offsetText:d,unit:l}}}case"THIS_WEEK":case"LAST_WEEK":case"NEXT_WEEK":{let r=null;if(this.peek().kind!==")"){let i=this.expect("IDENT",`${n} \u306E\u66DC\u65E5\u306B\u306F\u975E\u5F15\u7528\u306E SUNDAY ... SATURDAY \u304C\u5FC5\u8981\u3067\u3059`),o=i.value.toUpperCase();if(!VR(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(!WR(o))throw new T(`${n} \u306E\u65E5\u306F 1 \u304B\u3089 31 \u3067\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044`,i);r=o}else throw new T(`${n} \u306E\u65E5\u306F\u975E\u5F15\u7528\u306E LAST \u307E\u305F\u306F 1 \u304B\u3089 31 \u304C\u5FC5\u8981\u3067\u3059`,i)}return this.expect(")",`${n} \u306F\u65E5\u3092\u6700\u59271\u500B\u3060\u3051\u53D7\u3051\u53D6\u308A\u307E\u3059`),{type:"KINTONE_FUNC",name:n,args:{kind:"MONTH",day:r}}}default:throw new T(`\u672A\u77E5\u306E\u76F8\u5BFE\u65E5\u4ED8\u95A2\u6570 ${n} \u3067\u3059`,t)}}parseSqlValue(){let t=this.peek();if(t.kind==="VARIABLE")return this.advance(),{type:"VARIABLE",name:t.value.slice(1).toLowerCase()};if(t.kind==="STRING")return this.advance(),{type:"STRING",value:t.value};if(mc(t.kind))return this.advance(),this.expect("("),this.expect(")"),{type:"KINTONE_FUNC",name:Fi[t.kind]};if(t.kind==="CASE")return{type:"CASE_VALUE",expr:this.parseCaseWhenExpr()};if(t.kind==="IF")return{type:"CASE_VALUE",expr:this.parseIfExpr()};if(t.kind==="("&&this.peekAt(1).kind==="SELECT"){this.advance();let n=this.parseSelect();if(this.expect(")"),this.isArithOp(this.peek().kind))throw new T("\u30B9\u30AB\u30E9\u30FC\u30B5\u30D6\u30AF\u30A8\u30EA\u306E\u5F8C\u306B\u7B97\u8853\u6F14\u7B97\u5B50\u306F\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093\u3002\u30B5\u30D6\u30AF\u30A8\u30EA\u5185\u3067\u8A08\u7B97\u3057\u3066\u304F\u3060\u3055\u3044\uFF08\u4F8B: (SELECT AVG(\u5408\u8A08\u8CBB\u7528)/2 FROM APP88)\uFF09",this.peek());return{type:"SCALAR_SUBQUERY",query:n}}if(t.kind==="NUMBER"||t.kind==="IDENT"||t.kind==="BIDENT"||t.kind==="("||t.kind==="-"||this.tryStringFuncName()!==null){let n=this.parseArithAddSub();return n.type==="NUMBER"?n:{type:"ARITH_VALUE",expr:n}}throw new T("\u5024\uFF08\u6587\u5B57\u5217\u30FB\u6570\u5024\u30FB\u30D5\u30A3\u30FC\u30EB\u30C9\u53C2\u7167\u30FBTODAY()\u30FBNOW()\u30FBLOGINUSER()\uFF09\u304C\u5FC5\u8981\u3067\u3059",t)}parseInRight(){if(this.consume("(")){let n=this.parseInListOrSubquery();return this.expect(")"),n}return{type:"VARIABLE_IN_LIST",name:this.expect("VARIABLE","IN / NOT IN \u306E\u5F8C\u306B\u306F (\u5024\u30EA\u30B9\u30C8\u307E\u305F\u306F SELECT) \u304B\u914D\u5217\u5909\u6570\u304C\u5FC5\u8981\u3067\u3059").value.slice(1).toLowerCase()}}parseInListOrSubquery(){if(this.peek().kind==="SELECT"){let t=this.parseSelect(),n=t.columns[0],r=n&&n.type==="FIELD"?n.alias??n.field:null;return{type:"SUBQUERY_IN_LIST",query:t,column:r}}return{type:"IN_LIST",values:this.parseInValues()}}parseInValues(){let t=[],n="IN \u30EA\u30B9\u30C8\u306B\u306F\u6587\u5B57\u5217\u3001\u6570\u5024\u3001\u30D0\u30C3\u30C1\u5909\u6570\u3001\u307E\u305F\u306F\u5358\u72EC\u306E LOGINUSER() \u304C\u5FC5\u8981\u3067\u3059",r="LOGINUSER() \u306F IN / NOT IN \u30EA\u30B9\u30C8\u306E\u5358\u72EC\u8981\u7D20\u3068\u3057\u3066\u306E\u307F\u4F7F\u7528\u3067\u304D\u307E\u3059";do{let i=this.advance();if(i.kind==="STRING")t.push({type:"STRING",value:i.value});else if(i.kind==="NUMBER")t.push(Re(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(Re(`${a}${o.value}`))}else if(i.kind==="VARIABLE")t.push({type:"VARIABLE",name:i.value.slice(1).toLowerCase()});else if(i.kind==="LOGINUSER"){if(t.length>0)throw new T(r,i);if(this.expect("(","LOGINUSER \u306E\u76F4\u5F8C\u306B\u306F\u7A7A\u5F15\u6570\u306E () \u304C\u5FC5\u8981\u3067\u3059"),this.expect(")","LOGINUSER \u306E\u76F4\u5F8C\u306B\u306F\u7A7A\u5F15\u6570\u306E () \u304C\u5FC5\u8981\u3067\u3059"),t.push({type:"KINTONE_FUNC",name:"LOGINUSER"}),this.peek().kind===",")throw new T(r,this.peek())}else 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=Su(t);return{type:"GROUPING_SETS",source:"CUBE",allItems:this.groupingAllItems(n),sets:n}}parseGroupingRef(){let t=this.advance();if(this.expect("("),this.peek().kind===")")throw new T("B65: GROUPING() requires exactly one physical field argument.",this.peek());let n=this.parseQualifiedIdent();if(this.peek().kind!==")")throw new T("B65: GROUPING() requires exactly one physical field argument.",t);return this.expect(")"),{type:"GROUPING_REF",field:{type:"FIELD",tableAlias:n.tableAlias,field:n.field}}}parseGroupByKey(){if(this.tryStringFuncName()!==null){let n=this.parseStringFuncExpr();return this.isArithOp(this.peek().kind)?{type:"ARITH_KEY",expr:this.continueArith(n)}:{type:"FUNC_KEY",expr:n}}if(this.peek().kind==="("||this.peek().kind==="NUMBER")return{type:"ARITH_KEY",expr:this.parseArithAddSub()};let t=this.parseFieldPath();if(this.isArithOp(this.peek().kind)){let n={type:"FIELD_REF",field:t};return{type:"ARITH_KEY",expr:this.continueArith(n)}}return{type:"FIELD_NAME",name:t}}parseOrderBy(t=!0){let n=[];do{let r=this.parseOrderByKey(t),i="ASC";this.consume("DESC")?i="DESC":this.consume("ASC"),n.push({key:r,direction:i})}while(this.consume(","));return n}parseOrderByKey(t=!0){if(this.isUnsupportedGroupingIdStart())throw new T("B65: GROUPING_ID is not supported in Phase1.",this.peek());if(this.isGroupingFunctionStart()){if(!t)throw new T("B65: GROUPING() is not allowed in window ORDER BY.",this.peek());return{type:"GROUPING_KEY",ref:this.parseGroupingRef()}}if(this.tryStringFuncName()!==null){let r=this.parseStringFuncExpr();return this.isArithOp(this.peek().kind)?{type:"ARITH_KEY",expr:this.continueArith(r)}:{type:"FUNC_KEY",expr:r}}if(this.peek().kind==="("||this.peek().kind==="NUMBER")return{type:"ARITH_KEY",expr:this.parseArithAddSub()};let n=this.parseFieldPath();if(this.isArithOp(this.peek().kind)){let r={type:"FIELD_REF",field:n};return{type:"ARITH_KEY",expr:this.continueArith(r)}}return{type:"FIELD_NAME",name:n}}parseInsert(){this.expect("INSERT"),this.expect("INTO"),this.rejectTempTableDml();let t=this.parseIdentifier(),{appId:n,subtableCode:r}=lt(t,this.prev());this.expect("(");let i=this.parseIdentList();if(this.expect(")"),this.peek().kind==="SELECT"){let p=this.parseSelect();if(this.isApplyBlockStart()||this.prev().kind==="IDENT"&&this.prev().value.toUpperCase()==="APPLY"&&(this.peek().kind==="IDENT"||this.peek().kind==="BIDENT")&&this.peekAt(1).kind==="(")throw new T("INSERT INTO ... SELECT \u306F APPLY \u306B\u5BFE\u5FDC\u3057\u3066\u3044\u307E\u305B\u3093",this.prev());if(r)throw new T("INSERT INTO ... SELECT \u306F\u30B5\u30D6\u30C6\u30FC\u30D6\u30EB\u4EEE\u60F3\u30C6\u30FC\u30D6\u30EB\u3067\u306F\u672A\u5BFE\u5FDC\u3067\u3059",this.prev());let c=this.parseCheckGroups(),u=this.parseDmlControlSuffix();return{type:"INSERT_SELECT",appId:n,fields:i,select:p,...c,...u}}this.expect("VALUES");let o=[];do{this.expect("(");let p=this.parseInsertRow(i.length);this.expect(")"),o.push(p)}while(this.consume(","));let a=[];for(;this.isApplyBlockStart();)a.push(this.parseApplyBlock());if(this.isSoftKeyword("APPLY")&&this.peekAt(1).kind==="IDENT"&&this.peekAt(1).value.toUpperCase()==="SUBTABLE")throw new T("APPLY SUBTABLE noun is not supported; use APPLY <field> (...)",this.peek());if(a.length>0&&this.isSoftKeyword("CHECK"))throw new T("APPLY \u30D6\u30ED\u30C3\u30AF\u306E\u5F8C\u306B CHECK \u306F\u6307\u5B9A\u3067\u304D\u307E\u305B\u3093",this.peek());if(a.length>0&&(this.peek().kind==="ON"||this.isSoftKeyword("REJECT")))throw new T("ON ERROR SKIP / REJECT LIMIT \u306F APPLY \u3068\u4F75\u7528\u3067\u304D\u307E\u305B\u3093",this.peek());let s=this.parseCheckGroups(),l=this.parseDmlControlSuffix();if(this.isSoftKeyword("APPLY"))throw new T("APPLY \u306F CHECK / VALIDATE ONLY \u3088\u308A\u524D\u306B\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044",this.peek());if(r&&s.checkGroups)throw new T("CHECK \u306F\u30B5\u30D6\u30C6\u30FC\u30D6\u30EB INSERT \u306B\u5BFE\u5FDC\u3057\u3066\u3044\u307E\u305B\u3093",this.prev());if(r&&(l.validateOnly||l.onErrorSkip))throw new T("VALIDATE ONLY / ON ERROR SKIP \u306F\u30B5\u30D6\u30C6\u30FC\u30D6\u30EB INSERT \u306B\u5BFE\u5FDC\u3057\u3066\u3044\u307E\u305B\u3093",this.prev());let d=a.length>0?{applyBlocks:a}:{};return r?{type:"INSERT",appId:n,subtableCode:r,fields:i,values:o,...d,...s,...l}:{type:"INSERT",appId:n,fields:i,values:o,...d,...s,...l}}parseUpsert(){this.expect("UPSERT"),this.expect("INTO"),this.rejectTempTableDml();let t=this.parseIdentifier(),{appId:n,subtableCode:r}=lt(t,this.prev());if(r)throw new T("UPSERT \u306F\u307E\u3060\u30B5\u30D6\u30C6\u30FC\u30D6\u30EB\u4EEE\u60F3\u30C6\u30FC\u30D6\u30EB\u306B\u5BFE\u5FDC\u3057\u3066\u3044\u307E\u305B\u3093",this.prev());this.expect("(");let i=this.parseIdentList();if(this.expect(")"),this.peek().kind==="SELECT"){let c=this.parseSelect(),u=this.parseOnDuplicate();if(this.isUpsertApplyBranchStart()||this.isApplyBlockStart())throw new T("UPSERT INTO ... SELECT \u306F ON INSERT / ON UPDATE APPLY \u306B\u5BFE\u5FDC\u3057\u3066\u3044\u307E\u305B\u3093",this.peek());let f=this.parseCheckGroups(),E=this.parseDmlControlSuffix();if(this.isUpsertApplyBranchStart()||this.isApplyBlockStart())throw new T("UPSERT INTO ... SELECT \u306F ON INSERT / ON UPDATE APPLY \u306B\u5BFE\u5FDC\u3057\u3066\u3044\u307E\u305B\u3093",this.peek());return{type:"UPSERT_SELECT",appId:n,fields:i,select:c,keyFields:u,...f,...E}}this.expect("VALUES");let o=[];do this.expect("("),o.push(this.parseInsertRow(i.length)),this.expect(")");while(this.consume(","));let a=this.parseOnDuplicate(),s=this.parseUpsertApplyBranches(),l=s.onInsertApplyBlocks!==void 0||s.onUpdateApplyBlocks!==void 0;if(l&&this.isSoftKeyword("CHECK"))throw new T("UPSERT \u306E\u5206\u5C90 APPLY \u306F CHECK \u3068\u4F75\u7528\u3067\u304D\u307E\u305B\u3093",this.peek());if(l&&(this.peek().kind==="ON"||this.isSoftKeyword("REJECT")))throw new T("UPSERT \u306E\u5206\u5C90 APPLY \u306F ON ERROR SKIP / REJECT LIMIT \u3068\u4F75\u7528\u3067\u304D\u307E\u305B\u3093",this.peek());let d=this.parseCheckGroups(),p=this.parseDmlControlSuffix();if(this.isUpsertApplyBranchStart()||this.isApplyBlockStart())throw new T("ON INSERT / ON UPDATE APPLY \u306F CHECK / VALIDATE ONLY \u3088\u308A\u524D\u306B\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044",this.peek());return{type:"UPSERT",appId:n,fields:i,values:o,keyFields:a,...s,...d,...p}}parseOnDuplicate(){if(this.expectKeyword("ON","UPSERT \u306B\u306F ON DUPLICATE (\u30AD\u30FC\u30D5\u30A3\u30FC\u30EB\u30C9) \u304C\u5FC5\u8981\u3067\u3059"),!this.consume("DUPLICATE"))throw new T("ON \u306E\u5F8C\u306B\u306F DUPLICATE \u304C\u5FC5\u8981\u3067\u3059",this.peek());this.expect("(");let t=this.parseIdentList();if(this.expect(")"),t.length===0)throw new T("ON DUPLICATE \u306B\u306F\u30AD\u30FC\u30D5\u30A3\u30FC\u30EB\u30C9\u304C\u6700\u4F4E 1 \u3064\u5FC5\u8981\u3067\u3059",this.prev());return t}isUpsertApplyBranchStart(){return this.peek().kind==="ON"&&(this.peekAt(1).kind==="INSERT"||this.peekAt(1).kind==="UPDATE")}parseUpsertApplyBranches(){let t,n;for(;this.isUpsertApplyBranchStart();){this.advance();let r=this.advance(),i=r.kind==="INSERT";if(i&&t||!i&&n)throw new T(`ON ${i?"INSERT":"UPDATE"} APPLY \u306F 1 \u56DE\u3060\u3051\u6307\u5B9A\u3067\u304D\u307E\u3059`,r);if(!this.isApplyBlockStart())throw new T(`ON ${i?"INSERT":"UPDATE"} \u306E\u5F8C\u306B\u306F APPLY \u30D6\u30ED\u30C3\u30AF\u304C\u5FC5\u8981\u3067\u3059`,this.peek());let o=[];for(;this.isApplyBlockStart();)o.push(this.parseApplyBlock());i?t=o:n=o}if(this.isApplyBlockStart())throw new T("UPSERT \u306E APPLY \u306B\u306F ON INSERT \u307E\u305F\u306F ON UPDATE \u304C\u5FC5\u8981\u3067\u3059",this.peek());return{...t?{onInsertApplyBlocks:t}:{},...n?{onUpdateApplyBlocks:n}:{}}}parseArrayLiteral(){this.expect("[");let t=[];if(this.peek().kind!=="]")do{let n=this.expect("STRING");t.push({type:"STRING",value:n.value})}while(this.consume(","));return this.expect("]"),{type:"ARRAY",elements:t}}parseInsertRow(t){let n=[];do if(this.peek().kind==="[")n.push(this.parseArrayLiteral());else if(this.peek().kind==="CASE"){let r=this.parseCaseWhenExpr();n.push({type:"CASE_VALUE",expr:r})}else if(this.peek().kind==="IF"){let r=this.parseIfExpr();n.push({type:"CASE_VALUE",expr:r})}else if(this.peek().kind==="-"||this.peek().kind==="+"){let r=this.advance(),i=this.expect("NUMBER","INSERT \u306E\u5358\u9805\u7B26\u53F7\u306E\u76F4\u5F8C\u306B\u306F\u6570\u5024\u30EA\u30C6\u30E9\u30EB\u304C\u5FC5\u8981\u3067\u3059");n.push(Re(`${r.kind==="-"?"-":"+"}${i.value}`))}else{let r=this.advance();if(r.kind==="STRING")n.push({type:"STRING",value:r.value});else if(r.kind==="NUMBER")n.push(Re(r.value));else throw new T("INSERT \u306E\u5024\u306B\u306F\u6587\u5B57\u5217\u30FB\u6570\u5024\u30FB\u914D\u5217\u30EA\u30C6\u30E9\u30EB\u30FBCASE WHEN \u304C\u5FC5\u8981\u3067\u3059",r)}while(this.consume(","));if(n.length!==t)throw new T(`\u30AB\u30E9\u30E0\u6570\uFF08${t}\uFF09\u3068\u5024\u306E\u6570\uFF08${n.length}\uFF09\u304C\u4E00\u81F4\u3057\u307E\u305B\u3093`,this.prev());return n}parseUpdate(){this.expect("UPDATE"),this.rejectTempTableDml();let t=this.parseIdentifier(),{appId:n,subtableCode:r}=lt(t,this.prev());this.expect("SET");let i=this.parseAssignments();if(r&&i.some(u=>u.value.type==="STRING_FUNC"))throw new T("\u30B5\u30D6\u30C6\u30FC\u30D6\u30EB UPDATE SET \u3067\u306F\u6587\u5B57\u5217\u95A2\u6570\u3092\u76F4\u63A5\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093",this.prev());let o=null;if(this.consume("FROM")){let u=this.parseTableRef();if(u.subtableCode)throw new T("UPDATE ... FROM \u306E\u30BD\u30FC\u30B9\u306B\u30B5\u30D6\u30C6\u30FC\u30D6\u30EB\u306F\u6307\u5B9A\u3067\u304D\u307E\u305B\u3093",this.prev());if(u.cteName!==null&&!u.cteName.startsWith("#"))throw new T("UPDATE ... FROM \u306E\u30BD\u30FC\u30B9\u306F #temp \u307E\u305F\u306F APP<n> \u3092\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044\uFF08CTE \u306F\u975E\u5BFE\u5FDC\uFF09",this.prev());if(!u.alias)throw new T("UPDATE ... FROM \u306E\u30BD\u30FC\u30B9\u306B\u306F\u30A8\u30A4\u30EA\u30A2\u30B9\u304C\u5FC5\u8981\u3067\u3059",this.prev());if(u.alias.toLowerCase()===`app${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:u.appId,cteName:u.cteName,alias:u.alias,targetJoinField:"",joinKeyField:"",targetFilter:null}}let a=this.peek();if(!this.consume("WHERE"))throw new T("UPDATE \u6587\u306B\u306F WHERE \u53E5\u304C\u5FC5\u8981\u3067\u3059\uFF08\u5168\u4EF6\u66F4\u65B0\u3092\u9632\u3050\u305F\u3081\uFF09",a);let s=this.parseWhereExpr(void 0,!0),l=[];for(;this.isApplyBlockStart();)l.push(this.parseApplyBlock());if(this.isSoftKeyword("APPLY")&&this.peekAt(1).kind==="IDENT"&&this.peekAt(1).value.toUpperCase()==="SUBTABLE")throw new T("APPLY SUBTABLE noun is not supported; use APPLY <field> (...)",this.peek());if(l.length>0&&this.peek().kind==="WHERE")throw new T("\u89AA WHERE \u306F APPLY \u30D6\u30ED\u30C3\u30AF\u3088\u308A\u524D\u306B\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044",this.peek());if(o!==null){if(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 u=this.decomposeUpdateFromWhere(s,n,o.alias,a);o.targetJoinField=u.targetJoinField,o.joinKeyField=u.joinKeyField,o.targetFilter=u.targetFilter}else{if(i.some(u=>u.value.type==="SOURCE_FIELD"))throw new T("SET \u306E\u5024\u306B\u30D5\u30A3\u30FC\u30EB\u30C9\u53C2\u7167\u3092\u5358\u72EC\u3067\u6307\u5B9A\u3059\u308B\u3053\u3068\u306F\u3067\u304D\u307E\u305B\u3093",a);if(i.some(u=>u.value.type==="STRING_FUNC"&&this.nodeContainsAnyQualifier(u.value)))throw new T("UPDATE SET \u306E\u6587\u5B57\u5217\u95A2\u6570\u3067\u306F\u66F4\u65B0\u5148\u30D5\u30A3\u30FC\u30EB\u30C9\u3092\u4FEE\u98FE\u3057\u306A\u3044\u3067\u304F\u3060\u3055\u3044",a)}if(l.length>0&&this.isSoftKeyword("CHECK"))throw new T("APPLY \u30D6\u30ED\u30C3\u30AF\u306E\u5F8C\u306B CHECK \u306F\u6307\u5B9A\u3067\u304D\u307E\u305B\u3093",this.peek());if(l.length>0&&(this.peek().kind==="ON"||this.isSoftKeyword("REJECT")))throw new T("ON ERROR SKIP / REJECT LIMIT \u306F APPLY \u3068\u4F75\u7528\u3067\u304D\u307E\u305B\u3093",this.peek());let d=this.parseCheckGroups(),p=this.parseDmlControlSuffix();if(this.isSoftKeyword("APPLY"))throw new T("APPLY \u306F VALIDATE ONLY \u3088\u308A\u524D\u306B\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044",this.peek());if(r&&d.checkGroups)throw new T("CHECK \u306F\u30B5\u30D6\u30C6\u30FC\u30D6\u30EB UPDATE \u306B\u5BFE\u5FDC\u3057\u3066\u3044\u307E\u305B\u3093",this.prev());if(r&&(p.validateOnly||p.onErrorSkip))throw new T("VALIDATE ONLY / ON ERROR SKIP \u306F\u30B5\u30D6\u30C6\u30FC\u30D6\u30EB UPDATE \u306B\u5BFE\u5FDC\u3057\u3066\u3044\u307E\u305B\u3093",this.prev());let c=l.length>0?{applyBlocks:l}:{};return o!==null?{type:"UPDATE",appId:n,assignments:i,where:s,from:o,...c,...d,...p}:r?{type:"UPDATE",appId:n,subtableCode:r,assignments:i,where:s,...c,...d,...p}:{type:"UPDATE",appId:n,assignments:i,where:s,...c,...d,...p}}isApplyBlockStart(){return this.isSoftKeyword("APPLY")&&(this.peekAt(1).kind==="IDENT"||this.peekAt(1).kind==="BIDENT")&&this.peekAt(2).kind==="("}parseApplyBlock(){this.advance();let t=this.parseIdentifier();if(this.expect("("),this.peek().kind===")"||this.peek().kind===";")throw new T("APPLY \u30D6\u30ED\u30C3\u30AF\u306B\u306F\u64CD\u4F5C\u304C\u6700\u4F4E 1 \u3064\u5FC5\u8981\u3067\u3059",this.peek());let n=[];for(;n.push(this.parseApplyOperation()),!(!this.consume(";")||this.peek().kind===")");)if(this.peek().kind===";")throw new T("APPLY \u30D6\u30ED\u30C3\u30AF\u306B\u7A7A\u306E\u64CD\u4F5C\u306F\u6307\u5B9A\u3067\u304D\u307E\u305B\u3093",this.peek());this.expect(")","APPLY \u30D6\u30ED\u30C3\u30AF\u306E\u672B\u5C3E\u306B\u306F ) \u304C\u5FC5\u8981\u3067\u3059");let r=n.some(o=>o.kind==="PATCH"||o.kind==="APPEND"||o.kind==="REMOVE"),i=n.some(o=>o.kind==="ADD"||o.kind==="REMOVE_VALUE");if(r&&i)throw new T("1 \u3064\u306E APPLY \u30D6\u30ED\u30C3\u30AF\u306B\u884C\u64CD\u4F5C\u3068\u591A\u5024\u64CD\u4F5C\u306F\u6DF7\u5728\u3067\u304D\u307E\u305B\u3093",this.prev());return i?{field:t,targetKind:"MULTI_VALUE",operations:n}:{field:t,targetKind:"SUBTABLE",operations:n}}parseApplyOperation(){if(this.isSoftKeyword("ADD"))return this.advance(),{kind:"ADD",value:this.expect("STRING","ADD \u306E\u5F8C\u306B\u306F\u6587\u5B57\u5217\u30EA\u30C6\u30E9\u30EB\u304C\u5FC5\u8981\u3067\u3059").value};if(this.isSoftKeyword("PATCH")){this.advance(),this.expect("SET","PATCH \u306E\u5F8C\u306B\u306F SET \u304C\u5FC5\u8981\u3067\u3059");let t=this.parseAssignments(),n=this.parseApplyRowSelector(),r=this.parseExpectRowsGuard();return{kind:"PATCH",assignments:t,selector:n,...r?{expectRows:r}:{}}}if(this.isSoftKeyword("APPEND")){if(this.advance(),this.expect("(","APPEND \u306E\u5F8C\u306B\u306F\u30D5\u30A3\u30FC\u30EB\u30C9\u4E00\u89A7\u304C\u5FC5\u8981\u3067\u3059"),this.peek().kind===")")throw new T("APPEND \u306E\u30D5\u30A3\u30FC\u30EB\u30C9\u4E00\u89A7\u306F\u7A7A\u306B\u3067\u304D\u307E\u305B\u3093",this.peek());let t=[];do t.push(this.parseIdentifier());while(this.consume(","));this.expect(")"),this.expect("VALUES","APPEND \u306E\u30D5\u30A3\u30FC\u30EB\u30C9\u4E00\u89A7\u306E\u5F8C\u306B\u306F VALUES \u304C\u5FC5\u8981\u3067\u3059");let n=[];do this.expect("(","APPEND VALUES \u306E\u5404\u884C\u306F ( \u3067\u59CB\u3081\u3066\u304F\u3060\u3055\u3044"),n.push(this.parseInsertRow(t.length)),this.expect(")");while(this.consume(","));return{kind:"APPEND",fields:t,values:n}}if(this.isSoftKeyword("REMOVE")){if(this.advance(),this.peek().kind==="STRING")return{kind:"REMOVE_VALUE",value:this.advance().value};let t=this.parseApplyRowSelector(),n=this.parseExpectRowsGuard();return{kind:"REMOVE",selector:t,...n?{expectRows:n}:{}}}throw new T("APPLY \u306E\u64CD\u4F5C\u306B\u306F PATCH / APPEND / REMOVE / ADD \u304C\u5FC5\u8981\u3067\u3059",this.peek())}parseApplyRowSelector(){if(this.consume("WHERE"))return{kind:"WHERE",where:this.parseWhereExpr(void 0,!0)};if(this.consume("ALL")){if(!this.isSoftKeyword("ROWS"))throw new T("ALL \u306E\u5F8C\u306B\u306F ROWS \u304C\u5FC5\u8981\u3067\u3059",this.peek());return this.advance(),{kind:"ALL_ROWS"}}throw new T("PATCH / REMOVE \u306B\u306F WHERE \u307E\u305F\u306F ALL ROWS \u304C\u5FC5\u8981\u3067\u3059",this.peek())}parseExpectRowsGuard(){if(this.isSoftKeyword("EXPECT")){if(this.advance(),!this.isSoftKeyword("ROWS"))throw new T("EXPECT \u306E\u5F8C\u306B\u306F ROWS \u304C\u5FC5\u8981\u3067\u3059",this.peek());if(this.advance(),this.consume("BETWEEN")){let t=this.parseExpectRowsCount();this.expect("AND","EXPECT ROWS BETWEEN \u306E\u4E0B\u9650\u3068\u4E0A\u9650\u306F AND \u3067\u533A\u5207\u3063\u3066\u304F\u3060\u3055\u3044");let n=this.parseExpectRowsCount();if(t>n)throw new T("EXPECT ROWS BETWEEN \u306E\u4E0B\u9650\u306F\u4E0A\u9650\u4EE5\u4E0B\u306B\u3057\u3066\u304F\u3060\u3055\u3044",this.peek());return{kind:"BETWEEN",min:t,max:n}}if(this.isSoftKeyword("AT")){if(this.advance(),this.peek().value.toUpperCase()==="LEAST")return this.advance(),{kind:"AT_LEAST",count:this.parseExpectRowsCount()};if(this.isSoftKeyword("MOST"))return this.advance(),{kind:"AT_MOST",count:this.parseExpectRowsCount()};throw new T("EXPECT ROWS AT \u306E\u5F8C\u306B\u306F LEAST \u307E\u305F\u306F MOST \u304C\u5FC5\u8981\u3067\u3059",this.peek())}return{kind:"EXACT",count:this.parseExpectRowsCount()}}}parseExpectRowsCount(){let t=this.expect("NUMBER","EXPECT ROWS \u306B\u306F 0 \u4EE5\u4E0A\u306E\u6574\u6570\u304C\u5FC5\u8981\u3067\u3059");if(!/^\d+$/.test(t.value)||!Number.isSafeInteger(Number(t.value)))throw new T("EXPECT ROWS \u306F 0 \u4EE5\u4E0A\u306E\u5B89\u5168\u306A\u6574\u6570\u3067\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044",t);return Number(t.value)}parseCheckGroups(){let t=[];for(;this.isSoftKeyword("CHECK")&&this.peekAt(1).kind==="WHEN";){let n=this.advance(),r=[];for(;this.consume("WHEN");){let i=this.parseWhereExpr();this.expect("THEN","CHECK WHEN \u306E\u6761\u4EF6\u306E\u5F8C\u306B\u306F THEN \u304C\u5FC5\u8981\u3067\u3059");let o=this.parseScalarValueExpr({allowCase:!1});r.push({condition:i,message:o})}if(r.length===0)throw new T("CHECK \u306E\u5F8C\u306B\u306F WHEN \u304C\u6700\u4F4E 1 \u3064\u5FC5\u8981\u3067\u3059",n);t.push({rules:r})}return t.length>0?{checkGroups:t}:{}}parseDmlControlSuffix(){if(this.peek().kind==="ON")return this.parseOnErrorSkipSuffix();if(this.isSoftKeyword("REJECT"))throw new T("REJECT LIMIT \u306B\u306F ON ERROR SKIP INTO \u304C\u5FC5\u8981\u3067\u3059",this.peek());if(!this.isSoftKeyword("VALIDATE"))return{};let t=this.advance();if(!this.isSoftKeyword("ONLY"))throw new T("VALIDATE \u306E\u5F8C\u306B\u306F ONLY \u304C\u5FC5\u8981\u3067\u3059",this.peek());this.advance();let n=null;if(this.consume("INTO")){let r=this.peek();if(r.kind!=="IDENT"||!r.value.startsWith("#"))throw new T("VALIDATE ONLY INTO \u306B\u306F # \u3067\u59CB\u307E\u308B\u4E00\u6642\u30C6\u30FC\u30D6\u30EB\u540D\u304C\u5FC5\u8981\u3067\u3059",r);n=this.parseTableName()}if(this.peek().kind==="ON"||this.isSoftKeyword("REJECT"))throw new T("VALIDATE ONLY \u3068 ON ERROR / REJECT LIMIT \u306F\u4F75\u8A18\u3067\u304D\u307E\u305B\u3093",t);return{validateOnly:!0,validationErrorTable:n}}parseOnErrorSkipSuffix(){let t=this.advance();if(!this.isSoftKeyword("ERROR"))throw new T("ON \u306E\u5F8C\u306B\u306F ERROR \u304C\u5FC5\u8981\u3067\u3059",this.peek());if(this.advance(),!this.isSoftKeyword("SKIP"))throw new T("ON ERROR \u306E\u5F8C\u306B\u306F SKIP \u304C\u5FC5\u8981\u3067\u3059",this.peek());this.advance(),this.expect("INTO","ON ERROR SKIP \u306B\u306F INTO #\u4E00\u6642\u30C6\u30FC\u30D6\u30EB \u304C\u5FC5\u8981\u3067\u3059");let n=this.peek();if(n.kind!=="IDENT"||!n.value.startsWith("#"))throw new T("ON ERROR SKIP INTO \u306B\u306F # \u3067\u59CB\u307E\u308B\u4E00\u6642\u30C6\u30FC\u30D6\u30EB\u540D\u304C\u5FC5\u8981\u3067\u3059",n);let r=this.parseTableName(),i=null;if(this.isSoftKeyword("REJECT")){this.advance(),this.expect("LIMIT","REJECT \u306E\u5F8C\u306B\u306F LIMIT \u304C\u5FC5\u8981\u3067\u3059");let o=this.expect("NUMBER","REJECT LIMIT \u306B\u306F 0 \u4EE5\u4E0A\u306E\u6574\u6570\u304C\u5FC5\u8981\u3067\u3059");if(!/^\d+$/.test(o.value))throw new T("REJECT LIMIT \u306F 0 \u4EE5\u4E0A\u306E\u5B89\u5168\u306A\u6574\u6570\u3067\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044",o);if(i=Number(o.value),!Number.isSafeInteger(i))throw new T("REJECT LIMIT \u306F 0 \u4EE5\u4E0A\u306E\u5B89\u5168\u306A\u6574\u6570\u3067\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044",o)}if(this.isSoftKeyword("REJECT")||this.isSoftKeyword("VALIDATE")||this.peek().kind==="ON")throw new T("ON ERROR SKIP \u306E\u53E5\u304C\u91CD\u8907\u307E\u305F\u306F\u7AF6\u5408\u3057\u3066\u3044\u307E\u3059",t);return{onErrorSkip:!0,errorTable:r,rejectLimit:i}}isSoftKeyword(t){return this.peek().kind==="IDENT"&&this.peek().value.toUpperCase()===t}validateUpdateFromAssignments(t,n,r){for(let i of t){if(i.value.type==="STRING_FUNC")throw new T("UPDATE ... FROM \u306E SET \u3067\u306F\u6587\u5B57\u5217\u95A2\u6570\u3092\u76F4\u63A5\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093",r);if(i.value.type==="SOURCE_FIELD"){if(i.value.alias.toLowerCase()!==n.toLowerCase())throw new T(`UPDATE ... FROM \u306E SET \u53C2\u7167\u306F\u30BD\u30FC\u30B9 alias ${n} \u3067\u4FEE\u98FE\u3057\u3066\u304F\u3060\u3055\u3044`,r);continue}if(this.nodeContainsQualifiedField(i.value,n))throw new T("UPDATE ... FROM \u306E\u30BD\u30FC\u30B9\u5217\u306F SET \u306E\u76F4\u63A5\u5024\u3068\u3057\u3066\u306E\u307F\u53C2\u7167\u3067\u304D\u307E\u3059",r);if(i.value.type==="SCALAR_SUBQUERY")throw new T("UPDATE ... FROM \u306E SET \u3067\u306F\u30B9\u30AB\u30E9\u30FC\u30B5\u30D6\u30AF\u30A8\u30EA\u3092\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093",r);if(this.nodeContainsAnyQualifier(i.value))throw new T("UPDATE ... FROM \u306E\u30BF\u30FC\u30B2\u30C3\u30C8\u5F0F\u3067\u306F\u30D5\u30A3\u30FC\u30EB\u30C9\u3092\u4FEE\u98FE\u3057\u306A\u3044\u3067\u304F\u3060\u3055\u3044",r)}}decomposeUpdateFromWhere(t,n,r,i){let o=this.flattenTopLevelAnd(t),a=[];if(o.forEach((p,c)=>{let u=this.matchUpdateFromJoin(p,n,r);u!==null&&a.push({index:c,...u})}),a.length!==1)throw new T("UPDATE ... FROM \u306E WHERE \u306B\u306F target.key = source.key \u306E\u7D50\u5408\u7B49\u5024\u304C\u3061\u3087\u3046\u30691\u3064\u5FC5\u8981\u3067\u3059",i);let s=a[0];for(let p=0;p<o.length;p++){if(p!==s.index&&this.nodeContainsQualifiedField(o[p],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(p!==s.index&&this.nodeContainsForeignQualifier(o[p],n))throw new T(`UPDATE ... FROM \u306E\u30BF\u30FC\u30B2\u30C3\u30C8\u30D5\u30A3\u30EB\u30BF\u306F APP${n} \u306E\u30D5\u30A3\u30FC\u30EB\u30C9\u3060\u3051\u3092\u53C2\u7167\u3067\u304D\u307E\u3059`,i)}let d=o.filter((p,c)=>c!==s.index).reduce((p,c)=>p===null?c:{type:"LOGICAL",op:"AND",left:p,right:c},null);return{targetJoinField:s.targetField,joinKeyField:s.sourceField,targetFilter:d}}flattenTopLevelAnd(t){return t.type==="GROUP"?this.flattenTopLevelAnd(t.expr):t.type==="LOGICAL"&&t.op==="AND"?[...this.flattenTopLevelAnd(t.left),...this.flattenTopLevelAnd(t.right)]:[t]}matchUpdateFromJoin(t,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(mc(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}=lt(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}=lt(n,this.prev());if(!i)throw new T("REORDER \u306F\u30B5\u30D6\u30C6\u30FC\u30D6\u30EB\u4EEE\u60F3\u30C6\u30FC\u30D6\u30EB\u306E\u307F\u6307\u5B9A\u3067\u304D\u307E\u3059\uFF08\u4F8B: REORDER APP100$\u660E\u7D30 ...\uFF09",this.prev());this.expect("BY");let o=this.parseOrderBy();if(o.length===0)throw new T("REORDER \u306B\u306F BY \u30AD\u30FC\u304C\u5FC5\u8981\u3067\u3059",this.prev());let a=null;if(t){if(this.peek().kind==="WHERE")throw new T("REORDER ALL \u3067\u306F WHERE \u306F\u6307\u5B9A\u3067\u304D\u307E\u305B\u3093",this.peek())}else{let s=this.peek();if(!this.consume("WHERE"))throw new T("REORDER \u306B\u306F WHERE \u53E5\u304C\u5FC5\u9808\u3067\u3059\uFF08\u8AA4\u64CD\u4F5C\u9632\u6B62\uFF09",s);a=this.parseWhereExpr(void 0,!0)}return{type:"REORDER",appId:r,subtableCode:i,all:t,by:o,where:a}}peek(){return this.tokens[this.pos]??{kind:"EOF",value:"",pos:-1}}peekAt(t){return this.tokens[this.pos+t]??{kind:"EOF",value:"",pos:-1}}prev(){return this.tokens[this.pos-1]??{kind:"EOF",value:"",pos:-1}}advance(){let t=this.peek();return t.kind!=="EOF"&&this.pos++,t}consume(t){return this.peek().kind===t?(this.advance(),!0):!1}expect(t,n){let r=this.peek();if(r.kind!==t)throw new T(n??`\u300C${t}\u300D\u304C\u5FC5\u8981\u3067\u3059`,r);return this.advance()}expectKeyword(t,n){return this.expect(t,n)}parseUnsignedInt(){let t=this.expect("NUMBER","\u6574\u6570\u304C\u5FC5\u8981\u3067\u3059"),n=Number(t.value);if(!Number.isInteger(n)||n<0)throw new T("\u6B63\u306E\u6574\u6570\u304C\u5FC5\u8981\u3067\u3059",t);return n}parseIdentifier(){let t=this.peek();if(t.kind==="IDENT"||t.kind==="BIDENT"){if(t.kind==="IDENT"&&t.value.startsWith("#"))throw new T("\u4E00\u6642\u30C6\u30FC\u30D6\u30EB\u540D\uFF08# \u3067\u59CB\u307E\u308B\u540D\u524D\uFF09\u306F FROM / JOIN / CREATE / DROP TEMP TABLE \u3067\u306E\u307F\u4F7F\u7528\u3067\u304D\u307E\u3059",t);return this.advance(),t.value}throw new T("\u30D5\u30A3\u30FC\u30EB\u30C9\u540D\u307E\u305F\u306F\u30C6\u30FC\u30D6\u30EB\u540D\u304C\u5FC5\u8981\u3067\u3059",t)}parseTableName(){let t=this.peek();if(t.kind==="IDENT"||t.kind==="BIDENT")return this.advance(),t.value;throw new T("\u30D5\u30A3\u30FC\u30EB\u30C9\u540D\u307E\u305F\u306F\u30C6\u30FC\u30D6\u30EB\u540D\u304C\u5FC5\u8981\u3067\u3059",t)}rejectTempTableDml(){let t=this.peek();if(t.kind==="IDENT"&&t.value.startsWith("#"))throw new T(`DML on temp table ${t.value} is not supported.`,t)}parseAliasName(){let t=this.peek();if(t.value.startsWith("#"))throw new T("\u30A8\u30A4\u30EA\u30A2\u30B9\u540D\u306B # \u3067\u59CB\u307E\u308B\u540D\u524D\u306F\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093",t);if(t.kind==="IDENT"||t.kind==="BIDENT"||Mi.has(t.value.toUpperCase()))return this.advance(),t.value.toLowerCase();throw new T("\u30A8\u30A4\u30EA\u30A2\u30B9\u540D\u304C\u5FC5\u8981\u3067\u3059",t)}parseFieldPath(){let t=this.parseIdentifier();if(this.peek().kind!==".")return t;this.advance();let n=this.parseIdentifier();return`${t}.${n}`}parseColumnFieldRef(){let t=this.parseIdentifier();if(this.peek().kind!==".")return t;if(this.advance(),this.consume("*"))return`${t}.*`;let n=this.parseIdentifier();return`${t}.${n}`}};function jR(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 lt(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}}var zR=new Set(["SINGLE_LINE_TEXT","MULTI_LINE_TEXT","RICH_TEXT","LINK","DATE","TIME","DATETIME","CREATED_TIME","UPDATED_TIME","CREATOR","MODIFIER"]),qR=new Set(["DROP_DOWN","RADIO_BUTTON","CHECK_BOX","MULTI_SELECT","STATUS"]);function X(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":qR.has(e.fieldType)?t="option":zR.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 Pn(e,t,n){return{...e,source:{appId:t,fieldCode:n}}}function xi(e,t){if(e===t)return!0;if(!e||!t||e.fieldType!==t.fieldType||e.compareMode!==t.compareMode||e.inSubtable!==t.inSubtable||e.requiresCollectionOperators!==t.requiresCollectionOperators||e.source?.appId!==t.source?.appId||e.source?.fieldCode!==t.source?.fieldCode)return!1;let n=e.optionOrder,r=t.optionOrder;if(n===r)return!0;if(!n||!r||n.size!==r.size)return!1;for(let[i,o]of n)if(r.get(i)!==o)return!1;return!0}function Ct(e,t){let n=e[Symbol.iterator](),r=t[Symbol.iterator]();for(;;){let i=n.next(),o=r.next();if(i.done||o.done)return i.done&&o.done?0:i.done?-1:1;let a=i.value.codePointAt(0)??0,s=o.value.codePointAt(0)??0;if(a<s)return-1;if(a>s)return 1}}function JR(e,t){return e<t?-1:e>t?1:0}function hc(e){if(e==="")return{band:0};let t=Le(e);if(t!==null)return{band:2,value:t};let n=Number(e);return n===Number.NEGATIVE_INFINITY?{band:1}:n===Number.POSITIVE_INFINITY?{band:3}:e==="NaN"?{band:4}:{band:5,value:e}}function XR(e,t){let n=hc(e),r=hc(t);return n.band!==r.band?n.band<r.band?-1:1:n.band===2&&r.band===2?Ri(n.value,r.value):n.band===5&&r.band===5?Ct(n.value,r.value):0}function Ac(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 QR(e,t,n){let r=Ac(e,n),i=Ac(t,n);if(r.empty||i.empty)return r.empty===i.empty?0:r.empty?-1:1;if(r.normalizedId.length!==i.normalizedId.length)return r.normalizedId.length<i.normalizedId.length?-1:1;let o=Ct(r.normalizedId,i.normalizedId);return o!==0?o:Ct(r.display,i.display)}function ZR(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 Sc(e,t){let n=t.optionOrder??new Map,i=[...new Set(ZR(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(Tc),i}function Tc(e,t){return e.knownBand!==t.knownBand?e.knownBand<t.knownBand?-1:1:e.rank!==t.rank?e.rank<t.rank?-1:1:Ct(e.label,t.label)}function em(e,t,n){let r=Sc(e,n),i=Sc(t,n),o=Math.min(r.length,i.length);for(let a=0;a<o;a++){let s=Tc(r[a],i[a]);if(s!==0)return s}return r.length<i.length?-1:r.length>i.length?1:0}function $t(e,t,n){switch(n.compareMode){case"string":return Ct(e,t);case"number":return XR(e,t);case"recordNumber":return QR(e,t,n.fieldType==="RECORD_NUMBER");case"option":return em(e,t,n);case"unsupported":throw new Error(`ArgumentError: values of type ${n.fieldType} cannot be compared.`)}}function Gt(e,t,n,r=B("string")){let i=$t(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 Ic(e,t){if(t==="least"&&e.includes(""))return"";let n=t==="greatest"?e.filter(o=>o!==""):[...e];if(n.length===0)return"";let r=n.every(o=>!Number.isNaN(Number(o))),i=(o,a)=>{if(r){let s=Le(o),l=Le(a),d=s!==null&&l!==null?Ri(s,l):JR(Number(o),Number(a));if(d!==0)return d}return Ct(o,a)};return n.reduce((o,a)=>{let s=i(a,o);return t==="greatest"?s>0?a:o:s<0?a:o})}function ae(e,t){if(e.type==="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(ut(t,e.field));if(e.type==="STRING_FUNC")return Number(se(e,t));let n=ae(e.left,t),r=ae(e.right,t);switch(e.op){case"+":return n+r;case"-":return n-r;case"*":return n*r;case"/":return r!==0?n/r:NaN;case"%":return r!==0?n%r:NaN}}function de(e,t,n,r){switch(e.type){case"STRING":return e.value;case"NUMBER":return e.value;case"FIELD":return ut(t,e.tableAlias?`${e.tableAlias}.${e.field}`:e.field);case"VARIABLE":throw new Error(`ArgumentError: unresolved variable @${e.name} reached scalar evaluator.`);case"STRING_FUNC":return se(e,t,n,r);case"CASE_WHEN":return ve(e,t,n,r);case"CONCAT_OP":return se({type:"STRING_FUNC",func:"CONCAT",args:[e.left,e.right]},t,n,r);case"SCALAR_ARITH":{let i=Number(de(e.left,t,n,r)),o=Number(de(e.right,t,n,r));switch(e.op){case"+":return i+o;case"-":return i-o;case"*":return i*o;case"/":return o!==0?i/o:NaN;case"%":return o!==0?i%o:NaN}}}}function Ot(e,t,n,r){switch(e.type){case"CASE_WHEN":return Nc(e,t,n,r);case"SCALAR_ARITH":{let i=Ot(e.left,t,n,r),o=Ot(e.right,t,n,r);if(i===null||o===null)return null;let a=Number(i),s=Number(o);switch(e.op){case"+":return a+s;case"-":return a-s;case"*":return a*s;case"/":return s!==0?a/s:NaN;case"%":return s!==0?a%s:NaN}}case"CONCAT_OP":{let i=Ot(e.left,t,n,r),o=Ot(e.right,t,n,r);return`${i??""}${o??""}`}default:return de(e,t,n,r)}}function Ki(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 tm(e){return e>=55296&&e<=56319}function nm(e){return e>=56320&&e<=57343}function $i(e,t){return t>0&&t<e.length&&tm(e.charCodeAt(t-1))&&nm(e.charCodeAt(t))}function wc(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 $a(e,t){let n=Math.min(Math.max(0,t),e.length);return $i(e,n)&&(n-=1),e.slice(0,n)}function rm(e,t){let n=Math.max(0,e.length-t);return $i(e,n)&&(n+=1),e.slice(n)}function im(e,t,n){let r=wc(t,e.length),i=wc(n,e.length);return i<=r?"":($i(e,r)&&(r+=1),$i(e,i)&&(i-=1),e.slice(r,Math.max(r,i)))}function om(e,t){let n=e.repeat(Math.ceil(t/e.length));return $a(n,t)}var am=200,cr=new Map;function sm(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 Ba(e,t,n=!1){let r=sm(t)+(n?"g":""),i=`${e}\0${r}`,o=cr.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(cr.size>=am){let s=cr.keys().next().value;s!==void 0&&cr.delete(s)}return cr.set(i,a),a}function lm(e){if(e.includes("$`")||e.includes("$'"))throw new Error("ArgumentError: REGEXP_REPLACE replacement must not contain $` or $'.")}function um(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 cm(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 p=Number(s+l);if(p>=1&&p<=n.length){i+=n[p-1]??"",o+=2;continue}}let d=Number(s);if(d>=1&&d<=n.length){i+=n[d-1]??"",o+=1;continue}}i+="$"}return i}function pm(e,t,n,r){let i=0;return e.replace(t,(o,...a)=>{if(i+=1,i!==r)return o;let s=a[a.length-1],l=typeof s=="object"&&s!==null,d=a.length-(l?3:2),p=a.slice(0,d);return cm(n,o,p,l?s:void 0)})}function se(e,t,n,r){let i=e.args.map(o=>hm(o,t,n,r));switch(e.func){case"UPPER":return(i[0]??"").toUpperCase();case"LOWER":return(i[0]??"").toLowerCase();case"TRIM":return(i[0]??"").trim();case"LTRIM":return(i[0]??"").trimStart();case"RTRIM":return(i[0]??"").trimEnd();case"LENGTH":return String((i[0]??"").length);case"LENGTH_CHAR":return ge("LENGTH_CHAR",i,1,1),String([...i[0]??""].length);case"SUBSTRING":{let o=i[0]??"",a=Math.max(0,Number(i[1]??"1")-1),s=i[2]!==void 0?Number(i[2]):void 0;return im(o,a,s!==void 0?a+s:o.length)}case"LEFT":{ge("LEFT",i,2,2);let o=i[0],a=Math.trunc(Number(i[1]));return Number.isNaN(a)||a<=0?"":$a(o,a)}case"RIGHT":{ge("RIGHT",i,2,2);let o=i[0],a=Math.trunc(Number(i[1]));return Number.isNaN(a)||a<=0?"":rm(o,a)}case"INSTR":return ge("INSTR",i,2,2),String(i[0].indexOf(i[1])+1);case"LPAD":case"RPAD":{ge(e.func,i,2,3);let o=i[0],a=Math.trunc(Number(i[1]));if(Number.isNaN(a)||a<=0)return"";if(o.length>=a)return $a(o,a);let s=i[2]??" ";if(s==="")return o;let l=om(s,a-o.length);return e.func==="LPAD"?l+o:o+l}case"GREATEST":case"LEAST":return ge(e.func,i,2),Ic(i,e.func==="GREATEST"?"greatest":"least");case"CONCAT":return i.join("");case"REPLACE":{let o=i[0]??"",a=i[1]??"",s=i[2]??"";return a===""?o:o.split(a).join(s)}case"REGEXP_LIKE":return ge("REGEXP_LIKE",i,2,3),Ba(i[1],i[2]??"").test(i[0])?"1":"0";case"REGEXP_REPLACE":{ge("REGEXP_REPLACE",i,3,5),lm(i[2]);let o=um(i[4]),a=Ba(i[1],i[3]??"",!0);return o===0?i[0].replace(a,i[2]):pm(i[0],a,i[2],o)}case"REGEXP_SUBSTR":return ge("REGEXP_SUBSTR",i,2,3),Ba(i[1],i[2]??"").exec(i[0])?.[0]??"";case"TRANSLATE":{ge("TRANSLATE",i,3,3);let o=[...i[1]],a=[...i[2]];if(o.length!==a.length)throw new Error(`ArgumentError: TRANSLATE \u306E from \u3068 to \u306F\u540C\u3058\u6587\u5B57\u6570\u3067\u3042\u308B\u5FC5\u8981\u304C\u3042\u308A\u307E\u3059\uFF08from=${o.length}, to=${a.length}\uFF09`);let s=new Map;return o.forEach((l,d)=>{s.has(l)||s.set(l,a[d])}),[...i[0]].map(l=>s.get(l)??l).join("")}case"COALESCE":return i.find(o=>o!=="")??"";case"NULLIF":return(i[0]??"")===(i[1]??"")?"":i[0]??"";case"ISNULL":return(i[0]??"")!==""?i[0]??"":i[1]??"";case"ROUND":return Ki("round",Number(i[0]??"0"),Number(i[1]??"0"));case"FLOOR":return Ki("floor",Number(i[0]??"0"),Number(i[1]??"0"));case"CEIL":return Ki("ceil",Number(i[0]??"0"),Number(i[1]??"0"));case"TRUNCATE":return ge("TRUNCATE",i,1,2),Ki("trunc",Number(i[0]),Number(i[1]??"0"));case"CAST":{let o=i[0]??"";if((i[1]??"TEXT")==="NUMBER"){let s=Number(o);return isNaN(s)?o:String(s)}return o}case"FORMAT":{let o=Number(i[0]??"0"),a=i[1]??"0";return ym(o,a)}case"YEAR":{let o=i[0]??"";return o.length>=4?String(parseInt(o.slice(0,4),10)):""}case"MONTH":{let o=i[0]??"";return o.length>=7?String(parseInt(o.slice(5,7),10)):""}case"DAY":{let o=i[0]??"";return o.length>=10?String(parseInt(o.slice(8,10),10)):""}case"DAYOFWEEK":return ge(e.func,i,1,1),Bi(i[0])?String(Ga(i[0])+1):"";case"QUARTER":return ge(e.func,i,1,1),Bi(i[0])?String(Math.ceil(Number(i[0].slice(5,7))/3)):"";case"WEEK":return ge(e.func,i,1,1),Bi(i[0])?String(Pc(i[0])):"";case"DATE_FORMAT":return fm(i[0]??"",i[1]??"");case"DATEDIFF":return Em(i[0]??"",i[1]??"");case"DATE_ADD":return Rm(i[0]??"",Number(i[1]??"0"),(i[2]??"DAY").toUpperCase());case"LAST_DAY":return ge("LAST_DAY",i,1,1),mm(i[0]);case"ABS":return String(Math.abs(Number(i[0]??"0")));case"MOD":{let o=Number(i[0]??"0"),a=Number(i[1]??"0");return String(a!==0?o%a:NaN)}case"POWER":return String(Math.pow(Number(i[0]??"0"),Number(i[1]??"0")));case"SQRT":return String(Math.sqrt(Number(i[0]??"0")));case"CURRENT_DATE":{let o=new Date,a=o.getFullYear(),s=String(o.getMonth()+1).padStart(2,"0"),l=String(o.getDate()).padStart(2,"0");return`${a}-${s}-${l}`}case"CURRENT_TIMESTAMP":return new Date().toISOString()}}function ge(e,t,n,r=Number.POSITIVE_INFINITY){if(t.length>=n&&t.length<=r)return;let i=n===r?String(n):r===Number.POSITIVE_INFINITY?`${n} or more`:`${n} to ${r}`;throw new Error(`ArgumentError: ${e} expects ${i} argument(s).`)}function pr(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 Gi(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 Bi(e){let t=e.slice(0,10);if(!/^\d{4}-\d{2}-\d{2}$/.test(t))return!1;let n=Gi(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 Ga(e){return Gi(e).getUTCDay()}function bc(e){let t=Gi(e),n=t.getUTCDay()||7;return t.setUTCDate(t.getUTCDate()+4-n),t}function dm(e){return bc(e).getUTCFullYear()}function Pc(e){let t=bc(e),n=t.getUTCFullYear(),r=Gi(`${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 fm(e,t){if(!e||e.length<10)return"";let{y:n,mo:r,d:i,h:o,mi:a,sec:s}=pr(e),l=Bi(e);return t.replace(/%[YymcdeHiswavG]/g,d=>{switch(d){case"%Y":return n;case"%y":return n.slice(2);case"%m":return r;case"%c":return String(parseInt(r,10));case"%d":return i;case"%e":return String(parseInt(i,10));case"%H":return o;case"%i":return a;case"%s":return s;case"%w":return l?String(Ga(e)):"";case"%a":return l?["\u65E5","\u6708","\u706B","\u6C34","\u6728","\u91D1","\u571F"][Ga(e)]:"";case"%v":return l?String(Pc(e)).padStart(2,"0"):"";case"%G":return l?String(dm(e)).padStart(4,"0"):"";default:return d}})}function Em(e,t){if(e.length<10||t.length<10)return"0";let n=pr(e),r=pr(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 Rm(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}=pr(e),a=new Date(Date.UTC(+r,+i-1,+o));switch(n){case"YEAR":a.setUTCFullYear(a.getUTCFullYear()+t);break;case"MONTH":a.setUTCMonth(a.getUTCMonth()+t);break;case"DAY":a.setUTCDate(a.getUTCDate()+t);break}let s=String(a.getUTCFullYear()).padStart(4,"0"),l=String(a.getUTCMonth()+1).padStart(2,"0"),d=String(a.getUTCDate()).padStart(2,"0");return`${s}-${l}-${d}`}function mm(e){if(!e||e.length<10)return e;let{y:t,mo:n}=pr(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 ym(e,t){if(/^-?\d+$/.test(t.trim()))return gm(e,Math.max(0,Number(t)));let n=t.endsWith("%"),r=t.includes(","),i=n?e*100:e,o=t.replace(/%$/,"").lastIndexOf("."),a=o>=0?t.slice(o+1).replace(/%$/,""):"",s=(a.match(/0/g)??[]).length,l=(a.match(/#/g)??[]).length,d=s+l,p=i.toFixed(d),[c,u=""]=p.split(".");l>0&&(u=u.replace(/0+$/,""));let f=r?c.replace(/\B(?=(\d{3})+(?!\d))/g,","):c,E=u?`${f}.${u}`:f;return n?E+"%":E}function gm(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 hm(e,t,n,r){return e.type==="AGG_REF"||e.type==="AGG_ARITH"?"":e.type==="NUMBER"?H(e):String(de(e,t,n,r))}function ut(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 te(e,t,n,r,i){switch(e.type){case"BOOLEAN":return e.value;case"BINARY":return Am(e,t,n,r,i);case"NULL_CHECK":return Pm(e,t);case"LOGICAL":return Nm(e,t,n,r,i);case"NOT":return!te(e.expr,t,n,r,i);case"GROUP":return te(e.expr,t,n,r,i);case"EXISTS":{let o=e.resolved;return e.not?!o:o}}}function Am(e,t,n,r,i){if(e.op==="KLIKE"||e.op==="NOT_KLIKE"){if(r?.has(e))return!0;throw new Error("KLIKE / NOT KLIKE \u306F\u62BC\u3057\u4E0B\u3052\u6E08\u307F\u96C6\u5408\u306B\u542B\u307E\u308C\u306A\u3044\u305F\u3081 JavaScript \u5074\u3067\u306F\u8A55\u4FA1\u3067\u304D\u307E\u305B\u3093")}let o=kc(e.left,t,n,i),a=e.left.type==="FIELD"?n?.(e.left):void 0,s=Tm(e.left,a,i);return Sm(e.op,o,e.right,t,a,n,s,i)}function Sm(e,t,n,r,i,o,a=B("string"),s){if(e==="IN"||e==="NOT_IN"){let d=null;if(n.type==="IN_LIST"&&(bm(n.values),d=new Set(n.values.map(c=>c.type==="NUMBER"?i==="NUMBER"?H(c):String(c.value):c.value))),n.type==="SUBQUERY_IN_LIST"&&(d=n.resolved),d===null)return e==="NOT_IN";let p=wm(t,d,i);return e==="IN"?p:!p}if(e==="LIKE"){let d=Va(n,r,o);return Uc(t,d)}if(e==="NOT_LIKE"){let d=Va(n,r,o);return!Uc(t,d)}if(e==="KLIKE"||e==="NOT_KLIKE")throw new Error("KLIKE / NOT KLIKE \u306F JavaScript \u5074\u3067\u306F\u8A55\u4FA1\u3067\u304D\u307E\u305B\u3093\uFF08SIMPLE SELECT \u3067\u306E\u307F\u4F7F\u7528\u3067\u304D\u307E\u3059\uFF09");let l=Va(n,r,o,s);return Gt(e,t,l,a)}var Cc=new Set(["LENGTH","LENGTH_CHAR","INSTR","ROUND","FLOOR","CEIL","TRUNCATE","YEAR","MONTH","DAY","DATEDIFF","ABS","MOD","POWER","SQRT","DAYOFWEEK","QUARTER","WEEK"]);function Tm(e,t,n){if(e.type==="FIELD")return n?.(e)??(t?X({fieldType:t}):B("string"));if(e.type==="ARITH_FIELD")return B("number");if(e.type==="FUNC_FIELD")return B(Cc.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(Cc.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 Oc=new Set(["CHECK_BOX","MULTI_SELECT"]),Lc=new Set(["USER_SELECT","ORGANIZATION_SELECT","GROUP_SELECT","STATUS_ASSIGNEE"]),Im=new Set(["CREATOR","MODIFIER"]);function wm(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=>Gt("=",e,a,o))}let i;if(Oc.has(n)||Lc.has(n)||Im.has(n))try{i=JSON.parse(e)}catch{return r()}else return r();return Oc.has(n)?!Array.isArray(i)||!i.every(o=>typeof o=="string")?r():i.length===0&&t.has("")?!0:i.some(o=>t.has(o)):Lc.has(n)?!Array.isArray(i)||!i.every(_c)?r():i.length===0&&t.has("")?!0:i.some(o=>t.has(o.code)):_c(i)?t.has(i.code):r()}function _c(e){return e!==null&&typeof e=="object"&&!Array.isArray(e)&&typeof e.code=="string"}function bm(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}: ${at}`)}function Pm(e,t){let n=kc(e.field,t);return e.not?n!=="":n===""}function Nm(e,t,n,r,i){return e.op==="AND"?te(e.left,t,n,r,i)&&te(e.right,t,n,r,i):te(e.left,t,n,r,i)||te(e.right,t,n,r,i)}function kc(e,t,n,r){if(e.type==="FUNC_FIELD")return se(e.expr,t);if(e.type==="ARITH_FIELD")return String(ae(e.expr,t));if(e.type==="CASE_FIELD")return ve(e.expr,t,n,r);if(e.type==="GROUPING_FIELD")return wn(e.ref,t);let i=e.tableAlias?`${e.tableAlias}.${e.field}`:e.field;return ut(t,i)}function Va(e,t,n,r){switch(e.type){case"VARIABLE":throw new Error(`ParseError: unresolved batch variable @${e.name}.`);case"VARIABLE_IN_LIST":throw new Error(`ParseError: unresolved batch array variable @${e.name}.`);case"STRING":return e.value;case"NUMBER":return H(e);case"KINTONE_FUNC":return Cm(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"?ut(t,e.expr.field):e.expr.type==="STRING_FUNC"?se(e.expr,t):String(ae(e.expr,t));case"CASE_VALUE":return ve(e.expr,t,n,r);case"ARRAY":return e.elements.map(i=>i.value).join(",")}}function ve(e,t,n,r){for(let i of e.branches)if(te(i.condition,t,n,void 0,r))return vc(i.result,t,n,r);return e.elseResult!==null?vc(e.elseResult,t,n,r):""}function Nc(e,t,n,r){for(let i of e.branches)if(te(i.condition,t,n,void 0,r))return Dc(i.result,t,n,r);return e.elseResult===null?null:Dc(e.elseResult,t,n,r)}function Dc(e,t,n,r){return e.type==="ARRAY"?e.elements.map(i=>i.value).join(","):e.type==="FIELD_REF"?t[e.field]??"":e.type==="ARITH"?ae(e,t):Ot(e,t,n,r)}function vc(e,t,n,r){return e.type==="ARRAY"?e.elements.map(i=>i.value).join(","):e.type==="FIELD_REF"?t[e.field]??"":e.type==="ARITH"?String(ae(e,t)):String(de(e,t,n,r))}function Mc(e){let t=new Date;switch(e){case"TODAY":{let n=t.getFullYear(),r=String(t.getMonth()+1).padStart(2,"0"),i=String(t.getDate()).padStart(2,"0");return`${n}-${r}-${i}`}case"NOW":return t.toISOString();case"LOGINUSER":case"PRIMARY_ORGANIZATION":return""}}function Cm(e){throw J(e)?new Error(`${e}: ${Ft}`):fn(e)?new Error(`${e}: ${at}`):new Error(`InternalError: unexpected KINTONE_FUNC name: ${e}`)}var Vi=new Map,Om=200;function Uc(e,t){if(!Mu(t))return e.includes(t);let n=Vi.get(t);if(!n){let r="^";for(let i=0;i<t.length;i++){let o=t[i];o==="%"?r+=".*":o==="_"?r+=".":r+=o.replace(/[.+*?^${}()|[\]\\]/g,"\\$&")}r+="$",n=new RegExp(r,"u"),Vi.size>=Om&&Vi.clear(),Vi.set(t,n)}return n.test(e)}function Nn(e){return xc(e)}function Fc(e){return xc(e.flatMap(t=>t.rules.map(n=>n.condition)))}function xc(e){let t=[],n=new Set,r=o=>{if(Array.isArray(o)){o.forEach(r);return}if(o===null||typeof o!="object")return;let a=o;if(a.type==="EXISTS"||a.type==="SUBQUERY_IN_LIST"||a.type==="SCALAR_SUBQUERY")throw fe("CHECK \u306B\u30B5\u30D6\u30AF\u30A8\u30EA\u306F\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093");if(a.type==="FIELD"&&typeof a.field=="string")i(typeof a.tableAlias=="string"?a.tableAlias:null,a.field);else if(a.type==="FIELD_REF"&&typeof a.field=="string"){let s=a.field.indexOf(".");i(s>0?a.field.slice(0,s):null,s>0?a.field.slice(s+1):a.field)}for(let s of Object.values(a))r(s)},i=(o,a)=>{if(/^(COUNT|SUM|AVG|MIN|MAX|GROUP_CONCAT|STDDEV_POP|STDDEV_SAMP|VAR_POP|VAR_SAMP|MEDIAN|MODE)\(/i.test(a))throw fe("CHECK \u306B\u96C6\u7D04\u95A2\u6570\u306F\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093");let s=`${o??""}\0${a}`;n.has(s)||(n.add(s),t.push({tableAlias:o,field:a}))};return r(e),t}function fe(e){return new T(e,{kind:"EOF",value:"CHECK",pos:0})}function Wi(e,t,n){let r=[];return e.forEach((i,o)=>{for(let a of i.rules){if(!te(a.condition,t,n))continue;let s=de(a.message,t);r.push({groupIndex:o,message:s==null?"":String(s)});break}}),r}function Ha(e){if(At(e))throw new Q("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 Lm=new Set(["USER_SELECT","ORGANIZATION_SELECT","GROUP_SELECT"]),_m=new Set(["CHECK_BOX","MULTI_SELECT"]);function Yi(e,t=new Map){let n=e.values.map(r=>Dm(e.fields,r,t));return Rr(n,100).map(r=>({app:e.appId,records:r}))}function Dm(e,t,n){let r={};return e.forEach((i,o)=>{let a=t[o];a.type==="CASE_VALUE"?r[i]={value:Lt(a.expr,{},n.get(i))}:r[i]={value:ct(a,n.get(i))}}),r}function fr(e){Ha(e.where);let t=Xc(e);return{app:e.appId,query:G(e.where),fields:["$id",...t],totalCount:!1}}function Er(e,t,n=new Map){let r=vm(e.assignments,n);return Rr(t,100).map(i=>({app:e.appId,records:i.map(o=>({id:o,record:r}))}))}function vm(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:ct(i,t.get(r))});return n}function Gc(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 ji(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 Ya(e){Ha(e.where);let t=new Set;for(let{value:n}of e.assignments)n.type==="ARITH"?Vc(n,t):n.type==="SCALAR_ARITH"||n.type==="CONCAT_OP"?Cn(n,t):n.type==="STRING_FUNC"?ja(n,t):n.type==="CASE_VALUE"&&Wc(n.expr,t);return Xc(e).forEach(n=>t.add(n)),{app:e.appId,query:G(e.where),fields:["$id",...t],totalCount:!1}}function Vc(e,t){dr(e.left,t),dr(e.right,t)}function dr(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"?Vc(e,t):e.type==="STRING_FUNC"&&ja(e,t)}function ja(e,t){for(let n of e.args)Um(n,t)}function Um(e,t){if(e.type==="AGG_REF"||e.type==="AGG_ARITH"){Wa(e,t);return}Cn(e,t)}function Cn(e,t){if(e.type==="FIELD"){t.add(e.tableAlias?`${e.tableAlias}.${e.field}`:e.field);return}if(e.type==="STRING_FUNC"){ja(e,t);return}if(e.type==="SCALAR_ARITH"||e.type==="CONCAT_OP"){Cn(e.left,t),Cn(e.right,t);return}e.type==="CASE_WHEN"&&Wc(e,t)}function Wa(e,t){if(e.type==="AGG_REF"){e.arg.type!=="WILDCARD"&&km(e.arg,t);return}e.type==="AGG_ARITH"&&(Wa(e.left,t),Wa(e.right,t))}function km(e,t){e.type==="FIELD_REF"||e.type==="ARITH"?dr(e,t):Cn(e,t)}function Kc(e,t){if(e.type!=="ARRAY"){if(e.type==="FIELD_REF"||e.type==="ARITH"){dr(e,t);return}Cn(e,t)}}function Wc(e,t){for(let n of e.branches)Hi(n.condition,t),Kc(n.result,t);e.elseResult!==null&&Kc(e.elseResult,t)}function Hi(e,t){switch(e.type){case"BINARY":e.left.type==="FIELD"?t.add(e.left.field):e.left.type==="ARITH_FIELD"&&dr(e.left.expr,t);break;case"NULL_CHECK":e.field.type==="FIELD"&&t.add(e.field.field);break;case"LOGICAL":Hi(e.left,t),Hi(e.right,t);break;case"NOT":case"GROUP":Hi(e.expr,t);break;case"EXISTS":case"BOOLEAN":break}}function za(e,t,n=new Map){let r=t.map(i=>{let o=Number(i.$id.value),a=Hc(i),s={};for(let{field:l,value:d}of e.assignments)s[l]={value:qa(d,a,n.get(l),i)};return{id:o,record:s}});return Rr(r,100).map(i=>({app:e.appId,records:i}))}function qa(e,t,n,r){if(e.type==="ARITH")return String(r?Xa(e,r):ae(e,t));if(e.type==="SCALAR_ARITH"||e.type==="CONCAT_OP")return String(de(e,t));if(e.type==="STRING_FUNC")return se(e,t);if(e.type==="CASE_VALUE")return Lt(e.expr,t,n);if(e.type==="SOURCE_FIELD")throw new Q("SOURCE_FIELD \u306F UPDATE ... FROM \u5C02\u7528\u3067\u3059");return ct(e,n)}function zi(e,t,n){if(e.type==="STRING")return e.value;if(e.type==="NUMBER")return H(e);if(e.type==="ARITH")return String(ae(e,t));if(e.type==="CASE_VALUE")return ve(e.expr,t,n);throw new Error(`${e.type} \u306F\u30B5\u30D6\u30C6\u30FC\u30D6\u30EB UPDATE \u306E\u5024\u3068\u3057\u3066\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093`)}var Mm=new Set(["CHECK_BOX","MULTI_SELECT","USER_SELECT","ORGANIZATION_SELECT","GROUP_SELECT","FILE"]);function Ja(e,t,n=new Map){let r=t.map(({target:i,source:o})=>{let a=Number(i.$id?.value);if(!Number.isSafeInteger(a)||a<=0)throw new Q("UPDATE ... FROM \u306E\u5BFE\u8C61\u30EC\u30B3\u30FC\u30C9\u756A\u53F7\u304C\u4E0D\u6B63\u3067\u3059");let s=Hc(i),l={};for(let{field:d,value:p}of e.assignments){let c=n.get(d);if(p.type==="SOURCE_FIELD"){if(Mm.has(c??""))throw new Q(`UPDATE ... FROM \u306E SOURCE_FIELD \u306F ${c} \u30D5\u30A3\u30FC\u30EB\u30C9\u306B\u5BFE\u5FDC\u3057\u3066\u3044\u307E\u305B\u3093\uFF08\u30D5\u30A3\u30FC\u30EB\u30C9: ${d}\uFF09`);if(!Object.prototype.hasOwnProperty.call(o,p.field))throw new Q(`UPDATE ... FROM \u306E\u30BD\u30FC\u30B9\u5217 ${p.field} \u304C\u5B58\u5728\u3057\u307E\u305B\u3093`);let u=o[p.field];if(typeof u!="string")throw new Q(`UPDATE ... FROM \u306E SOURCE_FIELD \u306F\u30B9\u30AB\u30E9\u30FC\u5024\u306E\u307F\u5BFE\u5FDC\u3057\u3066\u3044\u307E\u3059\uFF08\u5217: ${p.field}\uFF09`);if((c==="NUMBER"||c==="CALC")&&u!==""&&!Number.isFinite(Number(u)))throw new Q(`\u6570\u5024\u30D5\u30A3\u30FC\u30EB\u30C9 ${d} \u306B\u5909\u63DB\u3067\u304D\u306A\u3044\u5024\u3067\u3059: ${u}`);l[d]={value:ct({type:"STRING",value:u},c)}}else{if(p.type==="STRING_FUNC")throw new Q("UPDATE ... FROM \u306E SET \u3067\u306F\u6587\u5B57\u5217\u95A2\u6570\u3092\u76F4\u63A5\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093");p.type==="ARITH"?l[d]={value:String(Xa(p,i))}:p.type==="SCALAR_ARITH"||p.type==="CONCAT_OP"?l[d]={value:String(de(p,s))}:p.type==="CASE_VALUE"?l[d]={value:Lt(p.expr,s,c)}:l[d]={value:ct(p,c)}}}return{id:a,record:l}});return Rr(r,100).map(i=>({app:e.appId,records:i}))}function Hc(e){return Object.fromEntries(Object.entries(e).map(([t,n])=>[t,typeof n.value=="string"?n.value:JSON.stringify(n.value??"")]))}function Xa(e,t){let n=Bc(e.left,t),r=Bc(e.right,t);switch(e.op){case"+":return n+r;case"-":return n-r;case"*":return n*r;case"/":if(r===0)throw new Q("\u7B97\u8853\u5F0F\u3067\u30BC\u30ED\u9664\u7B97\u304C\u767A\u751F\u3057\u307E\u3057\u305F");return n/r;case"%":if(r===0)throw new Q("\u7B97\u8853\u5F0F\u3067\u30BC\u30ED\u9664\u7B97\u304C\u767A\u751F\u3057\u307E\u3057\u305F");return n%r}}function Bc(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 Xa(e,t);if(e.type==="STRING_FUNC")throw new Q("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 Q(`\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 Yc(e){return Ha(e.where),{app:e.appId,query:G(e.where),fields:["$id"],totalCount:!1}}function jc(e,t){return Rr(t,100).map(n=>({app:e,ids:n}))}function zc(e){return Lm.has(e??"")}function Fm(e){return _m.has(e??"")}function xm(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 Km(e){return!e||/^\d{4}-\d{2}-\d{2}$/.test(e)?e:e.replace(/\//g,"-")}function qc(e,t){return zc(t)?e===""?[]:e.split(",").map(n=>({code:n.trim()})):Fm(t)?e===""?[]:e.split(",").map(n=>n.trim()):t==="DATETIME"?xm(e):t==="DATE"?Km(e):e}function Jc(e,t){return zc(t)?e.map(n=>({code:n})):e}function $c(e,t,n){return e.type==="ARRAY"?Jc(e.elements.map(r=>r.value),n):e.type==="STRING"?qc(e.value,n):e.type==="STRING_FUNC"?se(e,t):e.type==="FIELD_REF"||e.type==="ARITH"?String(ae(e,t)):String(de(e,t))}function Xc(e){if(!e.checkGroups)return[];let t=`app${e.appId}`.toLowerCase();return[...new Set(Nn(e.checkGroups).filter(n=>n.tableAlias===null||n.tableAlias.toLowerCase()===t).map(n=>n.field).filter(n=>n!=="$id"))]}function Lt(e,t,n){for(let r of e.branches)if(te(r.condition,t))return $c(r.result,t,n);return e.elseResult!==null?$c(e.elseResult,t,n):""}function ct(e,t){let n=Qa(e,t);if(!n.ok)throw new Q(n.message);return n.value}function Qa(e,t){try{return{ok:!0,value:Bm(e,t)}}catch(n){return{ok:!1,message:n instanceof Error?n.message:String(n)}}}function Bm(e,t){switch(e.type){case"VARIABLE":throw new Q(`\u672A\u89E3\u6C7A\u306E\u30D0\u30C3\u30C1\u5909\u6570 @${e.name} \u304C\u3042\u308A\u307E\u3059`);case"VARIABLE_IN_LIST":throw new Q(`\u672A\u89E3\u6C7A\u306E\u914D\u5217\u5909\u6570 @${e.name} \u304C\u3042\u308A\u307E\u3059`);case"STRING":return qc(e.value,t);case"NUMBER":return H(e);case"ARRAY":return Jc(e.elements.map(n=>n.value),t);case"KINTONE_FUNC":throw new Q(`${e.name}() \u306F INSERT / UPDATE \u306E\u5024\u3068\u3057\u3066\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093`);case"IN_LIST":throw new Q("IN_LIST \u306F INSERT / UPDATE \u306E\u5024\u3068\u3057\u3066\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093");case"ARITH_VALUE":throw new Q("\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 Q("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 Q("IN (SELECT ...) \u306F INSERT / UPDATE \u306E\u5024\u3068\u3057\u3066\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093");case"SCALAR_SUBQUERY":throw new Q("\u30B9\u30AB\u30E9\u30FC\u30B5\u30D6\u30AF\u30A8\u30EA\u306F INSERT / UPDATE \u306E\u5024\u3068\u3057\u3066\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093")}}function Rr(e,t){let n=[];for(let r=0;r<e.length;r+=t)n.push(e.slice(r,r+t));return n}var Q=class extends Error{constructor(t){super(t),this.name="DmlConvertError"}};var Za=new Set(["CHECK_BOX","MULTI_SELECT"]),$m=new Set(["USER_SELECT","ORGANIZATION_SELECT","GROUP_SELECT"]);function mr(e){throw new Error(`ArgumentError: ${e}`)}function Qc(e,t,n){let r=Gm(n.fieldType,e.field),i=Vm(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)&&mr(`APPLY multi-value field ${e.field} has conflicting ADD and REMOVE for ${JSON.stringify(g)}.`);let d=i.filter(g=>!l.has(g)),p=a.filter(g=>!o.has(g)),c=[...d,...p],u=new Set(i.filter(g=>l.has(g))).size,f=new Set,E=new Set,R=e.operations.map(g=>{let y=g.kind==="ADD"?f:E,h=!y.has(g.value);return y.add(g.value),{kind:g.kind,value:g.value,changed:g.value!==""&&h&&(g.kind==="ADD"?!o.has(g.value):o.has(g.value))}}),m=Za.has(r)?c:c.map(g=>({code:g}));return{field:e.field,fieldType:r,operations:R,postImageValue:m,addedValues:p.length,removedValues:u,changedValues:p.length+u}}function Gm(e,t){return Za.has(e)||$m.has(e)?e:mr(`APPLY multi-value target ${t} has unsupported type ${e}.`)}function Vm(e,t,n){if(!Array.isArray(e))return mr(`APPLY snapshot for ${n} must be an array.`);let r=e.map((i,o)=>Za.has(t)?typeof i!="string"?mr(`APPLY snapshot for ${n} must contain string values (item ${o+1}).`):i:typeof i!="object"||i===null||typeof i.code!="string"?mr(`APPLY snapshot for ${n} must contain {code: string} values (item ${o+1}).`):i.code);return[...new Set(r.filter(i=>i!==""))]}function Y(e){throw new Error(`ArgumentError: ${e}`)}function ns(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?Y("APPLY parent selector must be a single positive $id."):t.right.value}function pt(e,t){let n=e.applyBlocks;if(!n?.length)return Y("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)es(s.field,null,r),Wm(s.value,r);for(let s of n){(i.has(s.field)||o.has(s.field))&&Y(`APPLY has more than one block for field ${s.field}.`),e.assignments.some(c=>c.field===s.field)&&Y(`APPLY target ${s.field} is also assigned by parent SET.`);let l=t.find(c=>c.code===s.field&&!c.inSubtable);if(!l)return s.targetKind==="SUBTABLE"?Y(`APPLY target ${s.field} is not a SUBTABLE.`):Y(`APPLY target ${s.field} does not exist as a top-level field.`);if(vu(s,l.fieldType),s.targetKind==="MULTI_VALUE"){l.writable===!1&&Y(`APPLY target ${s.field} is not writable (${l.fieldType}).`),o.set(s.field,l);continue}let d=l,p=new Map(t.filter(c=>c.inSubtable&&c.subtableCode===s.field).map(c=>[c.code,c]));i.set(s.field,d),a.set(s.field,p);for(let c of s.operations)if(c.kind==="PATCH"){for(let u of c.assignments)es(u.field,s.field,r,p),ts(u.value,s.field,r,p);c.selector.kind==="WHERE"&&ts(c.selector.where,s.field,r,p)}else if(c.kind==="APPEND"){let u=new Set;for(let f of c.fields)u.has(f)&&Y(`APPLY APPEND specifies child ${f} more than once.`),u.add(f),es(f,s.field,r,p)}else c.kind==="REMOVE"&&c.selector.kind==="WHERE"&&ts(c.selector.where,s.field,r,p)}return{targetTables:i,targetMultiValueFields:o,childrenByTable:a,fieldsByCode:r}}function Wm(e,t){yr(e,n=>{if(n==="$id"||n==="$revision")return;let r=t.get(n);(!r||r.inSubtable)&&Y(`APPLY parent reference ${n} is not a top-level field.`),r.fieldType==="FILE"&&Y(`APPLY parent FILE reference ${n} is not supported.`)})}function es(e,t,n,r){(e.startsWith("_")||e.startsWith("$"))&&Y(`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&&Y(`APPLY child ${e} does not belong to subtable ${t}.`),Y(`APPLY ${t===null?"parent field":"child"} ${e} does not exist.`)}(i.fieldType==="SUBTABLE"||i.fieldType==="FILE"||i.writable===!1)&&Y(`APPLY assignment target ${e} is not writable (${i.fieldType}).`)}function ts(e,t,n,r){yr(e,i=>{if(i==="_rid"||i==="_idx"||r.has(i))return;n.get(i)?.inSubtable&&Y(`APPLY child reference ${i} does not belong to subtable ${t}.`),Y(`APPLY child reference ${i} does not exist in subtable ${t}.`)})}function qi(e,t){let n=pt(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)yr(i.value,o=>{let a=n.fieldsByCode.get(o);!a?.inSubtable&&a?.fieldType!=="FILE"&&r.add(o)});return[...r]}function Ji(e,t){let n={_rid:e.id??"",_idx:String(t)};for(let[r,i]of Object.entries(e.value??{}))n[r]=ip(i?.value);return n}function ep(e){let{statement:t,snapshot:n,fieldInfos:r}=e,i=e.metadata??pt(t,r),o=os(n.$id?.value,"APPLY snapshot $id"),a=ns(t);return o!==a&&Y(`APPLY snapshot $id ${o} does not match requested $id ${a}.`),np(t,n,i,o)}function tp(e,t,n,r=pt(e,n)){let i=new Set;return t.map(o=>{let a=os(o.$id?.value,"APPLY snapshot $id");return i.has(a)&&Y(`APPLY snapshots contain duplicate parentId ${a}.`),i.add(a),np(e,o,r,a)})}function np(e,t,n,r){let i=os(t.$revision?.value,"APPLY snapshot $revision"),o=[],a=[];for(let p of e.applyBlocks){if(p.targetKind==="MULTI_VALUE"){let P=n.targetMultiValueFields.get(p.field);P||Y(`APPLY multi-value metadata for ${p.field} is missing.`),a.push(Qc(p,t[p.field]?.value,P));continue}let c=n.childrenByTable.get(p.field),u=Jm(t,p.field),f=new Set;for(let P of u)P.id||Y(`APPLY snapshot for ${p.field} contains a row without _rid.`),f.has(P.id)&&Y(`APPLY snapshot for ${p.field} contains duplicate _rid ${P.id}.`),f.add(P.id);let E=P=>P.field==="_rid"?"SINGLE_LINE_TEXT":P.field==="_idx"?"NUMBER":c.get(P.field)?.fieldType,R=[],m=[],g=[],y=new Set,h=new Set,S=new Set,w=p.operations.some(P=>P.kind==="REMOVE");for(let[P,D]of p.operations.entries()){if(D.kind==="APPEND"){let N=rs(D,c,p.field);g.push({kind:"APPEND",addedRows:N.length}),m.push(...N);continue}if(D.kind==="REMOVE"){let N=jm(D,u,E,p.field);D.expectRows&&Zc(D.expectRows,N.length,r,p.field,P,D.kind),g.push({kind:"REMOVE",removedRows:N.length});for(let _ of N){let A=u[_].id;h.has(_)&&Y(`APPLY row ${A} is selected by both PATCH and REMOVE.`),S.has(_)&&Y(`APPLY removes row ${A} more than once.`),S.add(_)}continue}if(D.kind!=="PATCH")continue;let M=Ym(D,u,E,p.field);D.expectRows&&Zc(D.expectRows,M.length,r,p.field,P,D.kind),g.push({kind:"PATCH",matchedRows:M.length,changedRows:M.length});for(let N of M){let _=u[N];S.has(N)&&Y(`APPLY row ${_.id} is selected by both PATCH and REMOVE.`),h.add(N);let A=Ji(_,N);for(let C of D.assignments){let x=`${_.id}\0${C.field}`;y.has(x)&&Y(`APPLY patches cell ${_.id}.${C.field} more than once.`),y.add(x),R.push({rowIndex:N,field:C.field,value:zi(C.value,A,E)})}}}let I=new Map;for(let P of R){let D=I.get(P.rowIndex)??{};D[P.field]={value:P.value},I.set(P.rowIndex,D)}let b=[...u.flatMap((P,D)=>S.has(D)?[]:[{id:P.id,value:{...P.value,...I.get(D)??{}}}]),...m],v={table:p.field,operations:g,changedSubtableRows:I.size+S.size+m.length,deletedRows:S.size,snapshotRowIds:u.map(P=>P.id),postImageRows:b};w?o.push({...v,payloadShape:"FULL_SURVIVORS",removedRowIds:u.flatMap((P,D)=>S.has(D)?[P.id]:[]),payloadRows:b.map(P=>({...P.id===void 0?{}:{id:P.id},value:P.value}))}):o.push({...v,payloadShape:"PATCH_ONLY",payloadRows:[...u.map((P,D)=>{let M=I.get(D);return M?{id:P.id,value:M}:{id:P.id}}),...m.map(P=>({value:P.value}))]})}let s=Xm(t),l={};for(let p of e.assignments){let c=n.fieldsByCode.get(p.field)?.fieldType;l[p.field]={value:qa(p.value,s,c,t)}}let d={...t};Object.assign(d,l);for(let p of o)d[p.table]={value:p.postImageRows};for(let p of a)d[p.field]={value:p.postImageValue};return{app:e.appId,parentId:r,revision:i,parentRows:1,changedSubtableRows:o.reduce((p,c)=>p+c.changedSubtableRows,0),parentValues:l,postImage:d,tables:o,multiValues:a}}function Zc(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}`;Y(`APPLY EXPECT ROWS mismatch for parent $id ${n}, table ${r}, operation ${i+1} (${o}): expected ${s}, actual ${t}.`)}function Xi(e,t){let n=e.tables.map(o=>{let a=t[o.table]?.value;if(!Array.isArray(a)||a.length!==o.postImageRows.length)return Y(`APPLY normalized post-image for ${o.table} has an unexpected row count.`);let s=o.payloadRows.map((l,d)=>{let p=a[d];return p?.value?l.id===void 0?{value:p.value}:l.value===void 0?{id:l.id}:{id:l.id,value:Object.fromEntries(Object.keys(l.value).map(c=>[c,p.value[c]]))}:Y(`APPLY normalized post-image for ${o.table} row ${d+1} has no value.`)});return{...o,payloadRows:s,postImageRows:a}}),r=Object.fromEntries(Object.keys(e.parentValues).map(o=>[o,t[o]??e.parentValues[o]])),i=e.multiValues.map(o=>{let a=t[o.field]?.value;return Array.isArray(a)?{...o,postImageValue:a}:Y(`APPLY normalized post-image for ${o.field} is not an array.`)});return{...e,parentValues:r,tables:n,multiValues:i,postImage:t}}function rs(e,t,n){return e.values.map(r=>({value:Hm(e,r,t,n)}))}function Hm(e,t,n,r){if(t.length!==e.fields.length)return Y(`APPLY APPEND for ${r} has ${t.length} values for ${e.fields.length} fields.`);let i=new Map(e.fields.map((a,s)=>[a,t[s]])),o={};for(let a of n.values()){if(a.fieldType==="FILE"||a.writable===!1)continue;let s=i.get(a.code);o[a.code]={value:s===void 0?is(a):s.type==="CASE_VALUE"?Lt(s.expr,{},a.fieldType):ct(s,a.fieldType)}}return o}function is(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 Ym(e,t,n,r){return rp(e.selector,t,n,r)}function jm(e,t,n,r){return rp(e.selector,t,n,r)}function rp(e,t,n,r){if(e.kind==="ALL_ROWS")return t.map((l,d)=>d);let i=e.where,o=t.flatMap((l,d)=>te(i,Ji(l,d),n)?[d]:[]),a=zm(i);a!==null&&o.length===0&&Y(`APPLY _rid ${a} does not exist in snapshot table ${r}.`);let s=qm(i);return s!==null&&o.length===0&&Y(`APPLY _idx ${s} does not exist in snapshot table ${r}.`),o}function zm(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 qm(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 Jm(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:{}}}):Y(`APPLY snapshot field ${t} is not a subtable value.`)}function os(e,t){let n=Number(e);return(!Number.isSafeInteger(n)||n<=0)&&Y(`${t} must be a positive integer.`),n}function Xm(e){let t={};for(let[n,r]of Object.entries(e))t[n]=ip(r?.value);return t}function ip(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 yr(e,t){if(Array.isArray(e)){e.forEach(r=>yr(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))yr(r,t)}function re(e){throw new Error(`ArgumentError: ${e}`)}function Zi(e){let t=Number(e.$revision?.value);return!Number.isSafeInteger(t)||t<=0?re("APPLY snapshot $revision must be a positive integer."):t}function gr(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),Qm(i),t[i.table]={value:i.payloadRows};return{app:e.app,records:[{id:e.parentId,revision:e.revision,record:t}]}}function op(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 Qm(e){let t=as(e.snapshotRowIds,`${e.table} snapshot`),n=e.payloadRows.flatMap(p=>p.id===void 0?[]:[p.id]);for(let p of e.payloadRows)p.id===void 0&&p.value===void 0&&re(`APPLY ${e.payloadShape} table ${e.table} contains an APPEND row without value.`);if(as(n,`${e.table} payload`),e.payloadShape==="PATCH_ONLY"){e.operations.some(u=>u.kind==="REMOVE")&&re(`APPLY PATCH_ONLY table ${e.table} cannot contain REMOVE.`);let p=e.payloadRows.slice(0,t.length).map(u=>u.id??"");Qi(t,p,`APPLY PATCH_ONLY table ${e.table} must retain every snapshot row id in order.`),e.payloadRows.slice(t.length).some(u=>u.id!==void 0)&&re(`APPLY PATCH_ONLY table ${e.table} must place every APPEND row after snapshot rows.`);let c=e.postImageRows.slice(0,t.length).map(u=>u.id??"");Qi(t,c,`APPLY PATCH_ONLY table ${e.table} post-image must retain every snapshot row id in order.`),e.postImageRows.slice(t.length).some(u=>u.id!==void 0)&&re(`APPLY PATCH_ONLY table ${e.table} post-image must place every APPEND row after snapshot rows.`);return}e.operations.some(p=>p.kind==="REMOVE")||re(`APPLY FULL_SURVIVORS table ${e.table} requires a REMOVE operation.`);let r=as(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(p=>p.id===void 0?[]:[p.id]),o=new Set(r),a=new Set(i);for(let p of r)a.has(p)&&re(`APPLY FULL_SURVIVORS table ${e.table} has intersecting survivor/removed id ${p}.`);let s=t.filter(p=>!o.has(p));Qi(s,i,`APPLY FULL_SURVIVORS table ${e.table} must retain every survivor in snapshot order.`);let l=e.payloadRows.slice(0,i.length).map(p=>p.id??"");Qi(i,l,`APPLY FULL_SURVIVORS table ${e.table} payload must enumerate every survivor in order.`),(e.payloadRows.slice(i.length).some(p=>p.id!==void 0)||e.postImageRows.slice(i.length).some(p=>p.id!==void 0))&&re(`APPLY FULL_SURVIVORS table ${e.table} must place every APPEND row after survivors.`),e.payloadRows.some(p=>p.value===void 0)&&re(`APPLY FULL_SURVIVORS table ${e.table} requires values for every survivor.`),e.payloadRows.some((p,c)=>!ss(p.value,e.postImageRows[c]?.value))&&re(`APPLY FULL_SURVIVORS table ${e.table} payload must contain every post-image child value.`);let d=new Set([...i,...r]);(d.size!==t.length||t.some(p=>!d.has(p)))&&re(`APPLY FULL_SURVIVORS table ${e.table} does not partition every snapshot row.`)}function as(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 Qi(e,t,n){(e.length!==t.length||e.some((r,i)=>r!==t[i]))&&re(n)}function ss(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)=>ss(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)&&ss(n[a],r[a]))}function ap(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 sp(e){let t=e.numberPrecision;if(t==null||typeof t!="object")throw new Error("SettingsError: numberPrecision is missing from app settings.");let n=ap(t.digits,"digits",1,30),r=ap(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 lp(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 Zm=new Set(["CHECK_BOX","MULTI_SELECT"]),ey=new Set(["DROP_DOWN","RADIO_BUTTON","CHECK_BOX","MULTI_SELECT"]);function Ne(e,t,n){if(t.fieldType==="DATE"||t.fieldType==="TIME"||t.fieldType==="DATETIME"){let i=ty(e);if(i!==""&&!ny(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=hr(e,t.fieldType)}catch(i){let o=i instanceof Error?i.message:String(i);return{ok:!1,code:ry(t.fieldType),message:o}}if(t.required&&eo(r))return{ok:!1,code:"ERR_REQUIRED",message:`${t.code} \u306F\u5FC5\u9808\u3067\u3059`};if(!eo(r)&&t.fieldType==="NUMBER"){let i=String(r),o=Le(i);if(o===null)return{ok:!1,code:"ERR_TYPE_NUMBER",message:`${t.code} \u306F\u6570\u5024\u3067\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044`};if(t.minValue!=null&&mi(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&&mi(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}=lp(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(!eo(r)&&(t.fieldType==="DATE"||t.fieldType==="TIME"||t.fieldType==="DATETIME")&&!Vt(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!eo(r)&&ey.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 ty(e){return e==null?"":to(e)&&e.type==="NUMBER"?H(e):to(e)&&e.type==="STRING"?e.value:typeof e=="string"||typeof e=="number"?String(e):""}function ny(e,t){if(t==="DATE")return Vt(e.replace(/\//g,"-"),"DATE");if(t==="TIME")return Vt(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)?Vt(n.slice(0,10),"DATE")&&Vt(n.slice(11),"TIME"):Vt(n,"DATETIME")}function hr(e,t){if(to(e)){let r=Qa(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(Zm.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 to(e){return typeof e=="object"&&e!==null&&typeof e.type=="string"}function Wt(e){if(e==null||e==="")return!0;if(Array.isArray(e))return e.length===0;if(to(e)){if(e.type==="STRING")return e.value==="";if(e.type==="ARRAY")return e.elements.length===0}return!1}function eo(e){return e===""||Array.isArray(e)&&e.length===0}function ry(e){return e==="NUMBER"?"ERR_TYPE_NUMBER":"ERR_TYPE_DATE"}function Vt(e,t){if(t==="TIME"){let d=/^(\d{2}):(\d{2})(?::(\d{2}))?$/.exec(e);return d!==null&&Number(d[1])<=23&&Number(d[2])<=59&&Number(d[3]??0)<=59}let n=t==="DATE"?e:e.slice(0,10),r=/^(\d{4})-(\d{2})-(\d{2})$/.exec(n);if(!r)return!1;let i=Number(r[1]),o=Number(r[2]),a=Number(r[3]),s=new Date(Date.UTC(i,o-1,a));if(s.getUTCFullYear()!==i||s.getUTCMonth()!==o-1||s.getUTCDate()!==a)return!1;if(t==="DATE")return!0;let l=e.slice(11,e.endsWith("Z")?-1:e.length-6).replace(/\.\d+$/,"");return/^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}(?::\d{2})?(?:\.\d+)?(?:Z|[+-]\d{2}:\d{2})$/.test(e)&&Vt(l,"TIME")}var On=["$err_statement","$err_operation","$err_row","$err_field","$err_code","$err_message","$err_value","$err_subtable","$err_subrow","$err_subrow_id"];function ls(e,t,n){let r=new Map(n.map(i=>[i.code,i]));for(let i of e)if(i.mode==="update"){i.record??(i.record={});for(let o of t){if(!i.payload.has(o))continue;let a=i.payload.get(o),s=r.get(o).fieldType,l=["USER_SELECT","ORGANIZATION_SELECT","GROUP_SELECT"].includes(s)&&Array.isArray(a)&&a.every(p=>typeof p=="object"&&p!==null&&"code"in p),d=a;try{d=hr(a,s)}catch{}i.record[o]={value:l?a:d}}}}function us(e,t,n,r,i,o,a,s=[],l=!0,d=!0,p={}){let c=new Map(i.map(m=>[m.code,m])),u=[],f=new Set,E=[];p.validateUpdateBuiltIns===!1&&ls(e,r,i);let R;for(let m of e){m.record??(m.record={});let g=d?[...m.preErrors]:[],y=[],h=[],S=m.mode==="create"||p.validateUpdateBuiltIns!==!1;for(let b of r){if(!m.payload.has(b))continue;let v=m.payload.get(b),P=c.get(b).fieldType,D=["USER_SELECT","ORGANIZATION_SELECT","GROUP_SELECT"].includes(P)&&Array.isArray(v)&&v.every(N=>typeof N=="object"&&N!==null&&"code"in N);if(!S)continue;let M=Ne(v,c.get(b),a);M.ok?m.record[b]={value:D?v:M.value}:y.push({field:b,code:M.code,message:M.message})}if(l&&m.mode==="create")for(let b of i){if(b.inSubtable||m.payload.has(b.code))continue;if(Wt(b.defaultValue)){let P=Ne("",b,a);P.ok?b.required&&y.push({field:b.code,code:"ERR_REQUIRED",message:`${b.code} \u306F\u5FC5\u9808\u3067\u3059`}):y.push({field:b.code,code:P.code,message:P.message})}else{let P=Ne(b.defaultValue,b,a);P.ok||y.push({field:b.code,code:P.code,message:`\u65E2\u5B9A\u5024: ${P.message}`})}}if(s.length>0){let b=m.evaluationRow??Object.fromEntries([...m.payload].map(([D,M])=>[D,qe(M)])),v=m.evaluationFieldTypes,P=D=>{let M=D.tableAlias?`${D.tableAlias}.${D.field}`:D.field;return v?.get(M)??v?.get(D.field)};try{for(let D of Wi(s,b,P))h.push({field:"",code:"ERR_CHECK",message:D.message})}catch(D){R??(R=D)}}let w=b=>b.map(v=>{let P={};for(let D of n)P[D]=qe(m.payload.get(D));return P.$err_statement=String(o),P.$err_operation=t,P.$err_row=String(m.rowNumber),P.$err_field=v.field,P.$err_code=v.code,P.$err_message=v.message,P.$err_value="",P.$err_subtable="",P.$err_subrow="",P.$err_subrow_id="",P}),I={rowNumber:m.rowNumber,preErrors:w(g),builtInErrors:w(y),checkErrors:w(h)};E.push(I);let L=[...I.preErrors,...I.builtInErrors,...I.checkErrors];L.length>0&&f.add(m.rowNumber),u.push(...L)}if(R!==void 0)throw R;return{errors:u,invalidRows:f.size,invalidRowNumbers:f,candidateResults:E}}function qe(e){if(e==null)return"";if(typeof e=="object"&&"type"in e){let t=e;if(t.type==="NUMBER")return t.raw??String(t.value??"");if(t.type==="STRING")return String(t.value??"");if(t.type==="ARRAY")return JSON.stringify(t.elements?.map(n=>n.value)??[])}return Array.isArray(e)?JSON.stringify(e):String(e)}var cs=["required","length","range","choice"];function ps(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 ds(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 iy(e){return ps(e).length>0}function oy(e){return e.fieldType==="NUMBER"||iy(e)}function no(e,t,n){return{subtable:e,subrow:t+1,subrowId:String(n.id??"")}}function fs(e,t){let{topByCode:n,childrenByTable:r}=ds(t),i=oy;if(e.targets===void 0)return[...t.filter(l=>!l.inSubtable&&l.fieldType!=="SUBTABLE"&&i(l)),...t.filter(l=>l.inSubtable&&!!l.subtableCode&&i(l))].map(l=>({field:l,...l.subtableCode?{subtableCode:l.subtableCode}:{}}));let o=[],a=new Set,s=(l,d)=>{let p=d?`${d}\0${l.code}`:l.code;if(a.has(p))throw new Error(`ArgumentError: VALIDATE \u306E\u30D5\u30A3\u30FC\u30EB\u30C9 ${l.code} \u304C\u91CD\u8907\u3057\u3066\u3044\u307E\u3059\u3002`);if(a.add(p),!i(l))throw new Error(`ArgumentError: VALIDATE \u306E\u30D5\u30A3\u30FC\u30EB\u30C9 ${l.code} \u306B\u306F\u76E3\u67FB\u53EF\u80FD\u306A\u5236\u7D04\u304C\u3042\u308A\u307E\u305B\u3093\u3002`);o.push({field:l,...d?{subtableCode:d}:{}})};for(let l of e.targets){if(l.kind==="SUBTABLE"){let c=r.get(l.subtableCode);if(!c)throw new Error(`ArgumentError: VALIDATE \u306E\u30B5\u30D6\u30C6\u30FC\u30D6\u30EB ${l.subtableCode} \u306F\u5B58\u5728\u3057\u307E\u305B\u3093\u3002`);if(l.children.length===0)throw new Error(`ArgumentError: VALIDATE \u306E\u30B5\u30D6\u30C6\u30FC\u30D6\u30EB ${l.subtableCode} \u306B\u306F1\u3064\u4EE5\u4E0A\u306E\u5B50\u30D5\u30A3\u30FC\u30EB\u30C9\u304C\u5FC5\u8981\u3067\u3059\u3002`);for(let u of l.children){let f=c.find(E=>E.code===u);if(!f){let E=[...r.entries()].some(([R,m])=>R!==l.subtableCode&&m.some(g=>g.code===u));throw new Error(E?`ArgumentError: VALIDATE \u306E\u5B50\u30D5\u30A3\u30FC\u30EB\u30C9 ${u} \u306F\u30B5\u30D6\u30C6\u30FC\u30D6\u30EB ${l.subtableCode} \u306B\u5C5E\u3057\u3066\u3044\u307E\u305B\u3093\u3002`:`ArgumentError: VALIDATE \u306E\u5B50\u30D5\u30A3\u30FC\u30EB\u30C9 ${u} \u306F\u30B5\u30D6\u30C6\u30FC\u30D6\u30EB ${l.subtableCode} \u306B\u5B58\u5728\u3057\u307E\u305B\u3093\u3002`)}s(f,l.subtableCode)}continue}let d=l.field;if(d==="$id")throw new Error("ArgumentError: VALIDATE \u3067\u306F\u30B7\u30B9\u30C6\u30E0\u30D5\u30A3\u30FC\u30EB\u30C9 $id \u3092\u76E3\u67FB\u3067\u304D\u307E\u305B\u3093\u3002");let p=n.get(d);if(p?.fieldType==="SUBTABLE"){let c=(r.get(d)??[]).filter(i);if(c.length===0)throw new Error(`ArgumentError: VALIDATE \u306E\u30B5\u30D6\u30C6\u30FC\u30D6\u30EB ${d} \u306B\u306F\u76E3\u67FB\u53EF\u80FD\u306A\u5B50\u30D5\u30A3\u30FC\u30EB\u30C9\u304C\u3042\u308A\u307E\u305B\u3093\u3002`);c.forEach(u=>s(u,d));continue}if(p){s(p);continue}throw[...r.values()].some(c=>c.some(u=>u.code===d))?new Error(`ArgumentError: VALIDATE \u306E\u5B50\u30D5\u30A3\u30FC\u30EB\u30C9 ${d} \u306F\u6240\u6709\u30B5\u30D6\u30C6\u30FC\u30D6\u30EB\u3092\u542B\u3080 T(${d}) \u5F62\u5F0F\u3067\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044\u3002`):new Error(`ArgumentError: VALIDATE \u306E\u30D5\u30A3\u30FC\u30EB\u30C9 ${d} \u306F\u5B58\u5728\u3057\u307E\u305B\u3093\u3002`)}return o}function Ar(e,t){return Wt(e)?"":qe(hr(e,t))}var ay=new Set(["CALC","RECORD_NUMBER","CREATOR","CREATED_TIME","MODIFIER","UPDATED_TIME","STATUS","STATUS_ASSIGNEE","CATEGORY","REFERENCE_TABLE"]),Sr=On;function Je(e,t=["$id"]){let n=ds(e),r=n.topLevel.filter(o=>o.fieldType!=="SUBTABLE"&&o.fieldType!=="FILE"&&!ay.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 Ht(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 Yt(e,t,n,r,i=1,o="UPDATE"){let a=sy(e),s=[],l=new Set,d=[...t.payloadFields,...Sr],p=qe(e.$id?.value),c=(u,f,E,R)=>{l.add(i);let m={};for(let g of t.payloadFields)m[g]=g==="$id"?p:qe(e[g]?.value);m.$err_statement=String(r),m.$err_operation=o,m.$err_row=String(i),m.$err_field=u.code,m.$err_code=E.code,m.$err_message=E.message,m.$err_value=Ar(f,u.fieldType),m.$err_subtable=R?.subtable??"",m.$err_subrow=R?String(R.subrow):"",m.$err_subrow_id=R?.subrowId??"",s.push(m)};for(let u of t.topLevel){let f=e[u.code]?.value,E=Ne(f,u,n);E.ok?a[u.code]={value:up(f,u.fieldType,E.value)}:c(u,f,E)}for(let[u,f]of t.subtables){let E=e[u]?.value;if(!Array.isArray(E))continue;let R=a[u]?.value;for(let m=0;m<E.length;m++){let g=E[m],y=R[m];for(let h of f){let S=g.value?.[h.code]?.value,w=Ne(S,h,n);w.ok?(y.value??(y.value={}),y.value[h.code]={value:up(S,h.fieldType,w.value)}):c(h,S,w,no(u,m,g))}}}return{normalizedRecord:a,errors:s,columns:d,invalidRows:l.size,invalidRowNumbers:l,errorCount:s.length}}function up(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 sy(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 ro(e){let{statement:t,snapshots:n,fieldInfos:r,metadata:i,dmlMaxRows:o,dmlMaxSubtableRows:a,statementNumber:s=1}=e;cp(o,"dmlMaxRows"),cp(a,"dmlMaxSubtableRows");for(let h of n)Zi(h);let l=tp(t,n,r,i),d=Je(r,t.assignments.map(h=>h.field)),p=l.some(h=>Ht(h.postImage,d));if(p&&!e.loadNumberPrecision)throw new Error("InternalError: APPLY number precision loader is required for NUMBER post-images.");let c=p?await e.loadNumberPrecision():void 0,u=l.map((h,S)=>Yt(h.postImage,d,c,s,e.parentRowNumbers?.[S]??S+1));if(!t.validateOnly){let h=u.flatMap(S=>S.errors);if(h.length>0)throw new Error(`ArgumentError: APPLY post-image validation failed: ${JSON.stringify({columns:u[0]?.columns??[],errors:h})}`)}let f=l.length,E=l.reduce((h,S)=>h+S.changedSubtableRows,0),R=f>o||E>a;if(!t.validateOnly&&f>o)throw new Error(`ArgumentError: APPLY parent rows (${f}) exceed dmlMaxRows (${o}).`);if(!t.validateOnly&&E>a)throw new Error(`ArgumentError: APPLY changed subtable rows (${E}) exceed dmlMaxSubtableRows (${a}).`);let m=l.map((h,S)=>Xi(h,u[S].normalizedRecord)),g=m.flatMap(h=>gr(h).records),y=u.map(h=>({errors:h.errors,columns:h.columns,invalidRows:h.invalidRows,errorCount:h.errorCount}));return pp({plans:m,records:g,validations:y,guards:{revisionRequired:!0,parentRows:f,dmlMaxRows:o,subtableRows:E,dmlMaxSubtableRows:a,wouldExceed:R}})}function cp(e,t){if(!Number.isSafeInteger(e)||e<=0)throw new Error(`ArgumentError: ${t} must be a positive safe integer.`)}function pp(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))pp(n,t);return Object.freeze(e)}var Es=new Set(["CALC","RECORD_NUMBER","CREATOR","CREATED_TIME","MODIFIER","UPDATED_TIME","STATUS","STATUS_ASSIGNEE","CATEGORY","REFERENCE_TABLE"]);function io(e,t){if(new Set(e.fields).size!==e.fields.length)return Xe("DML target fields contain duplicates.");let n=new Map(t.map(o=>[o.code,o]));for(let o of e.fields)dp(o,null,n);let r=new Map,i=new Map;for(let o of e.applyBlocks??[]){if(r.has(o.field))return Xe(`APPLY has more than one block for table ${o.field}.`);let a=t.find(l=>l.code===o.field&&!l.inSubtable);if(!a||a.fieldType!=="SUBTABLE")return Xe(`APPLY target ${o.field} is not a SUBTABLE.`);let s=new Map(t.filter(l=>l.inSubtable&&l.subtableCode===o.field).map(l=>[l.code,l]));r.set(o.field,a),i.set(o.field,s);for(let l of o.operations){if(l.kind!=="APPEND")return Xe(`APPLY INSERT supports APPEND only (${l.kind}).`);let d=new Set;for(let p of l.fields){if(d.has(p))return Xe(`APPLY APPEND specifies child ${p} more than once.`);d.add(p),dp(p,o.field,n,s)}for(let p of l.values)if(p.length!==l.fields.length)return Xe(`APPLY APPEND for ${o.field} has ${p.length} values for ${l.fields.length} fields.`)}}return{targetTables:r,targetMultiValueFields:new Map,childrenByTable:i,fieldsByCode:n}}function ly(e,t,n=io(e,t),r){let i=new Map(t.map(s=>[s.code,s.fieldType])),o=Yi(e,i).flatMap(s=>s.records);if(r&&r.length!==o.length)throw new Error("InternalError: APPLY create parent row number count differs from VALUES rows.");let a=(e.applyBlocks??[]).map(s=>{let l=n.childrenByTable.get(s.field),d=s.operations.flatMap(p=>rs(p,l,s.field));return{table:s.field,rows:d,addedRows:d.length}});return o.map((s,l)=>{let d={};for(let c of t)c.inSubtable||c.fieldType==="SUBTABLE"||c.fieldType==="FILE"||c.writable===!1||Es.has(c.fieldType)||(d[c.code]=s[c.code]??{value:is(c)});let p={...s};for(let c of a){let u=c.rows.map(f=>({value:f.value}));d[c.table]={value:u},p[c.table]={value:u}}return{parentRowNumber:r?.[l]??l+1,tables:a,postImage:d,record:p}})}async function Tr(e){let{statement:t,fieldInfos:n,dmlMaxRows:r,dmlMaxSubtableRows:i,statementNumber:o=1}=e;fp(r,"dmlMaxRows"),fp(i,"dmlMaxSubtableRows");let a=e.metadata??io(t,n),s=ly(t,n,a,e.parentRowNumbers),l=n.filter(S=>S.fieldType==="SUBTABLE"||S.fieldType!=="FILE"&&S.writable!==!1&&!Es.has(S.fieldType)),d=Je(l,t.fields),p=s.some(S=>Ht(S.postImage,d));if(p&&!e.loadNumberPrecision)throw new Error("InternalError: APPLY number precision loader is required for NUMBER post-images.");let c=p?await e.loadNumberPrecision():void 0,u=s.map(S=>Yt(S.postImage,d,c,o,S.parentRowNumber,"INSERT"));if(!t.validateOnly){let S=u.flatMap(w=>w.errors);if(S.length>0)throw new Error(`ArgumentError: APPLY post-image validation failed: ${JSON.stringify({columns:u[0]?.columns??[],errors:S})}`)}let f=s.length,E=s.reduce((S,w)=>S+w.tables.reduce((I,L)=>I+L.addedRows,0),0),R=f>r||E>i;if(!t.validateOnly&&f>r)throw new Error(`ArgumentError: APPLY parent rows (${f}) exceed dmlMaxRows (${r}).`);if(!t.validateOnly&&E>i)throw new Error(`ArgumentError: APPLY changed subtable rows (${E}) exceed dmlMaxSubtableRows (${i}).`);let m=s.map((S,w)=>{let I=u[w].normalizedRecord,L={};for(let b of t.fields)L[b]=I[b];for(let b of S.tables){let v=I[b.table]?.value;L[b.table]={value:b.rows.map((P,D)=>({value:Object.fromEntries(Object.keys(P.value).map(M=>[M,v[D]?.value?.[M]??P.value[M]]))}))}}return{...S,postImage:I,record:L}}),g=m.map(S=>S.record),y=[];for(let S=0;S<g.length;S+=100)y.push({app:t.appId,records:g.slice(S,S+100)});let h=u.map(S=>({errors:S.errors,columns:S.columns,invalidRows:S.invalidRows,errorCount:S.errorCount}));return Ep({applyBlocks:t.applyBlocks??[],candidates:m,records:g,batches:y,validations:h,guards:{revisionRequired:!1,parentRows:f,dmlMaxRows:r,subtableRows:E,dmlMaxSubtableRows:i,wouldExceed:R}})}function dp(e,t,n,r){if(e.startsWith("_")||e.startsWith("$"))return Xe(`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?Xe(`APPLY child ${e} does not belong to subtable ${t}.`):Xe(`APPLY ${t===null?"parent field":"child"} ${e} does not exist.`)}if(i.fieldType==="SUBTABLE"||i.fieldType==="FILE"||i.writable===!1||Es.has(i.fieldType))return Xe(`APPLY assignment target ${e} is not writable (${i.fieldType}).`)}function fp(e,t){if(!Number.isSafeInteger(e)||e<=0)throw new Error(`ArgumentError: ${t} must be a positive safe integer.`)}function Xe(e){throw new Error(`ArgumentError: ${e}`)}function Ep(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))Ep(n,t);return Object.freeze(e)}async function mp(e){let{statement:t,matches:n,fieldInfos:r,dmlMaxRows:i,dmlMaxSubtableRows:o,statementNumber:a=1}=e;Rp(i,"dmlMaxRows"),Rp(o,"dmlMaxSubtableRows"),fy(t,n);let s=n.filter(g=>g.targetId===void 0),l=n.filter(g=>g.targetId!==void 0),d=uy(t,s.map(g=>g.sourceRowIndex)),p=await Tr({statement:d,fieldInfos:r,metadata:io(d,r),dmlMaxRows:i,dmlMaxSubtableRows:o,statementNumber:a,parentRowNumbers:s.map(g=>g.sourceRowIndex+1),loadNumberPrecision:e.loadNumberPrecision}),c=[],u=new Set;for(let g of l){let y=g.targetId;u.has(y)&&Rs(`UPSERT APPLY resolves more than one source row to parent $id ${y}.`),u.add(y),g.snapshot||Rs(`UPSERT APPLY snapshot for parent $id ${y} is missing.`);let h=Number(g.snapshot.$id?.value);h!==y&&Rs(`UPSERT APPLY snapshot $id ${h} does not match target $id ${y}.`);let S=cy(t,g.sourceRowIndex,y),w=S.applyBlocks?.length?pt(S,r):py(r);c.push(await ro({statement:S,snapshots:[g.snapshot],fieldInfos:r,metadata:w,dmlMaxRows:i,dmlMaxSubtableRows:o,statementNumber:a,parentRowNumbers:[g.sourceRowIndex+1],loadNumberPrecision:e.loadNumberPrecision}))}let f=dy(c,i,o),E=p.guards.parentRows+f.guards.parentRows,R=p.guards.subtableRows+f.guards.subtableRows,m=E>i||R>o;if(!t.validateOnly){let g=[...p.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:p.validations[0]?.columns??f.validations[0]?.columns??[],errors:g})}`)}if(!t.validateOnly&&E>i)throw new Error(`ArgumentError: APPLY parent rows (${E}) exceed dmlMaxRows (${i}).`);if(!t.validateOnly&&R>o)throw new Error(`ArgumentError: APPLY changed subtable rows (${R}) exceed dmlMaxSubtableRows (${o}).`);return ms({create:p,update:f,createBatches:p.batches,updateBatches:Ey(f.records,t.appId),guards:{revisionRequired:f.guards.parentRows>0,parentRows:E,dmlMaxRows:i,subtableRows:R,dmlMaxSubtableRows:o,wouldExceed:m,create:p.guards,update:f.guards}})}function uy(e,t){return{type:"INSERT",appId:e.appId,fields:[...e.fields],values:t.map(n=>e.values[n]),applyBlocks:e.onInsertApplyBlocks??[],validateOnly:!0}}function cy(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 py(e){return{targetTables:new Map,targetMultiValueFields:new Map,childrenByTable:new Map,fieldsByCode:new Map(e.map(t=>[t.code,t]))}}function dy(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 ms({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 fy(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 Ey(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 Rp(e,t){if(!Number.isSafeInteger(e)||e<=0)throw new Error(`ArgumentError: ${t} must be a positive safe integer.`)}function Rs(e){throw new Error(`ArgumentError: ${e}`)}function ms(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))ms(n,t);return Object.freeze(e)}function wr(e){return Ln("UPDATE",[hp(e)])}function ys(e){return Ln("INSERT",[gp(e)])}function gs(e){return Ln("UPSERT",[gp(e.create),hp(e.update)])}function Ue(e,t){let n=t.failedBranch?.toLowerCase(),r=e.branches.map(i=>{let o=e.statementKind==="UPSERT"?i.branch==="insert"?t.successfulInserts:t.successfulUpdates:t.successfulParents,a=e.statementKind==="UPSERT"?i.branch==="insert"?t.successfulInsertChunks:t.successfulUpdateChunks:t.successfulChunks,s=n===i.branch;return{...i,...o!==void 0?{successfulParents:o}:{},chunk:{...i.chunk,...a!==void 0?{successfulChunks:a}:{},...s&&t.failedChunkIndex!==void 0?{failedChunkIndex:t.failedChunkIndex}:{},...s&&t.failedStage!==void 0?{failedStage:t.failedStage}:{}}}});return{...e,branches:r,partialSuccess:{possible:!0,successfulParents:t.successfulParents,successfulChunks:t.successfulChunks,...n?{failedBranch:n}:{},...t.retryAttempted!==void 0?{retryAttempted:t.retryAttempted}:{}}}}function ao(e,t,n){return e.type==="UPDATE"?Ln("UPDATE",[oo("update",e.applyBlocks??[],null,!0,t,n)]):e.type==="INSERT"?Ln("INSERT",[oo("insert",e.applyBlocks??[],e.values.length,!1,t,n)]):Ln("UPSERT",[oo("insert",e.onInsertApplyBlocks??[],null,!1,t,n),oo("update",e.onUpdateApplyBlocks??[],null,!0,t,n)])}function Ln(e,t){return{statementKind:e,branches:t,nonTransactional:!0,partialSuccess:{possible:!0}}}function gp(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 hp(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:yp(a?.operations,o.operations.map(s=>({...s,count:s.kind==="PATCH"?s.changedRows:s.kind==="APPEND"?s.addedRows:s.removedRows}))),changedCount:(a?.changedCount??0)+o.changedSubtableRows}),i||(i=o.deletedRows>0)}for(let o of r.multiValues){let a=t.get(o.field),s={parentId:r.parentId,value:o.postImageValue};t.set(o.field,{targetKind:"MULTI_VALUE",field:o.field,fieldType:o.fieldType,operations:yp(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 yp(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:Ir(i.count,n.count),...n.matchedRows!==void 0?{matchedRows:Ir(i.matchedRows,n.matchedRows)}:{},...n.changedRows!==void 0?{changedRows:Ir(i.changedRows,n.changedRows)}:{},...n.addedRows!==void 0?{addedRows:Ir(i.addedRows,n.addedRows)}:{},...n.removedRows!==void 0?{removedRows:Ir(i.removedRows,n.removedRows)}:{}}}):t.map(n=>({...n}))}function Ir(e,t){return e==null||t===null?null:e+t}function oo(e,t,n,r,i,o){let a=t.map(p=>{let c=p.operations.map(f=>Ry(f,n)),u=c.every(f=>f.count!==null)?c.reduce((f,E)=>f+E.count,0):null;return{targetKind:p.targetKind,field:p.field,operations:c,changedCount:u}}),s=a.filter(p=>p.targetKind==="SUBTABLE"),l=s.every(p=>p.changedCount!==null)?s.reduce((p,c)=>p+c.changedCount,0):null,d=n===null||l===null?null:n>i||l>o;return{branch:e,parentRows:n,targets:a,guards:{revisionRequired:r,parentRows:n,dmlMaxRows:i,subtableRows:l,dmlMaxSubtableRows:o,wouldExceed:d},chunk:{size:100,plannedChunks:n===null?null:Math.ceil(n/100)},deletedParentRows:e==="insert"?0:null}}function Ry(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 Qe=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 Ap(e,t,n){yn("phase10c");let r=op(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 Qe({successfulChunks:i,successfulParents:o,failedChunkIndex:a,failedStage:"PUT_CHUNK",nonTransactional:!0,retryAttempted:!1,...n?{diagnostic:Ue(n,{successfulChunks:i,successfulParents:o,failedChunkIndex:a,failedStage:"PUT_CHUNK",failedBranch:"UPDATE",retryAttempted:!1})}:{}},l)}i+=1,o+=s.records.length}return{type:"UPDATE",updatedCount:o,successfulChunks:i,successfulParents:o,nonTransactional:!0}}async function Sp(e,t,n){yn("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 Qe({successfulChunks:i,successfulParents:o,failedChunkIndex:a,failedStage:"POST_CHUNK",nonTransactional:!0,retryAttempted:!1,...n?{diagnostic:Ue(n,{successfulChunks:i,successfulParents:o,failedChunkIndex:a,failedStage:"POST_CHUNK",failedBranch:"INSERT",retryAttempted:!1})}:{}},l)}i+=1,o+=s.records.length}return{type:"INSERT",createdIds:r,insertedCount:o,successfulChunks:i,successfulParents:o,nonTransactional:!0}}async function Tp(e,t,n){yn("phase14c");let r=[],i=0,o=0,a=0,s=0;for(let l=0;l<e.createBatches.length;l+=1){let d=e.createBatches[l];try{let p=await t.postRecords({app:d.app,records:[...d.records]});r.push(p.ids)}catch(p){throw new Qe({successfulChunks:i+o,successfulParents:a+s,successfulInserts:a,successfulUpdates:s,failedChunkIndex:l,failedBranch:"INSERT",failedStage:"POST_CHUNK",nonTransactional:!0,retryAttempted:!1,...n?{diagnostic:Ue(n,{successfulChunks:i+o,successfulParents:a+s,successfulInserts:a,successfulUpdates:s,successfulInsertChunks:i,successfulUpdateChunks:o,failedChunkIndex:l,failedStage:"POST_CHUNK",failedBranch:"INSERT",retryAttempted:!1})}:{}},p)}i+=1,a+=d.records.length}for(let l=0;l<e.updateBatches.length;l+=1){let d=e.updateBatches[l];try{await t.putRecords({app:d.app,records:[...d.records]})}catch(p){throw new Qe({successfulChunks:i+o,successfulParents:a+s,successfulInserts:a,successfulUpdates:s,failedChunkIndex:l,failedBranch:"UPDATE",failedStage:"PUT_CHUNK",nonTransactional:!0,retryAttempted:!1,...n?{diagnostic:Ue(n,{successfulChunks:i+o,successfulParents:a+s,successfulInserts:a,successfulUpdates:s,successfulInsertChunks:i,successfulUpdateChunks:o,failedChunkIndex:l,failedStage:"PUT_CHUNK",failedBranch:"UPDATE",retryAttempted:!1})}:{}},p)}o+=1,s+=d.records.length}return{type:"UPSERT",createdIds:r,insertedCount:a,updatedCount:s,successfulChunks:i+o,successfulParents:a+s,successfulInsertChunks:i,successfulUpdateChunks:o,nonTransactional:!0}}var my=/^[A-Za-z_][A-Za-z0-9_]{0,63}$/;function yy(e){if(!my.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 gy(e){let t=Object.create(null);for(let[n,r]of Object.entries(e??{})){let i=yy(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 hs(e,t){let n=gy(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 hy(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 As(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 hy(i)?!0:Object.values(i).some(n)};return n(e)}function Ip(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 wp(e,t){let n=ne(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 Ze(e){if(e===null)return!1;switch(e.type){case"BINARY":return so(e.left);case"NULL_CHECK":return so(e.field);case"LOGICAL":return Ze(e.left)||Ze(e.right);case"NOT":case"GROUP":return Ze(e.expr);case"EXISTS":case"BOOLEAN":return!1}}function so(e){if(Array.isArray(e))return e.some(so);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(so)}async function Ge(e,t,n,r,i){let o=await Ie(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 lo(e,t,n,r){let{records:i,metrics:o}=await Ge(e,t,n,["$id"],r);return{ids:hu(i),metrics:o}}var ke=["=","!=",">","<",">=","<="],Ay=new Set(["DATE","DATETIME","CREATED_TIME","UPDATED_TIME"]),Sy=new Set(ke),Ty=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"])]]),Iy=new Map([["TODAY",new Set(ke)],["NOW",new Set(ke)],["LOGINUSER",new Set(["in","not in"])],["PRIMARY_ORGANIZATION",new Set(["in","not in"])]]),wy=["=","!=","in","not in"],by=new Map([["RECORD_NUMBER",new Set([...ke,"in","not in"])],["__ID__",new Set([...ke,"in","not in"])],["CREATOR",new Set(["in","not in"])],["MODIFIER",new Set(["in","not in"])],["CREATED_TIME",new Set(ke)],["UPDATED_TIME",new Set(ke)],["DATE",new Set(ke)],["TIME",new Set(ke)],["DATETIME",new Set(ke)],["SINGLE_LINE_TEXT",new Set(["=","!=","in","not in","like","not like"])],["LINK",new Set(["=","!=","in","not in","like","not like"])],["NUMBER",new Set([...ke,"in","not in"])],["CALC",new Set([...ke,"in","not in"])],["MULTI_LINE_TEXT",new Set(["like","not like"])],["RICH_TEXT",new Set(["like","not like"])],["CHECK_BOX",new Set(["in","not in"])],["RADIO_BUTTON",new Set(["in","not in"])],["DROP_DOWN",new Set(["in","not in"])],["MULTI_SELECT",new Set(["in","not in"])],["FILE",new Set(["like","not like"])],["USER_SELECT",new Set(["in","not in"])],["ORGANIZATION_SELECT",new Set(["in","not in"])],["GROUP_SELECT",new Set(["in","not in"])],["STATUS",new Set(wy)]]),Py=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"])]]),Np=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"]),Cp=new Set(["CHECK_BOX","MULTI_SELECT","FILE","USER_SELECT","ORGANIZATION_SELECT","GROUP_SELECT","STATUS_ASSIGNEE","CATEGORY"]);function Ny(e){return by.get(e)??new Set}function Ce(e,t){return e===null?{capability:"EXACT_PUSHDOWN",reasons:[{code:"WHERE_EXACT"}]}:Pr(e,t)}function Pr(e,t){switch(e.type){case"BOOLEAN":return{capability:"LOCAL_ONLY",reasons:[{code:"WHERE_EXPRESSION_LOCAL_ONLY"}]};case"BINARY":return Cy(e.op,e.left,e.right,t);case"NULL_CHECK":return e.field.type!=="FIELD"?Ts():_y(e.field,e.not?"IS NOT NULL":"IS NULL",t);case"EXISTS":return Ts();case"GROUP":return Pr(e.expr,t);case"NOT":{let n=Pr(e.expr,t);return n.capability!=="SUPERSET_PREFILTER"?n:Lp(n.reasons)?Cr({capability:"LOCAL_ONLY",reasons:[{code:"WHERE_EXPRESSION_LOCAL_ONLY"},...n.reasons]}):{capability:"LOCAL_ONLY",reasons:[{code:"WHERE_EXPRESSION_LOCAL_ONLY"}]}}case"LOGICAL":{let n=Pr(e.left,t),r=Pr(e.right,t);return vy(e.op,n,r)}}}function Cy(e,t,n,r){if(n.type==="KINTONE_FUNC"&&J(n.name))return Oy(e,t,n,r);if(n.type==="KINTONE_FUNC"&&bp(n))return Pp(e,t,n,r);if(n.type==="IN_LIST"){let p=n.values.filter(c=>c.type==="KINTONE_FUNC");if(p.length>0)return n.values.length===1&&p.length===1?Pp(e,t,p[0],r):uo("WHERE_KINTONE_FUNCTION_CONTEXT_UNSUPPORTED",p[0].name,t.type==="FIELD"?t.field:void 0,t.type==="FIELD"?r(t)?.fieldType:void 0,Nr(e))}if(t.type!=="FIELD")return Ts();let i=r(t);if(!i)return _n("WHERE_FIELD_UNRESOLVED",t.field,void 0,Nr(e));let o=Nr(e);if(!Op(i.fieldType,o))return _n("WHERE_OPERATOR_INVALID_FOR_FIELD_TYPE",t.field,i.fieldType,o);if(!Dy(i.fieldType,e))return _n("WHERE_OPERATOR_UNSUPPORTED",t.field,i.fieldType,o);let a=Ny(i.fieldType),s=n.type==="STRING"||n.type==="NUMBER"||n.type==="IN_LIST"||bp(n),l=!i.requiresCollectionOperators||o!=="="&&o!=="!=",d=e==="LIKE"||e==="NOT_LIKE";return s&&l&&a.has(o)&&!d?{capability:"EXACT_PUSHDOWN",reasons:[{code:"WHERE_EXACT",field:t.field,fieldType:i.fieldType,operator:o}]}:{capability:"LOCAL_ONLY",reasons:[{code:"WHERE_RESIDUAL",field:t.field,fieldType:i.fieldType,operator:o}]}}function bp(e){return e.type==="KINTONE_FUNC"&&Mt.has(e.name)}function Pp(e,t,n,r){let i=Nr(e),o=n.name;if(!Mt.has(o)||t.type!=="FIELD")return uo("WHERE_KINTONE_FUNCTION_CONTEXT_UNSUPPORTED",o,void 0,void 0,i);let a=r(t),s=Ty.get(o);return!a||!s.has(a.fieldType)||a.inSubtable||a.requiresCollectionOperators?uo("WHERE_KINTONE_FUNCTION_FIELD_TYPE_UNSUPPORTED",o,t.field,a?.fieldType,i):Iy.get(o).has(i)?{capability:"EXACT_PUSHDOWN",reasons:[{code:"WHERE_EXACT",functionName:o,field:t.field,fieldType:a.fieldType,operator:i}]}:uo("WHERE_KINTONE_FUNCTION_OPERATOR_UNSUPPORTED",o,t.field,a.fieldType,i)}function Oy(e,t,n,r){let i=Nr(e),o=n.name;if(t.type!=="FIELD")return br("WHERE_RELATIVE_DATE_CONTEXT_UNSUPPORTED",o,void 0,void 0,i);let a=r(t);return a?Ly(n)?Sy.has(i)?!Ay.has(a.fieldType)||a.inSubtable||a.requiresCollectionOperators?br("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}]}:br("WHERE_RELATIVE_DATE_OPERATOR_UNSUPPORTED",o,t.field,a.fieldType,i):br("WHERE_RELATIVE_DATE_ARGUMENT_INVALID",o,t.field,a.fieldType,i):br("WHERE_RELATIVE_DATE_FIELD_TYPE_UNSUPPORTED",o,t.field,void 0,i)}function Ly(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 _y(e,t,n){let r=n(e);return r?Op(r.fieldType,t)?!Np.has(r.fieldType)&&!Cp.has(r.fieldType)?_n("WHERE_OPERATOR_UNSUPPORTED",e.field,r.fieldType,t):{capability:"LOCAL_ONLY",reasons:[{code:"WHERE_RESIDUAL",field:e.field,fieldType:r.fieldType,operator:t}]}:_n("WHERE_OPERATOR_INVALID_FOR_FIELD_TYPE",e.field,r.fieldType,t):_n("WHERE_FIELD_UNRESOLVED",e.field,void 0,t)}function Op(e,t){let n=Py.get(e);return n===void 0||n.has(t)}function Dy(e,t){return Np.has(e)?!0:Cp.has(e)?t==="="||t==="!="||t==="<>"||t==="IN"||t==="NOT_IN"||t==="LIKE"||t==="NOT_LIKE"||t==="KLIKE"||t==="NOT_KLIKE":!1}function Nr(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 vy(e,t,n){let r=[...t.reasons,...n.reasons];return t.capability==="UNSUPPORTED"||n.capability==="UNSUPPORTED"?Cr({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")?Cr({capability:"SUPERSET_PREFILTER",reasons:[{code:"WHERE_SUPERSET_PREFILTER"},...r]}):Cr({capability:"LOCAL_ONLY",reasons:r})}function Ts(){return{capability:"LOCAL_ONLY",reasons:[{code:"WHERE_EXPRESSION_LOCAL_ONLY"}]}}function _n(e,t,n,r){return{capability:"UNSUPPORTED",reasons:[{code:e,field:t,fieldType:n,operator:r}]}}function uo(e,t,n,r,i){return Cr({capability:"UNSUPPORTED",reasons:[{code:e,functionName:t,field:n,fieldType:r,operator:i}]})}function br(e,t,n,r,i){return _p({capability:"UNSUPPORTED",reasons:[{code:e,functionName:t,field:n,fieldType:r,operator:i}]})}function Lp(e){return e.some(t=>t.code.startsWith("WHERE_RELATIVE_DATE_")||t.functionName!==void 0&&J(t.functionName))}function Uy(e){return e.some(t=>t.code.startsWith("WHERE_KINTONE_FUNCTION_")||t.functionName!==void 0&&Mt.has(t.functionName))}function _p(e){if(e.capability==="EXACT_PUSHDOWN"||!Lp(e.reasons)||e.reasons.some(n=>n.code==="WHERE_RELATIVE_DATE_REQUIRES_EXACT_PUSHDOWN"))return e;let t=e.reasons.find(n=>n.code.startsWith("WHERE_RELATIVE_DATE_")||n.functionName!==void 0&&J(n.functionName));return{capability:e.capability,reasons:[...e.reasons,{code:"WHERE_RELATIVE_DATE_REQUIRES_EXACT_PUSHDOWN",functionName:t.functionName,field:t.field,fieldType:t.fieldType,operator:t.operator}]}}function ky(e){if(e.capability==="EXACT_PUSHDOWN"||!Uy(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&&Mt.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 Cr(e){return ky(_p(e))}var My=new Set(["DROP_DOWN","RADIO_BUTTON","CHECK_BOX","MULTI_SELECT","STATUS"]),Fy=new Set(["SINGLE_LINE_TEXT","LINK","MULTI_LINE_TEXT","RICH_TEXT","FILE"]),xy=new Set(["DATETIME","CREATED_TIME","UPDATED_TIME"]);function vn(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)?vp(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"}):vp(n[0],e.field)}function ws(e,t){if(e.left.type!=="FIELD")return Or();let n=vn(e.left,t);if(n.status!=="OWNED"||n.source.sourceKind!=="APP")return Or();let r=n.source.fieldTypes.get(n.fieldCode);if(r===void 0||r.startsWith("KSQL_")||Ce(e,a=>{let s=vn(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:X({fieldType:l})}).capability!=="EXACT_PUSHDOWN")return Or();let o=Vy(e,n,r);return o==="unsafe"?Or():Object.freeze({relation:o,owner:n})}function Up(e,t){let n=ue(e);if(n.length===0||e.left.type!=="FIELD")return Object.freeze({relation:"unsafe"});let r=vn(e.left,t);return r.status!=="OWNED"||r.source.sourceKind!=="APP"?Object.freeze({relation:"unsafe"}):Ce(e,o=>{let a=vn(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:X({fieldType:s})}).capability!=="EXACT_PUSHDOWN"?Object.freeze({relation:"unsafe"}):Object.freeze({relation:"function-leaf-exact",owner:r,functionOccurrences:Object.freeze([...n])})}function kp(e,t){let n=new Set;jt(e,n);let i=(e===null?[]:xp(Dn(e,t))).map(s=>Object.freeze({targetAlias:s.owner.alias,appId:s.owner.appId,predicate:s.predicate,relation:s.relation})),o=Ky(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)jt(s.predicate,a);return Object.freeze({items:Object.freeze(i),appliedKlikes:a,allKlikes:Object.freeze([...n]),rejections:Object.freeze(Gy(e,t)),fetchQueriesByAlias:new Map,...o})}function Mp(e,t){if(e.serverFunctionCandidate?.staticContract!=="CONFIRMED"||e.serverFunctionConsumptions.length===0||e.residualServerFunctionOccurrences.length!==0||!zt(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,Un(a,t));for(let a of e.serverFunctionConsumptions){if(!t.find(d=>d.alias===a.targetAlias&&d.appId===a.appId&&d.sourceKind==="APP"))return e;let l=Un({targetAlias:a.targetAlias,appId:a.appId,predicate:a.predicate,relation:"exact"},t);if(l!==a.serializedPredicate||!zt(mo(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 kn(e){if(e.serverFunctionCandidate===null||e.serverFunctionCandidate.staticContract!=="CONFIRMED"||e.serverFunctionCandidate.fetchContract!=="CONFIRMED"||e.serverFunctionConsumptions.length===0||e.residualServerFunctionOccurrences.length!==0||!zt(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&&!zt(mo(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))||Fp($y(e))!==e.allKlikes.length))}function Ky(e,t){if(e===null)return Dp(null);let n=Object.freeze([...ue(e)]);if(n.length===0)return Dp(e);let r=By(e,t,n);if(r!==null)return r;let i=fo(e),o=[],a=new Set;for(let c of i){let u=Up(c,t);if(u.relation!=="function-leaf-exact")continue;let f={targetAlias:u.owner.alias,appId:u.owner.appId,predicate:c,relation:"exact"},E;try{E=Un(f,t)}catch{continue}let R=mo(E);zt(R,u.functionOccurrences)&&(a.add(c),o.push(Object.freeze({targetAlias:u.owner.alias,appId:u.owner.appId,predicate:c,functionLeaves:Object.freeze([c]),functionOccurrences:u.functionOccurrences,relation:u.relation,consumption:"leaf",serializedPredicate:E,staticProof:Object.freeze({classifier:"EXACT_PUSHDOWN",ownership:"OWNED",serialization:"OCCURRENCE_MULTISET_EXACT",residualIdentityConsumption:"CONFIRMED"}),fetchBinding:"PENDING_STEP_2"})))}let s=Eo(e,a),l=Object.freeze(s===null?[]:[...ue(s)]),d=Object.freeze(o.flatMap(c=>[...c.functionOccurrences])),p=zt(n,d)&&l.length===0?"CONFIRMED":"INCOMPLETE";return{serverFunctionCandidate:Object.freeze({variant:"EXACT_LEAF",staticContract:p,fetchContract:"PENDING_STEP_2"}),serverFunctionConsumptions:Object.freeze(o),allServerFunctionOccurrences:n,adoptedServerFunctionOccurrences:d,residualWhere:s,residualServerFunctionOccurrences:l}}function By(e,t,n){let r=co(e,t);if(r===null)return null;let i={targetAlias:r.alias,appId:r.appId,predicate:e,relation:"exact"},o;try{o=Un(i,t)}catch{return null}if(!zt(mo(o),n))return null;let a=new Set;if(jt(e,a),Fp(o)!==a.size)return null;let s=Object.freeze(po(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 co(e,t){switch(e.type){case"BINARY":{if(ue(e).length>0){let i=Up(e,t);return i.relation==="function-leaf-exact"?i.owner:null}let r=ws(e,t);return r.relation==="exact"&&r.owner!==void 0?r.owner:null}case"LOGICAL":{let n=co(e.left,t),r=co(e.right,t);return n!==null&&r!==null&&yo(n,r)?n:null}case"GROUP":case"NOT":return co(e.expr,t);case"NULL_CHECK":case"EXISTS":case"BOOLEAN":return null}}function po(e){switch(e.type){case"BINARY":return ue(e).length>0?[e]:[];case"LOGICAL":return[...po(e.left),...po(e.right)];case"GROUP":case"NOT":return po(e.expr);case"NULL_CHECK":case"EXISTS":case"BOOLEAN":return[]}}function Dp(e){let t=e===null?[]:ue(e);return{serverFunctionCandidate:null,serverFunctionConsumptions:Object.freeze([]),allServerFunctionOccurrences:Object.freeze([...t]),adoptedServerFunctionOccurrences:Object.freeze([]),residualWhere:e,residualServerFunctionOccurrences:Object.freeze([...t])}}function fo(e){switch(e.type){case"BINARY":return ue(e).length>0?[e]:[];case"LOGICAL":return e.op==="AND"?[...fo(e.left),...fo(e.right)]:[];case"GROUP":return fo(e.expr);case"NOT":case"NULL_CHECK":case"EXISTS":case"BOOLEAN":return[]}}function Eo(e,t){if(e.type==="BINARY")return t.has(e)?null:e;if(e.type==="LOGICAL"){if(e.op!=="AND")return e;let n=Eo(e.left,t),r=Eo(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=Eo(e.expr,t);return n===null?null:n===e.expr?e:{...e,expr:n}}return e}function mo(e){let t=[];for(let n of zn){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 zt(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 Fp(e){return[...e.matchAll(/\s(?:not\s+)?like\s/g)].length}function $y(e){let t=e.serverFunctionConsumptions[0];return t===void 0?"":e.fetchQueriesByAlias.get(t.targetAlias)??""}function Gy(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=vn(i.left,t);if(o.status==="AMBIGUOUS"){n.add("AMBIGUOUS_FIELD");return}if(o.status==="UNKNOWN"){n.add("UNKNOWN_FIELD_OR_METADATA");return}if(Ro(i.right)){n.add("CROSS_TABLE_BINARY");return}ws(i,t).relation==="unsafe"&&n.add("UNSAFE_RELATION");return}if(i.type==="LOGICAL"){if(i.op==="OR"){if(Gp(i)){n.add("KLIKE_OR");return}let o=Dn(i.left,t),a=Dn(i.right,t);if(o.length!==1||a.length!==1||!yo(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 Un(e,t){return Lr(e.predicate,e,t),G(e.predicate)}function Lr(e,t,n){switch(e.type){case"LOGICAL":Lr(e.left,t,n),Lr(e.right,t,n);return;case"GROUP":Lr(e.expr,t,n);return;case"NOT":Lr(e.expr,t,n);return;case"BINARY":{if(e.left.type!=="FIELD"||Ro(e.right))throw Is(t,"predicate contains a non-target or RHS field reference");let r=vn(e.left,n);if(r.status!=="OWNED"||r.alias!==t.targetAlias||r.appId!==t.appId||r.source.sourceKind!=="APP")throw Is(t,`field ${e.left.field} is not uniquely owned by the target`);return}case"NULL_CHECK":case"EXISTS":case"BOOLEAN":throw Is(t,"predicate shape is outside the Phase A serializer contract")}}function Is(e,t){return new Error(`InternalError: JOIN pushdown ownership guard failed for ${e.targetAlias}/APP${e.appId}: ${t}.`)}function Dn(e,t){switch(e.type){case"BINARY":{let n=ws(e,t);return n.relation==="unsafe"||n.owner===void 0?[]:[{owner:n.owner,predicate:e,relation:n.relation}]}case"LOGICAL":{let n=Dn(e.left,t),r=Dn(e.right,t);if(e.op==="AND")return xp([...n,...r]);if(Gp(e))return[];if(n.length!==1||r.length!==1)return[];let i=n[0],o=r[0];return yo(i.owner,o.owner)?[{owner:i.owner,predicate:{type:"LOGICAL",op:"OR",left:i.predicate,right:o.predicate},relation:Kp(i.relation,o.relation)}]:[]}case"GROUP":return Dn(e.expr,t).map(n=>({...n,predicate:{type:"GROUP",expr:n.predicate}}));case"NOT":case"NULL_CHECK":case"EXISTS":case"BOOLEAN":return[]}}function xp(e){let t=[];for(let n of e){let r=t.findIndex(o=>yo(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:Kp(i.relation,n.relation)}}return t}function Vy(e,t,n){if(e.op==="LIKE"||e.op==="NOT_LIKE")return"unsafe";if(e.op==="KLIKE"||e.op==="NOT_KLIKE")return Fy.has(n)&&e.right.type==="STRING"&&e.right.value!==""?"exact":"unsafe";if(n==="__ID__"||t.fieldCode==="$id")return Wy(e.right)&&(e.op==="="||e.op==="<"||e.op===">"||e.op==="<="||e.op===">=")?"exact":"unsafe";if(n==="RECORD_NUMBER")return"unsafe";if(n==="NUMBER")return e.right.type!=="NUMBER"?"unsafe":e.op==="="||(e.op==="<"||e.op===">")&&Bp(e.right)?"superset":"unsafe";if(n==="SINGLE_LINE_TEXT")return e.op==="="&&e.right.type==="STRING"&&e.right.value!==""?"superset":"unsafe";if(n==="DATE"||n==="TIME"||xy.has(n))return e.op!=="="||e.right.type!=="STRING"?"unsafe":n==="DATE"?$p(e.right.value)?"superset":"unsafe":n==="TIME"?Hy(e.right.value)?"superset":"unsafe":Yy(e.right.value)?"superset":"unsafe";if(My.has(n)){if(e.op!=="IN"&&e.op!=="NOT_IN"||e.right.type!=="IN_LIST"||e.right.values.length===0)return"unsafe";let r=t.source.fieldOptions?.get(t.fieldCode);return r===void 0?"unsafe":e.right.values.every(i=>i.type==="STRING"&&i.value!==""&&r.has(i.value))?"exact":"unsafe"}return"unsafe"}function vp(e,t){return Object.freeze({status:"OWNED",alias:e.alias,appId:e.appId,fieldCode:t,source:e})}function Or(){return Object.freeze({relation:"unsafe"})}function yo(e,t){return e.alias===t.alias&&e.appId===t.appId&&e.source===t.source}function Kp(e,t){return e==="exact"&&t==="exact"?"exact":"superset"}function Wy(e){return e.type==="NUMBER"&&Bp(e)&&e.value>0}function Bp(e){return/^-?\d+$/.test(H(e))&&Number.isSafeInteger(e.value)}function $p(e){let t=/^(\d{4})-(\d{2})-(\d{2})$/.exec(e);if(!t)return!1;let n=Number(t[1]),r=Number(t[2]),i=Number(t[3]),o=new Date(Date.UTC(n,r-1,i));return o.getUTCFullYear()===n&&o.getUTCMonth()===r-1&&o.getUTCDate()===i}function Hy(e){let t=/^(\d{2}):(\d{2})$/.exec(e);return t!==null&&Number(t[1])<=23&&Number(t[2])<=59}function Yy(e){let t=/^(\d{4}-\d{2}-\d{2})T(\d{2}):(\d{2}):(\d{2})Z$/.exec(e);return!t||!$p(t[1])?!1:Number(t[2])<=23&&Number(t[3])<=59&&Number(t[4])<=59}function jt(e,t){if(e!==null){if(St(e)){t.add(e);return}switch(e.type){case"LOGICAL":jt(e.left,t),jt(e.right,t);return;case"NOT":case"GROUP":jt(e.expr,t);return;case"BINARY":case"NULL_CHECK":case"EXISTS":case"BOOLEAN":return}}}function Gp(e){let t=new Set;return jt(e,t),t.size>0}function Ro(e){if(e===null||typeof e!="object")return!1;if(Array.isArray(e))return e.some(Ro);let t=e;return t.type==="FIELD"||t.type==="FIELD_REF"?!0:Object.values(t).some(Ro)}function bs(e,t){let n=or(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 jy(e,t){return e.key.type==="FIELD_NAME"?t.get(e.key.name):void 0}function zy(e,t){return e.columns.some(n=>"alias"in n&&n.alias===t)}function _r(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=jy(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"&&!zy(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 qy=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 Jy(e,t){return e.columns.some(n=>"alias"in n&&n.alias===t)}function Dr(e){let{stmt:t}=e,n=[];t.orderMode!=="KINTONE_NATIVE"&&n.push("KORDER_MODE_REQUIRED"),(t.from.cteName!==null||t.from.subtableCode||e.staticMode!=="SIMPLE")&&n.push("KORDER_QUERY_SHAPE_UNSUPPORTED"),e.whereCapability!=="EXACT_PUSHDOWN"&&(n.push(...(e.whereReasons??[]).filter(s=>s.functionName!==void 0).map(s=>s.code)),n.push("KORDER_WHERE_NOT_EXACT")),e.hasKlike&&n.push("KORDER_KLIKE_UNSUPPORTED"),t.orderBy.length===0&&n.push("KORDER_KEY_REQUIRED");for(let s of t.orderBy){if(s.key.type!=="FIELD_NAME"){n.push(`KORDER_KEY_NOT_DIRECT_FIELD(key=${s.key.type})`);continue}let l=s.key.name,d=e.orderSemantics.get(l);if(!d){n.push(`KORDER_KEY_UNRESOLVED(field=${l})`);continue}if(Jy(t,l)){n.push(`KORDER_KEY_NOT_DIRECT_FIELD(field=${l})`);continue}if(l!=="$id"){if(!d.source||d.source.fieldCode!==l){n.push(`KORDER_KEY_NOT_DIRECT_FIELD(field=${l})`);continue}qy.has(d.fieldType)||n.push(`KORDER_TYPE_UNSUPPORTED(field=${l}, type=${d.fieldType})`)}}(t.limit===null||!Number.isSafeInteger(t.limit)||t.limit<0)&&n.push(`KORDER_LIMIT_INVALID(limit=${String(t.limit)})`);let r=t.offset??0;(!Number.isSafeInteger(r)||r<0)&&n.push(`KORDER_OFFSET_INVALID(offset=${r})`);let i=t.limit===null?Number.NaN:r+t.limit;t.limit!==null&&!Number.isSafeInteger(i)&&n.push(`KORDER_SCAN_ROWS_INVALID(offset=${r}, limit=${t.limit})`);let o=[...new Set(n)];if(o.length>0)throw new Error(`ArgumentError: KORDER BY cannot be executed (mode=KINTONE_NATIVE; ${o.join(", ")}). Use ORDER BY for canonical local ordering or simplify the query.`);let a=t.limit<=500&&r<=1e4&&t.limit<=e.maxRecords;if(!a&&i>e.maxRecords)throw new Error(`ArgumentError: KORDER BY cannot be executed (mode=KINTONE_NATIVE; KORDER_SCAN_ROWS_EXCEEDS_MAX_RECORDS(scanRows=${i}, maxRecords=${e.maxRecords})). Use ORDER BY for canonical local ordering, raise maxRecords, or reduce LIMIT/OFFSET.`);return{kind:a?"KORDER_NATIVE":"KORDER_CURSOR",requiresCompleteInput:!1,localOrderBy:!1,applyLocalOffsetLimit:!1,reasonCodes:[],scanRows:i}}var go=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"}},ho=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}},Ao=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 Vp(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 Ao(a).message}}return{records:n,cleanupWarning:o}}function Ps(e){let t=[];e.where&&t.push(G(e.where));let n=e.orderBy.map(r=>{if(r.key.type!=="FIELD_NAME")throw new Error("ArgumentError: KORDER cursor key must be a direct field.");return`${r.key.name} ${r.direction==="ASC"?"asc":"desc"}`});return t.push(`order by ${n.join(", ")}`),t.join(" ")}var Wp=["$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 Ns(e){return e.startsWith("_")||e.startsWith("$")}var Xy=/^(COUNT|SUM|AVG|MAX|MIN|GROUP_CONCAT|STDDEV_POP|STDDEV_SAMP|VAR_POP|VAR_SAMP|MEDIAN|MODE)\(/;function Os(e){if(e===null||typeof e!="object")return!1;if(Array.isArray(e))return e.some(Os);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"?Xy.test(t.field):Object.values(t).some(Os)}function Qy(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 lr(e)||Os(e)?"AGGREGATE_DEPENDENT":"SAFE"}}var Zy=["_pid","_rid","_idx"];function Cs(e){return[...new Set(e)]}function eg(e){switch(e.kind){case"APP":return Cs([...e.fieldCodes,...Wp]);case"SUBTABLE":return Cs([...e.childFieldCodes,...Zy,...e.parentFieldCodes.map(t=>`_p.${t}`)]);case"MATERIALIZED":return Cs(e.columns)}}function Hp(e,t){return[e.from,...e.joins.map(r=>r.table)].map((r,i)=>({sourceIndex:i,qualifier:r.alias??r.cteName,columns:eg(t(r,i))}))}function tg(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 ng(e,t){return e.qualifier===null?t:`${e.qualifier}.${t}`}function rg(e){return"alias"in e&&typeof e.alias=="string"?e.alias:null}function ig(e,t,n){let r=tg(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:ng(l,r.fieldCode)}}if(r.qualifier!==null)return{kind:"UNKNOWN",name:e};let a=t.flatMap((l,d)=>rg(l)===e?[{column:l,columnIndex:d}]:[]);if(a.length>1)return{kind:"ALIAS_REJECT",reason:"DUPLICATE"};if(a.length===1){let l=a[0],d=Qy(l.column);return d==="SAFE"?{kind:"ALIAS_SAFE",columnIndex:l.columnIndex}:{kind:"ALIAS_REJECT",reason:d==="AGGREGATE_DEPENDENT"?"AGGREGATE":"POST_GROUP_ONLY"}}return t.some(l=>l.type==="AGGREGATE"&&l.alias===null&&we(l.func,l.distinct,l.arg)===e)?{kind:"ALIAS_REJECT",reason:"AGGREGATE"}:{kind:"UNKNOWN",name:e}}function Yp(e,t,n){return{items:e.map(r=>r.type==="FIELD_NAME"?ig(r.name,t,n):{kind:"EXPRESSION"})}}var og={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 jp(e,t){let n=og[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 zp(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=>jp(s.fieldType,s.code)==="PROCESS")?(await n()).enable:!1;return[...r.filter(s=>{let l=jp(s.fieldType,s.code);return l==="RECORD"||l==="PROCESS"&&o}).map(s=>s.code),"$revision","$id"]}function dt(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 ag(e,t,n,r={}){let{on:i,type:o}=n,a=i.left.tableAlias?`${i.left.tableAlias}.${i.left.field}`:i.left.field,s=i.right.tableAlias?`${i.right.tableAlias}.${i.right.field}`:i.right.field;if(qp(e,a,r.leftColumns),qp(t,s,r.rightColumns),o==="RIGHT"){let c=new Map;for(let E of e){let R=E[a]??"",m=c.get(R);m?m.push(E):c.set(R,[E])}let u={};for(let E of r.leftColumns??Object.keys(e[0]??{}))u[E]="";let f=[];for(let E of t){let R=E[s]??"",m=c.get(R)??[];if(m.length>0)for(let g of m)f.push({...g,...E});else f.push({...u,...E})}return f}let l=new Map;for(let c of t){let u=c[s]??"",f=l.get(u);f?f.push(c):l.set(u,[c])}let d=[],p={};for(let c of r.rightColumns??Object.keys(t[0]??{}))p[c]="";for(let c of e){let u=c[a]??"",f=l.get(u)??[];if(f.length>0)for(let E of f)d.push({...c,...E});else o==="LEFT"&&d.push({...c,...p})}return d}function qp(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 sg(e,t,n,r,i){return t===null?e:e.filter(o=>te(t,o,n,r,i))}function nd(e){return e.some(t=>t.type==="AGGREGATE"||t.type==="ARITH_AGG_COL"||t.type==="STRFUNC_COL"&&Ur(t.expr)||t.type==="SCALAR_VALUE_COL"&&_t(t.expr))}function lg(e,t,n,r,i,o={}){if(i&&i.items.length!==t.length)throw new Error("InternalError: plain GROUP BY resolution plan length does not match group keys.");let a=new Map;for(let l of e){let d=t.map((c,u)=>cg(c,l,i?.items[u],n,o)).join("\0"),p=a.get(d);p?p.push(l):a.set(d,[l])}a.size===0&&t.length===0&&nd(n)&&a.set("",[]);let s=[];for(let l of a.values()){let d={...l[0]};for(let p of t)p.type==="ARITH_KEY"?d[ks(p.expr)]=String(ae(p.expr,l[0])):p.type==="FUNC_KEY"&&(d[Dt(p.expr)]=se(p.expr,l[0]));rd(d,l,n,r),s.push(d)}return s}function ug(e,t,n,r,i={}){let o=[],a=0,s=()=>{if(a++,i.maxGeneratedRows!==void 0&&a>i.maxGeneratedRows)throw new Error(`LimitError: B65 generated grouping rows ${a} exceed limit ${i.maxGeneratedRows} (reason=GROUPING_OUTPUT_LIMIT_EXCEEDED).`)};for(let l of t.sets){let d={children:new Map},p=[];for(let u of e){let f=d;for(let E of l.items){let R=Jp(E,u),m=f.children.get(R);m||(m={children:new Map},f.children.set(R,m)),f=m}f.rows||(s(),f.rows=[],p.push(f.rows)),f.rows.push(u)}e.length===0&&l.items.length===0&&(s(),d.rows=[],p.push(d.rows));let c=new Set(l.items.map(u=>u.canonicalId));for(let u of p){let f={...u[0]},E=new Map;for(let R of l.items)E.has(R.canonicalId)||E.set(R.canonicalId,Jp(R,u[0]));for(let R of t.allItems){let m=E.get(R.canonicalId)??"";f[R.directKey]=m,R.unqualifiedBridgeKey!==null&&(f[R.unqualifiedBridgeKey]=m)}rd(f,u,n,r),sc(f,c),o.push(f)}}return o}function Jp(e,t){return t?t[e.directKey]??(e.unqualifiedBridgeKey===null?void 0:t[e.unqualifiedBridgeKey])??"":""}function rd(e,t,n,r){for(let i of n)if(i.type==="AGGREGATE"){let o=we(i.func,i.distinct,i.arg),a=String(_s(i.func,i.distinct,i.arg,i.separator,t,r));e[i.alias??o]=a,i.alias&&(e[o]=a)}else if(i.type==="ARITH_AGG_COL"){let o=i.alias??Mn(i.expr);e[o]=String(So(i.expr,t,r))}else if(i.type==="STRFUNC_COL"&&Ur(i.expr)){let o=i.alias??Dt(i.expr),a=Ms(i.expr,t,r);e[o]=se(a,e)}else if(i.type==="SCALAR_VALUE_COL"&&_t(i.expr)){let o=i.alias??et(i.expr),a=Io(i.expr,t,r);e[o]=String(de(a,e))}}function cg(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=To(o,t,n.columnIndex,i);if(typeof a!="string")throw new Error("InternalError: GROUP BY alias resolved to an expanded SELECT column.");return a}throw new Error(`InternalError: unresolved plain GROUP BY item ${n.kind} reached evaluation.`)}return e.type==="FUNC_KEY"?se(e.expr,t):String(ae(e.expr,t))}function _s(e,t,n,r,i,o){if(n.type==="WILDCARD")return e==="COUNT"?i.length:0;let a=[];for(let f of i){let E;if(n.type==="FIELD_REF"){let R=f[n.field];if(R===void 0||R===""&&e!=="MIN"&&e!=="MAX")continue;E=R}else if(n.type==="ARITH"||n.type==="NUMBER"||n.type==="STRING_FUNC"){let R=ae(n,f);if(isNaN(R))continue;E=String(R)}else{let R=Ot(n,f);if(R===null||R===""&&e!=="MIN"&&e!=="MAX"||typeof R=="number"&&Number.isNaN(R))continue;E=String(R)}a.push(E)}let s=e==="STDDEV_POP"||e==="STDDEV_SAMP"||e==="VAR_POP"||e==="VAR_SAMP"||e==="MEDIAN",l=s?a.map(f=>{let E=Number(f);if(!Number.isFinite(E))throw new Error(`ArgumentError: ${e} \u306E\u5F15\u6570\u306B\u975E\u6570\u5024\u307E\u305F\u306F\u975E\u6709\u9650\u306E\u5024\u304C\u3042\u308A\u307E\u3059: ${f}`);return E}):null,d=t?s?[...new Set(l)]:[...new Set(a)]:s?l:a;if(e==="COUNT")return d.length;if(e==="GROUP_CONCAT")return d.join(r??",");let p=e==="MIN"||e==="MAX"||e==="MODE"?id(n,o):void 0,c=typeof p=="string"?B(p):p??(n.type==="FIELD_REF"||n.type==="FIELD"||n.type==="STRING"||n.type==="CONCAT_OP"||n.type==="CASE_WHEN"?B("string"):B("number"));if(e==="MODE"){if(a.length===0)return"";let f=new Map;for(let m of a)f.set(m,(f.get(m)??0)+1);let E="",R=0;for(let[m,g]of f){if(g>R){E=m,R=g;continue}if(g!==R)continue;let y=$t(m,E,c);(y<0||y===0&&Ct(m,E)<0)&&(E=m)}return E}if(e==="MIN"||e==="MAX"){let f=d;if(f.length===0)return 0;let E=f[0];for(let R of f.slice(1)){let m=$t(R,E,c);(e==="MAX"&&m>0||e==="MIN"&&m<0)&&(E=R)}return E}let u=s?d:d.map(Number);switch(e){case"SUM":return u.reduce((f,E)=>f+E,0);case"AVG":return u.length===0?0:u.reduce((f,E)=>f+E,0)/u.length;case"MEDIAN":{if(u.length===0)return"";let f=[...u].sort((R,m)=>R-m),E=Math.floor(f.length/2);return f.length%2===1?f[E]:(f[E-1]+f[E])/2}case"VAR_POP":case"VAR_SAMP":case"STDDEV_POP":case"STDDEV_SAMP":{let f=e==="VAR_SAMP"||e==="STDDEV_SAMP";if(u.length===0||f&&u.length<2)return"";let E=u[0],R=0,m=0,g=0;for(let h of u){let S=h-E;R++;let w=S-m;m+=w/R,g+=w*(S-m)}let y=Math.max(0,g/(f?R-1:R));return e==="STDDEV_POP"||e==="STDDEV_SAMP"?Math.sqrt(y):y}}}function pg(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 So(e,t,n){if(e.type==="NUMBER")return e.value;if(e.type==="AGG_REF")return Number(_s(e.func,e.distinct,e.arg,e.separator,t,n));let r=So(e.left,t,n),i=So(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 Mn(e){return er(e)}function id(e,t){if(e.type==="FIELD_REF")return t?.(pg(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=>id(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 dg(e,t,n,r){return t===null?e:e.filter(i=>te(t,i,n,void 0,r))}function fg(e,t,n,r,i){if(e.length===0)return e;let o=Eg(e,t,{scalarCache:n,resolveFieldType:r,resolveFieldSemantics:i}),a=new Set;return e.filter(s=>{let l=o(s);return a.has(l)?!1:(a.add(l),!0)})}function Eg(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(hg(t,a,o))}function Ds(e,t,n,r,i,o){return t.length===0?e:od(e,t,n,r,i,o).rows.map(a=>a.row)}function od(e,t,n,r,i,o){let a=t.map(({key:d})=>{if(d.type==="ARITH_KEY")return{semantics:B("number")};if(d.type==="FUNC_KEY")return{semantics:B(ad.has(d.expr.func)?"number":"string")};if(d.type==="GROUPING_KEY")return{semantics:B("number")};let p=i?.get(d.name);if(p)return{semantics:p};let c=n?.get(d.name);return c?{semantics:{fieldType:"MULTI_SELECT",compareMode:"option",inSubtable:!1,requiresCollectionOperators:!1,optionOrder:c}}:{semantics:B(r?.get(d.name)??"string")}}),s=e.map(d=>({row:d,keys:t.map(({key:p},c)=>({s:yg(p,d,o)}))})),l=(d,p)=>Rg(d,p,t,a);return s.sort(l),{rows:s,compare:l}}function Rg(e,t,n,r){for(let i=0;i<n.length;i++){let o=mg(e.keys[i],t.keys[i],r[i]);if(o!==0)return n[i].direction==="ASC"?o:-o}return 0}function mg(e,t,n){return $t(e.s,t.s,n.semantics)}var ad=new Set(["LENGTH","LENGTH_CHAR","INSTR","ROUND","FLOOR","CEIL","TRUNCATE","YEAR","MONTH","DAY","DATEDIFF","ABS","MOD","POWER","SQRT","DAYOFWEEK","QUARTER","WEEK"]);function yg(e,t,n){switch(e.type){case"FIELD_NAME":return n?.(e.name,t)??t[e.name]??"";case"ARITH_KEY":return String(ae(e.expr,t));case"FUNC_KEY":return se(e.expr,t);case"GROUPING_KEY":return wn(e.ref,t)}}function vs(e,t,n,r){let i=new Map;for(let[o,a]of e.entries()){if(!("alias"in a)||a.alias===null)continue;let s=a.alias;switch(a.type){case"FIELD":i.set(s,l=>ut(l,a.field));break;case"LITERAL_COL":i.set(s,()=>a.value);break;case"AGGREGATE":{let l=we(a.func,a.distinct,a.arg);i.set(s,d=>d[s]??d[l]??"0");break}case"ARITH_AGG_COL":{let l=Mn(a.expr);i.set(s,d=>d[s]??d[l]??"0");break}case"WINDOW_COL":i.set(s,l=>l[s]??"");break;case"ARITH_COL":i.set(s,l=>String(ae(a.expr,l)));break;case"STRFUNC_COL":{let l=Dt(a.expr);i.set(s,d=>Ur(a.expr)?d[s]??d[l]??se(a.expr,d,n,r):se(a.expr,d,n,r));break}case"CASE_COL":i.set(s,l=>ve(a.expr,l,n,r));break;case"SCALAR_VALUE_COL":{let l=et(a.expr);i.set(s,d=>_t(a.expr)?d[s]??d[l]??"":String(de(a.expr,d,n,r)));break}case"SCALAR_SUBQUERY_COL":i.set(s,()=>t?.get(o)??"");break;case"GROUPING_COL":i.set(s,l=>wn(a.ref,l));break;case"VARIABLE_COL":break}}return(o,a)=>i.get(o)?.(a)}function Us(e,t,n,r,i){let o=t.filter(a=>a.type==="WINDOW_COL");if(e.length===0||o.length===0)return e;for(let a of o){let s=new Map;for(let l of e){let d=JSON.stringify(a.partitionBy.map(c=>gg(l,c))),p=s.get(d);p?p.push(l):s.set(d,[l])}for(let l of s.values()){let d=od(l,a.orderBy,n,r,i),p=d.rows,c=1,u=1;for(let f=0;f<p.length;f++){f>0&&d.compare(p[f-1],p[f])!==0&&(c=f+1,u++);let E=a.func==="ROW_NUMBER"?f+1:a.func==="RANK"?c:u;p[f].row[a.alias]=String(E)}}}return e}function gg(e,t){let n=t.tableAlias?`${t.tableAlias}.${t.field}`:t.field;return ut(e,n)}function wo(e,t,n){let r=n??0;return t===null?e.slice(r):e.slice(r,r+t)}function To(e,t,n,r={}){switch(e.type){case"VARIABLE_COL":throw new Error(`internal error: unresolved SELECT variable @${e.name}`);case"WILDCARD":return{kind:"EXPANDED",entries:(r.wildcardKeys??Object.keys(t)).map(o=>[o,t[o]!==void 0?t[o]:null])};case"PARENT_WILDCARD":return{kind:"EXPANDED",entries:(r.parentWildcardKeys??Object.keys(t).filter(o=>o.startsWith("_p.")).sort()).map(o=>[o,t[o]!==void 0?t[o]:null])};case"FIELD":return ut(t,e.field);case"LITERAL_COL":return e.value;case"AGGREGATE":{let i=we(e.func,e.distinct,e.arg);return t[e.alias??i]??t[i]??"0"}case"ARITH_AGG_COL":{let i=e.alias??Mn(e.expr);return t[i]??"0"}case"ARITH_COL":return String(ae(e.expr,t));case"CASE_COL":return ve(e.expr,t,r.resolveFieldType,r.resolveFieldSemantics);case"GROUPING_COL":return wn(e.ref,t);case"STRFUNC_COL":{let i=Dt(e.expr);return Ur(e.expr)?t[e.alias??i]??t[i]??se(e.expr,t,r.resolveFieldType,r.resolveFieldSemantics):se(e.expr,t,r.resolveFieldType,r.resolveFieldSemantics)}case"SCALAR_VALUE_COL":{let i=et(e.expr);return _t(e.expr)?t[e.alias??i]??t[i]??"":String(de(e.expr,t,r.resolveFieldType,r.resolveFieldSemantics))}case"SCALAR_SUBQUERY_COL":return r.scalarCache?.get(n)??"";case"WINDOW_COL":return t[e.alias]??""}}function hg(e,t,n={}){return e.map((r,i)=>{let o=To(r,t,i,n);return typeof o=="string"?o:o.entries.map(([,a])=>a)})}function vr(e,t,n,r,i,o,a){if(t.length===1&&t[0].type==="WILDCARD"){let u=e.map(E=>{let R=ed(Qp(E),a),m=To(t[0],E,0,{wildcardKeys:Object.keys(R)}),g={};if(typeof m!="string")for(let[y,h]of m.entries)h!==null&&(g[y]=h);return g}),f=u.length>0?Object.keys(u[0]):[...i??[]];return{rows:u,columns:f}}let s=Tg(t),l=t.some(u=>u.type==="WILDCARD"||u.type==="PARENT_WILDCARD"),d=l?null:Ag(t,s),p=d??[];return l&&e.length===0?{rows:[],columns:Sg(t,s)}:{rows:e.map((u,f)=>{let E={},R={scalarCache:n,resolveFieldType:r,resolveFieldSemantics:o,wildcardKeys:Object.keys(ed(Qp(u),a)),parentWildcardKeys:Object.keys(u).filter(m=>m.startsWith("_p.")).sort()};for(let[m,g]of t.entries()){let y=To(g,u,m,R);switch(g.type){case"VARIABLE_COL":break;case"WILDCARD":if(typeof y!="string")for(let[h,S]of y.entries)S!==null&&(E[h]=S);break;case"PARENT_WILDCARD":{if(typeof y!="string")for(let[h,S]of y.entries)S!==null&&(E[h]=S),f===0&&p.push(h);break}case"FIELD":{let h=d?.[m]??g.alias??s.get(m)??g.field;E[h]=y,d===null&&f===0&&p.push(h);break}case"LITERAL_COL":{let h=d?.[m]??g.alias??`'${g.value}'`;E[h]=y,d===null&&f===0&&p.push(h);break}case"AGGREGATE":{let h=we(g.func,g.distinct,g.arg),S=d?.[m]??g.alias??h;E[S]=y,d===null&&f===0&&p.push(S);break}case"ARITH_AGG_COL":{let h=d?.[m]??g.alias??Mn(g.expr);E[h]=y,d===null&&f===0&&p.push(h);break}case"ARITH_COL":{let h=d?.[m]??g.alias??ks(g.expr);E[h]=y,d===null&&f===0&&p.push(h);break}case"CASE_COL":{let h=d?.[m]??g.alias??"case";E[h]=y,d===null&&f===0&&p.push(h);break}case"GROUPING_COL":{let h=d?.[m]??g.alias??`GROUPING(${g.ref.field.tableAlias?`${g.ref.field.tableAlias}.`:""}${g.ref.field.field})`;E[h]=y,d===null&&f===0&&p.push(h);break}case"STRFUNC_COL":{let h=d?.[m]??g.alias??Dt(g.expr);E[h]=y,d===null&&f===0&&p.push(h);break}case"SCALAR_VALUE_COL":{let h=d?.[m]??g.alias??et(g.expr);E[h]=y,d===null&&f===0&&p.push(h);break}case"SCALAR_SUBQUERY_COL":{let h=d?.[m]??g.alias??"(subquery)";E[h]=y,d===null&&f===0&&p.push(h);break}case"WINDOW_COL":{let h=d?.[m]??g.alias;E[h]=y,d===null&&f===0&&p.push(h);break}}}return E}),columns:p}}function Ag(e,t){return e.map((n,r)=>sd(n,r,t))}function Sg(e,t){let n=[],r=new Set;for(let[i,o]of e.entries()){if(o.type==="WILDCARD"||o.type==="PARENT_WILDCARD")continue;let a=sd(o,i,t);r.has(a)||(r.add(a),n.push(a))}return n}function sd(e,t,n){switch(e.type){case"VARIABLE_COL":throw new Error(`internal error: unresolved SELECT variable @${e.name}`);case"FIELD":return e.alias??n.get(t)??e.field;case"LITERAL_COL":return e.alias??`'${e.value}'`;case"AGGREGATE":return e.alias??we(e.func,e.distinct,e.arg);case"ARITH_AGG_COL":return e.alias??Mn(e.expr);case"ARITH_COL":return e.alias??ks(e.expr);case"CASE_COL":return e.alias??"case";case"STRFUNC_COL":return e.alias??Dt(e.expr);case"SCALAR_VALUE_COL":return e.alias??et(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 Tg(e){let t=new Map;for(let r of e){if(r.type!=="FIELD"||r.alias)continue;let i=Xp(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=Xp(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 Xp(e){if(e.startsWith("_p."))return e;let t=e.indexOf(".");return t<=0?e:e.slice(t+1)||e}function Qp(e){let t={};for(let[n,r]of Object.entries(e))n.startsWith("_p.")||(t[n]=r);return t}function ks(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"?H(n):n.type==="STRING_FUNC"?Dt(n):`(${t(n.left)}${n.op}${t(n.right)})`};return e.type==="ARITH"?`${t(e.left)}${e.op}${t(e.right)}`:t(e)}function Dt(e){let t=e.args.map(n=>n.type==="AGG_REF"||n.type==="AGG_ARITH"?Mn(n):et(n));return`${e.func}(${t.join(",")})`}function et(e){switch(e.type){case"STRING":return`'${e.value}'`;case"NUMBER":return H(e);case"VARIABLE":return`@${e.name}`;case"FIELD":return e.tableAlias?`${e.tableAlias}.${e.field}`:e.field;case"STRING_FUNC":return Dt(e);case"CASE_WHEN":return"case";case"SCALAR_ARITH":return`${et(e.left)}${e.op}${et(e.right)}`;case"CONCAT_OP":return`${et(e.left)}||${et(e.right)}`}}function Ig(e){return e.type==="AGG_REF"||e.type==="AGG_ARITH"?!0:_t(e)}function _t(e){return e.type==="STRING_FUNC"?Ur(e):e.type==="SCALAR_ARITH"||e.type==="CONCAT_OP"?_t(e.left)||_t(e.right):e.type==="CASE_WHEN"?e.branches.some(t=>Zp(t.result))||e.elseResult!==null&&Zp(e.elseResult):!1}function Zp(e){return e.type==="ARRAY"||e.type==="FIELD_REF"||e.type==="ARITH"?!1:_t(e)}function Ur(e){return e.args.some(t=>Ig(t))}function wg(e,t,n){if(e.type==="AGG_REF"){let r=_s(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=So(e,t,n);return{type:"NUMBER",value:r,raw:String(r)}}return e.type==="STRING_FUNC"?Ms(e,t,n):Io(e,t,n)}function Io(e,t,n){return e.type==="STRING_FUNC"?Ms(e,t,n):e.type==="SCALAR_ARITH"||e.type==="CONCAT_OP"?{...e,left:Io(e.left,t,n),right:Io(e.right,t,n)}:e}function Ms(e,t,n){return{type:"STRING_FUNC",func:e.func,args:e.args.map(r=>wg(r,t,n))}}function ed(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 td(e,t){if(e!==void 0)return t?e.flatMap(n=>[`${t}.${n}`,n]):[...e]}function Ls(e,t,n){if(!(e===void 0&&t===void 0&&n.length===0))return[...new Set([...e??[],...t??[],...Object.keys(n[0]??{})])]}function bg(e){let t=new Map;for(let n of e)!("alias"in n)||!n.alias||(n.type==="ARITH_COL"||n.type==="ARITH_AGG_COL"||n.type==="WINDOW_COL"?t.set(n.alias,B("number")):n.type==="AGGREGATE"?n.func==="COUNT"||n.func==="SUM"||n.func==="AVG"||n.func==="STDDEV_POP"||n.func==="STDDEV_SAMP"||n.func==="VAR_POP"||n.func==="VAR_SAMP"||n.func==="MEDIAN"?t.set(n.alias,B("number")):n.func==="GROUP_CONCAT"&&t.set(n.alias,B("string")):n.type==="LITERAL_COL"||n.type==="CASE_COL"||n.type==="SCALAR_SUBQUERY_COL"||n.type==="SCALAR_VALUE_COL"?t.set(n.alias,B("string")):n.type==="STRFUNC_COL"&&t.set(n.alias,B(ad.has(n.expr.func)?"number":"string")));return t}function Fs(e){let{stmt:t,tables:n,scalarCache:r,optionOrders:i,sortKinds:o,orderSemantics:a,fieldTypeResolver:s,fieldSemanticsResolver:l,havingFieldTypeResolver:d,havingFieldSemanticsResolver:p,aggregateSortKindResolver:c,appliedKlikes:u,sourceColumns:f,tableColumns:E,hiddenQualifiedAliases:R,resolvedGroupingSpec:m,plainGroupByPlan:g}=e,y=bg(t.columns);for(let[v,P]of a??[])y.set(v,P);let h=[],S=t.from.alias;h=(n.get(S)??n.get(null)??[]).map(v=>dt(v,S));let I=Ls(td(E?.get(S),S),void 0,h);for(let v of t.joins){let P=v.table.alias,M=(n.get(P)??[]).map(_=>dt(_,P)),N=Ls(td(E?.get(P),P),void 0,M);h=ag(h,M,v,{leftColumns:I,rightColumns:N}),I=Ls(I,N,h)}let L=e.residualWhere!==void 0?e.residualWhere:t.where;h=sg(h,L,s,u,l);let b=ne(t);if(b.type==="GROUPING_SETS"){if(!m)throw new Error("internal error: B65 grouping sets require a metadata-resolved grouping spec.");h=ug(h,m,t.columns,c,{maxGeneratedRows:5e4})}else(b.type==="PLAIN"||nd(t.columns))&&(h=lg(h,b.type==="PLAIN"?b.allItems:[],t.columns,c,b.type==="PLAIN"?g:void 0,{scalarCache:r,resolveFieldType:s,resolveFieldSemantics:l}));return h=dg(h,t.having,d,p),h=Us(h,t.columns,i,o,y),t.distinct&&(h=fg(h,t.columns,r,s,l)),h=Ds(h,t.orderBy,i,o,y,vs(t.columns,r,s,l)),h=wo(h,t.limit,t.offset),vr(h,t.columns,r,s,f,l,R)}function ld(e,t){let n=[];for(let r of e){let i=xs(r.$id?.value),o=Pg(r[t]?.value);if(o.length!==0)for(let a=0;a<o.length;a++){let s=o[a],l={_pid:{value:i},_rid:{value:s.id??""},_idx:{value:String(a)}};for(let[d,p]of Object.entries(r)){if(d===t)continue;let c=xs(p?.value);l[`_p.${d}`]={value:c}}for(let[d,p]of Object.entries(s.value??{}))l[d]={value:xs(p?.value)};n.push(l)}}return n}function Pg(e){return Array.isArray(e)?e.filter(t=>!!t&&typeof t=="object"):[]}function xs(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 ud(e){return["$id",...new Set([...e.topLevel.map(t=>t.code).filter(t=>t!=="$id"&&t!=="$revision"),...e.subtables.keys()])]}function cd(e,t){let n=kr(e);for(let[r,i]of Object.entries(t))n[r]=kr(i);return n}function pd(e){let t=[...e.preErrors.map(i=>Ks(i)),...e.postImageErrors.map(i=>Ks(i,i.$err_subtable!=="")),...e.checkErrors.map(i=>Ks(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]=kr(e.normalizedPostImage[i])}return{errors:t,invalidRows:n.size,invalidRowNumbers:n,writeRecord:r}}function Ks(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 kr(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(kr(a,t));return o}let i={};t.set(n,i);for(let[o,a]of Object.entries(e))i[o]=kr(a,t);return i}function fd(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"&&Be(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 $s(e){return fd(e,!0)}function bo(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 Ve(e,t,n,r,i=!0,o=!0,a=r){let s=$s(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:ue(e.where)}),bo(e,e).forEach((l,d)=>Ve(l,`${t}.select-source[${d}]`,n,a,a?!1:i,a?!1:o,a))}function Mr(e,t,n,r,i=!0){e.left.type==="UNION"?Mr(e.left,`${t}.left`,n,r,i):Ve(e.left,`${t}.left`,n,r,!0,i),Ve(e.right,`${t}.right`,n,r,!0,i)}function dd(e,t,n,r){if(!r&&It(e)){Ve(wt(e),`${t}.inlined`,n,!1,!0,!0);return}e.ctes.forEach((i,o)=>{i.query.type==="SELECT"?Ve(i.query,`${t}.cte[${o}]`,n,r,!1,!r,!0):i.query.type==="UNION"&&Mr(i.query,`${t}.cte[${o}]`,n,!0,!1)}),e.query.type==="SELECT"?Ve(e.query,`${t}.main`,n,r,!1,!r,!0):Mr(e.query,`${t}.main`,n,!0,!1)}function Ed(e,t,n,r=!1){switch(e.type){case"SELECT":Ve(e,t,n,r);return;case"UNION":Mr(e,t,n,r);return;case"WITH":dd(e,t,n,r);return;case"CREATE_TEMP_TABLE":e.query.type==="WITH"?dd(e.query,`${t}.query`,n,!1):e.query.type==="UNION"?Mr(e.query,`${t}.query`,n,!0,!1):Ve(e.query,`${t}.query`,n,!1,!1,!0,!0);return;case"EXPLAIN":Ed(e.query,`${t}.query`,n,r);return;case"VALIDATE":case"REORDER":{let i=$s(e.where);i.length>0&&n.push({kind:"FORBIDDEN",source:e,where:e.where,functionNames:i,path:t,allowFullScanExact:!1,relativeFunctionOccurrences:ue(e.where)}),bo(e,e).forEach((o,a)=>Ve(o,`${t}.select-source[${a}]`,n,!0,!0,!1));return}case"UPDATE":case"DELETE":{let i=$s(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:ue(e.where)})}if(e.type==="UPDATE"&&e.applyBlocks?.length){let o=fd(e.applyBlocks,!0);o.length>0&&n.push({kind:"FORBIDDEN",source:e,where:null,functionNames:o,path:`${t}.apply`,allowFullScanExact:!1,relativeFunctionOccurrences:[]})}bo(e,e).forEach((o,a)=>Ve(o,`${t}.select-source[${a}]`,n,r,!1,!1));return}default:bo(e,e).forEach((i,o)=>Ve(i,`${t}.select-source[${o}]`,n,r,!1,!1))}}function Po(e,t){let n=new Map;for(let r of t){if(!Be(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 Gs(e,t){return t.eligible===!0&&_e(e)==="FULL_SCAN"&&e.orderMode!=="KINTONE_NATIVE"&&e.from.cteName===null&&!e.from.subtableCode&&e.joins.length===0}function Ng(e,t){return e.where!==null&&e.joins.length>0&&e.joins.every(n=>n.type==="INNER")&&[e.from,...e.joins.map(n=>n.table)].every(n=>n.alias!==null&&n.cteName===null&&!n.subtableCode)&&kn(t)}function Cg(e){return{kind:e.kind,source:e.source,functionNames:e.functionNames,path:e.path,clientWhereEvaluation:!0,allowed:!1}}function Og(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 fn(e)?(n.some(r=>r!==at)||n.unshift("WHERE_KINTONE_FUNCTION_CONTEXT_UNSUPPORTED"),n.includes(at)||n.push(at)):n.includes(Ft)||n.push(Ft),[...new Set(n)]}function Bs(e,t){let n=e.functionNames[0],r=fn(n)?at:Ft,i=Og(n,t);return{functionName:n,path:e.path,code:i.find(o=>o!==r)??r,reasonCodes:i}}async function Rd(e,t){let n=[];Ed(e,"statement",n);let r=[];for(let i of n){if(i.kind==="FORBIDDEN"){let p=Cg(i);return r.push(p),{hasRelativeDate:i.functionNames.some(J),hasServerOnlyWhereFunction:!0,nodes:r,allowed:!1,rejection:Bs(i)}}if(i.kind==="SELECT"){let p=i.source,c=p.from.cteName===null&&!p.from.subtableCode&&p.joins.length===0,u=_e(p),f=await t.select(p),E="";try{E=i.where===null?"":G(i.where)}catch{E=""}let R=c&&u==="SIMPLE"&&(p.orderBy.length===0||p.orderMode==="KINTONE_NATIVE")&&f.capability==="EXACT_PUSHDOWN"&&Po(E,i.relativeFunctionOccurrences),m,g;if(!R&&i.allowPhase2Prefilter!==!1&&f.capability==="SUPERSET_PREFILTER"&&t.prefilterDecomposition){let w=await t.prefilterDecomposition(p);w?.eligible===!0&&Gs(p,w)&&(m=w.plan,g=!0,R=!0)}let y;!R&&f.capability==="EXACT_PUSHDOWN"&&(y=Pi({select:p,selectMode:u,capability:f,context:{allowFullScanExact:i.allowFullScanExact},serializedWholeWhere:E||null,relativeFunctionNames:i.relativeFunctionOccurrences})??void 0,y&&(m=y.prefilterPlan,R=!0));let h;if(!R&&t.joinServerFunctionPlan){let w=await t.joinServerFunctionPlan(p);w!==null&&Ng(p,w)&&(h=w,R=!0)}let S={kind:i.kind,source:i.source,functionNames:i.functionNames,path:i.path,selectMode:u,capability:f,restQuery:E,...m?{prefilterPlan:m,phase2PrefilterEligible:g}:{},...y?{fullScanExactPlan:y,allowForm:y.allowForm}:{},...h?{joinServerFunctionPlan:h,allowForm:"JOIN_SERVER_FUNCTION_EXACT",joinServerFunctionVariant:h.serverFunctionCandidate.variant}:{},clientWhereEvaluation:!R,allowed:R};if(r.push(S),!R)return{hasRelativeDate:n.some(w=>w.functionNames.some(J)),hasServerOnlyWhereFunction:!0,nodes:r,allowed:!1,rejection:Bs(i,f)};continue}let o=i.source,a=await t.dml(o),s="";try{s=i.where===null?"":G(i.where)}catch{s=""}let l=a.capability==="EXACT_PUSHDOWN"&&Po(s,i.relativeFunctionOccurrences),d={kind:i.kind,source:i.source,functionNames:i.functionNames,path:i.path,capability:a,restQuery:s,clientWhereEvaluation:!l,allowed:l};if(r.push(d),!l)return{hasRelativeDate:n.some(p=>p.functionNames.some(J)),hasServerOnlyWhereFunction:!0,nodes:r,allowed:!1,rejection:Bs(i,a)}}return{hasRelativeDate:n.some(i=>i.functionNames.some(J)),hasServerOnlyWhereFunction:n.length>0,nodes:r,allowed:!0}}function Vs(e){if(!e.allowed&&e.rejection){let t=fn(e.rejection.functionName)?at:Ft,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 Ws(e,t,n={}){let r=Ce(e.where,t),i=(h,S="INELIGIBLE")=>({eligible:!1,disposition:S,reasonCodes:h,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=xr(e.where);if(o.length===0)return i(["NO_RELATIVE_DATE"]);let a=Lg(e.where,t);if(!a.ok)return i(a.reasonCodes);if(!_g(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=vg(e.where,t),l=or(e.where,{tableAlias:e.from.alias??void 0,allowUnqualifiedFields:!0,allowKlike:!0,fieldTypes:s.fieldTypes,fieldOptions:s.fieldOptions}),d=n.serialize??G,p=n.containsFunctions??Po,c=[];for(let h of a.leaves){let S=Lo(h);if(S===null)return i(["RELATIVE_DATE_LEAF_COUNT_MISMATCH"]);let w;try{w=d(h)}catch{return i(["PREFILTER_SERIALIZATION_FAILED"])}if(!p(w,[S]))return i(["PREFILTER_FUNCTION_MISSING"]);c.push(h)}let u=Dg(l.condition),f=new Set(c),E=Co(e.where,f,u);if(E===null)return i(["RELATIVE_DATE_LEAF_COUNT_MISMATCH"]);let R;try{R=d(E)}catch{return i(["PREFILTER_SERIALIZATION_FAILED"])}let m=c.map(h=>Lo(h));if(!p(R,[...new Set(m)])||!Ug(R,m))return i(["PREFILTER_FUNCTION_MISSING"]);let g=n.rewriteResidual?n.rewriteResidual(e.where,f):Oo(e.where,f);if(g!==null&&xr(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 h of m)y.add(h);return{eligible:!0,plan:{prefilterWhere:E,residualWhere:g,exactRelativeLeaves:c,relativeFunctionNames:y,appliedKlikes:l.appliedKlikes,capability:r.capability,reasons:r.reasons}}}function Lg(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}xr(o).length>0&&(r="RELATIVE_DATE_CONTEXT_UNSUPPORTED");return;case"NOT":xr(o).length>0&&(r="RELATIVE_DATE_CONTEXT_UNSUPPORTED");return;case"BINARY":{if(Lo(o)===null)return;if(Ce(o,t).capability!=="EXACT_PUSHDOWN"){r="RELATIVE_DATE_LEAF_NOT_EXACT";return}n.push(o);return}case"EXISTS":xr(o).length>0&&(r="RELATIVE_DATE_CONTEXT_UNSUPPORTED");return;case"NULL_CHECK":case"BOOLEAN":return}};return i(e),r===null?{ok:!0,leaves:n}:{ok:!1,reasonCodes:[r]}}function Lo(e){return e.right.type==="KINTONE_FUNC"&&Be(e.right.name)?e.right.name:e.right.type==="IN_LIST"&&e.right.values.length===1&&e.right.values[0].type==="KINTONE_FUNC"&&Be(e.right.values[0].name)?e.right.values[0].name:null}function xr(e){let t=[],n=r=>{if(r.type==="BINARY"&&Lo(r)!==null){t.push(r);return}switch(r.type){case"LOGICAL":n(r.left),n(r.right);return;case"NOT":case"GROUP":n(r.expr);return;case"EXISTS":r.query.where!==null&&n(r.query.where);return;case"BINARY":case"NULL_CHECK":case"BOOLEAN":return}};return n(e),t}function _g(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 Dg(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 Co(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=Co(e.left,t,n),i=Co(e.right,t,n);return r!==null&&i!==null?{...e,left:r,right:i}:r??i}case"GROUP":{let r=Co(e.expr,t,n);return r===null?null:{...e,expr:r}}case"NULL_CHECK":case"NOT":case"EXISTS":case"BOOLEAN":return null}}var Fr={type:"BOOLEAN",value:!0};function Oo(e,t){if(e.type==="BINARY"&&t.has(e))return Fr;switch(e.type){case"LOGICAL":{if(e.op!=="AND")return e;let n=Oo(e.left,t)??Fr,r=Oo(e.right,t)??Fr;return No(n)?No(r)?null:r:No(r)?n:n===e.left&&r===e.right?e:{...e,left:n,right:r}}case"GROUP":{let n=Oo(e.expr,t)??Fr;return No(n)?Fr:n===e.expr?e:{...e,expr:n}}case"BINARY":case"NULL_CHECK":case"NOT":case"EXISTS":case"BOOLEAN":return e}}function No(e){return e.type==="BOOLEAN"&&e.value}function vg(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 Ug(e,t){let n=new Map;for(let r of t){if(!zn.has(r))return!1;n.set(r,(n.get(r)??0)+1)}for(let[r,i]of n)if((e.match(new RegExp(`\\b${r}\\s*\\(`,"g"))?.length??0)<i)return!1;return!0}var K=class extends Error{constructor(t){super(`ImportSourceError: ${t}`),this.name="ImportSourceError"}};function md(e,t){if(!t)throw new K("IMPORT source capability is not available.");let n=t(e);if(!n)throw new K(`source "${e}" is not supplied.`);return n}async function _o(e,t){let n=t.get(e);return n||(n=e.load().then(r=>{if(!(r.bytes instanceof Uint8Array))throw new K("loader must return Uint8Array bytes.");if(r.bytes.byteLength>10485760)throw new K("source exceeds the 10485760 byte limit.");return r}),t.set(e,n)),n}function kg(e,t){try{return new TextDecoder(t==="sjis"?"shift_jis":"utf-8",{fatal:!0}).decode(e).replace(/^\uFEFF/,"")}catch{throw new K(`invalid ${t.toUpperCase()} byte sequence.`)}}function Mg(e){let t=[],n=[],r="",i=!1,o=!1,a=0,s=()=>{n.push(r),r="",o=!1},l=()=>{s(),t.push(n),n=[]};for(;a<e.length;){let d=e[a];if(i){if(d==='"'){if(e[a+1]==='"'){r+='"',a+=2;continue}i=!1,o=!0,a++;continue}r+=d,a++;continue}if(o&&d!==","&&d!=="\r"&&d!==`
|
|
4
4
|
`)throw new K(`unexpected character after closing quote at offset ${a}.`);if(d==='"'){if(r.length!==0)throw new K(`quote in unquoted cell at offset ${a}.`);i=!0,a++;continue}if(d===","){s(),a++;continue}if(d==="\r"||d===`
|
|
5
5
|
`){d==="\r"&&e[a+1]===`
|
|
6
|
-
`&&a++,l(),a++;continue}r+=d,a++}if(i)throw new K("unterminated quoted cell.");return(r.length>0||n.length>0||o)&&l(),t}function
|
|
6
|
+
`&&a++,l(),a++;continue}r+=d,a++}if(i)throw new K("unterminated quoted cell.");return(r.length>0||n.length>0||o)&&l(),t}function Fg(e){let t=new Set;e.forEach((n,r)=>{if(n==="")throw new K(`CSV column ${r+1} has an empty name.`);if(t.has(n))throw new K(`CSV column name "${n}" is duplicated.`);t.add(n)})}function Do(e,t){let n=Mg(kg(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}`)),Fg(r),i.length===0)throw new K("CSV has no data rows.");return i.forEach((o,a)=>{if(o.length!==r.length)throw new K(`CSV row ${a+(t.hasHeader?2:1)} has ${o.length} cells; expected ${r.length}.`)}),{columns:r,rows:i}}var xg=new Set(["CHECK_BOX","MULTI_SELECT","USER_SELECT","ORGANIZATION_SELECT","GROUP_SELECT"]),Kg=new Set(["USER_SELECT","ORGANIZATION_SELECT","GROUP_SELECT"]),Kr=class extends Error{constructor(){super("multiple-value CSV cell contains an empty LF-delimited item");this.code="ERR_IMPORT_MULTI_EMPTY_ITEM";this.name="ImportCsvValueError"}};function yd(e,t,n){if(!xg.has(t??""))return e;if(e==="")return[];let r=e.split(/\r\n|\n/);if(r.some(i=>i===""))throw new Kr;return Kg.has(t??"")?r.map(i=>({code:i})):r}function ft(e,t,n,r){throw new K(`JSON ${e} (offset=${t}, line=${n}, column=${r}).`)}function gd(e){try{return new TextDecoder("utf-8",{fatal:!0}).decode(e)}catch{throw new K("JSON source is not valid UTF-8.")}}function hd(e){let t=[],n=0,r=1,i=1,o=()=>{let s=e[n++];return s===`
|
|
7
7
|
`?(r++,i=1):i++,s},a=()=>({offset:n,line:r,column:i});for(;n<e.length;){let s=e[n];if(s===" "||s===" "||s==="\r"||s===`
|
|
8
|
-
`){o();continue}let l=a();if("{}[]:,".includes(s)){o(),t.push({kind:"punct",value:s,...l});continue}if(s==='"'){o();let u="",f=!1;for(;n<e.length;){let E=o();if(E==='"'){f=!0;break}if(E.charCodeAt(0)<32&&ft("string contains an unescaped control character",l.offset,l.line,l.column),E!=="\\"){u+=E;continue}n>=e.length&&ft("string has an unterminated escape",l.offset,l.line,l.column);let R=o(),
|
|
9
|
-
`,r:"\r",t:" "};if(R in h){u+=h[R];continue}R!=="u"&&ft(`has invalid escape \\${R}`,n-2,r,Math.max(1,i-2));let m=e.slice(n,n+4);/^[0-9a-fA-F]{4}$/.test(m)||ft("has invalid unicode escape",n,r,i);for(let g=0;g<4;g++)o();let y=Number.parseInt(m,16);if(y>=55296&&y<=56319){(e.slice(n,n+2)!=="\\u"||!/^[0-9a-fA-F]{4}$/.test(e.slice(n+2,n+6)))&&ft("has an unpaired high surrogate",n,r,i),o(),o();let g=e.slice(n,n+4);for(let P=0;P<4;P++)o();let S=Number.parseInt(g,16);(S<56320||S>57343)&&ft("has an invalid surrogate pair",n-4,r,Math.max(1,i-4)),u+=String.fromCodePoint(65536+(y-55296<<10)+S-56320)}else y>=56320&&y<=57343?ft("has an unpaired low surrogate",n-4,r,Math.max(1,i-4)):u+=String.fromCharCode(y)}f||ft("string is unterminated",l.offset,l.line,l.column),t.push({kind:"string",value:u,...l});continue}let d=e.slice(n),p=/^-?(?:0|[1-9]\d*)(?:\.\d+)?(?:[eE][+-]?\d+)?/.exec(d)?.[0];if(p){for(let u=0;u<p.length;u++)o();t.push({kind:"number",lexeme:p,...l});continue}let c=/^(true|false|null)/.exec(d)?.[0];if(c){for(let u=0;u<c.length;u++)o();t.push({kind:"literal",value:c==="true"?!0:c==="false"?!1:null,...l});continue}ft(`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 Lo(e){return e.kind==="eof"?"end of input":e.kind==="punct"?e.value:e.kind}function _o(e){if(e.byteLength===0)throw new K("JSON source is empty.");let t=fd(dd(e)),n=0,r=(d,p=t[n])=>{throw new K(`JSON ${d} (offset=${p.offset}, line=${p.line}, column=${p.column}).`)},i=(d,p)=>d.kind==="punct"&&d.value===p,o=d=>{let p=t[n];(p.kind!=="punct"||p.value!==d)&&r(`expected ${d}; found ${Lo(p)}`,p),n++},a=()=>{let d=t[n++];if(d.kind==="string")return d.value;if(d.kind==="number")return{kind:"number",lexeme:d.lexeme};if(d.kind==="literal")return d.value;if(d.kind==="punct"&&d.value==="{"){let p=new Map;if(i(t[n],"}"))return n++,p;for(;;){let c=t[n++];if(c.kind!=="string")return r(`object key must be a string; found ${Lo(c)}`,c);let u=c.value;p.has(u)&&r(`duplicate key ${JSON.stringify(u)}`,c),o(":"),p.set(u,a());let f=t[n];if(i(f,"}")){n++;break}o(",")}return p}if(d.kind==="punct"&&d.value==="["){let p=[];if(i(t[n],"]"))return n++,p;for(;;){p.push(a());let c=t[n];if(i(c,"]")){n++;break}o(",")}return p}return r(`expected a value; found ${Lo(d)}`,d)},s=a();t[n].kind!=="eof"&&r(`has trailing data; found ${Lo(t[n])}`);let l=s instanceof Map?[s]:Array.isArray(s)?s:r("root must be an object or array.",t[0]);if(l.length===0)throw new K("JSON source contains no records.");return l.forEach((d,p)=>{if(!(d instanceof Map))throw new K(`JSON record ${p+1} must be an object.`)}),l}var Lh=new Set(["CHECK_BOX","MULTI_SELECT"]),Ed=new Set(["USER_SELECT","ORGANIZATION_SELECT","GROUP_SELECT"]);function tt(e,t,n){throw new K(`JSON field validation failed (row=${e}, field=${t}): ${n}`)}function _h(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)&&!(e instanceof Map)&&e.kind==="number"}function Dh(e,t,n){if(e===null)return"";if(typeof e=="string")return e;if(typeof e=="boolean"&&tt(n,t.code,"boolean is not accepted."),_h(e)){t.fieldType==="NUMBER"&&tt(n,t.code,"precision target requires a JSON string."),(!/^-?(?:0|[1-9]\d*)$/.test(e.lexeme)||e.lexeme==="-0")&&tt(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)||tt(n,t.code,`JSON number ${e.lexeme} is outside the safe integer range.`),String(i)}e instanceof Map&&tt(n,t.code,"object is not accepted for a flat field."),Array.isArray(e)||tt(n,t.code,"unsupported value type."),!Lh.has(t.fieldType)&&!Ed.has(t.fieldType)&&tt(n,t.code,"array is accepted only for multi-value fields.");let r=e.map(i=>(typeof i!="string"&&tt(n,t.code,"array elements must be strings."),i));return new Set(r).size!==r.length&&tt(n,t.code,"array elements must not contain duplicates."),Ed.has(t.fieldType)?JSON.stringify(r.map(i=>({code:i}))):JSON.stringify(r)}function Vs(e,t,n,r){if(t.encoding&&t.encoding!=="utf8")throw new K("JSON source is UTF-8 only.");let i=_o(t.bytes);if(i.length>r)throw new K(`source rows (${i.length}) exceed maxRecords (${r}).`);let o=new Map(n.map(l=>[l.code,l]));if(o.size!==n.length)throw new K("JSON target fields contain duplicates.");let a=[],s=[];return i.forEach((l,d)=>{for(let u of l.keys())o.has(u)||tt(d+1,u,"unknown key (not declared in INTO).");let p={},c=new Set;for(let u of n)l.has(u.code)&&(c.add(u.code),p[u.code]=Dh(l.get(u.code),u,d+1));a.push(p),s.push(c)}),{rows:a,columns:n.map(l=>l.code),columnMeta:new Map(n.map(l=>[l.code,{fieldType:l.fieldType}])),importPresence:s}}function Ws(e,t,n,r,i,o){let a=Oo(t.bytes,{encoding:e.encoding??t.encoding??"utf8",hasHeader:e.hasHeader,columns:e.columns});if(a.rows.length>n)throw new K(`source rows (${a.rows.length}) exceed maxRecords (${n}).`);if(e.mappingMode==="BY_NAME"){if(!r||!i)throw new Error("InternalError: BY NAME requires destination form metadata.");if(new Set(r).size!==r.length)throw new K("ERR_IMPORT_HEADER_REUSED: a BY NAME header cannot be consumed more than once.");let l=new Map(a.columns.map((m,y)=>[m,y]));for(let m of r)if(!l.has(m))throw new K(`ERR_IMPORT_MISSING_COLUMN: required header "${m}" is missing.`);let d=new Map(i.map(m=>[m.code,m])),p=new Set(r);if(o&&p.has(o))throw new K("ERR_IMPORT_HEADER_REUSED: record-number source header is lookup-only and cannot be a write target.");if(o&&!l.has(o))throw new K(`ERR_IMPORT_MISSING_COLUMN: required header "${o}" is missing.`);let c=[],u=[],f=m=>a.rows.filter(y=>y[m]!=="").length,E=m=>m.fieldType==="FILE"?"FILE attachment is outside flat IMPORT scope":m.inSubtable||m.fieldType==="SUBTABLE"?"subtable field is not writable in Phase 3":m.writable===!1?`non-writable ${m.fieldType} field`:`known export-only ${m.fieldType} field`;for(let[m,y]of a.columns.entries()){if(p.has(y)||y===o)continue;let g=d.get(y);if(g)c.push({column:y,reason:E(g),nonEmptyCells:f(m)});else if(e.ignoreUnknownColumns)u.push({column:y,reason:"unknown column ignored by explicit policy",nonEmptyCells:f(m)});else throw new K(`ERR_IMPORT_UNKNOWN_COLUMN: unknown CSV header "${y}".`)}for(let m of r){let y=d.get(m);if(!y)throw new Error(`ArgumentError: DML target field ${m} does not exist.`);if(y.inSubtable||y.writable===!1||y.fieldType==="FILE"||y.fieldType==="SUBTABLE")throw new Error(`ArgumentError: DML target field ${m} is not writable (${y.fieldType}).`)}let R=[];return{rows:a.rows.map(m=>{let y=[],g={};for(let S of r){let P=m[l.get(S)];try{g[S]=pd(P,d.get(S)?.fieldType,{cliKintone:!0})}catch(b){if(!(b instanceof Kr))throw b;g[S]=P,y.push({field:S,code:b.code,message:b.message})}}return R.push(y),g}),columns:[...r],columnMeta:new Map(r.map(m=>[m,{fieldType:d.get(m)?.fieldType??"SINGLE_LINE_TEXT"}])),importRowErrors:R,...o?{recordNumberSourceValues:a.rows.map(m=>m[l.get(o)])}:{},importAudit:{mapping:"BY_NAME",writtenColumns:[...r],ignoredKnownColumns:c,ignoredUnknownColumns:u}}}return{rows:a.rows.map(l=>Object.fromEntries(a.columns.map((d,p)=>[d,l[p]]))),columns:a.columns,columnMeta:new Map(a.columns.map(l=>[l,{fieldType:"SINGLE_LINE_TEXT"}]))}}var Br=(e,t,n)=>{throw new K(`JSON subtable validation failed (parentRow=${e}, field=${t}): ${n}`)};function Rd(e,t,n,r,i=r){if(t.encoding&&t.encoding!=="utf8")throw new K("JSON source is UTF-8 only.");let o=_o(t.bytes);if(o.length>r)throw new K(`source parent rows (${o.length}) exceed maxRecords (${r}).`);let a=new Map(n.map(l=>[l.kind==="FIELD"?l.field:l.subtableCode,l]));if(a.size!==n.length)throw new K("IMPORT targets contain duplicates.");let s=0;return{records:o.map((l,d)=>{let p=d+1;for(let E of l.keys())a.has(E)||Br(p,E,"unknown key (not declared in INTO).");let c=new Map,u=new Map,f=new Set;for(let E of n){let R=E.kind==="FIELD"?E.field:E.subtableCode;if(!l.has(R))continue;let h=l.get(R);if(E.kind==="FIELD"){h instanceof Map&&Br(p,R,"object is not accepted for a top-level field."),c.set(R,h);continue}Array.isArray(h)||Br(p,R,"subtable value must be an array."),f.add(R);let m=new Set(E.children),y=h.map((g,S)=>{g instanceof Map||Br(p,R,`childRow=${S+1} must be an object.`);let P=g;for(let b of P.keys())m.has(b)||Br(p,b,`unknown child key in subtable ${R} at childRow=${S+1}.`);if(s++,s>i)throw new K(`source child rows (${s}) exceed limit (${i}).`);return{childRowNumber:S+1,values:P}});u.set(R,y)}return{rowNumber:p,top:c,subtables:u,replacementTables:f}})}}function md(e,t,n,r,i,o){let a=Oo(t.bytes,{encoding:e.encoding??t.encoding??"utf8",hasHeader:e.hasHeader,columns:e.columns});if(!e.hasHeader||a.columns[0]!=="*")throw new K('ERR_IMPORT_MARKER: first CSV header must be "*".');let s=new Map(a.columns.map((u,f)=>[u,f]));if(o&&!s.has(o))throw new K(`ERR_IMPORT_MISSING_COLUMN: required header "${o}" is missing.`);let l=n.filter(u=>u.kind==="FIELD"),d=n.filter(u=>u.kind==="SUBTABLE");for(let u of l)if(!s.has(u.field))throw new K(`ERR_IMPORT_MISSING_COLUMN: required header "${u.field}" is missing.`);for(let u of d){if(!u.rowIdSourceHeader||!s.has(u.rowIdSourceHeader))throw new K(`ERR_IMPORT_MISSING_COLUMN: row-ID header for ${u.subtableCode} is missing.`);for(let f of u.children)if(!s.has(f))throw new K(`ERR_IMPORT_MISSING_COLUMN: required child header "${f}" is missing.`)}let p=[],c;if(a.rows.forEach((u,f)=>{let E=f+2,R=u[0];if(R!==""&&R!=="*")throw new K(`ERR_IMPORT_MARKER: invalid marker ${JSON.stringify(R)} at source row ${E}.`);if(R==="*"){if(p.length>=i)throw new K(`source parent rows exceed maxRecords (${i}).`);c={rowNumber:p.length+1,markerRowNumber:E,top:new Map(l.map(h=>[h.field,u[s.get(h.field)]])),subtables:new Map(d.map(h=>[h.subtableCode,[]])),replacementTables:new Set(r),...o?{recordNumberSourceValue:u[s.get(o)]}:{}},p.push(c)}else if(c){for(let h of l){let m=u[s.get(h.field)];if(m!==""&&m!==c.top.get(h.field))throw new K(`ERR_IMPORT_PARENT_VALUE_ON_CONTINUATION: ${h.field} at source row ${E}.`)}if(o){let h=u[s.get(o)];if(h!==""&&h!==c.recordNumberSourceValue)throw new K(`ERR_IMPORT_PARENT_VALUE_ON_CONTINUATION: ${o} at source row ${E}.`)}}else throw new K(`ERR_IMPORT_MARKER: first data row must start a parent (source row ${E}).`);for(let h of d){let m=u[s.get(h.rowIdSourceHeader)],y=new Map(h.children.map(S=>[S,u[s.get(S)]]));if(m===""&&[...y.values()].every(S=>S===""))continue;let g=c.subtables.get(h.subtableCode);g.push({childRowNumber:g.length+1,sourceRowNumber:E,...m?{rowId:m}:{},values:y})}}),p.length===0)throw new K("CSV has no parent rows.");return{records:p}}var vh=new Set(["USER_SELECT","ORGANIZATION_SELECT","GROUP_SELECT"]),Uh=new Set(["SUBTABLE","FILE","CALC","RECORD_NUMBER","CREATOR","CREATED_TIME","MODIFIER","UPDATED_TIME","STATUS","STATUS_ASSIGNEE","CATEGORY","REFERENCE_TABLE"]);function js(e,t){if(t!=null&&e.invalidParentRows.size>t)throw new Error(`RejectLimitExceededError: rejected parents (${e.invalidParentRows.size}) exceed REJECT LIMIT (${t}).`)}function Ad(e,t,n,r,i){let o=new Map(n.filter(u=>!u.inSubtable).map(u=>[u.code,u])),a=new Map;for(let u of n)if(u.inSubtable&&u.subtableCode){let f=a.get(u.subtableCode);f||a.set(u.subtableCode,f=new Map),f.set(u.code,u)}let s=t.filter(u=>u.kind==="FIELD"),l=t.filter(u=>u.kind==="SUBTABLE");for(let u of s)yd(u.field,o.get(u.field),void 0);for(let u of l){let f=o.get(u.subtableCode);if(!f||f.fieldType!=="SUBTABLE")throw new Error(`ArgumentError: IMPORT subtable ${u.subtableCode} does not exist.`);let E=a.get(u.subtableCode)??new Map;for(let R of u.children)yd(R,E.get(R),u.subtableCode)}let d=new Map(l.map(u=>[u.subtableCode,{parentsPresent:0,childRows:0,validChildRows:0,invalidChildRows:0}])),p=e.records.map(u=>kh(u,s,l,o,a,r,i,d)),c=p.flatMap(u=>[...u.errors]);return{parents:p,errors:c,invalidParentRows:new Set(p.filter(u=>!u.valid).map(u=>u.parentRow)),tableCounts:d}}function kh(e,t,n,r,i,o,a,s){let l=[],d={};for(let u of t)e.top.has(u.field)&&Ys(e.top.get(u.field),r.get(u.field),o,d,u.field,l,Hs(e,a,u.field));let p={};if(a==="INSERT")for(let u of r.values())u.fieldType==="SUBTABLE"||u.writable===!1||e.top.has(u.code)||hd(u,o,p,l,Hs(e,a,u.code));let c=new Map;for(let u of n){if(!e.subtables.has(u.subtableCode))continue;let f=s.get(u.subtableCode);f.parentsPresent++;let E=[];for(let R of e.subtables.get(u.subtableCode)){f.childRows++;let h=l.length,m={},y=i.get(u.subtableCode);for(let g of u.children){let S=y.get(g),P=Hs(e,a,g,u.subtableCode,R.childRowNumber,R.sourceRowNumber??e.markerRowNumber);R.values.has(g)?Ys(R.values.get(g),S,o,m,g,l,P):hd(S,o,m,l,P)}l.length===h?(f.validChildRows++,E.push(m)):f.invalidChildRows++}c.set(u.subtableCode,E)}return{parentRow:e.rowNumber,valid:l.length===0,top:d,subtables:c,replacementTables:e.replacementTables,errors:l}}function yd(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&&Uh.has(t.fieldType))throw new Error(`ArgumentError: IMPORT ${n?`child ${n}.${e}`:`field ${e}`} is not writable (${t.fieldType}).`)}function hd(e,t,n,r,i){let o=Wt(e.defaultValue)?"":e.defaultValue;Ys(o,e,t,n,e.code,r,i,!Wt(e.defaultValue))}function Ys(e,t,n,r,i,o,a,s=!1){let l=Mh(e),d=Ne(l,t,n);d.ok?r[i]={value:Fh(l,t)?l:d.value}:o.push({...a,code:d.code,message:s?`\u65E2\u5B9A\u5024: ${d.message}`:d.message})}function Mh(e){return gd(e)?e.lexeme:Array.isArray(e)?e.map(t=>t instanceof Map?t:gd(t)?t.lexeme:t):e}function gd(e){return typeof e=="object"&&e!==null&&e.kind==="number"}function Fh(e,t){return vh.has(t.fieldType)&&Array.isArray(e)&&e.every(n=>typeof n=="object"&&n!==null&&"code"in n)}function Hs(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 qs=["$err_statement","$err_operation","$err_row","$err_field","$err_subtable","$err_subrow","$err_source_row","$err_code","$err_message"];function zs(e,t,n=1){return e.map(r=>{let i={};for(let o of t)i[o]=r.sourceValues.get(o)==null?"":xh(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 xh(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 Js(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 Sd(e,t){return Js(e,t,"DROP")}function Td(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 Id(e,t,n){return e.map((r,i)=>{let o=t[i],a=o===void 0?void 0:n.get(o);if(o!==void 0&&!a)throw new Error(`InternalError: IMPORT UPSERT target APP record ${o} was not loaded.`);let s=[...r.subtables].map(([l,d])=>{let p=a?.record[l]?.value,c=Array.isArray(p)?p.length:0;return{table:l,existingRows:c,inputRows:d.length,addRows:d.length,deleteRows:c}});return{parentRow: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 Kh(e,t){let n=e[t]?.value;return Array.isArray(n)?n:[]}function wd(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 bd(e,t,n,r,i){return t.map((o,a)=>{let s=e[a],l=n[a],d=l===void 0?void 0:r.get(l),p=[...o.errors];if(!d||l===void 0)return{parentRow:o.parentRow,targetId:l??0,valid:!1,top:o.top,subtables:new Map,tables:[],errors:p};let c=new Map,u=[];for(let f of o.replacementTables){let E=Kh(d.record,f),R=new Set(E.map(b=>b.id).filter(b=>!!b)),h=s.subtables.get(f)??[],m=o.subtables.get(f)??[],y=0,g=0,S=0,P=h.map((b,L)=>{let I=m[L]??{};return b.rowId&&R.has(b.rowId)?(y++,{rowId:b.rowId,record:I}):(b.rowId&&((i.get(b.rowId)??[]).some(w=>w.parentId!==l||w.table!==f)&&p.push({operation:"UPDATE",parentRow:o.parentRow,field:b.rowId,subtable:f,subrow:b.childRowNumber,sourceRow:b.sourceRowNumber,code:"ERR_IMPORT_FIELD_OWNERSHIP",message:`rowIdOwnedElsewhere: ${b.rowId}`,sourceValues:b.values}),S++),g++,{record:I})});c.set(f,P),u.push({table:f,existingRows:E.length,inputRows:h.length,updateRows:y,addRows:g,deleteRows:E.length-y,rowIdNotFound:S})}return{parentRow:o.parentRow,targetId:l,...d.revision===void 0?{}:{revision:d.revision},valid:p.length===0,top:o.top,subtables:c,tables:u,errors:p}})}var Xs="#__import_source";function Pd(e){return{...e,from:{appId:0,alias:null,cteName:Xs}}}function Bh(e){return/^[0-9]+$/.test(e)?e.replace(/^0+(?=\d)/,""):null}function Qs(e,t){let n=e.map(Bh),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 $h="\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",tn=class extends Error{constructor(){super("SearchAbortedError: kintone \u306E\u691C\u7D22\u304C 10 \u4E07\u4EF6\u3067\u6253\u3061\u5207\u3089\u308C\u305F\u305F\u3081\u3001\u5B8C\u5168\u306A\u5BFE\u8C61\u96C6\u5408\u3092\u78BA\u5B9A\u3067\u304D\u307E\u305B\u3093\u3002"),this.name="SearchAbortedError"}},Ee=new WeakMap;function Gd(e){return Ee.get(e)}var sn=new WeakMap,qo=new WeakMap,Nd=new WeakMap,Gh=1,Vh=1;function Vd(e,t){if(t)return t;let n=Nd.get(e);return n||(n=`client:${Gh++}`,Nd.set(e,n)),n}function bl(e){return`${e}\0inv:${Vh++}`}async function Pl(e,t,n={}){let r=Date.now(),i=bl(Vd(t,n.cacheContext));try{let o=OA(e,n.enableImport===!0),a=Wd(),s=Yd(t,a),l={aborted:!1},d=Cl(s,l,!Hh(o)||hs(o)),p=await il(o,d,n,i);a.elapsedMs=Date.now()-r;let c={...jd(p,l),metrics:a};if(p.type==="SELECT"){let u=Ee.get(p);u&&Ee.set(c,u)}return c}finally{Vl(i)}}function Wd(){return{getCalls:0,postCalls:0,putCalls:0,deleteCalls:0,fieldCalls:0,numberPrecisionCalls:0,appsCalls:0,processStatusCalls:0,cursorCreateCalls:0,cursorGetCalls:0,cursorDeleteCalls:0,cursorRecordsScanned:0,cursorActiveCurrent:0,cursorActivePeak:0,cursorCleanupFailures:0,cursorCreateOutcomeUnknown:0,cursorQuarantinedCurrent:0,fetchedRows:0,limitReached:!1,limitReachedApps:[],elapsedMs:0}}var Hd=Symbol("limitMetricsSink");function Nl(e,t){let n=e[Hd];n&&(n.limitReached=!0,n.limitReachedApps.includes(t)||n.limitReachedApps.push(t))}function Yd(e,t){return{[Hd]:t,getRecords:async n=>{t.getCalls+=1;let r=await e.getRecords(n);return t.fetchedRows+=r.records.length,r},openCursor:async n=>{t.cursorCreateCalls+=1;let r;try{r=await e.openCursor(n)}catch(a){throw a instanceof Error&&a.name==="CursorCreateOutcomeUnknownError"&&(t.cursorCreateOutcomeUnknown+=1,t.cursorQuarantinedCurrent+=1),a}t.cursorActiveCurrent+=1,t.cursorActivePeak=Math.max(t.cursorActivePeak,t.cursorActiveCurrent);let i=!1,o=()=>{i||(i=!0,t.cursorActiveCurrent-=1)};return{totalCount:r.totalCount,nextPage:async()=>{t.cursorGetCalls+=1;let a=await r.nextPage();return t.cursorRecordsScanned+=a.records.length,a.next||o(),a},close:async()=>{i||(t.cursorDeleteCalls+=1);try{await r.close(),o()}catch(a){throw t.cursorCleanupFailures+=1,t.cursorQuarantinedCurrent+=1,a}}}},postRecords:n=>(t.postCalls+=1,e.postRecords(n)),putRecords:n=>(t.putCalls+=1,e.putRecords(n)),deleteRecords:n=>(t.deleteCalls+=1,e.deleteRecords(n)),getApps:()=>(t.appsCalls+=1,e.getApps()),getFields:n=>(t.fieldCalls+=1,e.getFields(n)),getNumberPrecision:n=>(t.numberPrecisionCalls+=1,e.getNumberPrecision(n)),getProcessStatuses:n=>(t.processStatusCalls+=1,e.getProcessStatuses(n))}}var Cd=Symbol("searchAbortFailClosed");function Cl(e,t,n){return n&&e[Cd]?e:{...e,...n?{[Cd]:!0}:{},getRecords:async r=>{let i=await e.getRecords(r);if(i.searchAborted&&(t.aborted=!0,n))throw new tn;return i}}}function Wh(e){let t=new Set;return{client:{...e,openCursor:async n=>{let r=await e.openCursor(n);t.add(r);let i=()=>t.delete(r);return{totalCount:r.totalCount,async nextPage(){let o=await r.nextPage();return o.next||i(),o},async close(){try{await r.close()}finally{i()}}}}},closeActive:async()=>{await Promise.all([...t].map(n=>n.close().catch(()=>{})))}}}function Hh(e){return e.type==="SELECT"||e.type==="UNION"||e.type==="WITH"}function jd(e,t){if(!t.aborted||e.type!=="SELECT")return e;let n=new Set(e.warnings??[]);return n.add($h),{...e,warnings:[...n]}}async function Od(e,t,n){let r=await ni(e,t,n);return $s(r),r}async function ni(e,t,n){return ud(e,{select:r=>qr(r,t,n),dml:r=>tf(r,t,n),prefilterDecomposition:async r=>{if(r.where===null)return null;let i=await $n(r,t,n);return Gs(r,i)},joinServerFunctionPlan:async r=>{let i=await Xo(r,t,n),o=Jo(r,i);return o===null?null:(kn(o.joinPlan)&&Ml.set(r,o),o.joinPlan)}})}async function il(e,t,n,r){let i=await ni(e,t,r);e.type!=="EXPLAIN"&&$s(i);let o=al(e);if(o!==null&&!sA(e))throw new Error(`ParseError: variable @${o} is not defined in a batch.`);if(mn("phase15b",e),gi("phase15b",e),$e(e),e.type!=="EXPLAIN"&&await rg(e,t,r),e.type==="IMPORT")return wf(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 Sl(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 Hl(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 Yh(e,t,n,r);case"SELECT":return vt(cl(e),t,n,r,void 0,n.captureColumnMeta===!0,n.captureColumnMeta===!0);case"UNION":return Ef(e,t,n,r,n.captureColumnMeta===!0,n.captureColumnMeta===!0);case"WITH":return $l(e,t,n,r,void 0,n.captureColumnMeta===!0);case"INSERT":return tA(e,t,n,r);case"INSERT_SELECT":return zl(e,t,n,r);case"UPSERT":return AA(e,t,n,r);case"UPSERT_SELECT":return Ql(e,t,n,r);case"UPDATE":return Sl(e,t,n,r);case"DELETE":return gA(e,t,n,r);case"REORDER":return PA(e,t,n,r);case"SHOW_APPS":return Of(t);case"DESCRIBE":return Lf(e,t,r);case"EXPLAIN":return vA(e,t,r,n.maxRecords??1e4,n.cursorMaxActive??2,e.query.type==="UPDATE"&&e.query.applyBlocks?.length?xe(n.dmlMaxRows,"dmlMaxRows",ht):ht,e.query.type==="UPDATE"&&e.query.applyBlocks?.length?xe(n.dmlMaxSubtableRows,"dmlMaxSubtableRows",Se):Se,i);case"CREATE_TEMP_TABLE":throw new Error("ArgumentError: CREATE TEMP TABLE requires a batch (temp tables are batch-scoped).");case"DROP_TEMP_TABLE":throw new Error("ArgumentError: DROP TEMP TABLE requires a batch (temp tables are batch-scoped).");case"SET_VARIABLE":throw new Error("ArgumentError: SET variable requires a batch.");case"DECLARE_VARIABLE":throw new Error("ArgumentError: DECLARE variable requires a batch.");case"ASSERT":return Qd(e,t,n,r)}}var Ol=["$id","$err_field","$err_code","$err_message","$err_value","$err_subtable","$err_subrow","$err_subrow_id","$err_count"],Ll=["$id","$err_subtable","$err_field","$err_code","$err_count"];function _l(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 qd(e=!1){let t=e?Ll:Ol;return new Map(t.map(n=>[n,{fieldType:n==="$id"||n==="$err_count"?"KSQL_NUMBER":"KSQL_STRING",sortKind:n==="$id"||n==="$err_count"?"number":"string",semantics:B(n==="$id"||n==="$err_count"?"number":"string")}]))}async function Yh(e,t,n,r){if(e.errorTable)throw new Error("ArgumentError: VALIDATE INTO requires a batch.");return zd(e,t,n,r)}async function zd(e,t,n,r){let i=await ee(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=ps(e,i),l=new Set(s.flatMap(O=>us(O.field))),d={present:ls.filter(O=>l.has(O)),absent:ls.filter(O=>!l.has(O))},p=e.checkGroups??[],c=Nn(p);for(let O of c){if(O.field!=="$id"&&!o.has(O.field)&&!a.has(O.field))throw fe(`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 u=new Map([...o].map(([O,F])=>[O,F.fieldType]));u.set("$id","RECORD_NUMBER"),an(e,u);let f=_l(e.where),E=[...new Set(["$id",...s.map(O=>O.subtableCode??O.field.code),...f,...c.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 R=s.some(O=>O.field.fieldType==="NUMBER")?await ot(e.appId,t,r):void 0,h=O=>O.field==="$id"?X({fieldType:"__ID__"}):o.get(O.field)?.semantics??(o.has(O.field)?X(o.get(O.field)):void 0),m=Ce(e.where,h);if(m.capability==="UNSUPPORTED")throw new Error(`ArgumentError: WHERE predicate is unsupported (${Zt(m)}).`);let y=new Map([...o].map(([O,F])=>[O,F.fieldType])),g=new Map([...o.values()].flatMap(O=>O.optionOrder?[[O.code,new Set(Object.keys(O.optionOrder))]]:[])),S=e.where===null?null:m.capability==="EXACT_PUSHDOWN"?e.where:An(e.where,{allowUnqualifiedFields:!0,fieldTypes:y,fieldOptions:g,allowKlike:!1}),P=S===null?"":G(S),L=(await Ie(t.getRecords,e.appId,P,E,{maxRecords:n.maxRecords??1e4,parallel:n.fetchParallel??1,onLimit:"error"})).map(O=>({id:String(O.$id?.value??""),record:O,flat:dt(O,null)})).filter(O=>e.where===null||te(e.where,O.flat,F=>u.get(F.field))),I=[],v=new Map,w=new Map,D=new Set,M=0,N=O=>{if(D.add(O.id),M+=1,e.summary){let z=JSON.stringify([O.id,O.subtable??"",O.field,O.code]),U=w.get(z);U?U.$err_count=String(Number(U.$err_count)+1):w.set(z,{$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]),j=v.get(F);j?(j.$err_count=String(Number(j.$err_count)+1),O.subrow!==void 0&&(j.$err_subrow=`${j.$err_subrow},${O.subrow}`,j.$err_subrow_id=`${j.$err_subrow_id},${O.subrowId??""}`)):v.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 L){for(let F of _){let j=O.record[F.field.code]?.value,z=Ne(j,F.field,R);z.ok||N({id:O.id,field:F.field.code,code:z.code,message:z.message,value:Ar(j,F.field.fieldType)})}for(let[F,j]of A){let z=O.record[F]?.value;if(Array.isArray(z))for(let U=0;U<z.length;U++){let k=z[U];for(let $ of j){let be=k.value?.[$.field.code]?.value,V=Ne(be,$.field,R);if(!V.ok){let Te=Zi(F,U,k);N({id:O.id,field:$.field.code,code:V.code,message:V.message,value:Ar(be,$.field.fieldType),...Te})}}}}for(let F of $i(p,O.flat,j=>u.get(j.field)))N({id:O.id,field:"",code:"ERR_CHECK",message:F.message,value:""})}if(e.summary)I.push(...w.values());else for(let O of v.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`),I.push(O)}let x={type:"SELECT",columns:[...e.summary?Ll:Ol],rows:I,rowCount:I.length,validateStats:{errorRecords:D.size,errorCount:M,constraintMetadata:d}};return Ee.set(x,qd(e.summary===!0)),x}var Fe=1e4;function rt(e,t,n,r,i,o){let a=e.get(t);if(a&&(a.columns.length!==n.length||a.columns.some((l,d)=>l!==n[d])||!jh(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 jh(e,t){if(e===t)return!0;if(!e||!t||e.size!==t.size)return!1;for(let[n,r]of e){let i=t.get(n);if(!i||i.sortKind!==r.sortKind||i.fieldType!==r.fieldType||!ki(i.semantics,r.semantics))return!1}return!0}var Fn=class extends Error{constructor(){super("TimeoutError: batch timeout exceeded.")}};async function Jd(e,t,n={}){let r=Xd(e,n.enableImport===!0),i=Ua(r);if(r.forEach(u=>gi("phase15b",u)),n.allowApplyMutation!==!0&&r.some(u=>ya(u)||u.type==="UPSERT"&&qh(u)))throw new Error("UnsupportedError: APPLY mutation requires allowApplyMutation=true");let o=ys(r,n.variables),a={...n,variables:o};if(n.continueOnError&&i.containsDml)throw new Error("ArgumentError: continueOnError is not allowed for batches containing DML.");for(let u of i.statements){if(!u.isDml||u.tempTablesReferenced.length===0||u.statementType==="INSERT_SELECT"||u.statementType==="UPSERT_SELECT")continue;let f=r[u.index];if(!(f?.type==="UPDATE"&&f.from?.cteName!=null))throw new Z(`ArgumentError: temp table references in ${u.statementType} are not supported yet.`,u.index)}let s=Wd(),l=Yd(t,s),d=Date.now(),p=n.timeoutMs!=null?d+n.timeoutMs:null,c=bl(Vd(t,n.cacheContext));try{let u=new Map,f=new Map,E=[],R=new Set,h=null;for(let m=0;m<r.length;m++){let y=i.statements[m],g={index:m,type:y.statementType};if(h){E.push({...g,status:"skipped",skippedReason:h}),R.add(m);continue}let S=y.dependsOn.find(P=>R.has(P));if(S!==void 0){let P=i.statements[S].tempTablesCreated[0]??`statement ${S}`;E.push({...g,status:"skipped",skippedReason:`dependency: ${P}`}),R.add(m);continue}if(p!==null&&Date.now()>=p){E.push({...g,status:"skipped",skippedReason:"timeout"}),R.add(m),h="timeout";continue}try{let P=p!==null?p-Date.now():null,b=a.confirm,L=b?{...a,confirm:(M,N,_)=>b(M,N,{statementIndex:m,statementCount:r.length,statementType:y.statementType,targetAppId:y.targetAppId,..._?.importDetail?{importDetail:_.importDetail}:{},..._?.applyDetail?{applyDetail:_.applyDetail}:{},..._?.applyDiagnostic?{applyDiagnostic:_.applyDiagnostic}:{}})}:a,I={aborted:!1},v=Cl(l,I,y.statementType!=="SELECT"&&y.statementType!=="UNION"&&y.statementType!=="WITH"||hs(r[m])),w=Wh(v),D=await Xh(zh(r[m],y,w.client,L,c,u,f),P,w.closeActive);D.result&&(D.result=jd(D.result,I)),E.push({...g,status:"success",...D})}catch(P){E.push({...g,status:"error",error:Qh(P),...P instanceof Xr?{result:P.diagnostic}:{}}),R.add(m),P instanceof Fn?h="timeout":P instanceof Kn?h="assertion":y.statementType==="SET_VARIABLE"||y.statementType==="DECLARE_VARIABLE"?h="fail-fast":n.continueOnError||(h="fail-fast")}}return s.elapsedMs=Date.now()-d,{ok:E.every(m=>m.status==="success"),statementCount:r.length,statements:E,analysis:i,metrics:s}}finally{Vl(c)}}function qh(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 zh(e,t,n,r,i,o,a){if(e.type==="SET_VARIABLE"){let l=xo(e,a);if($e(l),await Od(l,n,i),l.expr.type==="ARRAY")a.set(e.name,{type:"array",elements:l.expr.elements.map(d=>({type:"string",value:d.value}))});else if(l.expr.type==="SCALAR_SUBQUERY")try{let d=await Zd(l.expr.query,n,r,i,o),p=l.expr.query.columns[0],c=p?.type==="ARITH_COL"||p?.type==="ARITH_AGG_COL"||p?.type==="WINDOW_COL"||p?.type==="AGGREGATE"&&(p.func==="COUNT"||p.func==="SUM"||p.func==="AVG"||p.func==="STDDEV_POP"||p.func==="STDDEV_SAMP"||p.func==="VAR_POP"||p.func==="VAR_SAMP"||p.func==="MEDIAN");if(p?.type==="AGGREGATE"&&p.func==="MODE"){let f=(await Vo(l.expr.query,["__scalar__"],n,i,o)).get("__scalar__");c=f?.semantics?.compareMode==="number"||f?.sortKind==="number"}let u=c?Number(d):Number.NaN;a.set(e.name,c&&Number.isFinite(u)?{type:"number",value:u,raw:d}:{type:"string",value:d})}catch(d){throw d instanceof Qt?new Error(`ArgumentError: ${d.message}`):d}else a.set(e.name,Ld(l.expr));return{}}if(e.type==="DECLARE_VARIABLE"){let l=r.variables??{};if(Object.prototype.hasOwnProperty.call(l,e.name))a.set(e.name,{type:"string",value:l[e.name]});else{let d=Ld(e.default);a.set(e.name,{type:"string",value:d.type==="number"?d.raw??String(d.value):d.value})}return{}}let s=xo(e,a);if(mn("phase15b",s),gi("phase15b",s),$e(s),await Od(s,n,i),s.type==="VALIDATE"){let l=await zd(s,n,{...r,onLimitReached:"error"},i);return s.errorTable&&rt(o,s.errorTable,l.columns,l.rows,r.tempTableMaxRows??Fe,Ee.get(l)??qd(s.summary===!0)),{result:l}}if(s.type==="IMPORT")return{result:await wf(s,n,r,i,o)};if("validateOnly"in s&&s.validateOnly===!0){let l=await Hl(s,n,{...r,onLimitReached:"error"},i,o,t.index+1);return s.validationErrorTable&&rt(o,s.validationErrorTable,l.columns,l.errors,r.tempTableMaxRows??Fe,sn.get(l)??new Map),{result:l}}if("onErrorSkip"in s&&s.onErrorSkip===!0)return{result:await gl(s,n,{...r,onLimitReached:"error"},i,o,t.index+1)};if(s.type==="CREATE_TEMP_TABLE"){let l={...r,maxRecords:r.tempTableMaxRows??Fe,onLimitReached:"error"},d=await Jh(s.query,n,l,i,o);return o.set(s.name,{rows:d.rows,columns:d.columns,columnMeta:Ee.get(d)}),{tempTable:s.name,rowCount:d.rows.length}}if(e.type==="DROP_TEMP_TABLE")return o.delete(e.name),{tempTable:e.name};if(e.type==="EXPLAIN")return{result:await il(s,n,r,i)};if(s.type==="ASSERT")return await Qd(s,n,r,i,o),{};if(t.tempTablesReferenced.length>0){if(s.type==="SELECT"||s.type==="UNION")return{result:await mt(s,n,r,o,i)};if(s.type==="WITH")return{result:await $l(s,n,r,i,o)};if(s.type==="INSERT_SELECT")return{result:await zl(s,n,r,i,o)};if(s.type==="UPSERT_SELECT")return{result:await Ql(s,n,r,i,o)};if(s.type==="UPDATE"&&s.from?.cteName!=null)return{result:await Sl(s,n,r,i,o)};throw new Error(`ArgumentError: temp table references in ${e.type} are not supported yet.`)}return{result:await il(s,n,r,i)}}async function Jh(e,t,n,r,i){return e.type==="WITH"?$l(e,t,n,r,i,!0):mt(e,t,n,i,r,!0)}async function Xh(e,t,n){if(t===null)return e;if(t<=0)throw n&&await n(),e.catch(()=>{}),new Fn;let r,i=!1,o=e.then(a=>i?new Promise(()=>{}):a,a=>{if(i)return new Promise(()=>{});throw a});try{return await Promise.race([o,new Promise((a,s)=>{r=setTimeout(()=>{i=!0,(async()=>{if(n){let l;try{await Promise.race([n(),new Promise(d=>{l=setTimeout(d,5e3),l.unref?.()})])}finally{l&&clearTimeout(l)}}s(new Fn)})()},t)})])}catch(a){throw a instanceof Fn&&e.catch(()=>{}),a}finally{r!==void 0&&clearTimeout(r)}}function Qh(e){let t;if(e instanceof Qe)t={code:e.name,message:e.message,partialSuccess:e.partialSuccess};else if(e instanceof Error)t={code:(e.name!=="Error"?e.name:null)??Zs(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:Zh(e);t={code:typeof n.code=="string"&&n.code.length>0?n.code:Zs(r),message:r}}else{let n=String(e);t={code:Zs(n),message:n}}return Object.defineProperty(t,"cause",{value:e,enumerable:!1,configurable:!1,writable:!1}),t}function Zs(e){return e.match(/^([A-Za-z]+Error):/)?.[1]??"Error"}function Zh(e){try{return JSON.stringify(e)??String(e)}catch{return String(e)}}function Xd(e,t=!1){let n=new Pt(e).tokenize();return new Nt(n,{import:t}).parseStatements()}function Ld(e){switch(e.type){case"STRING":return{type:"string",value:e.value};case"NUMBER":return{type:"number",value:e.value,raw:H(e)};case"KINTONE_FUNC":return{type:"string",value:Lc(e.name)};case"STRING_FUNC":return{type:"string",value:se(e,{})};case"ARITH":{let t=ae(e,{});if(!Number.isFinite(t))throw new Error("ArgumentError: SET scalar arithmetic produced a non-finite number.");return{type:"number",value:t,raw:String(t)}}}}function xo(e,t){return ol(e,t,!1)}function ol(e,t,n){if(Array.isArray(e))return e.map(r=>ol(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(`ParseError: variable @${r.name} is not defined in this batch.`);if(a.type==="array")throw new Error(`ParseError: array variable @${r.name} can only be used as IN @${r.name}.`);if(n&&a.type!=="number"&&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:a.value}:a.type==="number"?{type:"NUMBER",value:a.value,raw:a.raw??String(a.value)}:{type:"STRING",value:a.value}}if(r.type==="VARIABLE_COL"&&typeof r.name=="string"&&typeof r.alias=="string"){let a=t.get(r.name);if(a===void 0)throw new Error(`ParseError: variable @${r.name} is not defined in this batch.`);if(a.type==="array")throw new Error(`ParseError: array variable @${r.name} cannot be used as a SELECT column.`);return a.type==="number"?{type:"ARITH_COL",expr:{type:"NUMBER",value:a.value,raw:a.raw??String(a.value)},alias:r.alias}:{type:"LITERAL_COL",value:a.value,alias:r.alias}}if(r.type==="VARIABLE_IN_LIST")return r;let i=Object.fromEntries(Object.entries(r).map(([a,s])=>[a,ol(s,t,(r.type==="ARITH"||r.type==="SCALAR_ARITH"||r.type==="AGG_ARITH")&&(a==="left"||a==="right"))]));if(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(`ParseError: variable @${a.name} is not defined 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=eg(i);if(o.type==="SELECT"&&Me(o.where,!0)&&(o.where=null),(o.type==="UPDATE"||o.type==="DELETE"||o.type==="REORDER")&&Me(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 Me(e,t){return e!==null&&typeof e=="object"&&e.type==="BOOLEAN"&&(t===void 0||e.value===t)}function eg(e){if(e.type==="NOT"&&Me(e.expr))return{type:"BOOLEAN",value:!e.expr.value};if(e.type==="GROUP"&&Me(e.expr))return e.expr;if(e.type==="LOGICAL"){let t=e.left,n=e.right;if(e.op==="AND"){if(Me(t,!1)||Me(n,!1))return{type:"BOOLEAN",value:!1};if(Me(t,!0))return n;if(Me(n,!0))return t}else if(e.op==="OR"){if(Me(t,!0)||Me(n,!0))return{type:"BOOLEAN",value:!0};if(Me(t,!1))return n;if(Me(n,!1))return t}}return e}function al(e){if(Array.isArray(e)){for(let t of e){let n=al(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=al(n);if(r!==null)return r}}return null}var Kn=class extends Error{constructor(t){super(`AssertError: ${t}`),this.name="AssertError"}},Qt=class extends Error{constructor(t){super(t),this.name="ScalarSubqueryError"}};async function Qd(e,t,n,r,i){let o=await Do(e.left,t,n,r,i),a=e.left.type==="NUMBER"||e.left.type==="ARITH"?B("number"):B("string");if(e.op==="BETWEEN"){if(e.low===null||e.high===null)throw new Error("ArgumentError: malformed ASSERT statement.");let l=await Do(e.low,t,n,r,i),d=await Do(e.high,t,n,r,i);if(!Gt(">=",o,l,a)||!Gt("<=",o,d,a))throw new Kn(`assertion failed: ${e.text} (actual: ${o}).`);return{type:"ASSERT",condition:e.text}}if(e.right===null)throw new Error("ArgumentError: malformed ASSERT statement.");let s=await Do(e.right,t,n,r,i);if(!Gt(e.op,o,s,a))throw new Kn(`assertion failed: ${e.text} (actual: ${o}).`);return{type:"ASSERT",condition:e.text}}async function Do(e,t,n,r,i){switch(e.type){case"VARIABLE":throw new Error(`ParseError: unresolved batch variable @${e.name}.`);case"NUMBER":return H(e);case"STRING":return e.value;case"ARITH":return String(sl(e));case"SCALAR_SUBQUERY":try{return await Zd(e.query,t,n,r,i)}catch(o){throw o instanceof Qt?new Kn(o.message):o}}}async function Zd(e,t,n,r,i){let{query:o,probed:a}=tg(e),s=await Yr(o,t,n,r,i);if(s.columns.length!==1)throw new Qt(`scalar subquery returned ${s.columns.length} columns (expected 1 column).`);if(s.rowCount===0)throw new Qt("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 Qt(`scalar subquery returned ${l} (expected 1 row).`)}return s.rows[0]?.[s.columns[0]]??""}function tg(e){return ne(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 sl(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=sl(e.left),n=sl(e.right);switch(e.op){case"+":return t+n;case"-":return t-n;case"*":return t*n;case"/":return t/n;case"%":return t%n}}throw new Error(`ArgumentError: unsupported operand in ASSERT expression: ${e.type}`)}async function $n(e,t,n,r,i=!1){let o=[e.from,...e.joins.map(u=>u.table)],a=i||Ze(e.where)?[...new Set(o.filter(u=>u.cteName===null).map(u=>u.appId))]:[],s=new Map(await Promise.all(a.map(async u=>{let f=await ee(u,t,n);return[u,new Map(f.map(E=>[E.code,E]))]}))),l=new Set,d=u=>{if(Array.isArray(u)){u.forEach(d);return}if(u===null||typeof u!="object")return;let f=u;if(f.type!=="SELECT"){if(f.type==="BINARY"&&[">","<",">=","<="].includes(String(f.op))){let E=f.left;E?.type==="FIELD"&&typeof E.field=="string"&&l.add(E.field)}Object.values(f).forEach(d)}};d(e.where),d(e.having);for(let u of e.columns)u.type==="CASE_COL"&&d(u.expr);let p=new Map;await Promise.all([...s].map(async([u,f])=>{if(![...l].some(h=>f.get(h)?.fieldType==="STATUS"))return;let R=await Wl(u,t,n);R&&p.set(u,R)}));let c=(u,f,E)=>{if(f==="$id")return Pn(X({fieldType:"__ID__"}),u.appId,"$id");if(E&&u.subtableCode){if(f==="_rid")return B("string");if(f==="_idx"||f==="_pid")return B("number")}let R=s.get(u.appId)?.get(ge(u,f));if(!R)return;let h=R.semantics??X(R),m=R.fieldType==="STATUS"&&p.has(u.appId)?{...h,optionOrder:p.get(u.appId)}:h;return Pn(m,u.appId,R.code)};return u=>{if(u.tableAlias!==null){if(u.tableAlias==="_p"&&e.from.subtableCode&&e.from.cteName===null)return c(e.from,u.field,!1);let E=o.find(R=>Oe(R)===u.tableAlias);return E?E.cteName!==null?r?.get(E.cteName)?.columnMeta?.get(u.field)?.semantics??B("string"):c(E,u.field,!0):void 0}if(e.joins.length===0)return e.from.cteName!==null?r?.get(e.from.cteName)?.columnMeta?.get(u.field)?.semantics??B("string"):c(e.from,u.field,!0);let f=o.flatMap(E=>{let R=E.cteName!==null?r?.get(E.cteName)?.columnMeta?.get(u.field)?.semantics:c(E,u.field,!0);return R?[R]:[]});if(f.length===1)return f[0];if(!o.some(E=>ko(E,u.field)!==void 0))return f.length>1?B("string"):void 0}}function Dl(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=>Ze(i.condition))?!0:Object.values(r).some(t)};return e.columns.some(t)}function ef(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(Ye(r.field)):r.type==="ARITH_COL"||r.type==="ARITH_AGG_COL"||r.type==="WINDOW_COL"?i=B("number"):r.type==="AGGREGATE"?r.func==="MIN"||r.func==="MAX"||r.func==="MODE"?r.arg.type!=="WILDCARD"&&(i=Kl(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=nn(r.expr).semantics:(r.type==="LITERAL_COL"||r.type==="SCALAR_SUBQUERY_COL"||r.type==="CASE_COL"||r.type==="SCALAR_VALUE_COL")&&(i=B("string")),i&&n.set(r.alias,i)}return r=>r.tableAlias===null&&n.has(r.field)?n.get(r.field):t(r)}async function qr(e,t,n,r){if(e.where===null)return Ce(null,()=>{});let i=await $n(e,t,n,r);return Ce(e.where,i)}function Zt(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 Ko(e){return e.orderBy.length>0||e.columns.some(t=>t.type==="WINDOW_COL"&&t.orderBy.length>0)}async function tf(e,t,n){if(e.subtableCode||e.type==="UPDATE"&&e.from!=null)return{capability:"LOCAL_ONLY",reasons:[{code:"WHERE_EXPRESSION_LOCAL_ONLY"}]};let r=Ze(e.where)?await ee(e.appId,t,n):[],i=new Map(r.map(o=>[o.code,o]));return e.where.type==="BOOLEAN"&&e.where.value===!1?Ce(null,()=>{}):Ce(e.where,o=>{if(o.field==="$id")return X({fieldType:"__ID__"});let a=i.get(o.field);return a?.semantics??(a?X(a):void 0)})}async function xn(e,t,n){if(e.subtableCode||e.type==="UPDATE"&&e.from!=null)return;let r=await tf(e,t,n);if(r.capability!=="EXACT_PUSHDOWN")throw new Q(`WHERE predicate cannot be represented by kintone REST (${Zt(r)})`)}async function vt(e,t,n,r,i,o=!1,a=!1){let s;if(await zo(e,t,r,i),ag(e))return s=ug(e),o&&Ee.set(s,await Vo(e,s.columns,t,r,i,a)),s;let l=await vl(e,t,r,i);await _f(e,t,n,r,i);let d=Ig(e,await qr(e,t,r,i));if(d.capability==="UNSUPPORTED")throw new Error(`ArgumentError: WHERE predicate is unsupported (${Zt(d)}).`);let p=_e(e),c,u;if(d.capability==="SUPERSET_PREFILTER"){let g=await $n(e,t,r,i),S=Gs(e,g);S.eligible&&Bs(e,S)&&(c=S.plan)}if(c===void 0&&d.capability==="EXACT_PUSHDOWN"&&e.where!==null){let g=null;try{g=G(e.where)}catch{g=null}u=Ii({select:e,selectMode:p,capability:d,context:{allowFullScanExact:!0},serializedWholeWhere:g,relativeFunctionNames:ue(e.where)})??void 0,u&&(c=u.prefilterPlan)}let f=d.capability==="EXACT_PUSHDOWN"?p:"FULL_SCAN",E=await Jr(e,t,r,i),R=Ko(e)?(e.orderMode==="KINTONE_NATIVE"?Dr:_r)({stmt:e,staticMode:f,whereCapability:d.capability,whereReasons:d.reasons,orderSemantics:E.semantics,maxRecords:n.maxRecords??1e4,hasKlike:pe(e.where)}):null;await pg(e,R?.kind==="CANONICAL_LOCAL"?"FULL_SCAN":f,t,r);let h=Ul(e,n,R),y=u!==void 0&&(p==="FULL_SCAN"||R?.kind==="CANONICAL_LOCAL")?Cl(t,{aborted:!1},!0):t;try{f==="SIMPLE"?s=await cg(e,y,h.effectiveOptions,r,R,E):s=await Pg(e,y,h.effectiveOptions,r,i,d.capability==="EXACT_PUSHDOWN"&&c===void 0,E,c,l)}catch(g){nf(h,g)}return o&&Ee.set(s,await Vo(e,s.columns,t,r,i,a)),s}async function vl(e,t,n,r){if(e.groupBy.length===0)return;let i=[e.from,...e.joins.map(d=>d.table)],o=await Promise.all(i.map(async d=>{if(d.cteName!==null){let f=r?.get(d.cteName);if(!f)throw new Error(`InternalError: materialized schema ${d.cteName} is not available for GROUP BY planning.`);return{kind:"MATERIALIZED",columns:f.columns}}let p=await ee(d.appId,t,n);if(!d.subtableCode)return{kind:"APP",fieldCodes:p.filter(f=>!f.inSubtable).map(f=>f.code)};let c=p.filter(f=>f.inSubtable&&f.subtableCode===d.subtableCode);return{kind:"SUBTABLE",childFieldCodes:(c.length>0?c:p.filter(f=>f.inSubtable&&f.subtableCode===void 0)).map(f=>f.code),parentFieldCodes:p.filter(f=>!f.inSubtable).map(f=>f.code)}})),a=Kp(e,(d,p)=>o[p]),s=e.groupBy,l=Bp(s,e.columns,a);return ng(e,s,l),l}function ng(e,t,n){let r=[e.from,...e.joins.map(a=>a.table)].flatMap(a=>a.cteName===null?[a.appId]:[]),i=[...new Set(r)],o=i.length===1?i[0]:e.from.cteName===null?e.from.appId:null;n.items.forEach((a,s)=>{if(a.kind==="EXPRESSION"||a.kind==="PHYSICAL"||a.kind==="ALIAS_SAFE")return;let l=t[s],d=l?.type==="FIELD_NAME"?l.name:"(expression)";if(a.kind==="UNKNOWN"){let p=o===null?"":` (APP${o})`;throw new Error(`ArgumentError: unknown field code(s): ${a.name}${p}`)}throw a.kind==="ALIAS_REJECT"?a.reason==="DUPLICATE"?new Error(`ArgumentError: GROUP BY alias ${d} is ambiguous across multiple SELECT columns (reason=GROUP_BY_ALIAS_AMBIGUOUS).`):a.reason==="POST_GROUP_ONLY"?new Error(`ArgumentError: GROUP BY alias ${d} requires post-group evaluation (reason=GROUP_BY_ALIAS_POST_GROUP_ONLY).`):new Error(`ArgumentError: GROUP BY alias ${d} depends on aggregate evaluation (reason=GROUP_BY_ALIAS_AGGREGATE).`):new Error(`InternalError: deferred GROUP BY field ${a.name} reached runtime planning.`)})}var zr=new WeakMap;async function rg(e,t,n){let r=new Set,i=async o=>{if(o===null||typeof o!="object"||r.has(o))return;if(r.add(o),Array.isArray(o)){for(let s of o)await i(s);return}let a=o;a.type==="SELECT"&&await zo(o,t,n);for(let s of Object.values(a))await i(s)};await i(e)}async function ig(e,t,n,r){let i=[e.from,...e.joins.map(p=>p.table)],o=i.filter(p=>p.cteName===null),a=new Map(await Promise.all([...new Set(o.map(p=>p.appId))].map(async p=>{let c=await ee(p,t,n);return[p,new Map(c.map(u=>[u.code,u]))]}))),s=(p,c)=>{if(c==="$id")return"$id";let u=ge(p,c);return a.get(p.appId)?.has(u)?u:null},l=(p,c)=>{if(p.cteName===null)return!1;let u=r?.get(p.cteName);return u?u.columns.includes(c):!0},d=(p,c,u,f)=>{let E=i.filter(m=>m.cteName===null&&s(m,u.field)!==null).length,R=i.some(m=>l(m,u.field)),h=Oe(p);return{canonicalId:`source:${c}:APP${p.appId}:${f}`,directKey:u.tableAlias&&h?`${u.tableAlias}.${u.field}`:u.field,unqualifiedBridgeKey:E===1&&!R?u.field:null,physical:!0}};return p=>{if(p.tableAlias!==null){let f=i.findIndex(h=>Oe(h)===p.tableAlias);if(f<0)throw new Error(`ArgumentError: B65 field ${p.tableAlias}.${p.field} has an unknown table alias.`);let E=i[f];if(E.cteName!==null)throw new Error(`ArgumentError: B65 field ${p.tableAlias}.${p.field} resolves to materialized source ${E.cteName}; physical APP fields are required.`);let R=s(E,p.field);if(R===null)throw new Error(`ArgumentError: B65 field ${p.tableAlias}.${p.field} does not exist in APP${E.appId}.`);return d(E,f,p,R)}let c=i.flatMap((f,E)=>{if(f.cteName!==null)return[];let R=s(f,p.field);return R===null?[]:[{table:f,tableIndex:E,code:R}]}),u=i.filter(f=>l(f,p.field));if(c.length+u.length>1)throw new Error(`ArgumentError: B65 field ${p.field} is ambiguous across multiple sources.`);if(c.length===1&&u.length===0){let f=c[0];return d(f.table,f.tableIndex,p,f.code)}throw u.length===1?new Error(`ArgumentError: B65 field ${p.field} resolves to a materialized CTE/temp column; physical APP fields are required.`):new Error(`ArgumentError: B65 field ${p.field} does not exist in a physical APP source.`)}}async function zo(e,t,n,r){zr.delete(e);let i=ne(e),o=JSON.stringify(e.columns).includes('"GROUPING_')||JSON.stringify(e.orderBy).includes('"GROUPING_');if(i.type==="NONE"&&!o)return;let a=await ig(e,t,n,r),s=oc(e,a,ic);s&&zr.set(e,s)}function og(e){let t=[...e].join(", "),n=[["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.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 Ul(e,t,n){let r=e.type==="SELECT"&&(n?.kind==="CANONICAL_REST_TOP_N"||n?.kind==="KORDER_NATIVE"||n?.kind==="KORDER_CURSOR")?gt({...e,orderBy:[]}):gt(e),i=r.size>0&&t.onLimitReached==="truncate";return{reasons:r,effectiveOptions:i?{...t,onLimitReached:"error"}:t,truncateWasDisabled:i}}function nf(e,t){throw e.reasons.size>0&&t instanceof Pe&&!t.completeInputWrapped?new Pe(og(e.reasons)+(e.truncateWasDisabled?"onLimit=truncate\u306F\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093\u3002":"")+t.message,!0):t}async function ll(e,t){try{return await t()}catch(n){nf(e,n)}}function Rt(e){return e?.type==="BOOLEAN"&&e.value===!1}function ag(e){return e.from.appId===0&&e.from.cteName===qe}function Bo(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"?Bo(e.left)||Bo(e.right):e.type==="STRING_FUNC"?kl(e):!1}function sg(e){return e.type==="AGG_REF"||e.type==="AGG_ARITH"?!0:Gr(e)}function Gr(e){return e.type==="FIELD"?!0:e.type==="STRING_FUNC"?kl(e):e.type==="SCALAR_ARITH"||e.type==="CONCAT_OP"?Gr(e.left)||Gr(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"?Bo(n):Gr(n))):!1}function kl(e){return e.args.some(t=>sg(t))}function lg(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(Bo(t.expr))throw new Error("ArgumentError: field reference is not allowed without FROM.");break;case"STRFUNC_COL":if(kl(t.expr))throw new Error("ArgumentError: field reference is not allowed without FROM.");break;case"SCALAR_VALUE_COL":if(Gr(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 ug(e){if(e.joins.length>0||e.where||ne(e).type!=="NONE"||e.having||e.orderBy.length>0||e.distinct)throw new Error("ArgumentError: JOIN/WHERE/GROUP BY/HAVING/ORDER BY/DISTINCT are not supported without FROM.");lg(e);let t=Ds([{}],e.columns),{rows:n,columns:r}=vr(t,e.columns),i=So(n,e.limit,e.offset);return{type:"SELECT",rows:i,columns:r,rowCount:i.length,warnings:[]}}async function cg(e,t,n,r,i,o){let a=i?.kind==="CANONICAL_REST_TOP_N"?lf(e):e,s=Si(a),l=i?.kind==="CANONICAL_LOCAL"?Kt(e,e.from):s.fields,d=await xl(e,t,r),p=Bl(e,d),c=e.columns.some(I=>I.type==="CASE_COL")?await $n(e,t,r,void 0,Dl(e)):void 0,u=n.maxRecords??1e4,f=new Set,E=n.onLimitReached??"error",R=n.fetchParallel??1,h=e.orderBy.length>0?i?.kind==="CANONICAL_REST_TOP_N"||i?.kind==="KORDER_NATIVE"||i?.kind==="KORDER_CURSOR":e.limit!==null&&e.limit<=500,m=e.limit===null?null:(e.offset??0)+e.limit,y=e.orderBy.length===0&&m!==null&&m<=u&&!pe(e.where)?m:void 0,g;if((i?.kind==="KORDER_NATIVE"||i?.kind==="KORDER_CURSOR")&&e.limit===0)g=[];else if(i?.kind==="KORDER_CURSOR"){let I=await Fp({client:t,app:s.app,fields:s.fields,query:ws(e),offset:e.offset??0,limit:e.limit});g=I.records,I.cleanupWarning&&f.add(I.cleanupWarning)}else if(h)g=(await t.getRecords({app:s.app,query:s.query,fields:s.fields})).records;else{let I=e.where?G(e.where):"";g=await Ie(t.getRecords,s.app,I,l,{parallel:R,maxRecords:u,stopAfter:y,onLimit:E,onTruncate:v=>{f.add(`\u53D6\u5F97\u4E0A\u9650\uFF08${v} \u4EF6\uFF09\u306B\u9054\u3057\u305F\u305F\u3081\u3001${v} \u4EF6\u3067\u6253\u3061\u5207\u3063\u3066\u8868\u793A\u3057\u3066\u3044\u307E\u3059\u3002`),Nl(t,e.from.appId)}})}let S=g.map(I=>dt(I,null));h||(S=Ls(S,e.orderBy,o.optionOrders,o.sortKinds,o.semantics,_s(e.columns,void 0,p.row,c)),S=So(S,e.limit,e.offset));let{rows:P,columns:b}=vr(S,e.columns,void 0,p.row,void 0,c),L=await Gl(e,P,b,t,r);return{type:"SELECT",rows:P,columns:L,rowCount:P.length,warnings:[...f]}}async function pg(e,t,n,r){let i=new Map,o=(a,s)=>{if(s.length===0)return;let l=i.get(a);l||(l=new Set,i.set(a,l));for(let d of s)l.add(d)};if(t==="SIMPLE"){let a=Si(e);o(a.app,a.fields)}else{let a=[e.from,...e.joins.map(s=>s.table)].filter(s=>s.cteName===null);for(let s of a)o(s.appId,Kt(e,s))}for(let[a,s]of i.entries()){let l=[...s].filter(u=>!bs(u));if(l.length===0)continue;let d=await ee(a,n,r);if(d.length===0)continue;let p=new Set(d.map(u=>u.code)),c=l.filter(u=>!p.has(u));if(c.length>0)throw new Error(`ArgumentError: unknown field code(s): ${c.join(", ")} (APP${a})`)}}function _d(e){return e.cteName??`APP${e.appId}`}function dg(e){return e.alias?[e.alias]:e.cteName!==null?[e.cteName]:[`APP${e.appId}`,`app${e.appId}`]}function fg(e,t){return bs(t)||e.validCodes.has(t)}function el(e,t){return e.table.cteName!==null?e.validCodes.has(t):fg(e,t)}function Eg(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 Rg(e,t,n,r){let i=[e.from,...e.joins.map(p=>p.table)],o=new Map,a=new Set;for(let p of i){let c=Oe(p);if(c!==null){if(a.has(c))throw new Error(`ArgumentError: effective alias ${c} is used by multiple tables.`);a.add(c)}}for(let p of i){if(p.cteName===null||p.cteName===qe)continue;let c=n.get(p.cteName);if(!c)throw new Error(`ArgumentError: materialized source ${p.cteName} is not available.`);if(c.rows.length>0&&c.columns.length===0)throw new Error(`InternalError: materialized source ${p.cteName} has rows but no column schema.`);if(e.joins.length>0&&c.rows.length===0&&c.columns.length===0)throw new Error(`ArgumentError: column schema is unavailable for materialized JOIN source ${p.cteName}.`);o.set(p,c)}let s=new Map;await Promise.all(i.map(async p=>{let c=o.get(p);if(c){s.set(p,{table:p,label:_d(p),validCodes:new Set(c.columns),authoritative:!0,schemaUnavailable:c.rows.length===0&&c.columns.length===0});return}if(p.cteName===qe)return;let u=await ee(p.appId,t,r);s.set(p,{table:p,label:_d(p),validCodes:new Set(u.map(f=>f.code)),authoritative:u.length>0,schemaUnavailable:!1})}));let l=new Map;for(let p of s.values())for(let c of dg(p.table))l.set(c,p);for(let p of e.joins)for(let c of[p.on.left,p.on.right]){if(!c.tableAlias)continue;let u=l.get(c.tableAlias);if(u&&u.table.cteName!==null&&!u.schemaUnavailable&&!el(u,c.field))throw new Error(`ArgumentError: JOIN key ${c.tableAlias}.${c.field} is not available in the materialized table.`)}let d=Vu(e);for(let[p,c]of d.bySource){let u=s.get(p);if(!u||u.schemaUnavailable||!u.authoritative)continue;let f=[...c].filter(E=>!el(u,E));if(f.length>0)throw new Error(`ArgumentError: unknown field code(s): ${f.join(", ")} (${u.label})`)}for(let p of d.unqualified){let c=[...s.values()].filter(f=>!f.schemaUnavailable);if(c.some(f=>el(f,p))||[...s.values()].some(f=>f.schemaUnavailable)||c.some(f=>f.table.cteName===null&&!f.authoritative))continue;let u=c.map(f=>f.label).join(", ");throw new Error(`ArgumentError: unknown field code(s): ${p} (${u})`)}}async function Uo(e,t,n,r,i=new Set){if(!i.has(e)){if(i.add(e),e.type==="UNION"){await Uo(e.left,t,n,r,i),await Uo(e.right,t,n,r,i);return}await Rg(e,t,n,r);for(let o of Eg(e))await Uo(o,t,n,r,i)}}function rf(e){return e.where===null||e.from.subtableCode||e.from.cteName!==null?null:e.joins.length===0?ir(e.where,{tableAlias:e.from.alias??void 0,allowUnqualifiedFields:!0}):e.from.alias?ir(e.where,{tableAlias:e.from.alias}):null}var Ml=new WeakMap;function Jo(e,t){if(e.joins.length===0||e.where===null||e.joins.some(c=>c.type!=="INNER"))return null;let n=[e.from,...e.joins.map(c=>c.table)];if(n.some(c=>c.alias===null||c.cteName!==null||!!c.subtableCode))return null;let r=n.map(c=>({alias:c.alias,appId:c.appId,sourceKind:"APP",fieldTypes:new Map([...t.fieldTypesByApp.get(c.appId)??new Map,["$id","__ID__"]]),fieldOptions:t.fieldOptionsByApp.get(c.appId)})),i=Op(e.where,r),o=Lp(i,r),a=new Map,s=new Map;for(let[c,u]of o.fetchQueriesByAlias)s.set(c,u);for(let c of o.items)s.has(c.targetAlias)||s.set(c.targetAlias,Un(c,r)),a.set(c.targetAlias,c.predicate);let l=e.from.alias,d=a.get(l)??null,p=new Map(a);return p.delete(l),{joinPlan:o,queriesByAlias:s,mainCondition:d,joinConditions:p,appliedKlikes:o.appliedKlikes,allKlikes:o.allKlikes}}async function Xo(e,t,n){let r=new Map,i=(s,l)=>{if(l===null)return;let d=r.get(s);d?d.push(l):r.set(s,[l])};if(i(e.from.appId,rf(e)),e.joins.length>0&&e.where!==null&&e.joins.every(s=>s.type==="INNER")&&[e.from,...e.joins.map(s=>s.table)].every(s=>s.alias!==null&&s.cteName===null&&!s.subtableCode)){i(e.from.appId,e.where);for(let s of e.joins)i(s.table.appId,e.where)}if(e.where!==null)for(let s of e.joins){if(!s.table.alias||s.table.subtableCode||s.table.cteName!==null)continue;let l=ir(e.where,{tableAlias:s.table.alias});i(s.table.appId,l)}let a=await Promise.all([...r.entries()].map(async([s,l])=>{let[d,p]=await Promise.all([Ae(s,t,n),_g(s,t,n)]),c=mg(l).filter(u=>d.get(u)==="STATUS");if(c.length>0){let u=await Zo(s,t,n);if(u.enable&&u.states&&u.states.length>0){let f=new Set(u.states.map(E=>E.name));for(let E of c)p.set(E,f)}}return[s,d,p]}));return{fieldTypesByApp:new Map(a.map(([s,l])=>[s,l])),fieldOptionsByApp:new Map(a.map(([s,,l])=>[s,l]))}}function mg(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 Et(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"&&$o(e.left.expr,t),e.right.type==="CASE_VALUE"&&$o(e.right.expr,t);return;case"LOGICAL":Et(e.left,t),Et(e.right,t);return;case"NOT":case"GROUP":Et(e.expr,t);return;case"NULL_CHECK":case"EXISTS":case"BOOLEAN":return}}function $o(e,t){for(let n of e.branches)Et(n.condition,t)}function yg(e){let t=[];Et(e.where,t),Et(e.having,t);for(let n of e.columns)n.type==="CASE_COL"&&$o(n.expr,t);return t}function Oe(e){return e.alias??e.cteName}function of(e,t){return[e.from,...e.joins.map(n=>n.table)].find(n=>Oe(n)===t)}function Fl(e){return[e.from,...e.joins.map(t=>t.table)].filter(t=>t.cteName===null)}async function xl(e,t,n){let r=yg(e);if(r.length===0)return new Map;let i=new Set,o=Fl(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=of(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 Ae(s,t,n)]));return new Map(a)}function Ye(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 af(e,t,n){e!=="MIN"&&e!=="MAX"&&e!=="MODE"||t.type==="WILDCARD"||zt(t,n)}function zt(e,t){if(e.type==="FIELD_REF"){t.push(Ye(e.field));return}if(e.type==="FIELD"){t.push(e);return}if(e.type==="ARITH"){zt(e.left,t),zt(e.right,t);return}if(e.type==="SCALAR_ARITH"||e.type==="CONCAT_OP"){zt(e.left,t),zt(e.right,t);return}if(e.type==="STRING_FUNC"){for(let n of e.args)n.type!=="AGG_REF"&&n.type!=="AGG_ARITH"&&zt(n,t);return}if(e.type==="CASE_WHEN")for(let n of[...e.branches.map(r=>r.result),...e.elseResult?[e.elseResult]:[]])n.type!=="ARRAY"&&zt(n,t)}function Go(e,t){if(e.type==="AGG_REF"){af(e.func,e.arg,t);return}e.type==="AGG_ARITH"&&(Go(e.left,t),Go(e.right,t))}function ul(e,t){for(let n of e.args)n.type==="AGG_REF"||n.type==="AGG_ARITH"?Go(n,t):Vr(n,t)}function Vr(e,t){if(e.type==="STRING_FUNC"){ul(e,t);return}if(e.type==="SCALAR_ARITH"||e.type==="CONCAT_OP"){Vr(e.left,t),Vr(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"?ul(r,t):r.type!=="ARRAY"&&r.type!=="FIELD_REF"&&r.type!=="ARITH"&&Vr(r,t)}}function hg(e){let t=[];for(let n of e)n.type==="AGGREGATE"?af(n.func,n.arg,t):n.type==="ARITH_AGG_COL"?Go(n.expr,t):n.type==="STRFUNC_COL"?ul(n.expr,t):n.type==="SCALAR_VALUE_COL"&&Vr(n.expr,t);return t}var gg=new Set(["SINGLE_LINE_TEXT","MULTI_LINE_TEXT","RICH_TEXT","LINK","DROP_DOWN","RADIO_BUTTON","STATUS","DATE","TIME","DATETIME","CREATED_TIME","UPDATED_TIME"]);function Ag(e){return e.sortKind!==void 0?e.sortKind:e.fieldType==="NUMBER"||e.fieldType==="RECORD_NUMBER"?"number":gg.has(e.fieldType)?"string":void 0}async function sf(e,t,n,r){let i=hg(e.columns);if(i.length===0)return;let o=new Set,a=Fl(e);for(let f of i)if(f.tableAlias!==null){if(f.tableAlias==="_p"&&e.from.subtableCode&&e.from.cteName===null){o.add(e.from.appId);continue}let E=of(e,f.tableAlias);E&&E.cteName===null&&o.add(E.appId)}else if(e.joins.length===0)e.from.cteName===null&&o.add(e.from.appId);else for(let E of a)o.add(E.appId);let s=new Map(await Promise.all([...o].map(async f=>{let E=await ee(f,t,n);return[f,new Map(E.map(R=>[R.code,R]))]}))),l=new Map,d=new Set(i.map(f=>f.field));await Promise.all([...s].map(async([f,E])=>{if(![...d].some(h=>E.get(h)?.fieldType==="STATUS"))return;let R=await Wl(f,t,n);R&&l.set(f,R)}));let p=[e.from,...e.joins.map(f=>f.table)],c=(f,E)=>{let R=f.semantics??X(f);return f.fieldType==="STATUS"&&l.has(E)?{...R,optionOrder:l.get(E)}:R};return f=>{let E;if(f.tableAlias!==null)if(f.tableAlias==="_p"&&e.from.subtableCode&&e.from.cteName===null)E=s.get(e.from.appId)?.get(f.field);else{let h=p.find(m=>Oe(m)===f.tableAlias);if(!h)return;if(h.cteName!==null)return r?.get(h.cteName)?.columnMeta?.get(f.field)?.semantics??B("string");E=s.get(h.appId)?.get(ge(h,f.field))}else if(e.joins.length===0){if(e.from.cteName!==null)return r?.get(e.from.cteName)?.columnMeta?.get(f.field)?.semantics??B("string");E=s.get(e.from.appId)?.get(ge(e.from,f.field))}else{let h=p.flatMap(m=>{if(m.cteName!==null){let g=r?.get(m.cteName);return g?.columns.includes(f.field)?[g.columnMeta?.get(f.field)?.semantics??B("string")]:[]}let y=s.get(m.appId)?.get(ge(m,f.field));return y?[c(y,m.appId)]:[]});return h.length!==1?void 0:h[0]}if(!E)return;let R=f.tableAlias!==null?p.find(h=>Oe(h)===f.tableAlias):e.joins.length===0?e.from:void 0;return c(E,R?.appId??e.from.appId)}}function ge(e,t){return e.subtableCode&&t.startsWith("_p.")?t.slice(3):t}function ko(e,t){if(e.subtableCode){if(t==="_rid")return"SINGLE_LINE_TEXT";if(t==="_idx"||t==="_pid")return"NUMBER"}}function nt(e,t){let n=e.semantics??X(e);return{sortKind:Ag(e),fieldType:e.fieldType,semantics:t===void 0?n:Pn(n,t,e.code)}}function lf(e){return e.orderBy.some(n=>n.key.type==="FIELD_NAME"&&n.key.name==="$id")?e:{...e,orderBy:[...e.orderBy,{key:{type:"FIELD_NAME",name:"$id"},direction:"ASC"}]}}function q(e){return{sortKind:e,semantics:B(e)}}function it(){return{semantics:B("string","KSQL_UNKNOWN")}}function uf(e="KSQL_ARRAY"){return{semantics:{fieldType:e,compareMode:"unsupported",inSubtable:!1,requiresCollectionOperators:!1}}}function Jt(e){if(e==="$id")return{sortKind:"number",fieldType:"__ID__",semantics:X({fieldType:"__ID__"})};if(e==="_rid")return q("string");if(e==="_pid"||e==="_idx"||e==="$revision")return q("number")}var Sg=new Set(["LENGTH","LENGTH_CHAR","INSTR","ROUND","FLOOR","CEIL","TRUNCATE","YEAR","MONTH","DAY","DATEDIFF","ABS","MOD","POWER","SQRT","DAYOFWEEK","QUARTER","WEEK"]);function nn(e){if(e.func==="CAST"){let t=e.args[1];return t?.type==="STRING"&&t.value==="NUMBER"?q("number"):q("string")}return Sg.has(e.func)?q("number"):q("string")}function Bn(e,t){return e.type==="STRING"?q("string"):e.type==="ARRAY"?uf():e.type==="NUMBER"||e.type==="ARITH"||e.type==="SCALAR_ARITH"?q("number"):e.type==="STRING_FUNC"?nn(e):e.type==="FIELD_REF"?t(Ye(e.field))??it():e.type==="FIELD"?t(e)??it():it()}function Qo(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&&ki(n(r.semantics),n(t.semantics)))?e.every(i=>ki(i.semantics,t.semantics))?t:{...t,semantics:n(t.semantics)}:e.some(r=>r.semantics?.compareMode==="unsupported")?uf("KSQL_MIXED_UNSUPPORTED"):it()}function Kl(e,t){if(e.type==="FIELD_REF")return t(Ye(e.field))??it();if(e.type==="FIELD")return t(e)??it();if(e.type==="NUMBER"||e.type==="ARITH"||e.type==="SCALAR_ARITH")return q("number");if(e.type==="STRING"||e.type==="CONCAT_OP"||e.type==="VARIABLE")return q("string");if(e.type==="STRING_FUNC")return nn(e);let n=e.branches.map(r=>Bn(r.result,t));return e.elseResult&&n.push(Bn(e.elseResult,t)),Qo(n)}function Tg(e){return e.columns.some(t=>t.type==="FIELD"||t.type==="WILDCARD"||t.type==="PARENT_WILDCARD"||t.type==="CASE_COL"||t.type==="AGGREGATE"&&(t.func==="MIN"||t.func==="MAX"||t.func==="MODE"))}async function Vo(e,t,n,r,i,o=!1){let a=new Map;Tg(e)&&await Promise.all(Fl(e).map(async R=>{if(a.has(R.appId))return;let h=await ee(R.appId,n,r);a.set(R.appId,new Map(h.map(m=>[m.code,m])))}));let s=[e.from,...e.joins.map(R=>R.table)],l=o&&i===void 0&&s.every(R=>R.cteName===null),d=R=>{if(R.tableAlias!==null){if(R.tableAlias==="_p"&&e.from.subtableCode&&e.from.cteName===null){let g=a.get(e.from.appId)?.get(R.field);return g?nt(g,e.from.appId):void 0}let m=s.find(g=>Oe(g)===R.tableAlias);if(!m)return;if(m.cteName!==null)return i?.get(m.cteName)?.columnMeta?.get(R.field);let y=a.get(m.appId)?.get(ge(m,R.field));return y?nt(y,m.appId):Jt(R.field)}if(e.joins.length===0){if(e.from.cteName!==null)return i?.get(e.from.cteName)?.columnMeta?.get(R.field);let m=a.get(e.from.appId)?.get(ge(e.from,R.field));return m?nt(m,e.from.appId):Jt(R.field)}let h=s.flatMap(m=>{if(m.cteName!==null){let S=i?.get(m.cteName);return S?.columns.includes(R.field)?[S.columnMeta?.get(R.field)]:[]}let y=a.get(m.appId)?.get(ge(m,R.field)),g=y?nt(y,m.appId):Jt(R.field);return g?[g]:[]});return h.length===1?h[0]:void 0},p=R=>{if(!l)return;let h=s.filter(m=>{if(R.tableAlias!==null&&Oe(m)!==R.tableAlias)return!1;let y=ge(m,R.field);return a.get(m.appId)?.has(y)===!0||Jt(R.field)!==void 0});return h.length===1?h[0].appId:void 0},c=(R,h)=>{let m=p(h);return R&&m!==void 0?{...R,publicSourceApp:m}:R},u=new Map,f=e.columns.some(R=>R.type==="WILDCARD"||R.type==="PARENT_WILDCARD");if(e.columns.length===1&&(e.columns[0].type==="WILDCARD"||e.columns[0].type==="PARENT_WILDCARD")){for(let R of t){let h=Ye(R),m=c(d(h),h);m&&u.set(R,m)}return u}if(f)for(let R of t){let h=Ye(R),m=c(d(h),h);m&&u.set(R,m)}return e.columns.filter(R=>R.type!=="WILDCARD"&&R.type!=="PARENT_WILDCARD").forEach((R,h)=>{let m=f?"alias"in R&&R.alias?R.alias:void 0:t[h];if(!m)return;let y;if(R.type==="FIELD"){let g=Ye(R.field);y=c(d(g),g)}else if(R.type==="AGGREGATE")R.func==="GROUP_CONCAT"?y=q("string"):R.func==="COUNT"||R.func==="SUM"||R.func==="AVG"||R.func==="STDDEV_POP"||R.func==="STDDEV_SAMP"||R.func==="VAR_POP"||R.func==="VAR_SAMP"||R.func==="MEDIAN"?y=q("number"):(R.func==="MIN"||R.func==="MAX"||R.func==="MODE")&&R.arg.type!=="WILDCARD"&&(y=Kl(R.arg,d));else if(R.type==="ARITH_AGG_COL"||R.type==="ARITH_COL")y=q("number");else if(R.type==="GROUPING_COL")y=q("number");else if(R.type==="LITERAL_COL")y=q("string");else if(R.type==="SCALAR_VALUE_COL"){let g=R.expr;g.type==="STRING_FUNC"?y=nn(g):g.type==="NUMBER"||g.type==="SCALAR_ARITH"?y=q("number"):g.type==="FIELD"?y=d(g):y=q("string")}else if(R.type==="STRFUNC_COL")y=nn(R.expr);else if(R.type==="WINDOW_COL")y=q("number");else if(R.type==="CASE_COL"){let g=R.expr.branches.map(S=>Bn(S.result,d));R.expr.elseResult&&g.push(Bn(R.expr.elseResult,d)),y=Qo(g)}else R.type==="SCALAR_SUBQUERY_COL"&&(y=it());y&&u.set(m,y)}),u}function cf(e,t){let n=Ee.get(e),r=Ee.get(t),i=new Map;return e.columns.forEach((o,a)=>{let s=n?.get(o),l=t.columns[a],d=l===void 0?void 0:r?.get(l);if(s&&d){let p=Qo([s,d]),c=s.publicSourceApp===d.publicSourceApp?s.publicSourceApp:void 0,{publicSourceApp:u,...f}=p;i.set(o,c===void 0?f:{...f,publicSourceApp:c})}else(s||d)&&i.set(o,it())}),i}function Bl(e,t){let n=[e.from,...e.joins.map(s=>s.table)],r=n.filter(s=>s.cteName===null),i=new Set(e.columns.map(s=>"alias"in s?s.alias:null).filter(s=>s!==null)),o=s=>{if(s.tableAlias!==null){if(s.tableAlias==="_p"&&e.from.subtableCode&&e.from.cteName===null)return t.get(e.from.appId)?.get(s.field);let d=n.find(p=>Oe(p)===s.tableAlias);return!d||d.cteName!==null?void 0:ko(d,s.field)??t.get(d.appId)?.get(ge(d,s.field))}if(e.joins.length===0)return e.from.cteName!==null?void 0:ko(e.from,s.field)??t.get(e.from.appId)?.get(ge(e.from,s.field));if(n.some(d=>d.cteName!==null))return;let l=r.flatMap(d=>{let p=ko(d,s.field)??t.get(d.appId)?.get(ge(d,s.field));return p?[p]:[]});return l.length===1?l[0]:void 0};return{row:o,having:s=>{if(!(s.tableAlias===null&&i.has(s.field)))return o(s)}}}var pf=new WeakSet,df=new WeakMap;function cl(e){return pf.add(e),e}function Ig(e,t){return df.set(e,t),t}function ff(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&&ne(e).type==="NONE"&&e.having===null&&e.joins.length===0&&e.from.cteName===null&&!e.from.subtableCode&&e.limit===null&&e.offset===null}function wg(e){return typeof e=="string"&&/^(?:0|[1-9]\d*)$/.test(e)}async function bg(e,t){let n=e.columns.find(s=>s.type==="AGGREGATE");if(n?.type!=="AGGREGATE")return null;let r=e.where===null?"":G(e.where),i=await t.getRecords({app:e.from.appId,query:`${r}${r?" ":""}limit 1`,fields:["$id"],totalCount:!0});if(i.searchAborted)throw new tn;if(!wg(i.totalCount))return null;let o=n.alias??"COUNT(*)",a=vr([{[o]:i.totalCount}],e.columns);return{type:"SELECT",rows:a.rows,columns:a.columns,rowCount:1,warnings:[]}}async function Pg(e,t,n,r,i,o=!0,a,s,l){let d=df.get(e);if(pf.has(e)&&d!==void 0&&ff(e,d)){let V=await bg(e,t);if(V!==null)return V}let p=n.maxRecords??1e4,c=new Set,u=n.fetchParallel??1;await Promise.all([ei(e.where,t,n,r,i),ei(e.having,t,n,r,i)]);let[f,E,R]=await Promise.all([Xo(e,t,r),xl(e,t,r),sf(e,t,r,i)]),h=Bl(e,E),m=await $n(e,t,r,i,Ze(e.having)||Dl(e)),y=ef(e,m),g=Ml.get(e);if(g&&!kn(g.joinPlan))throw new Error("InternalError: JOIN server-function fetch binding changed before records API.");let S=g??Jo(e,f)??Tn(e,f);Pa(S);let P="joinPlan"in S?S:null,b=P&&kn(P.joinPlan)?P:null,L=t,I=S.mainCondition,v=S.joinConditions;if(s&&o)throw new Error("internal error: relative-date prefilter must disable original WHERE pushdown.");let w=s?s.prefilterWhere:b?null:I,D=b?.queriesByAlias.get(e.from.alias)??"",M=await vf(e.columns,t,n,r,i),N=Rt(e.where),_=N?Promise.resolve([]):Wr(e,e.from,L,p,u,!0,n.onLimitReached??"error",c,w,b?!1:o,l,D),A=[],C=[];for(let V of e.joins){if(N){A.push({join:V,promise:Promise.resolve([])});continue}let Te=V.table.alias?b?.queriesByAlias.get(V.table.alias)??"":"",pi=b?null:V.table.alias?v.get(V.table.alias)??null:null;pi!==null||Te!==""?A.push({join:V,promise:Wr(e,V.table,L,p,u,!1,n.onLimitReached??"error",c,pi,!0,l,Te)}):C.push(V)}let x=a?Promise.resolve(a):Jr(e,t,r,i);x.catch(()=>{});let O=await _,F=new Map;F.set(e.from.alias,O);for(let{join:V,promise:Te}of A)F.set(V.table.alias,await Te);await Promise.all(C.map(async V=>{let pi=await gf(e,V,F,L,p,u,n.onLimitReached??"error",c,null,l,"")??await Wr(e,V.table,L,p,u,!1,n.onLimitReached??"error",c,null,!0,l,"");F.set(V.table.alias,pi)}));let{optionOrders:j,sortKinds:z,semantics:U}=await x,{rows:k,columns:$}=ks({tables:F,stmt:e,scalarCache:M,optionOrders:j,sortKinds:z,orderSemantics:U,fieldTypeResolver:h.row,fieldSemanticsResolver:m,havingFieldTypeResolver:h.having,havingFieldSemanticsResolver:y,aggregateSortKindResolver:R,appliedKlikes:s?.appliedKlikes??S.appliedKlikes,...s?{residualWhere:s.residualWhere}:b?{residualWhere:b.joinPlan.residualWhere}:{},resolvedGroupingSpec:zr.get(e),plainGroupByPlan:l}),be=await Gl(e,k,$,t,r);return{type:"SELECT",rows:k,columns:be,rowCount:k.length,warnings:[...c]}}async function Ef(e,t,n,r,i=!1,o=!1){let a=Ul(e,n,null);return ll(a,async()=>{let s=a.effectiveOptions,[l,d]=await Promise.all([e.left.type==="UNION"?Ef(e.left,t,s,r,i,o):vt(cl(e.left),t,s,r,void 0,i,o),vt(cl(e.right),t,s,r,void 0,i,o)]),p=l.columns,c=d.columns,u=d.rows.map(h=>{let m={};return p.forEach((y,g)=>{m[y]=h[c[g]??y]??""}),m}),f=[...l.rows,...u],E=e.all?f:Rf(f,p),R={type:"SELECT",rows:E,columns:p,rowCount:E.length};return i&&Ee.set(R,cf(l,d)),R})}function Rf(e,t){let n=new Set;return e.filter(r=>{let i=JSON.stringify(t.map(o=>r[o]??""));return n.has(i)?!1:(n.add(i),!0)})}async function $l(e,t,n,r,i,o=!1){if((i==null||i.size===0)&&It(e))return vt(wt(e),t,n,r,void 0,o,!1);let a=new Map(i??[]);for(let s of e.ctes){let l;s.query.type==="SHOW_APPS"?l=await Of(t):s.query.type==="DESCRIBE"?l=await Lf(s.query,t,r):l=await mt(s.query,t,n,a,r,!0),a.set(s.name,{rows:l.rows,columns:l.columns,columnMeta:Ee.get(l)})}return mt(e.query,t,n,a,r,o)}async function mt(e,t,n,r,i,o=!1,a=!1){if(a||await Uo(e,t,r,i),e.type==="UNION"){let[d,p]=await Promise.all([mt(e.left,t,n,r,i,o,!0),mt(e.right,t,n,r,i,o,!0)]),c=d.columns,u=p.columns,f=p.rows.map(m=>{let y={};return c.forEach((g,S)=>{y[g]=m[u[S]??g]??""}),y}),E=[...d.rows,...f],R=e.all?E:Rf(E,c),h={type:"SELECT",rows:R,columns:c,rowCount:R.length};return o&&Ee.set(h,cf(d,p)),h}if(!(e.from.cteName!=null&&e.from.cteName!==qe||e.joins.some(d=>d.table.cteName!=null)))return vt(e,t,n,i,r,o,!1);let l=await Ng(e,t,n,r,i);return o&&Ee.set(l,await Vo(e,l.columns,t,i,r)),l}async function Ng(e,t,n,r,i){await zo(e,t,i,r);let o=zr.get(e),a=await vl(e,t,i,r),s=new Set,l=k=>{if(k.alias!==null||k.cteName===null)return k;let $=Oe(k);return s.add($),{...k,alias:$}};e={...e,from:l(e.from),joins:e.joins.map(k=>({...k,table:l(k.table)}))};let d=new Set;for(let k of[e.from,...e.joins.map($=>$.table)]){let $=Oe(k);if($!==null){if(d.has($))throw new Error(`ArgumentError: effective alias ${$} is used by multiple tables.`);d.add($)}}let p=k=>{let $=r.get(k);if(!$)throw new Error(`ArgumentError: materialized source ${k} is not available.`);return $};for(let k of[e.from,...e.joins.map($=>$.table)])k.cteName!==null&&p(k.cteName);let c=n.maxRecords??1e4,u=new Set,f=n.fetchParallel??1;await Promise.all([ei(e.where,t,n,i,r),ei(e.having,t,n,i,r),_f(e,t,n,i,r)]);let E=await qr(e,t,i,r);if(E.capability==="UNSUPPORTED")throw new Error(`ArgumentError: WHERE predicate is unsupported (${Zt(E)}).`);let R=await Jr(e,t,i,r),h=Ko(e)?(e.orderMode==="KINTONE_NATIVE"?Dr:_r)({stmt:e,staticMode:"FULL_SCAN",whereCapability:E.capability,whereReasons:E.reasons,orderSemantics:R.semantics,maxRecords:c,hasKlike:pe(e.where)}):null,m=Ul(e,n,h),y=m.effectiveOptions,[g,S,P]=await Promise.all([Xo(e,t,i),xl(e,t,i),sf(e,t,i,r)]),b=Bl(e,S),L=await $n(e,t,i,r,Ze(e.having)||Dl(e)),I=ef(e,L),v=Jo(e,g)??Tn(e,g);Pa(v);let w=t,D=await vf(e.columns,t,y,i,r),M=Promise.resolve(R);M.catch(()=>{});let N=new Map,_=new Map;if(e.from.cteName!=null){let k=p(e.from.cteName);N.set(e.from.alias,k.rows.map(Dd)),_.set(e.from.alias,k.columns)}else{let k=await ll(m,()=>Wr(e,e.from,w,c,f,!0,y.onLimitReached??"error",u,v.mainCondition,E.capability==="EXACT_PUSHDOWN",a));N.set(e.from.alias,k)}let A=e.joins.map(k=>ll(m,async()=>{if(k.table.cteName!=null){let $=p(k.table.cteName);N.set(k.table.alias,$.rows.map(Dd)),_.set(k.table.alias,$.columns)}else{let $=k.table.alias?v.joinConditions.get(k.table.alias)??null:null,V=await gf(e,k,N,w,c,f,y.onLimitReached??"error",u,$,a)??await Wr(e,k.table,w,c,f,!1,y.onLimitReached??"error",u,$,!0,a);N.set(k.table.alias,V)}}));await Promise.all(A);let{optionOrders:C,sortKinds:x,semantics:O}=await M,F=e.joins.length===0&&e.from.cteName!=null?p(e.from.cteName).columns:void 0,{rows:j,columns:z}=ks({tables:N,stmt:e,scalarCache:D,optionOrders:C,sortKinds:x,orderSemantics:O,fieldTypeResolver:b.row,fieldSemanticsResolver:L,havingFieldTypeResolver:b.having,havingFieldSemanticsResolver:I,aggregateSortKindResolver:P,appliedKlikes:v.appliedKlikes,sourceColumns:F,tableColumns:_,hiddenQualifiedAliases:s,resolvedGroupingSpec:o,plainGroupByPlan:a}),U=await Gl(e,j,z,t,i);return{type:"SELECT",rows:j,columns:U,rowCount:j.length,warnings:[...u]}}async function Gl(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 ee(e.from.appId,r,i);return Gp(o,e.from.subtableCode,()=>Zo(e.from.appId,r,i))}function Dd(e){return Object.fromEntries(Object.entries(e).map(([t,n])=>[t,{value:n??""}]))}async function Wr(e,t,n,r,i,o,a,s,l=null,d=!0,p,c=""){let u=Kt(e,t,p),f=m=>{if(s.add(`\u53D6\u5F97\u4E0A\u9650\uFF08${m} \u4EF6\uFF09\u306B\u9054\u3057\u305F\u305F\u3081\u3001${m} \u4EF6\u3067\u6253\u3061\u5207\u3063\u3066\u8868\u793A\u3057\u3066\u3044\u307E\u3059\u3002`),Nl(n,t.appId),yp(e,t,o))throw new Pe(`\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${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`,!0)};if(!t.subtableCode){let m=o&&d?$u(e,t.appId).query:"",y=[l!==null?G(l):"",c].filter(b=>b!==""),g=y.length>1?y.map(b=>`(${b})`).join(" and "):y[0]??"",S=m&&g?`(${m}) and (${g})`:m||g;return(await Ge(n.getRecords,t.appId,S,u,{parallel:i,maxRecords:r,onLimit:a,onTruncate:f})).records}let h=(await Ge(n.getRecords,t.appId,"",u,{parallel:i,maxRecords:r,onLimit:a,onTruncate:f})).records;return nd(h,t.subtableCode)}var mf=50;function Cg(e){let t=Le(e);return t!==null?JSON.stringify(t):e}function pl(e){return JSON.stringify(e)}function rn(e,t){return JSON.stringify(e.map((n,r)=>t[r]?Cg(n):n))}function ri(e,t){let n=e.raw.get(pl(t));if(n!==void 0)return n;if(e.numericKey.some(Boolean))return e.normalized.get(rn(t,e.numericKey))}async function ii(e,t,n,r,i,o){let a=i.maxRecords??1e4,s=i.fetchParallel??1,l=t.map(h=>o.get(h)==="NUMBER"),d={raw:new Map,normalized:new Map,numericKey:l},p=(h,m,y)=>{let g=h.get(m);(g===void 0||y>g)&&h.set(m,y)},c=(h,m)=>{p(d.raw,pl(h),m),l.some(Boolean)&&p(d.normalized,rn(h,l),m)},u=new Set,f=[],E=new Set;for(let h of n){let m=pl(h);E.has(m)||(E.add(m),h.some(y=>y==="")?f.push(h):u.add(h[0]))}let R=["$id",...t];for(let h of Gn([...u],mf)){let m=`${t[0]} in (${h.map(Wo).join(",")})`,y=await Ie(r.getRecords,e,m,R,{maxRecords:a,parallel:s});for(let g of y){let S=Number(g.$id?.value);Number.isFinite(S)&&c(t.map(P=>yf(g[P]?.value)),S)}}for(let h of f){let m=t.map((g,S)=>`${g} = ${Wo(h[S])}`).join(" and "),y=await Ie(r.getRecords,e,m,["$id"],{maxRecords:a,parallel:s});y.length!==0&&c(h,Og(y))}return d}function Og(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 yf(e){return typeof e=="string"?e:e==null?"":String(e)}function Wo(e){return`"${e.replace(/\\/g,"\\\\").replace(/"/g,'\\"')}"`}function Gn(e,t){let n=[];for(let r=0;r<e.length;r+=t)n.push(e.slice(r,r+t));return n}var hf=50,Lg=6,vd=hf*Lg;async function gf(e,t,n,r,i,o,a,s,l=null,d,p=""){if(t.type!=="INNER"||!t.table.alias||t.table.subtableCode)return null;let c=t.on.left.tableAlias,u=t.on.right.tableAlias;if(!c||!u)return null;let f,E,R;if(c===t.table.alias&&u!==t.table.alias)f=u,E=t.on.right.field,R=t.on.left.field;else if(u===t.table.alias&&c!==t.table.alias)f=c,E=t.on.left.field,R=t.on.right.field;else return null;let h=n.get(f);if(!h)return null;let m=new Set;for(let I of h){let v=I[E]?.value,w=yf(v).trim();w.length>0&&m.add(w)}let y=[...m];if(y.length===0)return[];if(y.length>vd)return s.add(`JOIN\u30AD\u30FC\u304C ${y.length} \u4EF6\u306E\u305F\u3081 ON \u6700\u9069\u5316\u3092\u30B9\u30AD\u30C3\u30D7\u3057\u3001JOIN\u5148\u3092\u5168\u4EF6\u53D6\u5F97\u3057\u307E\u3059\uFF08\u4E0A\u9650 ${vd} \u4EF6\uFF09\u3002`),null;let g=Kt(e,t.table,d),S=I=>{s.add(`\u53D6\u5F97\u4E0A\u9650\uFF08${I} \u4EF6\uFF09\u306B\u9054\u3057\u305F\u305F\u3081\u3001${I} \u4EF6\u3067\u6253\u3061\u5207\u3063\u3066\u8868\u793A\u3057\u3066\u3044\u307E\u3059\u3002`),Nl(r,t.table.appId)},P=Gn(y,hf),b=[],L=new Set;for(let I of P){let v=`${R} in (${I.map(Wo).join(",")})`,D=[l!==null?G(l):"",p].filter(N=>N!=="").reduce((N,_)=>`(${N}) and (${_})`,v),M=await Ge(r.getRecords,t.table.appId,D,g,{parallel:o,maxRecords:i,onLimit:a,onTruncate:S});for(let N of M.records){let _=`${N.$id?.value??""}:${JSON.stringify(N)}`;L.has(_)||(L.add(_),b.push(N))}}return b}var dl=new Map,fl=new Map,El=new Map,Rl=new Map,ml=new Map,yl=new Map;function Vl(e){dl.delete(e),fl.delete(e),El.delete(e),Rl.delete(e),ml.delete(e),yl.delete(e)}function Vn(e,t,n){return e.get(t)?.get(n)}function Wn(e,t,n,r){let i=e.get(t);i||(i=new Map,e.set(t,i)),i.set(n,r)}async function ee(e,t,n){let r=Vn(Rl,n,e);if(r)return r;let i=t.getFields(e);return Wn(Rl,n,e,i),i}async function ot(e,t,n){let r=Vn(yl,n,e);if(r)return r;let i=t.getNumberPrecision(e);return Wn(yl,n,e,i),i}async function Zo(e,t,n){let r=Vn(ml,n,e);if(r)return r;let i=t.getProcessStatuses(e);return Wn(ml,n,e,i),i}async function Wl(e,t,n){let r=await Zo(e,t,n);return r.enable&&r.states!==null?new Map(r.states.map(i=>[i.name,i.index])):void 0}async function Ae(e,t,n){let r=Vn(dl,n,e);if(r)return r;let i=await ee(e,t,n),o=new Map(i.map(a=>[a.code,a.fieldType]));return Wn(dl,n,e,o),o}async function hl(e,t,n){let r=Vn(fl,n,e);if(r)return r;let i=await ee(e,t,n),o=new Map;for(let a of i){if(!a.optionOrder)continue;let s=Object.entries(a.optionOrder);s.length!==0&&o.set(a.code,new Map(s))}return Wn(fl,n,e,o),o}async function _g(e,t,n){let r=await hl(e,t,n);return new Map([...r.entries()].map(([i,o])=>[i,new Set(o.keys())]))}async function Ud(e,t,n){let r=Vn(El,n,e);if(r)return r;let i=await ee(e,t,n),o=new Map;for(let a of i)a.sortKind&&o.set(a.code,a.sortKind);return Wn(El,n,e,o),o}function Dg(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 vg(e,t,n,r){let i=Dg(e);if(i.length===0)return new Map;let o=[e.from,...e.joins.map(c=>c.table)],a=new Set,s=new Map(await Promise.all([...new Set(o.filter(c=>c.cteName===null).map(c=>c.appId))].map(async c=>{let u=await ee(c,t,n);return[c,new Map(u.map(f=>[f.code,f]))]}))),l=c=>{if(c.tableAlias!==null){if(c.tableAlias==="_p"&&e.from.subtableCode&&e.from.cteName===null){let R=s.get(e.from.appId)?.get(c.field);return R?nt(R,e.from.appId):void 0}let f=o.find(R=>Oe(R)===c.tableAlias);if(!f)return;if(f.cteName!==null)return r?.get(f.cteName)?.columnMeta?.get(c.field);let E=s.get(f.appId)?.get(ge(f,c.field));return E?nt(E,f.appId):Jt(c.field)}if(e.joins.length===0){if(e.from.cteName!==null)return r?.get(e.from.cteName)?.columnMeta?.get(c.field);let f=s.get(e.from.appId)?.get(ge(e.from,c.field));return f?nt(f,e.from.appId):Jt(c.field)}let u=o.flatMap(f=>{if(f.cteName!==null){let h=r?.get(f.cteName),m=h?.columns.includes(c.field)?h.columnMeta?.get(c.field):void 0;return m?[m]:[]}let E=s.get(f.appId)?.get(ge(f,c.field)),R=E?nt(E,f.appId):Jt(c.field);return R?[R]:[]});return u.length>1&&a.add(c.field),u.length===1?u[0]:void 0},d=new Map;for(let c of e.columns){if(!("alias"in c)||!c.alias)continue;let u;if(c.type==="FIELD")u=l(Ye(c.field));else if(c.type==="ARITH_COL"||c.type==="ARITH_AGG_COL"||c.type==="WINDOW_COL")u=q("number");else if(c.type==="GROUPING_COL")u=q("number");else if(c.type==="LITERAL_COL"||c.type==="SCALAR_VALUE_COL")u=q("string");else if(c.type==="STRFUNC_COL")u=nn(c.expr);else if(c.type==="SCALAR_SUBQUERY_COL")u=it();else if(c.type==="CASE_COL"){let f=c.expr.branches.map(E=>Bn(E.result,l));c.expr.elseResult&&f.push(Bn(c.expr.elseResult,l)),u=Qo(f)}else c.type==="AGGREGATE"&&(c.func==="MIN"||c.func==="MAX"||c.func==="MODE"?c.arg.type!=="WILDCARD"&&(u=Kl(c.arg,l)):u=c.func==="GROUP_CONCAT"?q("string"):q("number"));u?.semantics&&d.set(c.alias,u.semantics)}let p=new Map;for(let c of i){let u=d.get(c)??l(Ye(c))?.semantics;if(!u){let E=Ye(c);E.tableAlias===null&&a.has(E.field)&&p.set(c,X({fieldType:"KSQL_AMBIGUOUS"}));continue}let f=u;if(u.fieldType==="STATUS"&&u.source&&e.orderMode!=="KINTONE_NATIVE"){let E=await Zo(u.source.appId,t,n);E.enable&&E.states!==null&&(f={...u,optionOrder:new Map(E.states.map(R=>[R.name,R.index]))})}p.set(c,f)}return p}async function Jr(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([Ug(e,t,n),kg(e,t,n),vg(e,t,n,r)]);return{optionOrders:o,sortKinds:a,semantics:s}}async function Ug(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 hl(a.appId,t,n);for(let[l,d]of s.entries())r.has(l)||r.set(l,d)}for(let a of i){if(a.cteName!=null||!a.alias)continue;let s=await hl(a.appId,t,n);for(let[l,d]of s.entries())r.set(`${a.alias}.${l}`,d)}return r}async function kg(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 Ud(a.appId,t,n);for(let[l,d]of s.entries())r.has(l)||r.set(l,d)}for(let a of i){if(a.cteName!=null||!a.alias)continue;let s=await Ud(a.appId,t,n);for(let[l,d]of s.entries())r.set(`${a.alias}.${l}`,d)}return r}function Af(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 Mg=new Set(["CALC","RECORD_NUMBER","CREATOR","CREATED_TIME","MODIFIER","UPDATED_TIME","STATUS","STATUS_ASSIGNEE","CATEGORY","REFERENCE_TABLE"]);function Fg(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||Mg.has(o.fieldType))throw new Error(`ArgumentError: DML target field ${i} is not writable (${o.fieldType}).`)}}async function je(e,t,n,r){let i=await ee(e,n,r);return Fg(e,t,i),i}async function yt(e,t,n,r,i){let o=new Map(n.map(a=>[a.code,a]));return t.some(a=>o.get(a)?.fieldType==="NUMBER")?ot(e,r,i):void 0}function on(e,t,n,r){let i=new Map(n.map(o=>[o.code,o]));e.forEach((o,a)=>{for(let s of t){let l=i.get(s),d=o[s]?.value??"",p=Ne(d,l,r);if(!p.ok)throw new Error(`DmlValidationError: ${p.code} ${p.message} (row=${a+1}, field=${s})`);let c=["USER_SELECT","ORGANIZATION_SELECT","GROUP_SELECT"].includes(l.fieldType)&&Array.isArray(d)&&d.every(u=>typeof u=="object"&&u!==null&&"code"in u);o[s]={value:c?d:p.value}}})}async function xg(e,t,n,r,i){let o=await je(e.appId,e.fields,t,r),a=await Tr({statement:e,fieldInfos:o,dmlMaxRows:xe(n.dmlMaxRows,"dmlMaxRows",ht),dmlMaxSubtableRows:xe(n.dmlMaxSubtableRows,"dmlMaxSubtableRows",Se),statementNumber:i,loadNumberPrecision:()=>ot(e.appId,t,r)});return EA(e,a,o)}async function Kg(e,t,n,r,i){let{fieldInfos:o,prepared:a}=await Sf(e,t,n,r,i);return mA(e,a,o)}async function Sf(e,t,n,r,i){let o=await je(e.appId,e.fields,t,r),a=new Map(o.map(h=>[h.code,h.fieldType])),s=Nf(e),l=new Set;for(let h of s){let m=rn(h,e.keyFields.map(y=>a.get(y)==="NUMBER"));if(l.has(m))throw new Error("ERR_KEY_DUP_SOURCE: UPSERT \u30BD\u30FC\u30B9\u5185\u3067\u30AD\u30FC\u304C\u91CD\u8907\u3057\u3066\u3044\u307E\u3059");l.add(m)}let d=await ii(e.appId,e.keyFields,s,t,n,a),p=s.map(h=>ri(d,h)),c=new Map,u=[...new Set(p.filter(h=>h!==void 0))],f=["$id","$revision",...o.filter(h=>!h.inSubtable&&h.fieldType!=="FILE").map(h=>h.code)];for(let h of Gn(u,100)){let m=await t.getRecords({app:e.appId,query:`$id in (${h.join(",")}) limit 500`,fields:[...new Set(f)]});for(let y of m.records){let g=Number(y.$id?.value);Number.isSafeInteger(g)&&g>0&&c.set(g,y)}}let E=p.map((h,m)=>({sourceRowIndex:m,...h===void 0?{}:{targetId:h,snapshot:c.get(h)}})),R=await cp({statement:e,matches:E,fieldInfos:o,dmlMaxRows:xe(n.dmlMaxRows,"dmlMaxRows",ht),dmlMaxSubtableRows:xe(n.dmlMaxSubtableRows,"dmlMaxSubtableRows",Se),statementNumber:i,loadNumberPrecision:()=>ot(e.appId,t,r)});return{fieldInfos:o,prepared:R}}async function Bg(e,t,n,r){if(n.allowApplyMutation!==!0)throw new Error("UnsupportedError: APPLY mutation requires allowApplyMutation=true");let i=await je(e.appId,e.fields,t,r),o=await Tr({statement:e,fieldInfos:i,dmlMaxRows:xe(n.dmlMaxRows,"dmlMaxRows",ht),dmlMaxSubtableRows:xe(n.dmlMaxSubtableRows,"dmlMaxSubtableRows",Se),loadNumberPrecision:()=>ot(e.appId,t,r)}),a=Rs(o);if(n.confirm&&!await n.confirm(o.guards.parentRows,"INSERT",{statementIndex:0,statementCount:1,statementType:"INSERT",targetAppId:e.appId,applyDetail:ea(a),applyDiagnostic:a}))throw new le("INSERT",o.guards.parentRows);let s=await Rp(o,t,a);return{...s,diagnostic:Ue(a,s)}}async function $g(e,t,n,r){if(n.allowApplyMutation!==!0)throw new Error("UnsupportedError: APPLY mutation requires allowApplyMutation=true");let{prepared:i}=await Sf(e,t,n,r,1),o=ms(i);if(n.confirm){let s=ea(o);if(!await n.confirm(i.guards.parentRows,"UPDATE",{statementIndex:0,statementCount:1,statementType:"UPSERT",targetAppId:e.appId,applyDetail:s,applyDiagnostic:o}))throw new le("UPDATE",i.guards.parentRows)}let a=await mp(i,t,o);return{type:"UPSERT",insertedCount:a.insertedCount,updatedCount:a.updatedCount,successfulChunks:a.successfulChunks,successfulParents:a.successfulParents,successfulInsertChunks:a.successfulInsertChunks,successfulUpdateChunks:a.successfulUpdateChunks,nonTransactional:a.nonTransactional,diagnostic:Ue(o,a)}}function Gg(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 ea(e,t=!0){let n=e.branches.find(u=>u.branch==="insert"),r=e.branches.find(u=>u.branch==="update"),i=e.branches.flatMap(u=>u.targets),o=Gg(n?vo(n):[],r?vo(r):[]),a=Vg(i),s=e.branches.reduce((u,f)=>u+(f.parentRows??0),0),l=i.filter(u=>u.targetKind==="SUBTABLE").reduce((u,f)=>u+(f.changedCount??0),0),d=o.reduce((u,f)=>u+f.appendRows,0),p=o.reduce((u,f)=>u+f.removeRows,0),c={kind:e.statementKind==="UPDATE"?"APPLY_PATCH":e.statementKind==="INSERT"?"APPLY_INSERT":"APPLY_UPSERT",parentRows:s,changedSubtableRows:l,addedSubtableRows:d,tables:o,...a.length>0?{multiValues:a}:{},deletedRows:p,deletedParentRows:e.branches.reduce((u,f)=>u+(f.deletedParentRows??0),0),revisionRequired:e.branches.some(u=>u.guards.revisionRequired),irreversible:!0,retryOnRevisionConflict:!1,...t?{nonTransactional:!0,partialSuccessPossible:!0}:{}};if(e.statementKind==="INSERT"&&n)return{...c,insertedParentRows:n.parentRows??0,initialSubtableRows:n.targets.filter(u=>u.targetKind==="SUBTABLE").reduce((u,f)=>u+(f.changedCount??0),0)};if(e.statementKind==="UPSERT"&&n&&r){let u=vo(n),f=vo(r);return{...c,insertedParentRows:n.parentRows??0,initialSubtableRows:n.targets.filter(E=>E.targetKind==="SUBTABLE").reduce((E,R)=>E+(R.changedCount??0),0),updatedParentRows:r.parentRows??0,applyBranches:{insert:{parentRows:n.parentRows??0,initialSubtableRows:u.reduce((E,R)=>E+R.appendRows,0),tables:u},update:{parentRows:r.parentRows??0,changedSubtableRows:r.targets.filter(E=>E.targetKind==="SUBTABLE").reduce((E,R)=>E+(R.changedCount??0),0),addedSubtableRows:f.reduce((E,R)=>E+R.appendRows,0),tables:f,deletedRows:f.reduce((E,R)=>E+R.removeRows,0),deletedParentRows:r.deletedParentRows??0}}}}return c}function vo(e){return e.targets.filter(t=>t.targetKind==="SUBTABLE").map(t=>{let n=en(t,"APPEND"),r=en(t,"REMOVE");return{table:t.field,patchRows:(t.changedCount??0)-n-r,appendRows:n,removeRows:r}})}function en(e,t){return e.operations.filter(n=>n.kind===t).reduce((n,r)=>n+(r.count??0),0)}function Vg(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:en(n,"ADD"),removedValues:en(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 Hl(e,t,n,r,i,o){if(e.type==="INSERT"&&e.applyBlocks?.length)return xg(e,t,n,r,o);if(e.type==="UPSERT"&&(e.onInsertApplyBlocks?.length||e.onUpdateApplyBlocks?.length))return Kg(e,t,n,r,o);if(e.type==="UPDATE"&&e.applyBlocks?.length){let a=await Pf(e,t,n,r,o);if(a.type!=="VALIDATION")throw new Error("InternalError: APPLY VALIDATE ONLY returned a mutation result.");return a}return(await Yl(e,t,n,r,i,o)).result}var Xr=class extends Error{constructor(n,r){super(`RejectLimitExceededError: ${n}`);this.diagnostic=r;this.name="RejectLimitExceededError"}};async function Yl(e,t,n,r,i,o,a=!0,s=!0){let l=e.type==="UPDATE"?"UPDATE":e.type.startsWith("UPSERT")?"UPSERT":"INSERT",d=e.type==="UPDATE"?["$id",...e.assignments.map(_=>_.field)]:[...e.fields];if(new Set(d).size!==d.length)throw new Error("ArgumentError: DML target fields contain duplicates.");let p=e.type==="UPDATE"?e.assignments.map(_=>_.field):e.fields,c=await je(e.appId,p,t,r);e.type==="UPDATE"&&await xn(e,t,r);let u=new Map(c.map(_=>[_.code,_])),f=await yt(e.appId,p,c,t,r),E=Je(c,d),R=rd(E),h=(await Wg(e,l,t,n,r,i,u,e.type==="UPDATE"?R:void 0)).sort((_,A)=>_.rowNumber-A.rowNumber),m=h.filter(_=>_.mode==="update"),y=e.type==="UPDATE"?jg:e.type.startsWith("UPSERT")?_=>qg(_,t,n.maxRecords??1e4):void 0,g=n.loadUpdateModeSnapshots??y,S=m.length>0&&g!==void 0,P=new Map;if(S){as(m,p,c);let _=await g({appId:e.appId,candidates:m,fields:R}),A=new Map;for(let C of m){if(C.targetId===void 0)throw new Error(`InternalError: update-mode validation candidate has no targetId (row=${C.rowNumber}).`);let x=_.get(C.targetId);if(!x)throw new Error(`InternalError: update-mode snapshot is missing for record ${C.targetId}.`);let O=id(x,C.record??{});A.set(C.rowNumber,O)}f===void 0&&[...A.values()].some(C=>Ht(C,E))&&(f=await ot(e.appId,t,r));for(let C of m){let x=A.get(C.rowNumber);if(!x)throw new Error(`InternalError: validation post-image is missing for row ${C.rowNumber}.`);P.set(C.rowNumber,Yt(x,E,f,o,C.rowNumber,l))}}let b=ss(h,l,d,p,c,o,f,e.checkGroups??[],a,s,{validateUpdateBuiltIns:!S}),{errors:L,invalidRows:I,invalidRowNumbers:v}=b;if(S){let _=new Map(b.candidateResults.map(A=>[A.rowNumber,A]));L=[],v=new Set;for(let A of h){let C=_.get(A.rowNumber);if(!C)throw new Error(`InternalError: validation detail is missing for row ${A.rowNumber}.`);if(A.mode==="create"){let F=[...C.preErrors,...C.builtInErrors,...C.checkErrors];L.push(...F),F.length>0&&v.add(A.rowNumber);continue}let x=P.get(A.rowNumber);if(!x)throw new Error(`InternalError: prepared post-image validation is missing for row ${A.rowNumber}.`);let O=od({rowNumber:A.rowNumber,setFields:p,normalizedPostImage:x.normalizedRecord,preErrors:C.preErrors,postImageErrors:x.errors,checkErrors:C.checkErrors});A.record=O.writeRecord,L.push(...O.errors);for(let F of O.invalidRowNumbers)v.add(F)}I=v.size}let w=[...d,...On],D={type:"VALIDATION",operation:l,validatedRows:h.length,validRows:h.length-I,invalidRows:I,errorCount:L.length,columns:w,errors:L,...e.validationErrorTable?{errTable:e.validationErrorTable}:e.onErrorSkip&&e.errorTable?{errTable:e.errorTable}:{}},M=new Map;for(let _ of d){if(_==="$id"){M.set(_,{sortKind:"number",fieldType:"RECORD_NUMBER",semantics:X({fieldType:"RECORD_NUMBER"})});continue}let A=u.get(_);A&&M.set(_,nt(A,e.appId))}let N=new Set(["$err_statement","$err_row"]);for(let _ of On)M.set(_,q(N.has(_)?"number":"string"));return sn.set(D,M),{result:D,candidates:h,invalidRowNumbers:v,columnMeta:M}}async function gl(e,t,n,r,i,o){let a=await Yl(e,t,n,r,i,o),s=e.errorTable;if(!s)throw new Error("ArgumentError: ON ERROR SKIP requires INTO #error_table.");rt(i,s,a.result.columns,a.result.errors,n.tempTableMaxRows??Fe,a.columnMeta);let l=e.rejectLimit??null;if(l!==null&&a.result.invalidRows>l)throw new Xr(`rejected rows (${a.result.invalidRows}) exceed REJECT LIMIT (${l}).`,a.result);let d=a.candidates.filter(E=>!a.invalidRowNumbers.has(E.rowNumber));if(n.confirm){let E=e.type.startsWith("INSERT")?"INSERT":"UPDATE";if(!await n.confirm(d.length,E))throw new le(E,d.length)}let p={affectedRows:d.length,skippedRows:a.result.invalidRows,rejectLimit:l,errTable:s};if(e.type==="INSERT"||e.type==="INSERT_SELECT"){let E=[];for(let R=0;R<d.length;R+=100){let h=await t.postRecords({app:e.appId,records:d.slice(R,R+100).map(m=>m.record)});E.push(h.ids)}return{type:"INSERT",createdIds:E,insertedCount:E.flat().length,...p}}if(e.type==="UPDATE"){let E=d.map(R=>{if(R.targetId===void 0)throw new Error("InternalError: prepared UPDATE candidate has no targetId.");return{id:R.targetId,record:R.record}});for(let R=0;R<E.length;R+=100)await t.putRecords({app:e.appId,records:E.slice(R,R+100)});return{type:"UPDATE",updatedCount:E.length,...p}}let c=d.filter(E=>E.mode==="create"),u=d.filter(E=>E.mode==="update").map(E=>{if(E.targetId===void 0)throw new Error("InternalError: prepared UPSERT candidate has no targetId.");return{id:E.targetId,record:E.record}}),f=0;for(let E=0;E<c.length;E+=100){let R=await t.postRecords({app:e.appId,records:c.slice(E,E+100).map(h=>h.record)});f+=R.ids.length}for(let E=0;E<u.length;E+=100)await t.putRecords({app:e.appId,records:u.slice(E,E+100)});return{type:"UPSERT",insertedCount:f,updatedCount:u.length,...p}}async function Wg(e,t,n,r,i,o,a,s){if(e.type==="UPDATE")return Yg(e,n,r,i,o,s);let l,d,p,c,u;if(e.type==="INSERT"||e.type==="UPSERT")kd(e,e.fields),u=new Map(e.fields.map(S=>[S,a.get(S)?.fieldType??""])),an(e,u),l=e.values.map(S=>S.map((P,b)=>P.type==="CASE_VALUE"?Lt(P.expr,{},a.get(e.fields[b])?.fieldType):P));else{let S=await ql.materialize(e,n,r,i,o,[...a.values()]),P=(e.checkGroups?.length??0)>0;if(S.columns.length<e.fields.length||!P&&S.columns.length!==e.fields.length)throw new Error(`SELECT \u306E\u5217\u6570\uFF08${S.columns.length}\uFF09\u3068 DML \u306E\u30D5\u30A3\u30FC\u30EB\u30C9\u6570\uFF08${e.fields.length}\uFF09\u304C\u4E00\u81F4\u3057\u307E\u305B\u3093`);if(P&&new Set(S.columns).size!==S.columns.length)throw fe("CHECK \u4ED8\u304D DML \u30BD\u30FC\u30B9 SELECT \u306E\u51FA\u529B\u540D\u306F\u4E00\u610F\u3067\u3042\u308B\u5FC5\u8981\u304C\u3042\u308A\u307E\u3059");kd(e,S.columns),d=S.rows,p=S.importPresence,c=S.importRowErrors;let b=S.columnMeta;u=new Map(S.columns.map(L=>{let I=b?.get(L),v=I?.fieldType??(I?.semantics?.compareMode==="number"||I?.sortKind==="number"?"NUMBER":"SINGLE_LINE_TEXT");return[L,v]})),an(e,u),l=S.rows.map(L=>S.columns.map(I=>L[I]??""))}let f=l.map((S,P)=>({rowNumber:P+1,operation:t,mode:"create",payload:new Map(e.fields.flatMap((b,L)=>p&&!p[P]?.has(b)?[]:[[b,S[L]]])),preErrors:[...c?.[P]??[]],record:{},evaluationRow:d?.[P]??Object.fromEntries(e.fields.map((b,L)=>[b,ze(S[L])])),evaluationFieldTypes:u}));if(e.type!=="UPSERT"&&e.type!=="UPSERT_SELECT")return f;for(let S of e.keyFields)if(!e.fields.includes(S))throw new Error(`ON DUPLICATE \u306E\u30AD\u30FC\u300C${S}\u300D\u304C UPSERT \u30D5\u30A3\u30FC\u30EB\u30C9\u306B\u542B\u307E\u308C\u3066\u3044\u307E\u305B\u3093`);let E=new Map([...a].map(([S,P])=>[S,P.fieldType])),R=f.map(S=>e.keyFields.map(P=>ze(S.payload.get(P)))),h=e.keyFields.map(S=>E.get(S)==="NUMBER"),m=new Map;for(let S of R){let P=rn(S,h);m.set(P,(m.get(P)??0)+1)}let y=qo.has(e);if(y&&[...m.values()].some(S=>S>1))throw new Error("ERR_KEY_DUP_SOURCE: UPSERT \u30BD\u30FC\u30B9\u5185\u3067\u30AD\u30FC\u304C\u91CD\u8907\u3057\u3066\u3044\u307E\u3059");let g=await ii(e.appId,e.keyFields,R,n,r,E);return f.forEach((S,P)=>{let b=R[P],L=ri(g,b);S.mode=L===void 0?"create":"update",L!==void 0&&(S.targetId=L),e.keyFields.forEach((I,v)=>{b[v]===""&&S.preErrors.push({field:I,code:"ERR_KEY_EMPTY",message:`UPSERT \u30AD\u30FC ${I} \u306F\u7A7A\u306B\u3067\u304D\u307E\u305B\u3093`})}),!y&&(m.get(rn(b,h))??0)>1&&S.preErrors.push({field:e.keyFields[0],code:"ERR_KEY_DUP_SOURCE",message:"UPSERT \u30BD\u30FC\u30B9\u5185\u3067\u30AD\u30FC\u304C\u91CD\u8907\u3057\u3066\u3044\u307E\u3059"})}),f}function jl(e){return e.checkGroups?Nn(e.checkGroups):[]}function kd(e,t){let n=new Set(t);for(let r of jl(e)){if(r.tableAlias!==null)throw fe(`CHECK \u306E\u30D5\u30A3\u30FC\u30EB\u30C9 ${r.tableAlias}.${r.field} \u306F\u3053\u306E\u8A55\u4FA1\u884C\u3067\u306F\u4FEE\u98FE\u3067\u304D\u307E\u305B\u3093`);if(!n.has(r.field))throw fe(`CHECK \u306E\u30D5\u30A3\u30FC\u30EB\u30C9 ${r.field} \u306F\u8A55\u4FA1\u884C\u306B\u5B58\u5728\u3057\u307E\u305B\u3093`)}}var Hg=new Set(["CHECK_BOX","MULTI_SELECT","USER_SELECT","ORGANIZATION_SELECT","GROUP_SELECT","FILE","KSQL_ARRAY"]);function an(e,t){if(e.checkGroups)for(let n of _c(e.checkGroups)){let r=n.tableAlias?`${n.tableAlias}.${n.field}`:n.field,i=t.get(r)??t.get(n.field);if(Hg.has(i??""))throw fe(`CHECK \u306E\u6BD4\u8F03\u3067\u306F ${i} \u30D5\u30A3\u30FC\u30EB\u30C9 ${r} \u3092\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093`)}}async function Yg(e,t,n,r,i,o){if(e.from)return Jg(e,e.from,t,n,r,i,o);await Df(e.assignments,t,n,r);let a=await Ae(e.appId,t,r),s=Tf(e,a);an(e,Al(a,e.appId));let l,d=new Map,p=new Map;if(Wi(e)){let c=Wa(e),u=[...new Set([...c.fields,...s,...o??[]])],f=await Ge(t.getRecords,c.app,c.query,u,{maxRecords:n.maxRecords??1e4,parallel:n.fetchParallel??1,onLimit:"error"});p=Mo(f.records),d=p,l=Ya(e,f.records,a).flatMap(E=>E.records)}else{let c=fr(e);if(s.length>0){let u=[...new Set(["$id",...s,...o??[]])],f=await Ge(t.getRecords,c.app,c.query,u,{maxRecords:n.maxRecords??1e4,parallel:n.fetchParallel??1,onLimit:"error"});p=Mo(f.records),d=p,l=Er(e,[...d.keys()],a).flatMap(E=>E.records)}else if(o){let u=await Ge(t.getRecords,c.app,c.query,[...o],{maxRecords:n.maxRecords??1e4,parallel:n.fetchParallel??1,onLimit:"error"});p=Mo(u.records),l=Er(e,[...p.keys()],a).flatMap(f=>f.records)}else{let u=await oo(t.getRecords,c.app,c.query,{maxRecords:n.maxRecords??1e4,parallel:n.fetchParallel??1});l=Er(e,u.ids,a).flatMap(f=>f.records)}}return l.sort((c,u)=>c.id-u.id).map((c,u)=>({rowNumber:u+1,operation:"UPDATE",mode:"update",payload:new Map([["$id",String(c.id)],...e.assignments.map(f=>[f.field,c.record[f.field]?.value??""])]),preErrors:[],record:c.record,targetId:c.id,validationSnapshot:p.get(c.id),evaluationRow:zg(d.get(c.id),e.appId),evaluationFieldTypes:Al(a,e.appId)}))}function Mo(e){let t=new Map;for(let n of e){let r=n.$id?.value,i=Number(r);if(!Number.isSafeInteger(i)||i<=0)throw new Error(`InternalError: invalid $id in UPDATE validation snapshot: ${String(r)}.`);if(t.has(i))throw new Error(`InternalError: duplicate $id in UPDATE validation snapshot: ${i}.`);t.set(i,n)}return t}async function jg(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 qg(e,t,n){let r=[...new Set(e.candidates.map(a=>{let s=a.targetId;if(!Number.isSafeInteger(s)||s===void 0||s<=0)throw new Error(`InternalError: invalid targetId in UPSERT validation candidate: ${String(s)}.`);return s}))];if(r.length>n)throw new Pe(`\u53D6\u5F97\u4EF6\u6570\u304C\u4E0A\u9650\uFF08${n} \u4EF6\uFF09\u3092\u8D85\u3048\u307E\u3057\u305F\u3002WHERE \u53E5\u3067\u7D5E\u308A\u8FBC\u3080\u304B\u3001maxRecords \u3092\u5F15\u304D\u4E0A\u3052\u3066\u304F\u3060\u3055\u3044\u3002`);let i=new Set(r),o=new Map;for(let a of Gn(r,100)){let s=await t.getRecords({app:e.appId,query:`$id in (${a.join(",")}) limit 500`,fields:[...new Set(e.fields)]});for(let l of s.records){let d=l.$id?.value,p=Number(d);if(!Number.isSafeInteger(p)||p<=0)throw new Error(`InternalError: invalid $id in UPSERT validation snapshot: ${String(d)}.`);if(!i.has(p))throw new Error(`InternalError: unexpected $id in UPSERT validation snapshot: ${p}.`);if(o.has(p))throw new Error(`InternalError: duplicate $id in UPSERT validation snapshot: ${p}.`);o.set(p,l)}}for(let a of r)if(!o.has(a))throw new Error(`InternalError: update-mode snapshot is missing for record ${a}.`);return o}function Tf(e,t){if(e.from)return[];let n=new Set;for(let r of jl(e)){if(r.tableAlias!==null&&r.tableAlias.toLowerCase()!==`app${e.appId}`.toLowerCase())throw fe(`CHECK \u306E\u4FEE\u98FE\u5B50 ${r.tableAlias} \u306F\u66F4\u65B0\u5148 APP${e.appId} \u3067\u306F\u3042\u308A\u307E\u305B\u3093`);if(r.field!=="$id"&&!t.has(r.field))throw fe(`CHECK \u306E\u30BF\u30FC\u30B2\u30C3\u30C8\u30D5\u30A3\u30FC\u30EB\u30C9 ${r.field} \u306F\u5B58\u5728\u3057\u307E\u305B\u3093`);n.add(r.field)}return[...n]}function zg(e,t){if(!e)return{};let n=dt(e,null);return Object.fromEntries([...Object.entries(n),...Object.entries(n).map(([r,i])=>[`APP${t}.${r}`,i])])}function Al(e,t){return new Map([...e,...[...e].map(([n,r])=>[`APP${t}.${n}`,r]),["$id","RECORD_NUMBER"],[`APP${t}.$id`,"RECORD_NUMBER"]])}async function Jg(e,t,n,r,i,o,a){let s=await Bf(e,t,n,i,o);an(e,s.evaluationTypes);let l=await If(e,t,n,r,i,o,a),d=await Ae(e.appId,n,i),p=qa(e,l,d).flatMap(f=>f.records),c=new Map(l.map(f=>[Number(f.target.$id?.value),f])),u=a?Mo(l.map(f=>f.target)):new Map;return p.sort((f,E)=>f.id-E.id).map((f,E)=>({rowNumber:E+1,operation:"UPDATE",mode:"update",payload:new Map([["$id",String(f.id)],...e.assignments.map(R=>[R.field,f.record[R.field]?.value??""])]),preErrors:[],record:f.record,targetId:f.id,validationSnapshot:u.get(f.id),evaluationRow:zA(c.get(f.id),e.appId,t.alias),evaluationFieldTypes:s.evaluationTypes}))}var Xg=mf,Qg=new Set(["CHECK_BOX","MULTI_SELECT","USER_SELECT","ORGANIZATION_SELECT","GROUP_SELECT","FILE"]);async function If(e,t,n,r,i,o,a){let s=await Zg(e,t,n,i),l=await Bf(e,t,n,i,o),d=[...new Set(e.assignments.filter(P=>P.value.type==="SOURCE_FIELD").map(P=>P.value.type==="SOURCE_FIELD"?P.value.field:"").concat(l.sourceFields))],p=[...new Set([t.joinKeyField,...d])],c=await eA(t,p,d,n,r,i,o),u=new Map,f=new Map;for(let P of c){if(!Object.prototype.hasOwnProperty.call(P,t.joinKeyField))throw new Error(`ArgumentError: UPDATE ... FROM source column ${t.joinKeyField} does not exist.`);let b=Md(P[t.joinKeyField],s,"source");if(u.has(b))throw new Error(`ArgumentError: UPDATE ... FROM source has multiple rows for normalized key ${b}.`);u.set(b,P),f.set(b,String(P[t.joinKeyField]).trim())}if(u.size===0)return[];let E=r.maxRecords??1e4,R=[...new Set([...hA(e),...l.targetFields,...a??[]])],h=t.targetFilter===null?"":fr({...e,from:null,where:t.targetFilter,checkGroups:void 0}).query,m=[],y=new Set,g=0;for(let P of Gn([...f.values()],Xg)){let b=`${t.targetJoinField} in (${P.map(Wo).join(",")})`,L=h?`(${b}) and (${h})`:b,I=await Ge(n.getRecords,e.appId,L,R,{maxRecords:E,parallel:r.fetchParallel??1,onLimit:"error"});if(g+=I.records.length,g>E)throw new Pe(`\u53D6\u5F97\u4EF6\u6570\u304C\u4E0A\u9650\uFF08${E} \u4EF6\uFF09\u3092\u8D85\u3048\u307E\u3057\u305F\u3002WHERE \u53E5\u3067\u7D5E\u308A\u8FBC\u3080\u304B\u3001maxRecords \u3092\u5F15\u304D\u4E0A\u3052\u3066\u304F\u3060\u3055\u3044\u3002`);for(let v of I.records){let w=v.$id?.value;if(typeof w!="string"||w==="")throw new Error("ArgumentError: UPDATE ... FROM target record does not contain a valid $id.");y.has(w)||(y.add(w),m.push(v))}}let S=[];for(let P of m){let b=P[t.targetJoinField]?.value,L=Md(b,s,"target");if(L===null)continue;let I=u.get(L);I!==void 0&&S.push({target:P,source:I})}return S}async function Zg(e,t,n,r){if(t.targetJoinField==="$id")return"id";let i=(await ee(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 eA(e,t,n,r,i,o,a){if(e.cteName!==null){let p=a?.get(e.cteName);if(!p)throw new Error(`ArgumentError: temp table ${e.cteName} is not available.`);for(let c of t)if(!p.columns.includes(c))throw new Error(`ArgumentError: UPDATE ... FROM source column ${c} does not exist.`);return p.rows}let s=await Ae(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 p of n){if(p!=="$id"&&!s.has(p))throw new Error(`ArgumentError: UPDATE ... FROM source column ${p} does not exist.`);let c=p==="$id"?"RECORD_NUMBER":s.get(p);if(Qg.has(c??""))throw new Error(`ArgumentError: UPDATE ... FROM does not support source field type ${c} (${p}).`)}return(await Ge(r.getRecords,e.appId,"",t,{maxRecords:i.maxRecords??1e4,parallel:i.fetchParallel??1,onLimit:"error"})).records.map(p=>dt(p,null))}function Md(e,t,n){if(typeof e!="string")throw new Error(`ArgumentError: UPDATE ... FROM ${n} key must be a scalar string: ${String(e)}`);if(t==="string"){if(e===""){if(n==="target")return null;throw new Error("ArgumentError: UPDATE ... FROM source key must not be empty.")}return e}if(t==="number"&&n==="target"&&e==="")return null;if(t==="id"){let i=e.trim(),o=Number(i);if(i===""||!Number.isSafeInteger(o)||o<=0)throw new Error(`ArgumentError: UPDATE ... FROM ${n} key must be a positive safe integer: ${e}`);return String(o)}let r=Le(e);if(r===null)throw new Error(`ArgumentError: UPDATE ... FROM ${n} key must be a finite decimal: ${e}`);return JSON.stringify(r)}async function oi(e,t,n,r,i){let o=await Yl(e,t,n,r,i,1,!1,!1);if(o.result.errors.length>0){let c=o.result.errors[0];throw new Error(`DmlValidationError: ${c.$err_code} ${c.$err_message} (row=${c.$err_row}, field=${c.$err_field})`)}let a=o.candidates,s=e.type.startsWith("INSERT")?"INSERT":"UPDATE";if(n.confirm&&a.length>0&&!await n.confirm(a.length,s))throw new le(s,a.length);if(e.type==="INSERT"||e.type==="INSERT_SELECT"){let c=[];for(let u=0;u<a.length;u+=100){let f=await t.postRecords({app:e.appId,records:a.slice(u,u+100).map(E=>E.record)});c.push(f.ids)}return{type:"INSERT",createdIds:c,insertedCount:c.flat().length}}if(e.type==="UPDATE"){let c=a.map(u=>({id:u.targetId,record:u.record}));for(let u=0;u<c.length;u+=100)await t.putRecords({app:e.appId,records:c.slice(u,u+100)});return{type:"UPDATE",updatedCount:c.length}}let l=a.filter(c=>c.mode==="create"),d=a.filter(c=>c.mode==="update").map(c=>({id:c.targetId,record:c.record})),p=0;for(let c=0;c<l.length;c+=100){let u=await t.postRecords({app:e.appId,records:l.slice(c,c+100).map(f=>f.record)});p+=u.ids.length}for(let c=0;c<d.length;c+=100)await t.putRecords({app:e.appId,records:d.slice(c,c+100)});return{type:"UPSERT",insertedCount:p,updatedCount:d.length}}async function tA(e,t,n,r){if(e.applyBlocks?.length)return Bg(e,t,n,r);if(e.checkGroups?.length)return oi(e,t,n,r);if(e.subtableCode)return SA(e,t,n,r);let i=await je(e.appId,e.fields,t,r),o=await yt(e.appId,e.fields,i,t,r),a=await Ae(e.appId,t,r),s=Vi(e,a);on(s.flatMap(d=>d.records),e.fields,i,o);let l=[];for(let d of s){let p=await t.postRecords(d);l.push(p.ids)}return{type:"INSERT",createdIds:l,insertedCount:l.flat().length}}function nA(){return{type:"SELECT",distinct:!1,columns:[],from:{appId:0,alias:null,cteName:qe},joins:[],where:null,groupBy:[],having:null,orderMode:"CANONICAL",orderBy:[],limit:null,offset:null}}async function wf(e,t,n,r,i){if(!n.enableImport)throw new Error("UnsupportedError: IMPORT capability is disabled.");let o=cd(e.source.sourceName,n.importSource);if(e.targets?.some(c=>c.kind==="SUBTABLE")){if(!e.validateOnly&&!n.supportsImportConfirmDetail)throw new Error("UnsupportedError: IMPORT subtable mutation requires a surface that displays parent/table replacement and deletion detail; use VALIDATE ONLY/EXPLAIN.");if(e.source.kind==="CSV"){if(e.writeMode!=="UPDATE_RECORD_NUMBER"||!e.recordNumberSourceHeader)throw new Error("ArgumentError: CSV subtable replacement requires IMPORT UPDATE and MATCH RECORD NUMBER SOURCE.");if(!e.replaceSubtables?.length)throw new Error("ArgumentError: CSV subtable replacement requires REPLACE SUBTABLES (...).");let U=new Set(e.targets.filter(k=>k.kind==="SUBTABLE").map(k=>k.subtableCode));if(e.replaceSubtables.some(k=>!U.has(k)))throw new Error("ArgumentError: REPLACE SUBTABLES contains a table not declared in INTO.");for(let k of e.targets.filter($=>$.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 c=e.targets,u=await ee(e.appId,t,r),f=c.flatMap(U=>U.kind==="FIELD"?[U.field]:U.children),E=u.some(U=>f.includes(U.code)&&U.fieldType==="NUMBER")?await ot(e.appId,t,r):void 0,R=await Co(o,new Map),h=e.source.kind==="JSON"?Rd(e.source,R,c,n.maxRecords??1e4):md(e.source,R,c,e.replaceSubtables??[],n.maxRecords??1e4,e.recordNumberSourceHeader),m=e.source.kind==="CSV"?"UPDATE":e.keyFields?"UPSERT":"INSERT",y=Ad(h,c,u,E,m);if(e.source.kind==="CSV")return rA(e,h,y,u,t,n,i);js(y,e.rejectLimit);let g=[...new Set(c.flatMap(U=>U.kind==="FIELD"?[U.field]:U.children))],S=zs(y.errors,g),P=[...g,...qs],b=y.invalidParentRows.size,L={preflight:"ACTUAL_DATA",parents:{total:y.parents.length,valid:y.parents.length-b,invalid:b,mutationCandidates:y.parents.filter(U=>U.valid).length},tables:Object.fromEntries(y.tableCounts),writesKintone:!1},I={type:"VALIDATION",operation:m,validatedRows:y.parents.length,validRows:y.parents.length-b,invalidRows:b,errorCount:S.length,columns:P,errors:S,importDetail:L,...e.validationErrorTable?{errTable:e.validationErrorTable}:{}};if(e.validationErrorTable&&i&&rt(i,e.validationErrorTable,P,S,n.tempTableMaxRows??Fe,new Map),e.validateOnly)return I;if(Td(h),y.errors.length>0&&!e.onErrorSkip){let U=y.errors[0];throw new Error(`DmlValidationError: ${U.code} ${U.message} (row=${U.parentRow}, field=${U.field})`)}if(e.onErrorSkip){if(!i||!e.errorTable)throw new Error("ArgumentError: ON ERROR SKIP requires a batch and INTO error table.");rt(i,e.errorTable,P,S,n.tempTableMaxRows??Fe,new Map)}let v=y.parents.filter(U=>U.valid),w=new Map(u.map(U=>[U.code,U.fieldType])),D=v.map(()=>{});if(e.keyFields){for(let V of e.keyFields)if(!e.fields.includes(V))throw new Error(`ON DUPLICATE \u306E\u30AD\u30FC\u300C${V}\u300D\u304C UPSERT \u30D5\u30A3\u30FC\u30EB\u30C9\u306B\u542B\u307E\u308C\u3066\u3044\u307E\u305B\u3093`);let U=e.keyFields.map(V=>w.get(V)==="NUMBER"),k=new Set,$=v.map(V=>e.keyFields.map(Te=>String(V.top[Te]?.value??"")));for(let V of $){let Te=rn(V,U);if(k.has(Te))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(Te)}let be=await ii(e.appId,e.keyFields,$,t,n,w);$.forEach((V,Te)=>{D[Te]=ri(be,V)})}let M=c.filter(U=>U.kind==="SUBTABLE").map(U=>U.subtableCode),N=new Map,_=D.filter(U=>U!==void 0);for(let U of Gn([...new Set(_)],100)){let k=await t.getRecords({app:e.appId,query:`$id in (${U.join(",")}) limit 500`,fields:["$id","$revision",...M]});for(let $ of k.records){let be=Number($.$id?.value),V=Number($.$revision?.value);Number.isFinite(be)&&N.set(be,{id:be,...Number.isFinite(V)?{revision:V}:{},record:$})}}let A=Id(v,D,N),C={kind:"IMPORT_JSON_SUBTABLE",rowIdPolicy:"DROP_AND_RENUMBER_ALL",parentsToWrite:A.length,insertedParents:A.filter(U=>U.mode==="INSERT").length,updatedParents:A.filter(U=>U.mode==="UPDATE").length,hasDeletes:A.some(U=>U.tables.some(k=>k.deleteRows>0)),parents:A.map(U=>({parentRow:U.parentRow,mode:U.mode,...U.targetId===void 0?{}:{targetId:U.targetId},tables:U.tables}))};if(A.length>0){if(!n.confirm)throw new Error("UnsupportedError: JSON IMPORT subtable mutation requires explicit confirmation detail approval.");if(!await n.confirm(A.length,e.keyFields?"UPDATE":"INSERT",{statementIndex:0,statementCount:1,statementType:"IMPORT",targetAppId:e.appId,importDetail:C}))throw new le(e.keyFields?"UPDATE":"INSERT",A.length)}let x=U=>new Map(Object.entries(U).map(([k,$])=>[k,$.value])),O=U=>Sd(x(U.top),new Map([...U.subtables].map(([k,$])=>[k,$.map(be=>({values:x(be)}))]))),F=A.filter(U=>U.mode==="INSERT"),j=A.filter(U=>U.mode==="UPDATE"),z=[];for(let U=0;U<F.length;U+=100){let k=await t.postRecords({app:e.appId,records:F.slice(U,U+100).map(O)});z.push(k.ids)}for(let U=0;U<j.length;U+=100)await t.putRecords({app:e.appId,records:j.slice(U,U+100).map(k=>({id:k.targetId,...k.revision===void 0?{}:{revision:k.revision},record:O(k)}))});return e.keyFields?{type:"UPSERT",insertedCount:z.flat().length,updatedCount:j.length,affectedRows:A.length,skippedRows:y.invalidParentRows.size,rejectLimit:e.rejectLimit,...e.errorTable?{errTable:e.errorTable}:{},importDetail:C}:{type:"INSERT",createdIds:z,insertedCount:z.flat().length,affectedRows:A.length,skippedRows:y.invalidParentRows.size,rejectLimit:e.rejectLimit,...e.errorTable?{errTable:e.errorTable}:{},importDetail:C}}if(e.writeMode==="UPDATE_RECORD_NUMBER")return iA(e,o,t,n,r,i);let a={appId:e.appId,fields:e.fields,select:nA(),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};qo.set(s,l);let d=c=>(l.audit&&Object.assign(c,{importAudit:l.audit}),c);if(s.validateOnly){if(s.validationErrorTable&&!i)throw new Error("ArgumentError: VALIDATE ONLY INTO requires a batch.");let c=await Hl(s,t,{...n,onLimitReached:"error"},r,i,1);return s.validationErrorTable&&i&&rt(i,s.validationErrorTable,c.columns,c.errors,n.tempTableMaxRows??Fe,sn.get(c)??new Map),d(c)}if(s.onErrorSkip){if(!i)throw new Error("ArgumentError: ON ERROR SKIP requires a batch.");let c=await(s.type==="UPSERT_SELECT",gl(s,t,n,r,i,1));return d(c)}let p=await(s.type==="UPSERT_SELECT"?Ql(s,t,n,r,i):zl(s,t,n,r,i));return d(p)}async function rA(e,t,n,r,i,o,a){if(!e.recordNumberSourceHeader||!e.replaceSubtables?.length)throw new Error("InternalError: incomplete CSV subtable replacement AST.");wd(t.records);let s=t.records.map(N=>N.recordNumberSourceValue??""),l=Qs(s,e.recordNumberSourceHeader),d=[...e.replaceSubtables],p=[...new Set(r.filter(N=>!N.inSubtable&&N.fieldType==="SUBTABLE").map(N=>N.code))],c=await Ie(i.getRecords,e.appId,"",["$id","$revision",...p],{maxRecords:o.maxRecords??1e4,parallel:o.fetchParallel??1,onLimit:"error"}),u=new Map,f=new Map;for(let N of c){let _=Number(N.$id?.value),A=Number(N.$revision?.value);if(Number.isFinite(_)){u.set(_,{id:_,...Number.isFinite(A)?{revision:A}:{},record:N});for(let C of p){let x=N[C]?.value;if(Array.isArray(x)){for(let O of x)if(O.id){let F=f.get(O.id)??[];F.push({parentId:_,table:C}),f.set(O.id,F)}}}}}let E=l.normalized.map(N=>N===null?void 0:Number(N)),R=n.parents.map((N,_)=>{let A=[...N.errors];for(let x of l.errors[_])A.push({operation:"UPDATE",parentRow:N.parentRow,field:x.field,code:x.code,message:x.message,sourceValues:t.records[_].top});let C=E[_];return C!==void 0&&!u.has(C)&&A.push({operation:"UPDATE",parentRow:N.parentRow,field:e.recordNumberSourceHeader,code:"ERR_RECORD_NUMBER_NOT_FOUND",message:`record number ${C} does not exist in APP${e.appId}`,sourceValues:t.records[_].top}),{...N,valid:A.length===0,errors:A}}),h=bd(t.records,R,E,u,f),m=h.flatMap(N=>[...N.errors]),y=new Set(h.filter(N=>!N.valid).map(N=>N.parentRow)),g={...n,parents:R,errors:m,invalidParentRows:y};js(g,e.rejectLimit);let S=h.filter(N=>N.valid),P=h.flatMap(N=>N.tables),b=(N,_)=>P.filter(A=>A.table===N).reduce((A,C)=>A+Number(C[_]),0),L=Object.fromEntries(d.map(N=>[N,{existingRows:b(N,"existingRows"),inputRows:b(N,"inputRows"),updateRows:b(N,"updateRows"),addRows:b(N,"addRows"),deleteRows:b(N,"deleteRows"),rowIdNotFound:b(N,"rowIdNotFound")}])),I={kind:"IMPORT_CSV_SUBTABLE_REPLACE",rowIdPolicy:"PRESERVE_EXISTING",parentsToWrite:S.length,insertedParents:0,updatedParents:S.length,hasDeletes:S.some(N=>N.tables.some(_=>_.deleteRows>0)),totalDeleteRows:S.flatMap(N=>N.tables).reduce((N,_)=>N+_.deleteRows,0),rowIdNotFound:S.flatMap(N=>N.tables).reduce((N,_)=>N+_.rowIdNotFound,0),invalidParents:y.size,parents:S.map(N=>({parentRow:N.parentRow,mode:"UPDATE",targetId:N.targetId,tables:N.tables}))},v=[...new Set(e.targets.flatMap(N=>N.kind==="FIELD"?[N.field]:N.children))],w=zs(m,v),D=[...v,...qs];if(e.validateOnly){if(e.validationErrorTable&&!a)throw new Error("ArgumentError: VALIDATE ONLY INTO requires a batch.");return e.validationErrorTable&&a&&rt(a,e.validationErrorTable,D,w,o.tempTableMaxRows??Fe,new Map),{type:"VALIDATION",operation:"UPDATE",validatedRows:R.length,validRows:R.length-y.size,invalidRows:y.size,errorCount:w.length,columns:D,errors:w,...e.validationErrorTable?{errTable:e.validationErrorTable}:{},importDetail:{preflight:"ACTUAL_DATA",parents:{total:R.length,valid:S.length,invalid:y.size,mutationCandidates:S.length},tables:L,rowIdPolicy:"PRESERVE_EXISTING",rowIdNotFound:I.rowIdNotFound,writesKintone:!1}}}if(m.length&&!e.onErrorSkip){let N=m[0];throw new Error(`DmlValidationError: ${N.code} ${N.message} (row=${N.parentRow}, field=${N.field})`)}if(e.onErrorSkip){if(!a||!e.errorTable)throw new Error("ArgumentError: ON ERROR SKIP requires a batch and INTO error table.");rt(a,e.errorTable,D,w,o.tempTableMaxRows??Fe,new Map)}if(S.length){if(!o.supportsImportConfirmDetail||!o.confirm)throw new Error("UnsupportedError: CSV subtable replacement requires explicit rendered detail approval.");if(!await o.confirm(S.length,"UPDATE",{statementIndex:0,statementCount:1,statementType:"IMPORT",targetAppId:e.appId,importDetail:I}))throw new le("UPDATE",S.length)}let M=N=>new Map(Object.entries(N).map(([_,A])=>[_,A.value]));for(let N of S){let _=Js(M(N.top),new Map([...N.subtables].map(([A,C])=>[A,C.map(x=>({...x.rowId?{rowId:x.rowId}:{},values:M(x.record)}))])),"PRESERVE");await i.putRecords({app:e.appId,records:[{id:N.targetId,...N.revision===void 0?{}:{revision:N.revision},record:_}]})}return{type:"UPDATE",updatedCount:S.length,affectedRows:S.length,skippedRows:y.size,rejectLimit:e.rejectLimit,...e.errorTable?{errTable:e.errorTable}:{},importDetail:I}}async function iA(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 je(e.appId,e.fields,n,i),s=await yt(e.appId,e.fields,a,n,i),l=await Co(t,new Map),d=Ws(e.source,l,r.maxRecords??1e4,e.fields,a,e.recordNumberSourceHeader),p=d.recordNumberSourceValues;if(!p)throw new Error("InternalError: record-number source values were not materialized.");let c=Qs(p,e.recordNumberSourceHeader),u=new Set,f=[...new Set(c.normalized.filter(I=>I!==null))];for(let I=0;I<f.length;I+=100){let v=f.slice(I,I+100),w=await n.getRecords({app:e.appId,query:`$id in (${v.join(",")}) limit 500`,fields:["$id"]});for(let D of w.records){let M=D.$id?.value;typeof M=="string"&&M!==""&&u.add(M.replace(/^0+(?=\d)/,""))}}let E=new Map(a.map(I=>[I.code,I])),R=new Map(e.fields.map(I=>[I,E.get(I)?.fieldType??"SINGLE_LINE_TEXT"])),h=d.rows.map((I,v)=>{let w=c.normalized[v],D=[...d.importRowErrors?.[v]??[],...c.errors[v]];return w!==null&&!u.has(w)&&D.push({field:e.recordNumberSourceHeader,code:"ERR_RECORD_NUMBER_NOT_FOUND",message:`record number ${w} does not exist in APP${e.appId}`}),{rowNumber:v+1,operation:"UPDATE",mode:"update",...w!==null&&u.has(w)?{targetId:Number(w)}:{},payload:new Map([[e.recordNumberSourceHeader,p[v]],...e.fields.map(M=>[M,I[M]??""])]),preErrors:D,record:{},evaluationRow:I,evaluationFieldTypes:R}}),m=[e.recordNumberSourceHeader,...e.fields],y=ss(h,"UPDATE",m,e.fields,a,1,s,e.checkGroups??[],!1),g=[...m,...On],S={type:"VALIDATION",operation:"UPDATE",validatedRows:h.length,validRows:h.length-y.invalidRows,invalidRows:y.invalidRows,errorCount:y.errors.length,columns:g,errors:y.errors,...e.validationErrorTable??e.errorTable?{errTable:e.validationErrorTable??e.errorTable}:{}};if(Object.assign(S,{importAudit:d.importAudit}),e.validateOnly){if(e.validationErrorTable&&!o)throw new Error("ArgumentError: VALIDATE ONLY INTO requires a batch.");return e.validationErrorTable&&o&&rt(o,e.validationErrorTable,g,y.errors,r.tempTableMaxRows??Fe,new Map),S}if(!e.onErrorSkip&&y.invalidRows>0){let I=y.errors[0];throw new Error(`DmlValidationError: ${I.$err_code} ${I.$err_message} (row=${I.$err_row}, field=${I.$err_field})`)}if(e.onErrorSkip){if(!o||!e.errorTable)throw new Error("ArgumentError: ON ERROR SKIP requires a batch.");if(rt(o,e.errorTable,g,y.errors,r.tempTableMaxRows??Fe,new Map),e.rejectLimit!=null&&y.invalidRows>e.rejectLimit)throw new Xr(`rejected rows (${y.invalidRows}) exceed REJECT LIMIT (${e.rejectLimit}).`,S)}let P=h.filter(I=>!y.invalidRowNumbers.has(I.rowNumber));if(r.confirm&&!await r.confirm(P.length,"UPDATE"))throw new le("UPDATE",P.length);let b=P.map(I=>({id:I.targetId,record:I.record}));for(let I=0;I<b.length;I+=100)await n.putRecords({app:e.appId,records:b.slice(I,I+100)});let L={type:"UPDATE",updatedCount:b.length,...e.onErrorSkip?{affectedRows:b.length,skippedRows:y.invalidRows,rejectLimit:e.rejectLimit??null,errTable:e.errorTable}:{}};return Object.assign(L,{insertedCount:0,importAudit:d.importAudit}),L}async function oA(e,t,n,r,i,o){let a=qo.get(e);if(!a){let R=i&&i.size>0?await mt(e.select,t,n,i,r,!0):await vt(e.select,t,n,r,void 0,!0);return{rows:R.rows,columns:R.columns,columnMeta:Ee.get(R)}}let s=await Co(a.handle,a.cache),l=n.maxRecords??1e4,d=new Map((o??[]).map(R=>[R.code,R])),p=e.fields.map(R=>({code:R,fieldType:d.get(R)?.fieldType??"SINGLE_LINE_TEXT"})),c=a.source.kind==="JSON"?Vs(a.source,s,p,l):Ws(a.source,s,l,e.fields,o);if(a.audit=c.importAudit,a.source.kind==="JSON"||!a.source.projection)return c;let u=Pd(a.source.projection),f=new Map(i??[]);f.set(Xs,c);let E=await mt(u,t,{...n,onLimitReached:"error"},f,r,!0);return{rows:E.rows,columns:E.columns,columnMeta:Ee.get(E)}}var ql={materialize:oA};function bf(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 zl(e,t,n,r,i){if(e.checkGroups?.length)return oi(e,t,n,r,i);let o=await je(e.appId,e.fields,t,r),a=await yt(e.appId,e.fields,o,t,r),s=await ql.materialize(e,t,n,r,i,o),{rows:l,columns:d}=s;if(bf(s),d.length!==e.fields.length){let f=d.length===0&&l.length===0?"\u3002\u7D50\u679C\u304C 0 \u884C\u306E\u305F\u3081\u5217\u3092\u7279\u5B9A\u3067\u304D\u307E\u305B\u3093\u3067\u3057\u305F\uFF08SELECT * \u3092\u7A7A\u30BD\u30FC\u30B9\u306B\u4F7F\u3046\u3068\u5217\u3092\u6C7A\u5B9A\u3067\u304D\u307E\u305B\u3093\u3002\u660E\u793A\u5217\u3067\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044\uFF09":"";throw new Error(`SELECT \u306E\u5217\u6570\uFF08${d.length}\uFF09\u3068 INSERT \u306E\u30D5\u30A3\u30FC\u30EB\u30C9\u6570\uFF08${e.fields.length}\uFF09\u304C\u4E00\u81F4\u3057\u307E\u305B\u3093${f}`)}if(n.confirm&&!await n.confirm(l.length,"INSERT"))throw new le("INSERT",l.length);let p=await Ae(e.appId,t,r),c=l.map((f,E)=>{let R={};return e.fields.forEach((h,m)=>{if(s.importPresence&&!s.importPresence[E]?.has(h))return;let y=f[d[m]]??"";R[h]={value:Af(y,p.get(h))}}),R});c.forEach(f=>on([f],e.fields.filter(E=>E in f),o,a));let u=[];for(let f=0;f<c.length;f+=100){let E=c.slice(f,f+100),R=await t.postRecords({app:e.appId,records:E});u.push(R.ids)}return{type:"INSERT",createdIds:u,insertedCount:u.flat().length}}async function Sl(e,t,n,r,i){if(e.applyBlocks?.length)return Pf(e,t,n,r);if(e.checkGroups?.length&&Rt(e.where)){let E=await je(e.appId,e.assignments.map(h=>h.field),t,r);await yt(e.appId,e.assignments.map(h=>h.field),E,t,r);let R=await Ae(e.appId,t,r);return Tf(e,R),an(e,Al(R,e.appId)),await xn(e,t,r),{type:"UPDATE",updatedCount:0}}if(e.checkGroups?.length)return oi(e,t,n,r,i);if(e.subtableCode)return await xn(e,t,r),TA(e,t,n,r);let o=await je(e.appId,e.assignments.map(E=>E.field),t,r),a=e.assignments.map(E=>E.field),s=await yt(e.appId,a,o,t,r);if(await xn(e,t,r),Rt(e.where))return{type:"UPDATE",updatedCount:0};if(e.from!=null)return yA(e,e.from,t,n,r,i);let l=n.maxRecords??1e4;await Df(e.assignments,t,n,r);let d=await Ae(e.appId,t,r);if(Wi(e)){let E=Wa(e),h=(await Ge(t.getRecords,E.app,E.query,[...E.fields],{maxRecords:l,parallel:n.fetchParallel??1})).records,m=Ya(e,h,d);if(on(m.flatMap(y=>y.records.map(g=>g.record)),a,o,s),n.confirm&&!await n.confirm(h.length,"UPDATE"))throw new le("UPDATE",h.length);for(let y of m)await t.putRecords(y);return{type:"UPDATE",updatedCount:h.length}}let p=fr(e),u=(await oo(t.getRecords,p.app,p.query,{maxRecords:l,parallel:n.fetchParallel??1})).ids,f=Er(e,u,d);if(on(f.flatMap(E=>E.records.map(R=>R.record)),a,o,s),n.confirm&&!await n.confirm(u.length,"UPDATE"))throw new le("UPDATE",u.length);for(let E of f)await t.putRecords(E);return{type:"UPDATE",updatedCount:u.length}}async function Pf(e,t,n,r,i=1){if(!e.validateOnly&&n.allowApplyMutation!==!0)throw new Error("UnsupportedError: APPLY mutation requires allowApplyMutation=true");if(!st(e.where))return aA(e,t,n,r,i);let o=await ee(e.appId,t,r),a=pt(e,o),s=Yi(e,o),l=es(e),d=await t.getRecords({app:e.appId,query:`$id = ${l} limit 2`,fields:[...s]});if(d.records.length===0)throw new Error(`ArgumentError: APPLY parent $id ${l} does not exist.`);if(d.records.length!==1)throw new Error(`ArgumentError: APPLY parent $id ${l} returned multiple records.`);let p=Number(d.records[0].$id?.value);if(p!==l)throw new Error(`ArgumentError: APPLY snapshot $id ${p} does not match requested $id ${l}.`);Ji(d.records[0]);let c=qc({statement:e,snapshot:d.records[0],fieldInfos:o,metadata:a}),u=Je(o,e.assignments.map(P=>P.field)),f=Ht(c.postImage,u)?await ot(e.appId,t,r):void 0,E=Yt(c.postImage,u,f,i);if(!e.validateOnly&&E.errorCount>0)throw new Error(`ArgumentError: APPLY post-image validation failed: ${JSON.stringify({columns:E.columns,errors:E.errors})}`);let R=xe(n.dmlMaxRows,"dmlMaxRows",ht),h=xe(n.dmlMaxSubtableRows,"dmlMaxSubtableRows",Se),m=c.parentRows>R||c.changedSubtableRows>h;if(e.validateOnly){let P=wr({plans:[c],records:hr(c).records,validations:[],guards:{revisionRequired:!0,parentRows:c.parentRows,dmlMaxRows:R,subtableRows:c.changedSubtableRows,dmlMaxSubtableRows:h,wouldExceed:m}}),b={type:"VALIDATION",operation:"UPDATE",validatedRows:1,validRows:E.invalidRows===0?1:0,invalidRows:E.invalidRows===0?0:1,errorCount:E.errorCount,columns:[...E.columns],errors:E.errors,...e.validationErrorTable?{errTable:e.validationErrorTable}:{},apply:Qr(P.branches[0]),guards:Zr(P.branches[0]),deletedRows:{total:c.tables.reduce((L,I)=>L+I.deletedRows,0),parentRows:c.tables.some(L=>L.deletedRows>0)?1:0},diagnostic:P};return sn.set(b,ta(E.columns,o,e.appId)),b}if(c.parentRows>R)throw new Error(`ArgumentError: APPLY parent rows (${c.parentRows}) exceed dmlMaxRows (${R}).`);if(c.changedSubtableRows>h)throw new Error(`ArgumentError: APPLY changed subtable rows (${c.changedSubtableRows}) exceed dmlMaxSubtableRows (${h}).`);let y=qi(c,E.normalizedRecord),g=hr(y),S=wr({plans:[y],records:g.records,validations:[],guards:{revisionRequired:!0,parentRows:c.parentRows,dmlMaxRows:R,subtableRows:c.changedSubtableRows,dmlMaxSubtableRows:h,wouldExceed:m}});if(n.confirm){let P=ea(S,!1);if(!await n.confirm(c.parentRows,"UPDATE",{statementIndex:0,statementCount:1,statementType:"UPDATE",targetAppId:e.appId,applyDetail:P,applyDiagnostic:S}))throw new le("UPDATE",c.parentRows)}return await t.putRecords(g),{type:"UPDATE",updatedCount:c.parentRows,diagnostic:Ue(S,{successfulChunks:1,successfulParents:c.parentRows})}}async function aA(e,t,n,r,i){let o=xe(n.dmlMaxRows,"dmlMaxRows",ht),a=xe(n.dmlMaxSubtableRows,"dmlMaxSubtableRows",Se),s=await ee(e.appId,t,r),l=pt(e,s),d;if(Ho(e))d=await cA(e,t,n,s,r);else{let f=Yi(e,s),E=fr(e).query,R=o+1;d=await Ie(t.getRecords,e.appId,E,[...f],{pageSize:Math.min(500,R),parallel:n.fetchParallel??1,maxRecords:R,stopAfter:R,onLimit:"error"})}if(!e.validateOnly&&d.length>o)throw new Error(`ArgumentError: APPLY parent rows (${d.length}) exceed dmlMaxRows (${o}).`);let p=await eo({statement:e,snapshots:d,fieldInfos:s,metadata:l,dmlMaxRows:o,dmlMaxSubtableRows:a,statementNumber:i,loadNumberPrecision:()=>ot(e.appId,t,r)});if(e.validateOnly)return RA(e,p,s);Ou("phase15b",e);let c=wr(p);if(n.confirm){let f=ea(c);if(!await n.confirm(p.guards.parentRows,"UPDATE",{statementIndex:0,statementCount:1,statementType:"UPDATE",targetAppId:e.appId,applyDetail:f,applyDiagnostic:c}))throw new le("UPDATE",p.guards.parentRows)}let u=await Ep(p,t,c);return{...u,diagnostic:Ue(c,u)}}function Ho(e){return(e.applyBlocks?.length??0)>0&&!st(e.where)&&(At(e.where)||pe(e.where))}function sA(e){let t=e.type==="EXPLAIN"?e.query:e;return t.type==="UPDATE"&&Ho(t)&&pe(t.where)}var lA=`APPLY \u8907\u6570\u89AA UPDATE \u306E\u89AA WHERE \u306B\u3001\u5B89\u5168\u306B\u62BC\u3057\u4E0B\u3052\u3089\u308C\u306A\u3044 KLIKE / NOT KLIKE \u304C\u3042\u308A\u307E\u3059\u3002
|
|
8
|
+
`){o();continue}let l=a();if("{}[]:,".includes(s)){o(),t.push({kind:"punct",value:s,...l});continue}if(s==='"'){o();let u="",f=!1;for(;n<e.length;){let E=o();if(E==='"'){f=!0;break}if(E.charCodeAt(0)<32&&ft("string contains an unescaped control character",l.offset,l.line,l.column),E!=="\\"){u+=E;continue}n>=e.length&&ft("string has an unterminated escape",l.offset,l.line,l.column);let R=o(),m={'"':'"',"\\":"\\","/":"/",b:"\b",f:"\f",n:`
|
|
9
|
+
`,r:"\r",t:" "};if(R in m){u+=m[R];continue}R!=="u"&&ft(`has invalid escape \\${R}`,n-2,r,Math.max(1,i-2));let g=e.slice(n,n+4);/^[0-9a-fA-F]{4}$/.test(g)||ft("has invalid unicode escape",n,r,i);for(let h=0;h<4;h++)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)))&&ft("has an unpaired high surrogate",n,r,i),o(),o();let h=e.slice(n,n+4);for(let w=0;w<4;w++)o();let S=Number.parseInt(h,16);(S<56320||S>57343)&&ft("has an invalid surrogate pair",n-4,r,Math.max(1,i-4)),u+=String.fromCodePoint(65536+(y-55296<<10)+S-56320)}else y>=56320&&y<=57343?ft("has an unpaired low surrogate",n-4,r,Math.max(1,i-4)):u+=String.fromCharCode(y)}f||ft("string is unterminated",l.offset,l.line,l.column),t.push({kind:"string",value:u,...l});continue}let d=e.slice(n),p=/^-?(?:0|[1-9]\d*)(?:\.\d+)?(?:[eE][+-]?\d+)?/.exec(d)?.[0];if(p){for(let u=0;u<p.length;u++)o();t.push({kind:"number",lexeme:p,...l});continue}let c=/^(true|false|null)/.exec(d)?.[0];if(c){for(let u=0;u<c.length;u++)o();t.push({kind:"literal",value:c==="true"?!0:c==="false"?!1:null,...l});continue}ft(`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 vo(e){return e.kind==="eof"?"end of input":e.kind==="punct"?e.value:e.kind}function Uo(e){if(e.byteLength===0)throw new K("JSON source is empty.");let t=hd(gd(e)),n=0,r=(d,p=t[n])=>{throw new K(`JSON ${d} (offset=${p.offset}, line=${p.line}, column=${p.column}).`)},i=(d,p)=>d.kind==="punct"&&d.value===p,o=d=>{let p=t[n];(p.kind!=="punct"||p.value!==d)&&r(`expected ${d}; found ${vo(p)}`,p),n++},a=()=>{let d=t[n++];if(d.kind==="string")return d.value;if(d.kind==="number")return{kind:"number",lexeme:d.lexeme};if(d.kind==="literal")return d.value;if(d.kind==="punct"&&d.value==="{"){let p=new Map;if(i(t[n],"}"))return n++,p;for(;;){let c=t[n++];if(c.kind!=="string")return r(`object key must be a string; found ${vo(c)}`,c);let u=c.value;p.has(u)&&r(`duplicate key ${JSON.stringify(u)}`,c),o(":"),p.set(u,a());let f=t[n];if(i(f,"}")){n++;break}o(",")}return p}if(d.kind==="punct"&&d.value==="["){let p=[];if(i(t[n],"]"))return n++,p;for(;;){p.push(a());let c=t[n];if(i(c,"]")){n++;break}o(",")}return p}return r(`expected a value; found ${vo(d)}`,d)},s=a();t[n].kind!=="eof"&&r(`has trailing data; found ${vo(t[n])}`);let l=s instanceof Map?[s]:Array.isArray(s)?s:r("root must be an object or array.",t[0]);if(l.length===0)throw new K("JSON source contains no records.");return l.forEach((d,p)=>{if(!(d instanceof Map))throw new K(`JSON record ${p+1} must be an object.`)}),l}var Bg=new Set(["CHECK_BOX","MULTI_SELECT"]),Ad=new Set(["USER_SELECT","ORGANIZATION_SELECT","GROUP_SELECT"]);function tt(e,t,n){throw new K(`JSON field validation failed (row=${e}, field=${t}): ${n}`)}function $g(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)&&!(e instanceof Map)&&e.kind==="number"}function Gg(e,t,n){if(e===null)return"";if(typeof e=="string")return e;if(typeof e=="boolean"&&tt(n,t.code,"boolean is not accepted."),$g(e)){t.fieldType==="NUMBER"&&tt(n,t.code,"precision target requires a JSON string."),(!/^-?(?:0|[1-9]\d*)$/.test(e.lexeme)||e.lexeme==="-0")&&tt(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)||tt(n,t.code,`JSON number ${e.lexeme} is outside the safe integer range.`),String(i)}e instanceof Map&&tt(n,t.code,"object is not accepted for a flat field."),Array.isArray(e)||tt(n,t.code,"unsupported value type."),!Bg.has(t.fieldType)&&!Ad.has(t.fieldType)&&tt(n,t.code,"array is accepted only for multi-value fields.");let r=e.map(i=>(typeof i!="string"&&tt(n,t.code,"array elements must be strings."),i));return new Set(r).size!==r.length&&tt(n,t.code,"array elements must not contain duplicates."),Ad.has(t.fieldType)?JSON.stringify(r.map(i=>({code:i}))):JSON.stringify(r)}function Hs(e,t,n,r){if(t.encoding&&t.encoding!=="utf8")throw new K("JSON source is UTF-8 only.");let i=Uo(t.bytes);if(i.length>r)throw new K(`source rows (${i.length}) exceed maxRecords (${r}).`);let o=new Map(n.map(l=>[l.code,l]));if(o.size!==n.length)throw new K("JSON target fields contain duplicates.");let a=[],s=[];return i.forEach((l,d)=>{for(let u of l.keys())o.has(u)||tt(d+1,u,"unknown key (not declared in INTO).");let p={},c=new Set;for(let u of n)l.has(u.code)&&(c.add(u.code),p[u.code]=Gg(l.get(u.code),u,d+1));a.push(p),s.push(c)}),{rows:a,columns:n.map(l=>l.code),columnMeta:new Map(n.map(l=>[l.code,{fieldType:l.fieldType}])),importPresence:s}}function Ys(e,t,n,r,i,o){let a=Do(t.bytes,{encoding:e.encoding??t.encoding??"utf8",hasHeader:e.hasHeader,columns:e.columns});if(a.rows.length>n)throw new K(`source rows (${a.rows.length}) exceed maxRecords (${n}).`);if(e.mappingMode==="BY_NAME"){if(!r||!i)throw new Error("InternalError: BY NAME requires destination form metadata.");if(new Set(r).size!==r.length)throw new K("ERR_IMPORT_HEADER_REUSED: a BY NAME header cannot be consumed more than once.");let l=new Map(a.columns.map((g,y)=>[g,y]));for(let g of r)if(!l.has(g))throw new K(`ERR_IMPORT_MISSING_COLUMN: required header "${g}" is missing.`);let d=new Map(i.map(g=>[g.code,g])),p=new Set(r);if(o&&p.has(o))throw new K("ERR_IMPORT_HEADER_REUSED: record-number source header is lookup-only and cannot be a write target.");if(o&&!l.has(o))throw new K(`ERR_IMPORT_MISSING_COLUMN: required header "${o}" is missing.`);let c=[],u=[],f=g=>a.rows.filter(y=>y[g]!=="").length,E=g=>g.fieldType==="FILE"?"FILE attachment is outside flat IMPORT scope":g.inSubtable||g.fieldType==="SUBTABLE"?"subtable field is not writable in Phase 3":g.writable===!1?`non-writable ${g.fieldType} field`:`known export-only ${g.fieldType} field`;for(let[g,y]of a.columns.entries()){if(p.has(y)||y===o)continue;let h=d.get(y);if(h)c.push({column:y,reason:E(h),nonEmptyCells:f(g)});else if(e.ignoreUnknownColumns)u.push({column:y,reason:"unknown column ignored by explicit policy",nonEmptyCells:f(g)});else throw new K(`ERR_IMPORT_UNKNOWN_COLUMN: unknown CSV header "${y}".`)}for(let g of r){let y=d.get(g);if(!y)throw new Error(`ArgumentError: DML target field ${g} does not exist.`);if(y.inSubtable||y.writable===!1||y.fieldType==="FILE"||y.fieldType==="SUBTABLE")throw new Error(`ArgumentError: DML target field ${g} is not writable (${y.fieldType}).`)}let R=[];return{rows:a.rows.map(g=>{let y=[],h={};for(let S of r){let w=g[l.get(S)];try{h[S]=yd(w,d.get(S)?.fieldType,{cliKintone:!0})}catch(I){if(!(I instanceof Kr))throw I;h[S]=w,y.push({field:S,code:I.code,message:I.message})}}return R.push(y),h}),columns:[...r],columnMeta:new Map(r.map(g=>[g,{fieldType:d.get(g)?.fieldType??"SINGLE_LINE_TEXT"}])),importRowErrors:R,...o?{recordNumberSourceValues:a.rows.map(g=>g[l.get(o)])}:{},importAudit:{mapping:"BY_NAME",writtenColumns:[...r],ignoredKnownColumns:c,ignoredUnknownColumns:u}}}return{rows:a.rows.map(l=>Object.fromEntries(a.columns.map((d,p)=>[d,l[p]]))),columns:a.columns,columnMeta:new Map(a.columns.map(l=>[l,{fieldType:"SINGLE_LINE_TEXT"}]))}}var Br=(e,t,n)=>{throw new K(`JSON subtable validation failed (parentRow=${e}, field=${t}): ${n}`)};function Sd(e,t,n,r,i=r){if(t.encoding&&t.encoding!=="utf8")throw new K("JSON source is UTF-8 only.");let o=Uo(t.bytes);if(o.length>r)throw new K(`source parent rows (${o.length}) exceed maxRecords (${r}).`);let a=new Map(n.map(l=>[l.kind==="FIELD"?l.field:l.subtableCode,l]));if(a.size!==n.length)throw new K("IMPORT targets contain duplicates.");let s=0;return{records:o.map((l,d)=>{let p=d+1;for(let E of l.keys())a.has(E)||Br(p,E,"unknown key (not declared in INTO).");let c=new Map,u=new Map,f=new Set;for(let E of n){let R=E.kind==="FIELD"?E.field:E.subtableCode;if(!l.has(R))continue;let m=l.get(R);if(E.kind==="FIELD"){m instanceof Map&&Br(p,R,"object is not accepted for a top-level field."),c.set(R,m);continue}Array.isArray(m)||Br(p,R,"subtable value must be an array."),f.add(R);let g=new Set(E.children),y=m.map((h,S)=>{h instanceof Map||Br(p,R,`childRow=${S+1} must be an object.`);let w=h;for(let I of w.keys())g.has(I)||Br(p,I,`unknown child key in subtable ${R} at childRow=${S+1}.`);if(s++,s>i)throw new K(`source child rows (${s}) exceed limit (${i}).`);return{childRowNumber:S+1,values:w}});u.set(R,y)}return{rowNumber:p,top:c,subtables:u,replacementTables:f}})}}function Td(e,t,n,r,i,o){let a=Do(t.bytes,{encoding:e.encoding??t.encoding??"utf8",hasHeader:e.hasHeader,columns:e.columns});if(!e.hasHeader||a.columns[0]!=="*")throw new K('ERR_IMPORT_MARKER: first CSV header must be "*".');let s=new Map(a.columns.map((u,f)=>[u,f]));if(o&&!s.has(o))throw new K(`ERR_IMPORT_MISSING_COLUMN: required header "${o}" is missing.`);let l=n.filter(u=>u.kind==="FIELD"),d=n.filter(u=>u.kind==="SUBTABLE");for(let u of l)if(!s.has(u.field))throw new K(`ERR_IMPORT_MISSING_COLUMN: required header "${u.field}" is missing.`);for(let u of d){if(!u.rowIdSourceHeader||!s.has(u.rowIdSourceHeader))throw new K(`ERR_IMPORT_MISSING_COLUMN: row-ID header for ${u.subtableCode} is missing.`);for(let f of u.children)if(!s.has(f))throw new K(`ERR_IMPORT_MISSING_COLUMN: required child header "${f}" is missing.`)}let p=[],c;if(a.rows.forEach((u,f)=>{let E=f+2,R=u[0];if(R!==""&&R!=="*")throw new K(`ERR_IMPORT_MARKER: invalid marker ${JSON.stringify(R)} at source row ${E}.`);if(R==="*"){if(p.length>=i)throw new K(`source parent rows exceed maxRecords (${i}).`);c={rowNumber:p.length+1,markerRowNumber:E,top:new Map(l.map(m=>[m.field,u[s.get(m.field)]])),subtables:new Map(d.map(m=>[m.subtableCode,[]])),replacementTables:new Set(r),...o?{recordNumberSourceValue:u[s.get(o)]}:{}},p.push(c)}else if(c){for(let m of l){let g=u[s.get(m.field)];if(g!==""&&g!==c.top.get(m.field))throw new K(`ERR_IMPORT_PARENT_VALUE_ON_CONTINUATION: ${m.field} at source row ${E}.`)}if(o){let m=u[s.get(o)];if(m!==""&&m!==c.recordNumberSourceValue)throw new K(`ERR_IMPORT_PARENT_VALUE_ON_CONTINUATION: ${o} at source row ${E}.`)}}else throw new K(`ERR_IMPORT_MARKER: first data row must start a parent (source row ${E}).`);for(let m of d){let g=u[s.get(m.rowIdSourceHeader)],y=new Map(m.children.map(S=>[S,u[s.get(S)]]));if(g===""&&[...y.values()].every(S=>S===""))continue;let h=c.subtables.get(m.subtableCode);h.push({childRowNumber:h.length+1,sourceRowNumber:E,...g?{rowId:g}:{},values:y})}}),p.length===0)throw new K("CSV has no parent rows.");return{records:p}}var Vg=new Set(["USER_SELECT","ORGANIZATION_SELECT","GROUP_SELECT"]),Wg=new Set(["SUBTABLE","FILE","CALC","RECORD_NUMBER","CREATOR","CREATED_TIME","MODIFIER","UPDATED_TIME","STATUS","STATUS_ASSIGNEE","CATEGORY","REFERENCE_TABLE"]);function qs(e,t){if(t!=null&&e.invalidParentRows.size>t)throw new Error(`RejectLimitExceededError: rejected parents (${e.invalidParentRows.size}) exceed REJECT LIMIT (${t}).`)}function Pd(e,t,n,r,i){let o=new Map(n.filter(u=>!u.inSubtable).map(u=>[u.code,u])),a=new Map;for(let u of n)if(u.inSubtable&&u.subtableCode){let f=a.get(u.subtableCode);f||a.set(u.subtableCode,f=new Map),f.set(u.code,u)}let s=t.filter(u=>u.kind==="FIELD"),l=t.filter(u=>u.kind==="SUBTABLE");for(let u of s)Id(u.field,o.get(u.field),void 0);for(let u of l){let f=o.get(u.subtableCode);if(!f||f.fieldType!=="SUBTABLE")throw new Error(`ArgumentError: IMPORT subtable ${u.subtableCode} does not exist.`);let E=a.get(u.subtableCode)??new Map;for(let R of u.children)Id(R,E.get(R),u.subtableCode)}let d=new Map(l.map(u=>[u.subtableCode,{parentsPresent:0,childRows:0,validChildRows:0,invalidChildRows:0}])),p=e.records.map(u=>Hg(u,s,l,o,a,r,i,d)),c=p.flatMap(u=>[...u.errors]);return{parents:p,errors:c,invalidParentRows:new Set(p.filter(u=>!u.valid).map(u=>u.parentRow)),tableCounts:d}}function Hg(e,t,n,r,i,o,a,s){let l=[],d={};for(let u of t)e.top.has(u.field)&&zs(e.top.get(u.field),r.get(u.field),o,d,u.field,l,js(e,a,u.field));let p={};if(a==="INSERT")for(let u of r.values())u.fieldType==="SUBTABLE"||u.writable===!1||e.top.has(u.code)||wd(u,o,p,l,js(e,a,u.code));let c=new Map;for(let u of n){if(!e.subtables.has(u.subtableCode))continue;let f=s.get(u.subtableCode);f.parentsPresent++;let E=[];for(let R of e.subtables.get(u.subtableCode)){f.childRows++;let m=l.length,g={},y=i.get(u.subtableCode);for(let h of u.children){let S=y.get(h),w=js(e,a,h,u.subtableCode,R.childRowNumber,R.sourceRowNumber??e.markerRowNumber);R.values.has(h)?zs(R.values.get(h),S,o,g,h,l,w):wd(S,o,g,l,w)}l.length===m?(f.validChildRows++,E.push(g)):f.invalidChildRows++}c.set(u.subtableCode,E)}return{parentRow:e.rowNumber,valid:l.length===0,top:d,subtables:c,replacementTables:e.replacementTables,errors:l}}function Id(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&&Wg.has(t.fieldType))throw new Error(`ArgumentError: IMPORT ${n?`child ${n}.${e}`:`field ${e}`} is not writable (${t.fieldType}).`)}function wd(e,t,n,r,i){let o=Wt(e.defaultValue)?"":e.defaultValue;zs(o,e,t,n,e.code,r,i,!Wt(e.defaultValue))}function zs(e,t,n,r,i,o,a,s=!1){let l=Yg(e),d=Ne(l,t,n);d.ok?r[i]={value:jg(l,t)?l:d.value}:o.push({...a,code:d.code,message:s?`\u65E2\u5B9A\u5024: ${d.message}`:d.message})}function Yg(e){return bd(e)?e.lexeme:Array.isArray(e)?e.map(t=>t instanceof Map?t:bd(t)?t.lexeme:t):e}function bd(e){return typeof e=="object"&&e!==null&&e.kind==="number"}function jg(e,t){return Vg.has(t.fieldType)&&Array.isArray(e)&&e.every(n=>typeof n=="object"&&n!==null&&"code"in n)}function js(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 Js=["$err_statement","$err_operation","$err_row","$err_field","$err_subtable","$err_subrow","$err_source_row","$err_code","$err_message"];function Xs(e,t,n=1){return e.map(r=>{let i={};for(let o of t)i[o]=r.sourceValues.get(o)==null?"":zg(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 zg(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 Qs(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 Nd(e,t){return Qs(e,t,"DROP")}function Cd(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 Od(e,t,n){return e.map((r,i)=>{let o=t[i],a=o===void 0?void 0:n.get(o);if(o!==void 0&&!a)throw new Error(`InternalError: IMPORT UPSERT target APP record ${o} was not loaded.`);let s=[...r.subtables].map(([l,d])=>{let p=a?.record[l]?.value,c=Array.isArray(p)?p.length:0;return{table:l,existingRows:c,inputRows:d.length,addRows:d.length,deleteRows:c}});return{parentRow: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 qg(e,t){let n=e[t]?.value;return Array.isArray(n)?n:[]}function Ld(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 _d(e,t,n,r,i){return t.map((o,a)=>{let s=e[a],l=n[a],d=l===void 0?void 0:r.get(l),p=[...o.errors];if(!d||l===void 0)return{parentRow:o.parentRow,targetId:l??0,valid:!1,top:o.top,subtables:new Map,tables:[],errors:p};let c=new Map,u=[];for(let f of o.replacementTables){let E=qg(d.record,f),R=new Set(E.map(I=>I.id).filter(I=>!!I)),m=s.subtables.get(f)??[],g=o.subtables.get(f)??[],y=0,h=0,S=0,w=m.map((I,L)=>{let b=g[L]??{};return I.rowId&&R.has(I.rowId)?(y++,{rowId:I.rowId,record:b}):(I.rowId&&((i.get(I.rowId)??[]).some(P=>P.parentId!==l||P.table!==f)&&p.push({operation:"UPDATE",parentRow:o.parentRow,field:I.rowId,subtable:f,subrow:I.childRowNumber,sourceRow:I.sourceRowNumber,code:"ERR_IMPORT_FIELD_OWNERSHIP",message:`rowIdOwnedElsewhere: ${I.rowId}`,sourceValues:I.values}),S++),h++,{record:b})});c.set(f,w),u.push({table:f,existingRows:E.length,inputRows:m.length,updateRows:y,addRows:h,deleteRows:E.length-y,rowIdNotFound:S})}return{parentRow:o.parentRow,targetId:l,...d.revision===void 0?{}:{revision:d.revision},valid:p.length===0,top:o.top,subtables:c,tables:u,errors:p}})}var Zs="#__import_source";function Dd(e){return{...e,from:{appId:0,alias:null,cteName:Zs}}}function Jg(e){return/^[0-9]+$/.test(e)?e.replace(/^0+(?=\d)/,""):null}function el(e,t){let n=e.map(Jg),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 Xg="\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",tn=class extends Error{constructor(){super("SearchAbortedError: kintone \u306E\u691C\u7D22\u304C 10 \u4E07\u4EF6\u3067\u6253\u3061\u5207\u3089\u308C\u305F\u305F\u3081\u3001\u5B8C\u5168\u306A\u5BFE\u8C61\u96C6\u5408\u3092\u78BA\u5B9A\u3067\u304D\u307E\u305B\u3093\u3002"),this.name="SearchAbortedError"}},Ee=new WeakMap;function zd(e){return Ee.get(e)}var sn=new WeakMap,Xo=new WeakMap,vd=new WeakMap,Qg=1,Zg=1;function qd(e,t){if(t)return t;let n=vd.get(e);return n||(n=`client:${Qg++}`,vd.set(e,n)),n}function Nl(e){return`${e}\0inv:${Zg++}`}async function Cl(e,t,n={}){let r=Date.now(),i=Nl(qd(t,n.cacheContext));try{let o=KA(e,n.enableImport===!0),a=Jd(),s=Qd(t,a),l={aborted:!1},d=Ll(s,l,!th(o)||As(o)),p=await al(o,d,n,i);a.elapsedMs=Date.now()-r;let c={...Zd(p,l),metrics:a};if(p.type==="SELECT"){let u=Ee.get(p);u&&Ee.set(c,u)}return c}finally{Hl(i)}}function Jd(){return{getCalls:0,postCalls:0,putCalls:0,deleteCalls:0,fieldCalls:0,numberPrecisionCalls:0,appsCalls:0,processStatusCalls:0,cursorCreateCalls:0,cursorGetCalls:0,cursorDeleteCalls:0,cursorRecordsScanned:0,cursorActiveCurrent:0,cursorActivePeak:0,cursorCleanupFailures:0,cursorCreateOutcomeUnknown:0,cursorQuarantinedCurrent:0,fetchedRows:0,limitReached:!1,limitReachedApps:[],elapsedMs:0}}var Xd=Symbol("limitMetricsSink");function Ol(e,t){let n=e[Xd];n&&(n.limitReached=!0,n.limitReachedApps.includes(t)||n.limitReachedApps.push(t))}function Qd(e,t){return{[Xd]:t,getRecords:async n=>{t.getCalls+=1;let r=await e.getRecords(n);return t.fetchedRows+=r.records.length,r},openCursor:async n=>{t.cursorCreateCalls+=1;let r;try{r=await e.openCursor(n)}catch(a){throw a instanceof Error&&a.name==="CursorCreateOutcomeUnknownError"&&(t.cursorCreateOutcomeUnknown+=1,t.cursorQuarantinedCurrent+=1),a}t.cursorActiveCurrent+=1,t.cursorActivePeak=Math.max(t.cursorActivePeak,t.cursorActiveCurrent);let i=!1,o=()=>{i||(i=!0,t.cursorActiveCurrent-=1)};return{totalCount:r.totalCount,nextPage:async()=>{t.cursorGetCalls+=1;let a=await r.nextPage();return t.cursorRecordsScanned+=a.records.length,a.next||o(),a},close:async()=>{i||(t.cursorDeleteCalls+=1);try{await r.close(),o()}catch(a){throw t.cursorCleanupFailures+=1,t.cursorQuarantinedCurrent+=1,a}}}},postRecords:n=>(t.postCalls+=1,e.postRecords(n)),putRecords:n=>(t.putCalls+=1,e.putRecords(n)),deleteRecords:n=>(t.deleteCalls+=1,e.deleteRecords(n)),getApps:()=>(t.appsCalls+=1,e.getApps()),getFields:n=>(t.fieldCalls+=1,e.getFields(n)),getNumberPrecision:n=>(t.numberPrecisionCalls+=1,e.getNumberPrecision(n)),getProcessStatuses:n=>(t.processStatusCalls+=1,e.getProcessStatuses(n))}}var Ud=Symbol("searchAbortFailClosed");function Ll(e,t,n){return n&&e[Ud]?e:{...e,...n?{[Ud]:!0}:{},getRecords:async r=>{let i=await e.getRecords(r);if(i.searchAborted&&(t.aborted=!0,n))throw new tn;return i}}}function eh(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 th(e){return e.type==="SELECT"||e.type==="UNION"||e.type==="WITH"}function Zd(e,t){if(!t.aborted||e.type!=="SELECT")return e;let n=new Set(e.warnings??[]);return n.add(Xg),{...e,warnings:[...n]}}async function kd(e,t,n){let r=await ni(e,t,n);return Vs(r),r}async function ni(e,t,n){return Rd(e,{select:r=>zr(r,t,n),dml:r=>lf(r,t,n),prefilterDecomposition:async r=>{if(r.where===null)return null;let i=await $n(r,t,n);return Ws(r,i)},joinServerFunctionPlan:async r=>{let i=await ea(r,t,n),o=Zo(r,i);return o===null?null:(kn(o.joinPlan)&&xl.set(r,o),o.joinPlan)}})}async function al(e,t,n,r){let i=await ni(e,t,r);e.type!=="EXPLAIN"&&Vs(i);let o=ll(e);if(o!==null&&!yA(e))throw new Error(`ParseError: variable @${o} is not defined in a batch.`);if(mn("phase15b",e),Ti("phase15b",e),$e(e),e.type!=="EXPLAIN"&&await fh(e,t,r),e.type==="IMPORT")return Lf(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 Il(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 jl(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 nh(e,t,n,r);case"SELECT":return vt(dl(e),t,n,r,void 0,n.captureColumnMeta===!0,n.captureColumnMeta===!0);case"UNION":return Af(e,t,n,r,n.captureColumnMeta===!0,n.captureColumnMeta===!0);case"WITH":return Vl(e,t,n,r,void 0,n.captureColumnMeta===!0);case"INSERT":return pA(e,t,n,r);case"INSERT_SELECT":return Xl(e,t,n,r);case"UPSERT":return LA(e,t,n,r);case"UPSERT_SELECT":return eu(e,t,n,r);case"UPDATE":return Il(e,t,n,r);case"DELETE":return OA(e,t,n,r);case"REORDER":return MA(e,t,n,r);case"SHOW_APPS":return kf(t);case"DESCRIBE":return Mf(e,t,r);case"EXPLAIN":return VA(e,t,r,n.maxRecords??1e4,n.cursorMaxActive??2,e.query.type==="UPDATE"&&e.query.applyBlocks?.length?xe(n.dmlMaxRows,"dmlMaxRows",gt):gt,e.query.type==="UPDATE"&&e.query.applyBlocks?.length?xe(n.dmlMaxSubtableRows,"dmlMaxSubtableRows",Se):Se,i);case"CREATE_TEMP_TABLE":throw new Error("ArgumentError: CREATE TEMP TABLE requires a batch (temp tables are batch-scoped).");case"DROP_TEMP_TABLE":throw new Error("ArgumentError: DROP TEMP TABLE requires a batch (temp tables are batch-scoped).");case"SET_VARIABLE":throw new Error("ArgumentError: SET variable requires a batch.");case"DECLARE_VARIABLE":throw new Error("ArgumentError: DECLARE variable requires a batch.");case"ASSERT":return of(e,t,n,r)}}var _l=["$id","$err_field","$err_code","$err_message","$err_value","$err_subtable","$err_subrow","$err_subrow_id","$err_count"],Dl=["$id","$err_subtable","$err_field","$err_code","$err_count"];function vl(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 ef(e=!1){let t=e?Dl:_l;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 nh(e,t,n,r){if(e.errorTable)throw new Error("ArgumentError: VALIDATE INTO requires a batch.");return tf(e,t,n,r)}async function tf(e,t,n,r){let i=await ee(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=fs(e,i),l=new Set(s.flatMap(O=>ps(O.field))),d={present:cs.filter(O=>l.has(O)),absent:cs.filter(O=>!l.has(O))},p=e.checkGroups??[],c=Nn(p);for(let O of c){if(O.field!=="$id"&&!o.has(O.field)&&!a.has(O.field))throw fe(`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 u=new Map([...o].map(([O,F])=>[O,F.fieldType]));u.set("$id","RECORD_NUMBER"),an(e,u);let f=vl(e.where),E=[...new Set(["$id",...s.map(O=>O.subtableCode??O.field.code),...f,...c.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 R=s.some(O=>O.field.fieldType==="NUMBER")?await ot(e.appId,t,r):void 0,m=O=>O.field==="$id"?X({fieldType:"__ID__"}):o.get(O.field)?.semantics??(o.has(O.field)?X(o.get(O.field)):void 0),g=Ce(e.where,m);if(g.capability==="UNSUPPORTED")throw new Error(`ArgumentError: WHERE predicate is unsupported (${Zt(g)}).`);let y=new Map([...o].map(([O,F])=>[O,F.fieldType])),h=new Map([...o.values()].flatMap(O=>O.optionOrder?[[O.code,new Set(Object.keys(O.optionOrder))]]:[])),S=e.where===null?null:g.capability==="EXACT_PUSHDOWN"?e.where:An(e.where,{allowUnqualifiedFields:!0,fieldTypes:y,fieldOptions:h,allowKlike:!1}),w=S===null?"":G(S),L=(await Ie(t.getRecords,e.appId,w,E,{maxRecords:n.maxRecords??1e4,parallel:n.fetchParallel??1,onLimit:"error"})).map(O=>({id:String(O.$id?.value??""),record:O,flat:dt(O,null)})).filter(O=>e.where===null||te(e.where,O.flat,F=>u.get(F.field))),b=[],v=new Map,P=new Map,D=new Set,M=0,N=O=>{if(D.add(O.id),M+=1,e.summary){let q=JSON.stringify([O.id,O.subtable??"",O.field,O.code]),U=P.get(q);U?U.$err_count=String(Number(U.$err_count)+1):P.set(q,{$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]),j=v.get(F);j?(j.$err_count=String(Number(j.$err_count)+1),O.subrow!==void 0&&(j.$err_subrow=`${j.$err_subrow},${O.subrow}`,j.$err_subrow_id=`${j.$err_subrow_id},${O.subrowId??""}`)):v.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 L){for(let F of _){let j=O.record[F.field.code]?.value,q=Ne(j,F.field,R);q.ok||N({id:O.id,field:F.field.code,code:q.code,message:q.message,value:Ar(j,F.field.fieldType)})}for(let[F,j]of A){let q=O.record[F]?.value;if(Array.isArray(q))for(let U=0;U<q.length;U++){let k=q[U];for(let $ of j){let be=k.value?.[$.field.code]?.value,V=Ne(be,$.field,R);if(!V.ok){let Te=no(F,U,k);N({id:O.id,field:$.field.code,code:V.code,message:V.message,value:Ar(be,$.field.fieldType),...Te})}}}}for(let F of Wi(p,O.flat,j=>u.get(j.field)))N({id:O.id,field:"",code:"ERR_CHECK",message:F.message,value:""})}if(e.summary)b.push(...P.values());else for(let O of v.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`),b.push(O)}let x={type:"SELECT",columns:[...e.summary?Dl:_l],rows:b,rowCount:b.length,validateStats:{errorRecords:D.size,errorCount:M,constraintMetadata:d}};return Ee.set(x,ef(e.summary===!0)),x}var Fe=1e4;function rt(e,t,n,r,i,o){let a=e.get(t);if(a&&(a.columns.length!==n.length||a.columns.some((l,d)=>l!==n[d])||!rh(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 rh(e,t){if(e===t)return!0;if(!e||!t||e.size!==t.size)return!1;for(let[n,r]of e){let i=t.get(n);if(!i||i.sortKind!==r.sortKind||i.fieldType!==r.fieldType||!xi(i.semantics,r.semantics))return!1}return!0}var Fn=class extends Error{constructor(){super("TimeoutError: batch timeout exceeded.")}};async function nf(e,t,n={}){let r=rf(e,n.enableImport===!0),i=Ma(r);if(r.forEach(u=>Ti("phase15b",u)),n.allowApplyMutation!==!0&&r.some(u=>ha(u)||u.type==="UPSERT"&&ih(u)))throw new Error("UnsupportedError: APPLY mutation requires allowApplyMutation=true");let o=hs(r,n.variables),a={...n,variables:o};if(n.continueOnError&&i.containsDml)throw new Error("ArgumentError: continueOnError is not allowed for batches containing DML.");for(let u of i.statements){if(!u.isDml||u.tempTablesReferenced.length===0||u.statementType==="INSERT_SELECT"||u.statementType==="UPSERT_SELECT")continue;let f=r[u.index];if(!(f?.type==="UPDATE"&&f.from?.cteName!=null))throw new Z(`ArgumentError: temp table references in ${u.statementType} are not supported yet.`,u.index)}let s=Jd(),l=Qd(t,s),d=Date.now(),p=n.timeoutMs!=null?d+n.timeoutMs:null,c=Nl(qd(t,n.cacheContext));try{let u=new Map,f=new Map,E=[],R=new Set,m=null;for(let g=0;g<r.length;g++){let y=i.statements[g],h={index:g,type:y.statementType};if(m){E.push({...h,status:"skipped",skippedReason:m}),R.add(g);continue}let S=y.dependsOn.find(w=>R.has(w));if(S!==void 0){let w=i.statements[S].tempTablesCreated[0]??`statement ${S}`;E.push({...h,status:"skipped",skippedReason:`dependency: ${w}`}),R.add(g);continue}if(p!==null&&Date.now()>=p){E.push({...h,status:"skipped",skippedReason:"timeout"}),R.add(g),m="timeout";continue}try{let w=p!==null?p-Date.now():null,I=a.confirm,L=I?{...a,confirm:(M,N,_)=>I(M,N,{statementIndex:g,statementCount:r.length,statementType:y.statementType,targetAppId:y.targetAppId,..._?.importDetail?{importDetail:_.importDetail}:{},..._?.applyDetail?{applyDetail:_.applyDetail}:{},..._?.applyDiagnostic?{applyDiagnostic:_.applyDiagnostic}:{}})}:a,b={aborted:!1},v=Ll(l,b,y.statementType!=="SELECT"&&y.statementType!=="UNION"&&y.statementType!=="WITH"||As(r[g])),P=eh(v),D=await sh(oh(r[g],y,P.client,L,c,u,f),w,P.closeActive);D.result&&(D.result=Zd(D.result,b)),E.push({...h,status:"success",...D})}catch(w){E.push({...h,status:"error",error:lh(w),...w instanceof Xr?{result:w.diagnostic}:{}}),R.add(g),w instanceof Fn?m="timeout":w instanceof Kn?m="assertion":y.statementType==="SET_VARIABLE"||y.statementType==="DECLARE_VARIABLE"?m="fail-fast":n.continueOnError||(m="fail-fast")}}return s.elapsedMs=Date.now()-d,{ok:E.every(g=>g.status==="success"),statementCount:r.length,statements:E,analysis:i,metrics:s}}finally{Hl(c)}}function ih(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 oh(e,t,n,r,i,o,a){if(e.type==="SET_VARIABLE"){let l=$o(e,a);if($e(l),await kd(l,n,i),l.expr.type==="ARRAY")a.set(e.name,{type:"array",elements:l.expr.elements.map(d=>({type:"string",value:d.value}))});else if(l.expr.type==="SCALAR_SUBQUERY")try{let d=await af(l.expr.query,n,r,i,o),p=l.expr.query.columns[0],c=p?.type==="ARITH_COL"||p?.type==="ARITH_AGG_COL"||p?.type==="WINDOW_COL"||p?.type==="AGGREGATE"&&(p.func==="COUNT"||p.func==="SUM"||p.func==="AVG"||p.func==="STDDEV_POP"||p.func==="STDDEV_SAMP"||p.func==="VAR_POP"||p.func==="VAR_SAMP"||p.func==="MEDIAN");if(p?.type==="AGGREGATE"&&p.func==="MODE"){let f=(await Yo(l.expr.query,["__scalar__"],n,i,o)).get("__scalar__");c=f?.semantics?.compareMode==="number"||f?.sortKind==="number"}let u=c?Number(d):Number.NaN;a.set(e.name,c&&Number.isFinite(u)?{type:"number",value:u,raw:d}:{type:"string",value:d})}catch(d){throw d instanceof Qt?new Error(`ArgumentError: ${d.message}`):d}else a.set(e.name,Md(l.expr));return{}}if(e.type==="DECLARE_VARIABLE"){let l=r.variables??{};if(Object.prototype.hasOwnProperty.call(l,e.name))a.set(e.name,{type:"string",value:l[e.name]});else{let d=Md(e.default);a.set(e.name,{type:"string",value:d.type==="number"?d.raw??String(d.value):d.value})}return{}}let s=$o(e,a);if(mn("phase15b",s),Ti("phase15b",s),$e(s),await kd(s,n,i),s.type==="VALIDATE"){let l=await tf(s,n,{...r,onLimitReached:"error"},i);return s.errorTable&&rt(o,s.errorTable,l.columns,l.rows,r.tempTableMaxRows??Fe,Ee.get(l)??ef(s.summary===!0)),{result:l}}if(s.type==="IMPORT")return{result:await Lf(s,n,r,i,o)};if("validateOnly"in s&&s.validateOnly===!0){let l=await jl(s,n,{...r,onLimitReached:"error"},i,o,t.index+1);return s.validationErrorTable&&rt(o,s.validationErrorTable,l.columns,l.errors,r.tempTableMaxRows??Fe,sn.get(l)??new Map),{result:l}}if("onErrorSkip"in s&&s.onErrorSkip===!0)return{result:await Sl(s,n,{...r,onLimitReached:"error"},i,o,t.index+1)};if(s.type==="CREATE_TEMP_TABLE"){let l={...r,maxRecords:r.tempTableMaxRows??Fe,onLimitReached:"error"},d=await ah(s.query,n,l,i,o);return o.set(s.name,{rows:d.rows,columns:d.columns,columnMeta:Ee.get(d)}),{tempTable:s.name,rowCount:d.rows.length}}if(e.type==="DROP_TEMP_TABLE")return o.delete(e.name),{tempTable:e.name};if(e.type==="EXPLAIN")return{result:await al(s,n,r,i)};if(s.type==="ASSERT")return await of(s,n,r,i,o),{};if(t.tempTablesReferenced.length>0){if(s.type==="SELECT"||s.type==="UNION")return{result:await mt(s,n,r,o,i)};if(s.type==="WITH")return{result:await Vl(s,n,r,i,o)};if(s.type==="INSERT_SELECT")return{result:await Xl(s,n,r,i,o)};if(s.type==="UPSERT_SELECT")return{result:await eu(s,n,r,i,o)};if(s.type==="UPDATE"&&s.from?.cteName!=null)return{result:await Il(s,n,r,i,o)};throw new Error(`ArgumentError: temp table references in ${e.type} are not supported yet.`)}return{result:await al(s,n,r,i)}}async function ah(e,t,n,r,i){return e.type==="WITH"?Vl(e,t,n,r,i,!0):mt(e,t,n,i,r,!0)}async function sh(e,t,n){if(t===null)return e;if(t<=0)throw n&&await n(),e.catch(()=>{}),new Fn;let r,i=!1,o=e.then(a=>i?new Promise(()=>{}):a,a=>{if(i)return new Promise(()=>{});throw a});try{return await Promise.race([o,new Promise((a,s)=>{r=setTimeout(()=>{i=!0,(async()=>{if(n){let l;try{await Promise.race([n(),new Promise(d=>{l=setTimeout(d,5e3),l.unref?.()})])}finally{l&&clearTimeout(l)}}s(new Fn)})()},t)})])}catch(a){throw a instanceof Fn&&e.catch(()=>{}),a}finally{r!==void 0&&clearTimeout(r)}}function lh(e){let t;if(e instanceof Qe)t={code:e.name,message:e.message,partialSuccess:e.partialSuccess};else if(e instanceof Error)t={code:(e.name!=="Error"?e.name:null)??tl(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:uh(e);t={code:typeof n.code=="string"&&n.code.length>0?n.code:tl(r),message:r}}else{let n=String(e);t={code:tl(n),message:n}}return Object.defineProperty(t,"cause",{value:e,enumerable:!1,configurable:!1,writable:!1}),t}function tl(e){return e.match(/^([A-Za-z]+Error):/)?.[1]??"Error"}function uh(e){try{return JSON.stringify(e)??String(e)}catch{return String(e)}}function rf(e,t=!1){let n=new Pt(e).tokenize();return new Nt(n,{import:t}).parseStatements()}function Md(e){switch(e.type){case"STRING":return{type:"string",value:e.value};case"NUMBER":return{type:"number",value:e.value,raw:H(e)};case"KINTONE_FUNC":return{type:"string",value:Mc(e.name)};case"STRING_FUNC":return{type:"string",value:se(e,{})};case"ARITH":{let t=ae(e,{});if(!Number.isFinite(t))throw new Error("ArgumentError: SET scalar arithmetic produced a non-finite number.");return{type:"number",value:t,raw:String(t)}}}}function $o(e,t){return sl(e,t,!1)}function sl(e,t,n){if(Array.isArray(e))return e.map(r=>sl(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(`ParseError: variable @${r.name} is not defined in this batch.`);if(a.type==="array")throw new Error(`ParseError: array variable @${r.name} can only be used as IN @${r.name}.`);if(n&&a.type!=="number"&&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:a.value}:a.type==="number"?{type:"NUMBER",value:a.value,raw:a.raw??String(a.value)}:{type:"STRING",value:a.value}}if(r.type==="VARIABLE_COL"&&typeof r.name=="string"&&typeof r.alias=="string"){let a=t.get(r.name);if(a===void 0)throw new Error(`ParseError: variable @${r.name} is not defined in this batch.`);if(a.type==="array")throw new Error(`ParseError: array variable @${r.name} cannot be used as a SELECT column.`);return a.type==="number"?{type:"ARITH_COL",expr:{type:"NUMBER",value:a.value,raw:a.raw??String(a.value)},alias:r.alias}:{type:"LITERAL_COL",value:a.value,alias:r.alias}}if(r.type==="VARIABLE_IN_LIST")return r;let i=Object.fromEntries(Object.entries(r).map(([a,s])=>[a,sl(s,t,(r.type==="ARITH"||r.type==="SCALAR_ARITH"||r.type==="AGG_ARITH")&&(a==="left"||a==="right"))]));if(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(`ParseError: variable @${a.name} is not defined 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=ch(i);if(o.type==="SELECT"&&Me(o.where,!0)&&(o.where=null),(o.type==="UPDATE"||o.type==="DELETE"||o.type==="REORDER")&&Me(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 Me(e,t){return e!==null&&typeof e=="object"&&e.type==="BOOLEAN"&&(t===void 0||e.value===t)}function ch(e){if(e.type==="NOT"&&Me(e.expr))return{type:"BOOLEAN",value:!e.expr.value};if(e.type==="GROUP"&&Me(e.expr))return e.expr;if(e.type==="LOGICAL"){let t=e.left,n=e.right;if(e.op==="AND"){if(Me(t,!1)||Me(n,!1))return{type:"BOOLEAN",value:!1};if(Me(t,!0))return n;if(Me(n,!0))return t}else if(e.op==="OR"){if(Me(t,!0)||Me(n,!0))return{type:"BOOLEAN",value:!0};if(Me(t,!1))return n;if(Me(n,!1))return t}}return e}function ll(e){if(Array.isArray(e)){for(let t of e){let n=ll(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=ll(n);if(r!==null)return r}}return null}var Kn=class extends Error{constructor(t){super(`AssertError: ${t}`),this.name="AssertError"}},Qt=class extends Error{constructor(t){super(t),this.name="ScalarSubqueryError"}};async function of(e,t,n,r,i){let o=await ko(e.left,t,n,r,i),a=e.left.type==="NUMBER"||e.left.type==="ARITH"?B("number"):B("string");if(e.op==="BETWEEN"){if(e.low===null||e.high===null)throw new Error("ArgumentError: malformed ASSERT statement.");let l=await ko(e.low,t,n,r,i),d=await ko(e.high,t,n,r,i);if(!Gt(">=",o,l,a)||!Gt("<=",o,d,a))throw new Kn(`assertion failed: ${e.text} (actual: ${o}).`);return{type:"ASSERT",condition:e.text}}if(e.right===null)throw new Error("ArgumentError: malformed ASSERT statement.");let s=await ko(e.right,t,n,r,i);if(!Gt(e.op,o,s,a))throw new Kn(`assertion failed: ${e.text} (actual: ${o}).`);return{type:"ASSERT",condition:e.text}}async function ko(e,t,n,r,i){switch(e.type){case"VARIABLE":throw new Error(`ParseError: unresolved batch variable @${e.name}.`);case"NUMBER":return H(e);case"STRING":return e.value;case"ARITH":return String(ul(e));case"SCALAR_SUBQUERY":try{return await af(e.query,t,n,r,i)}catch(o){throw o instanceof Qt?new Kn(o.message):o}}}async function af(e,t,n,r,i){let{query:o,probed:a}=ph(e),s=await Yr(o,t,n,r,i);if(s.columns.length!==1)throw new Qt(`scalar subquery returned ${s.columns.length} columns (expected 1 column).`);if(s.rowCount===0)throw new Qt("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 Qt(`scalar subquery returned ${l} (expected 1 row).`)}return s.rows[0]?.[s.columns[0]]??""}function ph(e){return ne(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 ul(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=ul(e.left),n=ul(e.right);switch(e.op){case"+":return t+n;case"-":return t-n;case"*":return t*n;case"/":return t/n;case"%":return t%n}}throw new Error(`ArgumentError: unsupported operand in ASSERT expression: ${e.type}`)}async function $n(e,t,n,r,i=!1){let o=[e.from,...e.joins.map(u=>u.table)],a=i||Ze(e.where)?[...new Set(o.filter(u=>u.cteName===null).map(u=>u.appId))]:[],s=new Map(await Promise.all(a.map(async u=>{let f=await ee(u,t,n);return[u,new Map(f.map(E=>[E.code,E]))]}))),l=new Set,d=u=>{if(Array.isArray(u)){u.forEach(d);return}if(u===null||typeof u!="object")return;let f=u;if(f.type!=="SELECT"){if(f.type==="BINARY"&&[">","<",">=","<="].includes(String(f.op))){let E=f.left;E?.type==="FIELD"&&typeof E.field=="string"&&l.add(E.field)}Object.values(f).forEach(d)}};d(e.where),d(e.having);for(let u of e.columns)u.type==="CASE_COL"&&d(u.expr);let p=new Map;await Promise.all([...s].map(async([u,f])=>{if(![...l].some(m=>f.get(m)?.fieldType==="STATUS"))return;let R=await Yl(u,t,n);R&&p.set(u,R)}));let c=(u,f,E)=>{if(f==="$id")return Pn(X({fieldType:"__ID__"}),u.appId,"$id");if(E&&u.subtableCode){if(f==="_rid")return B("string");if(f==="_idx"||f==="_pid")return B("number")}let R=s.get(u.appId)?.get(he(u,f));if(!R)return;let m=R.semantics??X(R),g=R.fieldType==="STATUS"&&p.has(u.appId)?{...m,optionOrder:p.get(u.appId)}:m;return Pn(g,u.appId,R.code)};return u=>{if(u.tableAlias!==null){if(u.tableAlias==="_p"&&e.from.subtableCode&&e.from.cteName===null)return c(e.from,u.field,!1);let E=o.find(R=>Oe(R)===u.tableAlias);return E?E.cteName!==null?r?.get(E.cteName)?.columnMeta?.get(u.field)?.semantics??B("string"):c(E,u.field,!0):void 0}if(e.joins.length===0)return e.from.cteName!==null?r?.get(e.from.cteName)?.columnMeta?.get(u.field)?.semantics??B("string"):c(e.from,u.field,!0);let f=o.flatMap(E=>{let R=E.cteName!==null?r?.get(E.cteName)?.columnMeta?.get(u.field)?.semantics:c(E,u.field,!0);return R?[R]:[]});if(f.length===1)return f[0];if(!o.some(E=>xo(E,u.field)!==void 0))return f.length>1?B("string"):void 0}}function Ul(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=>Ze(i.condition))?!0:Object.values(r).some(t)};return e.columns.some(t)}function sf(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(Ye(r.field)):r.type==="ARITH_COL"||r.type==="ARITH_AGG_COL"||r.type==="WINDOW_COL"?i=B("number"):r.type==="AGGREGATE"?r.func==="MIN"||r.func==="MAX"||r.func==="MODE"?r.arg.type!=="WILDCARD"&&(i=$l(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=nn(r.expr).semantics:(r.type==="LITERAL_COL"||r.type==="SCALAR_SUBQUERY_COL"||r.type==="CASE_COL"||r.type==="SCALAR_VALUE_COL")&&(i=B("string")),i&&n.set(r.alias,i)}return r=>r.tableAlias===null&&n.has(r.field)?n.get(r.field):t(r)}async function zr(e,t,n,r){if(e.where===null)return Ce(null,()=>{});let i=await $n(e,t,n,r);return Ce(e.where,i)}function Zt(e){let t=e.reasons.find(r=>r.code==="WHERE_FIELD_UNRESOLVED"||r.code==="WHERE_OPERATOR_UNSUPPORTED"||r.code==="WHERE_OPERATOR_INVALID_FOR_FIELD_TYPE")??e.reasons[0];return[t?.field?`field=${t.field}`:null,t?.fieldType?`type=${t.fieldType}`:null,t?.operator?`operator=${t.operator}`:null,t?.code?`reason=${t.code}`:null].filter(r=>r!==null).join(", ")||"reason=WHERE_UNSUPPORTED"}function Go(e){return e.orderBy.length>0||e.columns.some(t=>t.type==="WINDOW_COL"&&t.orderBy.length>0)}async function lf(e,t,n){if(e.subtableCode||e.type==="UPDATE"&&e.from!=null)return{capability:"LOCAL_ONLY",reasons:[{code:"WHERE_EXPRESSION_LOCAL_ONLY"}]};let r=Ze(e.where)?await ee(e.appId,t,n):[],i=new Map(r.map(o=>[o.code,o]));return e.where.type==="BOOLEAN"&&e.where.value===!1?Ce(null,()=>{}):Ce(e.where,o=>{if(o.field==="$id")return X({fieldType:"__ID__"});let a=i.get(o.field);return a?.semantics??(a?X(a):void 0)})}async function xn(e,t,n){if(e.subtableCode||e.type==="UPDATE"&&e.from!=null)return;let r=await lf(e,t,n);if(r.capability!=="EXACT_PUSHDOWN")throw new Q(`WHERE predicate cannot be represented by kintone REST (${Zt(r)})`)}async function vt(e,t,n,r,i,o=!1,a=!1){let s;if(await Qo(e,t,r,i),mh(e))return s=hh(e),o&&Ee.set(s,await Yo(e,s.columns,t,r,i,a)),s;let l=await kl(e,t,r,i);await Ff(e,t,n,r,i);let d=vh(e,await zr(e,t,r,i));if(d.capability==="UNSUPPORTED")throw new Error(`ArgumentError: WHERE predicate is unsupported (${Zt(d)}).`);let p=_e(e),c,u;if(d.capability==="SUPERSET_PREFILTER"){let h=await $n(e,t,r,i),S=Ws(e,h);S.eligible&&Gs(e,S)&&(c=S.plan)}if(c===void 0&&d.capability==="EXACT_PUSHDOWN"&&e.where!==null){let h=null;try{h=G(e.where)}catch{h=null}u=Pi({select:e,selectMode:p,capability:d,context:{allowFullScanExact:!0},serializedWholeWhere:h,relativeFunctionNames:ue(e.where)})??void 0,u&&(c=u.prefilterPlan)}let f=d.capability==="EXACT_PUSHDOWN"?p:"FULL_SCAN",E=await Jr(e,t,r,i),R=Go(e)?(e.orderMode==="KINTONE_NATIVE"?Dr:_r)({stmt:e,staticMode:f,whereCapability:d.capability,whereReasons:d.reasons,orderSemantics:E.semantics,maxRecords:n.maxRecords??1e4,hasKlike:pe(e.where)}):null;await Sh(e,R?.kind==="CANONICAL_LOCAL"?"FULL_SCAN":f,t,r);let m=Ml(e,n,R),y=u!==void 0&&(p==="FULL_SCAN"||R?.kind==="CANONICAL_LOCAL")?Ll(t,{aborted:!1},!0):t;try{f==="SIMPLE"?s=await Ah(e,y,m.effectiveOptions,r,R,E):s=await Mh(e,y,m.effectiveOptions,r,i,d.capability==="EXACT_PUSHDOWN"&&c===void 0,E,c,l)}catch(h){uf(m,h)}return o&&Ee.set(s,await Yo(e,s.columns,t,r,i,a)),s}async function kl(e,t,n,r){if(e.groupBy.length===0)return;let i=[e.from,...e.joins.map(d=>d.table)],o=await Promise.all(i.map(async d=>{if(d.cteName!==null){let f=r?.get(d.cteName);if(!f)throw new Error(`InternalError: materialized schema ${d.cteName} is not available for GROUP BY planning.`);return{kind:"MATERIALIZED",columns:f.columns}}let p=await ee(d.appId,t,n);if(!d.subtableCode)return{kind:"APP",fieldCodes:p.filter(f=>!f.inSubtable).map(f=>f.code)};let c=p.filter(f=>f.inSubtable&&f.subtableCode===d.subtableCode);return{kind:"SUBTABLE",childFieldCodes:(c.length>0?c:p.filter(f=>f.inSubtable&&f.subtableCode===void 0)).map(f=>f.code),parentFieldCodes:p.filter(f=>!f.inSubtable).map(f=>f.code)}})),a=Hp(e,(d,p)=>o[p]),s=e.groupBy,l=Yp(s,e.columns,a);return dh(e,s,l),l}function dh(e,t,n){let r=[e.from,...e.joins.map(a=>a.table)].flatMap(a=>a.cteName===null?[a.appId]:[]),i=[...new Set(r)],o=i.length===1?i[0]:e.from.cteName===null?e.from.appId:null;n.items.forEach((a,s)=>{if(a.kind==="EXPRESSION"||a.kind==="PHYSICAL"||a.kind==="ALIAS_SAFE")return;let l=t[s],d=l?.type==="FIELD_NAME"?l.name:"(expression)";if(a.kind==="UNKNOWN"){let p=o===null?"":` (APP${o})`;throw new Error(`ArgumentError: unknown field code(s): ${a.name}${p}`)}throw a.kind==="ALIAS_REJECT"?a.reason==="DUPLICATE"?new Error(`ArgumentError: GROUP BY alias ${d} is ambiguous across multiple SELECT columns (reason=GROUP_BY_ALIAS_AMBIGUOUS).`):a.reason==="POST_GROUP_ONLY"?new Error(`ArgumentError: GROUP BY alias ${d} requires post-group evaluation (reason=GROUP_BY_ALIAS_POST_GROUP_ONLY).`):new Error(`ArgumentError: GROUP BY alias ${d} depends on aggregate evaluation (reason=GROUP_BY_ALIAS_AGGREGATE).`):new Error(`InternalError: deferred GROUP BY field ${a.name} reached runtime planning.`)})}var qr=new WeakMap;async function fh(e,t,n){let r=new Set,i=async o=>{if(o===null||typeof o!="object"||r.has(o))return;if(r.add(o),Array.isArray(o)){for(let s of o)await i(s);return}let a=o;a.type==="SELECT"&&await Qo(o,t,n);for(let s of Object.values(a))await i(s)};await i(e)}async function Eh(e,t,n,r){let i=[e.from,...e.joins.map(p=>p.table)],o=i.filter(p=>p.cteName===null),a=new Map(await Promise.all([...new Set(o.map(p=>p.appId))].map(async p=>{let c=await ee(p,t,n);return[p,new Map(c.map(u=>[u.code,u]))]}))),s=(p,c)=>{if(c==="$id")return"$id";let u=he(p,c);return a.get(p.appId)?.has(u)?u:null},l=(p,c)=>{if(p.cteName===null)return!1;let u=r?.get(p.cteName);return u?u.columns.includes(c):!0},d=(p,c,u,f)=>{let E=i.filter(g=>g.cteName===null&&s(g,u.field)!==null).length,R=i.some(g=>l(g,u.field)),m=Oe(p);return{canonicalId:`source:${c}:APP${p.appId}:${f}`,directKey:u.tableAlias&&m?`${u.tableAlias}.${u.field}`:u.field,unqualifiedBridgeKey:E===1&&!R?u.field:null,physical:!0}};return p=>{if(p.tableAlias!==null){let f=i.findIndex(m=>Oe(m)===p.tableAlias);if(f<0)throw new Error(`ArgumentError: B65 field ${p.tableAlias}.${p.field} has an unknown table alias.`);let E=i[f];if(E.cteName!==null)throw new Error(`ArgumentError: B65 field ${p.tableAlias}.${p.field} resolves to materialized source ${E.cteName}; physical APP fields are required.`);let R=s(E,p.field);if(R===null)throw new Error(`ArgumentError: B65 field ${p.tableAlias}.${p.field} does not exist in APP${E.appId}.`);return d(E,f,p,R)}let c=i.flatMap((f,E)=>{if(f.cteName!==null)return[];let R=s(f,p.field);return R===null?[]:[{table:f,tableIndex:E,code:R}]}),u=i.filter(f=>l(f,p.field));if(c.length+u.length>1)throw new Error(`ArgumentError: B65 field ${p.field} is ambiguous across multiple sources.`);if(c.length===1&&u.length===0){let f=c[0];return d(f.table,f.tableIndex,p,f.code)}throw u.length===1?new Error(`ArgumentError: B65 field ${p.field} resolves to a materialized CTE/temp column; physical APP fields are required.`):new Error(`ArgumentError: B65 field ${p.field} does not exist in a physical APP source.`)}}async function Qo(e,t,n,r){qr.delete(e);let i=ne(e),o=JSON.stringify(e.columns).includes('"GROUPING_')||JSON.stringify(e.orderBy).includes('"GROUPING_');if(i.type==="NONE"&&!o)return;let a=await Eh(e,t,n,r),s=pc(e,a,cc);s&&qr.set(e,s)}function Rh(e){let t=[...e].join(", "),n=[["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.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 Ml(e,t,n){let r=e.type==="SELECT"&&(n?.kind==="CANONICAL_REST_TOP_N"||n?.kind==="KORDER_NATIVE"||n?.kind==="KORDER_CURSOR")?ht({...e,orderBy:[]}):ht(e),i=r.size>0&&t.onLimitReached==="truncate";return{reasons:r,effectiveOptions:i?{...t,onLimitReached:"error"}:t,truncateWasDisabled:i}}function uf(e,t){throw e.reasons.size>0&&t instanceof Pe&&!t.completeInputWrapped?new Pe(Rh(e.reasons)+(e.truncateWasDisabled?"onLimit=truncate\u306F\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093\u3002":"")+t.message,!0):t}async function cl(e,t){try{return await t()}catch(n){uf(e,n)}}function Rt(e){return e?.type==="BOOLEAN"&&e.value===!1}function mh(e){return e.from.appId===0&&e.from.cteName===ze}function Vo(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"?Vo(e.left)||Vo(e.right):e.type==="STRING_FUNC"?Fl(e):!1}function yh(e){return e.type==="AGG_REF"||e.type==="AGG_ARITH"?!0:Gr(e)}function Gr(e){return e.type==="FIELD"?!0:e.type==="STRING_FUNC"?Fl(e):e.type==="SCALAR_ARITH"||e.type==="CONCAT_OP"?Gr(e.left)||Gr(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"?Vo(n):Gr(n))):!1}function Fl(e){return e.args.some(t=>yh(t))}function gh(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(Vo(t.expr))throw new Error("ArgumentError: field reference is not allowed without FROM.");break;case"STRFUNC_COL":if(Fl(t.expr))throw new Error("ArgumentError: field reference is not allowed without FROM.");break;case"SCALAR_VALUE_COL":if(Gr(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 hh(e){if(e.joins.length>0||e.where||ne(e).type!=="NONE"||e.having||e.orderBy.length>0||e.distinct)throw new Error("ArgumentError: JOIN/WHERE/GROUP BY/HAVING/ORDER BY/DISTINCT are not supported without FROM.");gh(e);let t=Us([{}],e.columns),{rows:n,columns:r}=vr(t,e.columns),i=wo(n,e.limit,e.offset);return{type:"SELECT",rows:i,columns:r,rowCount:i.length,warnings:[]}}async function Ah(e,t,n,r,i,o){let a=i?.kind==="CANONICAL_REST_TOP_N"?Ef(e):e,s=wi(a),l=i?.kind==="CANONICAL_LOCAL"?Kt(e,e.from):s.fields,d=await Bl(e,t,r),p=Gl(e,d),c=e.columns.some(b=>b.type==="CASE_COL")?await $n(e,t,r,void 0,Ul(e)):void 0,u=n.maxRecords??1e4,f=new Set,E=n.onLimitReached??"error",R=n.fetchParallel??1,m=e.orderBy.length>0?i?.kind==="CANONICAL_REST_TOP_N"||i?.kind==="KORDER_NATIVE"||i?.kind==="KORDER_CURSOR":e.limit!==null&&e.limit<=500,g=e.limit===null?null:(e.offset??0)+e.limit,y=e.orderBy.length===0&&g!==null&&g<=u&&!pe(e.where)?g:void 0,h;if((i?.kind==="KORDER_NATIVE"||i?.kind==="KORDER_CURSOR")&&e.limit===0)h=[];else if(i?.kind==="KORDER_CURSOR"){let b=await Vp({client:t,app:s.app,fields:s.fields,query:Ps(e),offset:e.offset??0,limit:e.limit});h=b.records,b.cleanupWarning&&f.add(b.cleanupWarning)}else if(m)h=(await t.getRecords({app:s.app,query:s.query,fields:s.fields})).records;else{let b=e.where?G(e.where):"";h=await Ie(t.getRecords,s.app,b,l,{parallel:R,maxRecords:u,stopAfter:y,onLimit:E,onTruncate:v=>{f.add(`\u53D6\u5F97\u4E0A\u9650\uFF08${v} \u4EF6\uFF09\u306B\u9054\u3057\u305F\u305F\u3081\u3001${v} \u4EF6\u3067\u6253\u3061\u5207\u3063\u3066\u8868\u793A\u3057\u3066\u3044\u307E\u3059\u3002`),Ol(t,e.from.appId)}})}let S=h.map(b=>dt(b,null));m||(S=Ds(S,e.orderBy,o.optionOrders,o.sortKinds,o.semantics,vs(e.columns,void 0,p.row,c)),S=wo(S,e.limit,e.offset));let{rows:w,columns:I}=vr(S,e.columns,void 0,p.row,void 0,c),L=await Wl(e,w,I,t,r);return{type:"SELECT",rows:w,columns:L,rowCount:w.length,warnings:[...f]}}async function Sh(e,t,n,r){let i=new Map,o=(a,s)=>{if(s.length===0)return;let l=i.get(a);l||(l=new Set,i.set(a,l));for(let d of s)l.add(d)};if(t==="SIMPLE"){let a=wi(e);o(a.app,a.fields)}else{let a=[e.from,...e.joins.map(s=>s.table)].filter(s=>s.cteName===null);for(let s of a)o(s.appId,Kt(e,s))}for(let[a,s]of i.entries()){let l=[...s].filter(u=>!Ns(u));if(l.length===0)continue;let d=await ee(a,n,r);if(d.length===0)continue;let p=new Set(d.map(u=>u.code)),c=l.filter(u=>!p.has(u));if(c.length>0)throw new Error(`ArgumentError: unknown field code(s): ${c.join(", ")} (APP${a})`)}}function Fd(e){return e.cteName??`APP${e.appId}`}function Th(e){return e.alias?[e.alias]:e.cteName!==null?[e.cteName]:[`APP${e.appId}`,`app${e.appId}`]}function Ih(e,t){return Ns(t)||e.validCodes.has(t)}function nl(e,t){return e.table.cteName!==null?e.validCodes.has(t):Ih(e,t)}function wh(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 bh(e,t,n,r){let i=[e.from,...e.joins.map(p=>p.table)],o=new Map,a=new Set;for(let p of i){let c=Oe(p);if(c!==null){if(a.has(c))throw new Error(`ArgumentError: effective alias ${c} is used by multiple tables.`);a.add(c)}}for(let p of i){if(p.cteName===null||p.cteName===ze)continue;let c=n.get(p.cteName);if(!c)throw new Error(`ArgumentError: materialized source ${p.cteName} is not available.`);if(c.rows.length>0&&c.columns.length===0)throw new Error(`InternalError: materialized source ${p.cteName} has rows but no column schema.`);if(e.joins.length>0&&c.rows.length===0&&c.columns.length===0)throw new Error(`ArgumentError: column schema is unavailable for materialized JOIN source ${p.cteName}.`);o.set(p,c)}let s=new Map;await Promise.all(i.map(async p=>{let c=o.get(p);if(c){s.set(p,{table:p,label:Fd(p),validCodes:new Set(c.columns),authoritative:!0,schemaUnavailable:c.rows.length===0&&c.columns.length===0});return}if(p.cteName===ze)return;let u=await ee(p.appId,t,r);s.set(p,{table:p,label:Fd(p),validCodes:new Set(u.map(f=>f.code)),authoritative:u.length>0,schemaUnavailable:!1})}));let l=new Map;for(let p of s.values())for(let c of Th(p.table))l.set(c,p);for(let p of e.joins)for(let c of[p.on.left,p.on.right]){if(!c.tableAlias)continue;let u=l.get(c.tableAlias);if(u&&u.table.cteName!==null&&!u.schemaUnavailable&&!nl(u,c.field))throw new Error(`ArgumentError: JOIN key ${c.tableAlias}.${c.field} is not available in the materialized table.`)}let d=qu(e);for(let[p,c]of d.bySource){let u=s.get(p);if(!u||u.schemaUnavailable||!u.authoritative)continue;let f=[...c].filter(E=>!nl(u,E));if(f.length>0)throw new Error(`ArgumentError: unknown field code(s): ${f.join(", ")} (${u.label})`)}for(let p of d.unqualified){let c=[...s.values()].filter(f=>!f.schemaUnavailable);if(c.some(f=>nl(f,p))||[...s.values()].some(f=>f.schemaUnavailable)||c.some(f=>f.table.cteName===null&&!f.authoritative))continue;let u=c.map(f=>f.label).join(", ");throw new Error(`ArgumentError: unknown field code(s): ${p} (${u})`)}}async function Fo(e,t,n,r,i=new Set){if(!i.has(e)){if(i.add(e),e.type==="UNION"){await Fo(e.left,t,n,r,i),await Fo(e.right,t,n,r,i);return}await bh(e,t,n,r);for(let o of wh(e))await Fo(o,t,n,r,i)}}function cf(e){return e.where===null||e.from.subtableCode||e.from.cteName!==null?null:e.joins.length===0?ir(e.where,{tableAlias:e.from.alias??void 0,allowUnqualifiedFields:!0}):e.from.alias?ir(e.where,{tableAlias:e.from.alias}):null}var xl=new WeakMap;function Zo(e,t){if(e.joins.length===0||e.where===null||e.joins.some(c=>c.type!=="INNER"))return null;let n=[e.from,...e.joins.map(c=>c.table)];if(n.some(c=>c.alias===null||c.cteName!==null||!!c.subtableCode))return null;let r=n.map(c=>({alias:c.alias,appId:c.appId,sourceKind:"APP",fieldTypes:new Map([...t.fieldTypesByApp.get(c.appId)??new Map,["$id","__ID__"]]),fieldOptions:t.fieldOptionsByApp.get(c.appId)})),i=kp(e.where,r),o=Mp(i,r),a=new Map,s=new Map;for(let[c,u]of o.fetchQueriesByAlias)s.set(c,u);for(let c of o.items)s.has(c.targetAlias)||s.set(c.targetAlias,Un(c,r)),a.set(c.targetAlias,c.predicate);let l=e.from.alias,d=a.get(l)??null,p=new Map(a);return p.delete(l),{joinPlan:o,queriesByAlias:s,mainCondition:d,joinConditions:p,appliedKlikes:o.appliedKlikes,allKlikes:o.allKlikes}}async function ea(e,t,n){let r=new Map,i=(s,l)=>{if(l===null)return;let d=r.get(s);d?d.push(l):r.set(s,[l])};if(i(e.from.appId,cf(e)),e.joins.length>0&&e.where!==null&&e.joins.every(s=>s.type==="INNER")&&[e.from,...e.joins.map(s=>s.table)].every(s=>s.alias!==null&&s.cteName===null&&!s.subtableCode)){i(e.from.appId,e.where);for(let s of e.joins)i(s.table.appId,e.where)}if(e.where!==null)for(let s of e.joins){if(!s.table.alias||s.table.subtableCode||s.table.cteName!==null)continue;let l=ir(e.where,{tableAlias:s.table.alias});i(s.table.appId,l)}let a=await Promise.all([...r.entries()].map(async([s,l])=>{let[d,p]=await Promise.all([Ae(s,t,n),$h(s,t,n)]),c=Ph(l).filter(u=>d.get(u)==="STATUS");if(c.length>0){let u=await na(s,t,n);if(u.enable&&u.states&&u.states.length>0){let f=new Set(u.states.map(E=>E.name));for(let E of c)p.set(E,f)}}return[s,d,p]}));return{fieldTypesByApp:new Map(a.map(([s,l])=>[s,l])),fieldOptionsByApp:new Map(a.map(([s,,l])=>[s,l]))}}function Ph(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 Et(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"&&Wo(e.left.expr,t),e.right.type==="CASE_VALUE"&&Wo(e.right.expr,t);return;case"LOGICAL":Et(e.left,t),Et(e.right,t);return;case"NOT":case"GROUP":Et(e.expr,t);return;case"NULL_CHECK":case"EXISTS":case"BOOLEAN":return}}function Wo(e,t){for(let n of e.branches)Et(n.condition,t)}function Nh(e){let t=[];Et(e.where,t),Et(e.having,t);for(let n of e.columns)n.type==="CASE_COL"&&Wo(n.expr,t);return t}function Oe(e){return e.alias??e.cteName}function pf(e,t){return[e.from,...e.joins.map(n=>n.table)].find(n=>Oe(n)===t)}function Kl(e){return[e.from,...e.joins.map(t=>t.table)].filter(t=>t.cteName===null)}async function Bl(e,t,n){let r=Nh(e);if(r.length===0)return new Map;let i=new Set,o=Kl(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=pf(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 Ae(s,t,n)]));return new Map(a)}function Ye(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 df(e,t,n){e!=="MIN"&&e!=="MAX"&&e!=="MODE"||t.type==="WILDCARD"||qt(t,n)}function qt(e,t){if(e.type==="FIELD_REF"){t.push(Ye(e.field));return}if(e.type==="FIELD"){t.push(e);return}if(e.type==="ARITH"){qt(e.left,t),qt(e.right,t);return}if(e.type==="SCALAR_ARITH"||e.type==="CONCAT_OP"){qt(e.left,t),qt(e.right,t);return}if(e.type==="STRING_FUNC"){for(let n of e.args)n.type!=="AGG_REF"&&n.type!=="AGG_ARITH"&&qt(n,t);return}if(e.type==="CASE_WHEN")for(let n of[...e.branches.map(r=>r.result),...e.elseResult?[e.elseResult]:[]])n.type!=="ARRAY"&&qt(n,t)}function Ho(e,t){if(e.type==="AGG_REF"){df(e.func,e.arg,t);return}e.type==="AGG_ARITH"&&(Ho(e.left,t),Ho(e.right,t))}function pl(e,t){for(let n of e.args)n.type==="AGG_REF"||n.type==="AGG_ARITH"?Ho(n,t):Vr(n,t)}function Vr(e,t){if(e.type==="STRING_FUNC"){pl(e,t);return}if(e.type==="SCALAR_ARITH"||e.type==="CONCAT_OP"){Vr(e.left,t),Vr(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"?pl(r,t):r.type!=="ARRAY"&&r.type!=="FIELD_REF"&&r.type!=="ARITH"&&Vr(r,t)}}function Ch(e){let t=[];for(let n of e)n.type==="AGGREGATE"?df(n.func,n.arg,t):n.type==="ARITH_AGG_COL"?Ho(n.expr,t):n.type==="STRFUNC_COL"?pl(n.expr,t):n.type==="SCALAR_VALUE_COL"&&Vr(n.expr,t);return t}var Oh=new Set(["SINGLE_LINE_TEXT","MULTI_LINE_TEXT","RICH_TEXT","LINK","DROP_DOWN","RADIO_BUTTON","STATUS","DATE","TIME","DATETIME","CREATED_TIME","UPDATED_TIME"]);function Lh(e){return e.sortKind!==void 0?e.sortKind:e.fieldType==="NUMBER"||e.fieldType==="RECORD_NUMBER"?"number":Oh.has(e.fieldType)?"string":void 0}async function ff(e,t,n,r){let i=Ch(e.columns);if(i.length===0)return;let o=new Set,a=Kl(e);for(let f of i)if(f.tableAlias!==null){if(f.tableAlias==="_p"&&e.from.subtableCode&&e.from.cteName===null){o.add(e.from.appId);continue}let E=pf(e,f.tableAlias);E&&E.cteName===null&&o.add(E.appId)}else if(e.joins.length===0)e.from.cteName===null&&o.add(e.from.appId);else for(let E of a)o.add(E.appId);let s=new Map(await Promise.all([...o].map(async f=>{let E=await ee(f,t,n);return[f,new Map(E.map(R=>[R.code,R]))]}))),l=new Map,d=new Set(i.map(f=>f.field));await Promise.all([...s].map(async([f,E])=>{if(![...d].some(m=>E.get(m)?.fieldType==="STATUS"))return;let R=await Yl(f,t,n);R&&l.set(f,R)}));let p=[e.from,...e.joins.map(f=>f.table)],c=(f,E)=>{let R=f.semantics??X(f);return f.fieldType==="STATUS"&&l.has(E)?{...R,optionOrder:l.get(E)}:R};return f=>{let E;if(f.tableAlias!==null)if(f.tableAlias==="_p"&&e.from.subtableCode&&e.from.cteName===null)E=s.get(e.from.appId)?.get(f.field);else{let m=p.find(g=>Oe(g)===f.tableAlias);if(!m)return;if(m.cteName!==null)return r?.get(m.cteName)?.columnMeta?.get(f.field)?.semantics??B("string");E=s.get(m.appId)?.get(he(m,f.field))}else if(e.joins.length===0){if(e.from.cteName!==null)return r?.get(e.from.cteName)?.columnMeta?.get(f.field)?.semantics??B("string");E=s.get(e.from.appId)?.get(he(e.from,f.field))}else{let m=p.flatMap(g=>{if(g.cteName!==null){let h=r?.get(g.cteName);return h?.columns.includes(f.field)?[h.columnMeta?.get(f.field)?.semantics??B("string")]:[]}let y=s.get(g.appId)?.get(he(g,f.field));return y?[c(y,g.appId)]:[]});return m.length!==1?void 0:m[0]}if(!E)return;let R=f.tableAlias!==null?p.find(m=>Oe(m)===f.tableAlias):e.joins.length===0?e.from:void 0;return c(E,R?.appId??e.from.appId)}}function he(e,t){return e.subtableCode&&t.startsWith("_p.")?t.slice(3):t}function xo(e,t){if(e.subtableCode){if(t==="_rid")return"SINGLE_LINE_TEXT";if(t==="_idx"||t==="_pid")return"NUMBER"}}function nt(e,t){let n=e.semantics??X(e);return{sortKind:Lh(e),fieldType:e.fieldType,semantics:t===void 0?n:Pn(n,t,e.code)}}function Ef(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 z(e){return{sortKind:e,semantics:B(e)}}function it(){return{semantics:B("string","KSQL_UNKNOWN")}}function Rf(e="KSQL_ARRAY"){return{semantics:{fieldType:e,compareMode:"unsupported",inSubtable:!1,requiresCollectionOperators:!1}}}function Jt(e){if(e==="$id")return{sortKind:"number",fieldType:"__ID__",semantics:X({fieldType:"__ID__"})};if(e==="_rid")return z("string");if(e==="_pid"||e==="_idx"||e==="$revision")return z("number")}var _h=new Set(["LENGTH","LENGTH_CHAR","INSTR","ROUND","FLOOR","CEIL","TRUNCATE","YEAR","MONTH","DAY","DATEDIFF","ABS","MOD","POWER","SQRT","DAYOFWEEK","QUARTER","WEEK"]);function nn(e){if(e.func==="CAST"){let t=e.args[1];return t?.type==="STRING"&&t.value==="NUMBER"?z("number"):z("string")}return _h.has(e.func)?z("number"):z("string")}function Bn(e,t){return e.type==="STRING"?z("string"):e.type==="ARRAY"?Rf():e.type==="NUMBER"||e.type==="ARITH"||e.type==="SCALAR_ARITH"?z("number"):e.type==="STRING_FUNC"?nn(e):e.type==="FIELD_REF"?t(Ye(e.field))??it():e.type==="FIELD"?t(e)??it():it()}function ta(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&&xi(n(r.semantics),n(t.semantics)))?e.every(i=>xi(i.semantics,t.semantics))?t:{...t,semantics:n(t.semantics)}:e.some(r=>r.semantics?.compareMode==="unsupported")?Rf("KSQL_MIXED_UNSUPPORTED"):it()}function $l(e,t){if(e.type==="FIELD_REF")return t(Ye(e.field))??it();if(e.type==="FIELD")return t(e)??it();if(e.type==="NUMBER"||e.type==="ARITH"||e.type==="SCALAR_ARITH")return z("number");if(e.type==="STRING"||e.type==="CONCAT_OP"||e.type==="VARIABLE")return z("string");if(e.type==="STRING_FUNC")return nn(e);let n=e.branches.map(r=>Bn(r.result,t));return e.elseResult&&n.push(Bn(e.elseResult,t)),ta(n)}function Dh(e){return e.columns.some(t=>t.type==="FIELD"||t.type==="WILDCARD"||t.type==="PARENT_WILDCARD"||t.type==="CASE_COL"||t.type==="AGGREGATE"&&(t.func==="MIN"||t.func==="MAX"||t.func==="MODE"))}async function Yo(e,t,n,r,i,o=!1){let a=new Map;Dh(e)&&await Promise.all(Kl(e).map(async R=>{if(a.has(R.appId))return;let m=await ee(R.appId,n,r);a.set(R.appId,new Map(m.map(g=>[g.code,g])))}));let s=[e.from,...e.joins.map(R=>R.table)],l=o&&i===void 0&&s.every(R=>R.cteName===null),d=R=>{if(R.tableAlias!==null){if(R.tableAlias==="_p"&&e.from.subtableCode&&e.from.cteName===null){let h=a.get(e.from.appId)?.get(R.field);return h?nt(h,e.from.appId):void 0}let g=s.find(h=>Oe(h)===R.tableAlias);if(!g)return;if(g.cteName!==null)return i?.get(g.cteName)?.columnMeta?.get(R.field);let y=a.get(g.appId)?.get(he(g,R.field));return y?nt(y,g.appId):Jt(R.field)}if(e.joins.length===0){if(e.from.cteName!==null)return i?.get(e.from.cteName)?.columnMeta?.get(R.field);let g=a.get(e.from.appId)?.get(he(e.from,R.field));return g?nt(g,e.from.appId):Jt(R.field)}let m=s.flatMap(g=>{if(g.cteName!==null){let S=i?.get(g.cteName);return S?.columns.includes(R.field)?[S.columnMeta?.get(R.field)]:[]}let y=a.get(g.appId)?.get(he(g,R.field)),h=y?nt(y,g.appId):Jt(R.field);return h?[h]:[]});return m.length===1?m[0]:void 0},p=R=>{if(!l)return;let m=s.filter(g=>{if(R.tableAlias!==null&&Oe(g)!==R.tableAlias)return!1;let y=he(g,R.field);return a.get(g.appId)?.has(y)===!0||Jt(R.field)!==void 0});return m.length===1?m[0].appId:void 0},c=(R,m)=>{let g=p(m);return R&&g!==void 0?{...R,publicSourceApp:g}:R},u=new Map,f=e.columns.some(R=>R.type==="WILDCARD"||R.type==="PARENT_WILDCARD");if(e.columns.length===1&&(e.columns[0].type==="WILDCARD"||e.columns[0].type==="PARENT_WILDCARD")){for(let R of t){let m=Ye(R),g=c(d(m),m);g&&u.set(R,g)}return u}if(f)for(let R of t){let m=Ye(R),g=c(d(m),m);g&&u.set(R,g)}return e.columns.filter(R=>R.type!=="WILDCARD"&&R.type!=="PARENT_WILDCARD").forEach((R,m)=>{let g=f?"alias"in R&&R.alias?R.alias:void 0:t[m];if(!g)return;let y;if(R.type==="FIELD"){let h=Ye(R.field);y=c(d(h),h)}else if(R.type==="AGGREGATE")R.func==="GROUP_CONCAT"?y=z("string"):R.func==="COUNT"||R.func==="SUM"||R.func==="AVG"||R.func==="STDDEV_POP"||R.func==="STDDEV_SAMP"||R.func==="VAR_POP"||R.func==="VAR_SAMP"||R.func==="MEDIAN"?y=z("number"):(R.func==="MIN"||R.func==="MAX"||R.func==="MODE")&&R.arg.type!=="WILDCARD"&&(y=$l(R.arg,d));else if(R.type==="ARITH_AGG_COL"||R.type==="ARITH_COL")y=z("number");else if(R.type==="GROUPING_COL")y=z("number");else if(R.type==="LITERAL_COL")y=z("string");else if(R.type==="SCALAR_VALUE_COL"){let h=R.expr;h.type==="STRING_FUNC"?y=nn(h):h.type==="NUMBER"||h.type==="SCALAR_ARITH"?y=z("number"):h.type==="FIELD"?y=d(h):y=z("string")}else if(R.type==="STRFUNC_COL")y=nn(R.expr);else if(R.type==="WINDOW_COL")y=z("number");else if(R.type==="CASE_COL"){let h=R.expr.branches.map(S=>Bn(S.result,d));R.expr.elseResult&&h.push(Bn(R.expr.elseResult,d)),y=ta(h)}else R.type==="SCALAR_SUBQUERY_COL"&&(y=it());y&&u.set(g,y)}),u}function mf(e,t){let n=Ee.get(e),r=Ee.get(t),i=new Map;return e.columns.forEach((o,a)=>{let s=n?.get(o),l=t.columns[a],d=l===void 0?void 0:r?.get(l);if(s&&d){let p=ta([s,d]),c=s.publicSourceApp===d.publicSourceApp?s.publicSourceApp:void 0,{publicSourceApp:u,...f}=p;i.set(o,c===void 0?f:{...f,publicSourceApp:c})}else(s||d)&&i.set(o,it())}),i}function Gl(e,t){let n=[e.from,...e.joins.map(s=>s.table)],r=n.filter(s=>s.cteName===null),i=new Set(e.columns.map(s=>"alias"in s?s.alias:null).filter(s=>s!==null)),o=s=>{if(s.tableAlias!==null){if(s.tableAlias==="_p"&&e.from.subtableCode&&e.from.cteName===null)return t.get(e.from.appId)?.get(s.field);let d=n.find(p=>Oe(p)===s.tableAlias);return!d||d.cteName!==null?void 0:xo(d,s.field)??t.get(d.appId)?.get(he(d,s.field))}if(e.joins.length===0)return e.from.cteName!==null?void 0:xo(e.from,s.field)??t.get(e.from.appId)?.get(he(e.from,s.field));if(n.some(d=>d.cteName!==null))return;let l=r.flatMap(d=>{let p=xo(d,s.field)??t.get(d.appId)?.get(he(d,s.field));return p?[p]:[]});return l.length===1?l[0]:void 0};return{row:o,having:s=>{if(!(s.tableAlias===null&&i.has(s.field)))return o(s)}}}var yf=new WeakSet,gf=new WeakMap;function dl(e){return yf.add(e),e}function vh(e,t){return gf.set(e,t),t}function hf(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&&ne(e).type==="NONE"&&e.having===null&&e.joins.length===0&&e.from.cteName===null&&!e.from.subtableCode&&e.limit===null&&e.offset===null}function Uh(e){return typeof e=="string"&&/^(?:0|[1-9]\d*)$/.test(e)}async function kh(e,t){let n=e.columns.find(s=>s.type==="AGGREGATE");if(n?.type!=="AGGREGATE")return null;let r=e.where===null?"":G(e.where),i=await t.getRecords({app:e.from.appId,query:`${r}${r?" ":""}limit 1`,fields:["$id"],totalCount:!0});if(i.searchAborted)throw new tn;if(!Uh(i.totalCount))return null;let o=n.alias??"COUNT(*)",a=vr([{[o]:i.totalCount}],e.columns);return{type:"SELECT",rows:a.rows,columns:a.columns,rowCount:1,warnings:[]}}async function Mh(e,t,n,r,i,o=!0,a,s,l){let d=gf.get(e);if(yf.has(e)&&d!==void 0&&hf(e,d)){let V=await kh(e,t);if(V!==null)return V}let p=n.maxRecords??1e4,c=new Set,u=n.fetchParallel??1;await Promise.all([ei(e.where,t,n,r,i),ei(e.having,t,n,r,i)]);let[f,E,R]=await Promise.all([ea(e,t,r),Bl(e,t,r),ff(e,t,r,i)]),m=Gl(e,E),g=await $n(e,t,r,i,Ze(e.having)||Ul(e)),y=sf(e,g),h=xl.get(e);if(h&&!kn(h.joinPlan))throw new Error("InternalError: JOIN server-function fetch binding changed before records API.");let S=h??Zo(e,f)??Tn(e,f);Ca(S);let w="joinPlan"in S?S:null,I=w&&kn(w.joinPlan)?w:null,L=t,b=S.mainCondition,v=S.joinConditions;if(s&&o)throw new Error("internal error: relative-date prefilter must disable original WHERE pushdown.");let P=s?s.prefilterWhere:I?null:b,D=I?.queriesByAlias.get(e.from.alias)??"",M=await Kf(e.columns,t,n,r,i),N=Rt(e.where),_=N?Promise.resolve([]):Wr(e,e.from,L,p,u,!0,n.onLimitReached??"error",c,P,I?!1:o,l,D),A=[],C=[];for(let V of e.joins){if(N){A.push({join:V,promise:Promise.resolve([])});continue}let Te=V.table.alias?I?.queriesByAlias.get(V.table.alias)??"":"",Ei=I?null:V.table.alias?v.get(V.table.alias)??null:null;Ei!==null||Te!==""?A.push({join:V,promise:Wr(e,V.table,L,p,u,!1,n.onLimitReached??"error",c,Ei,!0,l,Te)}):C.push(V)}let x=a?Promise.resolve(a):Jr(e,t,r,i);x.catch(()=>{});let O=await _,F=new Map;F.set(e.from.alias,O);for(let{join:V,promise:Te}of A)F.set(V.table.alias,await Te);await Promise.all(C.map(async V=>{let Ei=await bf(e,V,F,L,p,u,n.onLimitReached??"error",c,null,l,"")??await Wr(e,V.table,L,p,u,!1,n.onLimitReached??"error",c,null,!0,l,"");F.set(V.table.alias,Ei)}));let{optionOrders:j,sortKinds:q,semantics:U}=await x,{rows:k,columns:$}=Fs({tables:F,stmt:e,scalarCache:M,optionOrders:j,sortKinds:q,orderSemantics:U,fieldTypeResolver:m.row,fieldSemanticsResolver:g,havingFieldTypeResolver:m.having,havingFieldSemanticsResolver:y,aggregateSortKindResolver:R,appliedKlikes:s?.appliedKlikes??S.appliedKlikes,...s?{residualWhere:s.residualWhere}:I?{residualWhere:I.joinPlan.residualWhere}:{},resolvedGroupingSpec:qr.get(e),plainGroupByPlan:l}),be=await Wl(e,k,$,t,r);return{type:"SELECT",rows:k,columns:be,rowCount:k.length,warnings:[...c]}}async function Af(e,t,n,r,i=!1,o=!1){let a=Ml(e,n,null);return cl(a,async()=>{let s=a.effectiveOptions,[l,d]=await Promise.all([e.left.type==="UNION"?Af(e.left,t,s,r,i,o):vt(dl(e.left),t,s,r,void 0,i,o),vt(dl(e.right),t,s,r,void 0,i,o)]),p=l.columns,c=d.columns,u=d.rows.map(m=>{let g={};return p.forEach((y,h)=>{g[y]=m[c[h]??y]??""}),g}),f=[...l.rows,...u],E=e.all?f:Sf(f,p),R={type:"SELECT",rows:E,columns:p,rowCount:E.length};return i&&Ee.set(R,mf(l,d)),R})}function Sf(e,t){let n=new Set;return e.filter(r=>{let i=JSON.stringify(t.map(o=>r[o]??""));return n.has(i)?!1:(n.add(i),!0)})}async function Vl(e,t,n,r,i,o=!1){if((i==null||i.size===0)&&It(e))return vt(wt(e),t,n,r,void 0,o,!1);let a=new Map(i??[]);for(let s of e.ctes){let l;s.query.type==="SHOW_APPS"?l=await kf(t):s.query.type==="DESCRIBE"?l=await Mf(s.query,t,r):l=await mt(s.query,t,n,a,r,!0),a.set(s.name,{rows:l.rows,columns:l.columns,columnMeta:Ee.get(l)})}return mt(e.query,t,n,a,r,o)}async function mt(e,t,n,r,i,o=!1,a=!1){if(a||await Fo(e,t,r,i),e.type==="UNION"){let[d,p]=await Promise.all([mt(e.left,t,n,r,i,o,!0),mt(e.right,t,n,r,i,o,!0)]),c=d.columns,u=p.columns,f=p.rows.map(g=>{let y={};return c.forEach((h,S)=>{y[h]=g[u[S]??h]??""}),y}),E=[...d.rows,...f],R=e.all?E:Sf(E,c),m={type:"SELECT",rows:R,columns:c,rowCount:R.length};return o&&Ee.set(m,mf(d,p)),m}if(!(e.from.cteName!=null&&e.from.cteName!==ze||e.joins.some(d=>d.table.cteName!=null)))return vt(e,t,n,i,r,o,!1);let l=await Fh(e,t,n,r,i);return o&&Ee.set(l,await Yo(e,l.columns,t,i,r)),l}async function Fh(e,t,n,r,i){await Qo(e,t,i,r);let o=qr.get(e),a=await kl(e,t,i,r),s=new Set,l=k=>{if(k.alias!==null||k.cteName===null)return k;let $=Oe(k);return s.add($),{...k,alias:$}};e={...e,from:l(e.from),joins:e.joins.map(k=>({...k,table:l(k.table)}))};let d=new Set;for(let k of[e.from,...e.joins.map($=>$.table)]){let $=Oe(k);if($!==null){if(d.has($))throw new Error(`ArgumentError: effective alias ${$} is used by multiple tables.`);d.add($)}}let p=k=>{let $=r.get(k);if(!$)throw new Error(`ArgumentError: materialized source ${k} is not available.`);return $};for(let k of[e.from,...e.joins.map($=>$.table)])k.cteName!==null&&p(k.cteName);let c=n.maxRecords??1e4,u=new Set,f=n.fetchParallel??1;await Promise.all([ei(e.where,t,n,i,r),ei(e.having,t,n,i,r),Ff(e,t,n,i,r)]);let E=await zr(e,t,i,r);if(E.capability==="UNSUPPORTED")throw new Error(`ArgumentError: WHERE predicate is unsupported (${Zt(E)}).`);let R=await Jr(e,t,i,r),m=Go(e)?(e.orderMode==="KINTONE_NATIVE"?Dr:_r)({stmt:e,staticMode:"FULL_SCAN",whereCapability:E.capability,whereReasons:E.reasons,orderSemantics:R.semantics,maxRecords:c,hasKlike:pe(e.where)}):null,g=Ml(e,n,m),y=g.effectiveOptions,[h,S,w]=await Promise.all([ea(e,t,i),Bl(e,t,i),ff(e,t,i,r)]),I=Gl(e,S),L=await $n(e,t,i,r,Ze(e.having)||Ul(e)),b=sf(e,L),v=Zo(e,h)??Tn(e,h);Ca(v);let P=t,D=await Kf(e.columns,t,y,i,r),M=Promise.resolve(R);M.catch(()=>{});let N=new Map,_=new Map;if(e.from.cteName!=null){let k=p(e.from.cteName);N.set(e.from.alias,k.rows.map(xd)),_.set(e.from.alias,k.columns)}else{let k=await cl(g,()=>Wr(e,e.from,P,c,f,!0,y.onLimitReached??"error",u,v.mainCondition,E.capability==="EXACT_PUSHDOWN",a));N.set(e.from.alias,k)}let A=e.joins.map(k=>cl(g,async()=>{if(k.table.cteName!=null){let $=p(k.table.cteName);N.set(k.table.alias,$.rows.map(xd)),_.set(k.table.alias,$.columns)}else{let $=k.table.alias?v.joinConditions.get(k.table.alias)??null:null,V=await bf(e,k,N,P,c,f,y.onLimitReached??"error",u,$,a)??await Wr(e,k.table,P,c,f,!1,y.onLimitReached??"error",u,$,!0,a);N.set(k.table.alias,V)}}));await Promise.all(A);let{optionOrders:C,sortKinds:x,semantics:O}=await M,F=e.joins.length===0&&e.from.cteName!=null?p(e.from.cteName).columns:void 0,{rows:j,columns:q}=Fs({tables:N,stmt:e,scalarCache:D,optionOrders:C,sortKinds:x,orderSemantics:O,fieldTypeResolver:I.row,fieldSemanticsResolver:L,havingFieldTypeResolver:I.having,havingFieldSemanticsResolver:b,aggregateSortKindResolver:w,appliedKlikes:v.appliedKlikes,sourceColumns:F,tableColumns:_,hiddenQualifiedAliases:s,resolvedGroupingSpec:o,plainGroupByPlan:a}),U=await Wl(e,j,q,t,i);return{type:"SELECT",rows:j,columns:U,rowCount:j.length,warnings:[...u]}}async function Wl(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 ee(e.from.appId,r,i);return zp(o,e.from.subtableCode,()=>na(e.from.appId,r,i))}function xd(e){return Object.fromEntries(Object.entries(e).map(([t,n])=>[t,{value:n??""}]))}async function Wr(e,t,n,r,i,o,a,s,l=null,d=!0,p,c=""){let u=Kt(e,t,p),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`),Ol(n,t.appId),Ip(e,t,o))throw new Pe(`\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&&d?ju(e,t.appId).query:"",y=[l!==null?G(l):"",c].filter(I=>I!==""),h=y.length>1?y.map(I=>`(${I})`).join(" and "):y[0]??"",S=g&&h?`(${g}) and (${h})`:g||h;return(await Ge(n.getRecords,t.appId,S,u,{parallel:i,maxRecords:r,onLimit:a,onTruncate:f})).records}let m=(await Ge(n.getRecords,t.appId,"",u,{parallel:i,maxRecords:r,onLimit:a,onTruncate:f})).records;return ld(m,t.subtableCode)}var Tf=50;function xh(e){let t=Le(e);return t!==null?JSON.stringify(t):e}function fl(e){return JSON.stringify(e)}function rn(e,t){return JSON.stringify(e.map((n,r)=>t[r]?xh(n):n))}function ri(e,t){let n=e.raw.get(fl(t));if(n!==void 0)return n;if(e.numericKey.some(Boolean))return e.normalized.get(rn(t,e.numericKey))}async function ii(e,t,n,r,i,o){let a=i.maxRecords??1e4,s=i.fetchParallel??1,l=t.map(m=>o.get(m)==="NUMBER"),d={raw:new Map,normalized:new Map,numericKey:l},p=(m,g,y)=>{let h=m.get(g);(h===void 0||y>h)&&m.set(g,y)},c=(m,g)=>{p(d.raw,fl(m),g),l.some(Boolean)&&p(d.normalized,rn(m,l),g)},u=new Set,f=[],E=new Set;for(let m of n){let g=fl(m);E.has(g)||(E.add(g),m.some(y=>y==="")?f.push(m):u.add(m[0]))}let R=["$id",...t];for(let m of Gn([...u],Tf)){let g=`${t[0]} in (${m.map(jo).join(",")})`,y=await Ie(r.getRecords,e,g,R,{maxRecords:a,parallel:s});for(let h of y){let S=Number(h.$id?.value);Number.isFinite(S)&&c(t.map(w=>If(h[w]?.value)),S)}}for(let m of f){let g=t.map((h,S)=>`${h} = ${jo(m[S])}`).join(" and "),y=await Ie(r.getRecords,e,g,["$id"],{maxRecords:a,parallel:s});y.length!==0&&c(m,Kh(y))}return d}function Kh(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 If(e){return typeof e=="string"?e:e==null?"":String(e)}function jo(e){return`"${e.replace(/\\/g,"\\\\").replace(/"/g,'\\"')}"`}function Gn(e,t){let n=[];for(let r=0;r<e.length;r+=t)n.push(e.slice(r,r+t));return n}var wf=50,Bh=6,Kd=wf*Bh;async function bf(e,t,n,r,i,o,a,s,l=null,d,p=""){if(t.type!=="INNER"||!t.table.alias||t.table.subtableCode)return null;let c=t.on.left.tableAlias,u=t.on.right.tableAlias;if(!c||!u)return null;let f,E,R;if(c===t.table.alias&&u!==t.table.alias)f=u,E=t.on.right.field,R=t.on.left.field;else if(u===t.table.alias&&c!==t.table.alias)f=c,E=t.on.left.field,R=t.on.right.field;else return null;let m=n.get(f);if(!m)return null;let g=new Set;for(let b of m){let v=b[E]?.value,P=If(v).trim();P.length>0&&g.add(P)}let y=[...g];if(y.length===0)return[];if(y.length>Kd)return s.add(`JOIN\u30AD\u30FC\u304C ${y.length} \u4EF6\u306E\u305F\u3081 ON \u6700\u9069\u5316\u3092\u30B9\u30AD\u30C3\u30D7\u3057\u3001JOIN\u5148\u3092\u5168\u4EF6\u53D6\u5F97\u3057\u307E\u3059\uFF08\u4E0A\u9650 ${Kd} \u4EF6\uFF09\u3002`),null;let h=Kt(e,t.table,d),S=b=>{s.add(`\u53D6\u5F97\u4E0A\u9650\uFF08${b} \u4EF6\uFF09\u306B\u9054\u3057\u305F\u305F\u3081\u3001${b} \u4EF6\u3067\u6253\u3061\u5207\u3063\u3066\u8868\u793A\u3057\u3066\u3044\u307E\u3059\u3002`),Ol(r,t.table.appId)},w=Gn(y,wf),I=[],L=new Set;for(let b of w){let v=`${R} in (${b.map(jo).join(",")})`,D=[l!==null?G(l):"",p].filter(N=>N!=="").reduce((N,_)=>`(${N}) and (${_})`,v),M=await Ge(r.getRecords,t.table.appId,D,h,{parallel:o,maxRecords:i,onLimit:a,onTruncate:S});for(let N of M.records){let _=`${N.$id?.value??""}:${JSON.stringify(N)}`;L.has(_)||(L.add(_),I.push(N))}}return I}var El=new Map,Rl=new Map,ml=new Map,yl=new Map,gl=new Map,hl=new Map;function Hl(e){El.delete(e),Rl.delete(e),ml.delete(e),yl.delete(e),gl.delete(e),hl.delete(e)}function Vn(e,t,n){return e.get(t)?.get(n)}function Wn(e,t,n,r){let i=e.get(t);i||(i=new Map,e.set(t,i)),i.set(n,r)}async function ee(e,t,n){let r=Vn(yl,n,e);if(r)return r;let i=t.getFields(e);return Wn(yl,n,e,i),i}async function ot(e,t,n){let r=Vn(hl,n,e);if(r)return r;let i=t.getNumberPrecision(e);return Wn(hl,n,e,i),i}async function na(e,t,n){let r=Vn(gl,n,e);if(r)return r;let i=t.getProcessStatuses(e);return Wn(gl,n,e,i),i}async function Yl(e,t,n){let r=await na(e,t,n);return r.enable&&r.states!==null?new Map(r.states.map(i=>[i.name,i.index])):void 0}async function Ae(e,t,n){let r=Vn(El,n,e);if(r)return r;let i=await ee(e,t,n),o=new Map(i.map(a=>[a.code,a.fieldType]));return Wn(El,n,e,o),o}async function Al(e,t,n){let r=Vn(Rl,n,e);if(r)return r;let i=await ee(e,t,n),o=new Map;for(let a of i){if(!a.optionOrder)continue;let s=Object.entries(a.optionOrder);s.length!==0&&o.set(a.code,new Map(s))}return Wn(Rl,n,e,o),o}async function $h(e,t,n){let r=await Al(e,t,n);return new Map([...r.entries()].map(([i,o])=>[i,new Set(o.keys())]))}async function Bd(e,t,n){let r=Vn(ml,n,e);if(r)return r;let i=await ee(e,t,n),o=new Map;for(let a of i)a.sortKind&&o.set(a.code,a.sortKind);return Wn(ml,n,e,o),o}function Gh(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 Vh(e,t,n,r){let i=Gh(e);if(i.length===0)return new Map;let o=[e.from,...e.joins.map(c=>c.table)],a=new Set,s=new Map(await Promise.all([...new Set(o.filter(c=>c.cteName===null).map(c=>c.appId))].map(async c=>{let u=await ee(c,t,n);return[c,new Map(u.map(f=>[f.code,f]))]}))),l=c=>{if(c.tableAlias!==null){if(c.tableAlias==="_p"&&e.from.subtableCode&&e.from.cteName===null){let R=s.get(e.from.appId)?.get(c.field);return R?nt(R,e.from.appId):void 0}let f=o.find(R=>Oe(R)===c.tableAlias);if(!f)return;if(f.cteName!==null)return r?.get(f.cteName)?.columnMeta?.get(c.field);let E=s.get(f.appId)?.get(he(f,c.field));return E?nt(E,f.appId):Jt(c.field)}if(e.joins.length===0){if(e.from.cteName!==null)return r?.get(e.from.cteName)?.columnMeta?.get(c.field);let f=s.get(e.from.appId)?.get(he(e.from,c.field));return f?nt(f,e.from.appId):Jt(c.field)}let u=o.flatMap(f=>{if(f.cteName!==null){let m=r?.get(f.cteName),g=m?.columns.includes(c.field)?m.columnMeta?.get(c.field):void 0;return g?[g]:[]}let E=s.get(f.appId)?.get(he(f,c.field)),R=E?nt(E,f.appId):Jt(c.field);return R?[R]:[]});return u.length>1&&a.add(c.field),u.length===1?u[0]:void 0},d=new Map;for(let c of e.columns){if(!("alias"in c)||!c.alias)continue;let u;if(c.type==="FIELD")u=l(Ye(c.field));else if(c.type==="ARITH_COL"||c.type==="ARITH_AGG_COL"||c.type==="WINDOW_COL")u=z("number");else if(c.type==="GROUPING_COL")u=z("number");else if(c.type==="LITERAL_COL"||c.type==="SCALAR_VALUE_COL")u=z("string");else if(c.type==="STRFUNC_COL")u=nn(c.expr);else if(c.type==="SCALAR_SUBQUERY_COL")u=it();else if(c.type==="CASE_COL"){let f=c.expr.branches.map(E=>Bn(E.result,l));c.expr.elseResult&&f.push(Bn(c.expr.elseResult,l)),u=ta(f)}else c.type==="AGGREGATE"&&(c.func==="MIN"||c.func==="MAX"||c.func==="MODE"?c.arg.type!=="WILDCARD"&&(u=$l(c.arg,l)):u=c.func==="GROUP_CONCAT"?z("string"):z("number"));u?.semantics&&d.set(c.alias,u.semantics)}let p=new Map;for(let c of i){let u=d.get(c)??l(Ye(c))?.semantics;if(!u){let E=Ye(c);E.tableAlias===null&&a.has(E.field)&&p.set(c,X({fieldType:"KSQL_AMBIGUOUS"}));continue}let f=u;if(u.fieldType==="STATUS"&&u.source&&e.orderMode!=="KINTONE_NATIVE"){let E=await na(u.source.appId,t,n);E.enable&&E.states!==null&&(f={...u,optionOrder:new Map(E.states.map(R=>[R.name,R.index]))})}p.set(c,f)}return p}async function Jr(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([Wh(e,t,n),Hh(e,t,n),Vh(e,t,n,r)]);return{optionOrders:o,sortKinds:a,semantics:s}}async function Wh(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 Al(a.appId,t,n);for(let[l,d]of s.entries())r.has(l)||r.set(l,d)}for(let a of i){if(a.cteName!=null||!a.alias)continue;let s=await Al(a.appId,t,n);for(let[l,d]of s.entries())r.set(`${a.alias}.${l}`,d)}return r}async function Hh(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 Bd(a.appId,t,n);for(let[l,d]of s.entries())r.has(l)||r.set(l,d)}for(let a of i){if(a.cteName!=null||!a.alias)continue;let s=await Bd(a.appId,t,n);for(let[l,d]of s.entries())r.set(`${a.alias}.${l}`,d)}return r}function Pf(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 Yh=new Set(["CALC","RECORD_NUMBER","CREATOR","CREATED_TIME","MODIFIER","UPDATED_TIME","STATUS","STATUS_ASSIGNEE","CATEGORY","REFERENCE_TABLE"]);function jh(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||Yh.has(o.fieldType))throw new Error(`ArgumentError: DML target field ${i} is not writable (${o.fieldType}).`)}}async function je(e,t,n,r){let i=await ee(e,n,r);return jh(e,t,i),i}async function yt(e,t,n,r,i){let o=new Map(n.map(a=>[a.code,a]));return t.some(a=>o.get(a)?.fieldType==="NUMBER")?ot(e,r,i):void 0}function on(e,t,n,r){let i=new Map(n.map(o=>[o.code,o]));e.forEach((o,a)=>{for(let s of t){let l=i.get(s),d=o[s]?.value??"",p=Ne(d,l,r);if(!p.ok)throw new Error(`DmlValidationError: ${p.code} ${p.message} (row=${a+1}, field=${s})`);let c=["USER_SELECT","ORGANIZATION_SELECT","GROUP_SELECT"].includes(l.fieldType)&&Array.isArray(d)&&d.every(u=>typeof u=="object"&&u!==null&&"code"in u);o[s]={value:c?d:p.value}}})}async function zh(e,t,n,r,i){let o=await je(e.appId,e.fields,t,r),a=await Tr({statement:e,fieldInfos:o,dmlMaxRows:xe(n.dmlMaxRows,"dmlMaxRows",gt),dmlMaxSubtableRows:xe(n.dmlMaxSubtableRows,"dmlMaxSubtableRows",Se),statementNumber:i,loadNumberPrecision:()=>ot(e.appId,t,r)});return wA(e,a,o)}async function qh(e,t,n,r,i){let{fieldInfos:o,prepared:a}=await Nf(e,t,n,r,i);return PA(e,a,o)}async function Nf(e,t,n,r,i){let o=await je(e.appId,e.fields,t,r),a=new Map(o.map(m=>[m.code,m.fieldType])),s=vf(e),l=new Set;for(let m of s){let g=rn(m,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 d=await ii(e.appId,e.keyFields,s,t,n,a),p=s.map(m=>ri(d,m)),c=new Map,u=[...new Set(p.filter(m=>m!==void 0))],f=["$id","$revision",...o.filter(m=>!m.inSubtable&&m.fieldType!=="FILE").map(m=>m.code)];for(let m of Gn(u,100)){let g=await t.getRecords({app:e.appId,query:`$id in (${m.join(",")}) limit 500`,fields:[...new Set(f)]});for(let y of g.records){let h=Number(y.$id?.value);Number.isSafeInteger(h)&&h>0&&c.set(h,y)}}let E=p.map((m,g)=>({sourceRowIndex:g,...m===void 0?{}:{targetId:m,snapshot:c.get(m)}})),R=await mp({statement:e,matches:E,fieldInfos:o,dmlMaxRows:xe(n.dmlMaxRows,"dmlMaxRows",gt),dmlMaxSubtableRows:xe(n.dmlMaxSubtableRows,"dmlMaxSubtableRows",Se),statementNumber:i,loadNumberPrecision:()=>ot(e.appId,t,r)});return{fieldInfos:o,prepared:R}}async function Jh(e,t,n,r){if(n.allowApplyMutation!==!0)throw new Error("UnsupportedError: APPLY mutation requires allowApplyMutation=true");let i=await je(e.appId,e.fields,t,r),o=await Tr({statement:e,fieldInfos:i,dmlMaxRows:xe(n.dmlMaxRows,"dmlMaxRows",gt),dmlMaxSubtableRows:xe(n.dmlMaxSubtableRows,"dmlMaxSubtableRows",Se),loadNumberPrecision:()=>ot(e.appId,t,r)}),a=ys(o);if(n.confirm&&!await n.confirm(o.guards.parentRows,"INSERT",{statementIndex:0,statementCount:1,statementType:"INSERT",targetAppId:e.appId,applyDetail:ra(a),applyDiagnostic:a}))throw new le("INSERT",o.guards.parentRows);let s=await Sp(o,t,a);return{...s,diagnostic:Ue(a,s)}}async function Xh(e,t,n,r){if(n.allowApplyMutation!==!0)throw new Error("UnsupportedError: APPLY mutation requires allowApplyMutation=true");let{prepared:i}=await Nf(e,t,n,r,1),o=gs(i);if(n.confirm){let s=ra(o);if(!await n.confirm(i.guards.parentRows,"UPDATE",{statementIndex:0,statementCount:1,statementType:"UPSERT",targetAppId:e.appId,applyDetail:s,applyDiagnostic:o}))throw new le("UPDATE",i.guards.parentRows)}let a=await Tp(i,t,o);return{type:"UPSERT",insertedCount:a.insertedCount,updatedCount:a.updatedCount,successfulChunks:a.successfulChunks,successfulParents:a.successfulParents,successfulInsertChunks:a.successfulInsertChunks,successfulUpdateChunks:a.successfulUpdateChunks,nonTransactional:a.nonTransactional,diagnostic:Ue(o,a)}}function Qh(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 ra(e,t=!0){let n=e.branches.find(u=>u.branch==="insert"),r=e.branches.find(u=>u.branch==="update"),i=e.branches.flatMap(u=>u.targets),o=Qh(n?Mo(n):[],r?Mo(r):[]),a=Zh(i),s=e.branches.reduce((u,f)=>u+(f.parentRows??0),0),l=i.filter(u=>u.targetKind==="SUBTABLE").reduce((u,f)=>u+(f.changedCount??0),0),d=o.reduce((u,f)=>u+f.appendRows,0),p=o.reduce((u,f)=>u+f.removeRows,0),c={kind:e.statementKind==="UPDATE"?"APPLY_PATCH":e.statementKind==="INSERT"?"APPLY_INSERT":"APPLY_UPSERT",parentRows:s,changedSubtableRows:l,addedSubtableRows:d,tables:o,...a.length>0?{multiValues:a}:{},deletedRows:p,deletedParentRows:e.branches.reduce((u,f)=>u+(f.deletedParentRows??0),0),revisionRequired:e.branches.some(u=>u.guards.revisionRequired),irreversible:!0,retryOnRevisionConflict:!1,...t?{nonTransactional:!0,partialSuccessPossible:!0}:{}};if(e.statementKind==="INSERT"&&n)return{...c,insertedParentRows:n.parentRows??0,initialSubtableRows:n.targets.filter(u=>u.targetKind==="SUBTABLE").reduce((u,f)=>u+(f.changedCount??0),0)};if(e.statementKind==="UPSERT"&&n&&r){let u=Mo(n),f=Mo(r);return{...c,insertedParentRows:n.parentRows??0,initialSubtableRows:n.targets.filter(E=>E.targetKind==="SUBTABLE").reduce((E,R)=>E+(R.changedCount??0),0),updatedParentRows:r.parentRows??0,applyBranches:{insert:{parentRows:n.parentRows??0,initialSubtableRows:u.reduce((E,R)=>E+R.appendRows,0),tables:u},update:{parentRows:r.parentRows??0,changedSubtableRows:r.targets.filter(E=>E.targetKind==="SUBTABLE").reduce((E,R)=>E+(R.changedCount??0),0),addedSubtableRows:f.reduce((E,R)=>E+R.appendRows,0),tables:f,deletedRows:f.reduce((E,R)=>E+R.removeRows,0),deletedParentRows:r.deletedParentRows??0}}}}return c}function Mo(e){return e.targets.filter(t=>t.targetKind==="SUBTABLE").map(t=>{let n=en(t,"APPEND"),r=en(t,"REMOVE");return{table:t.field,patchRows:(t.changedCount??0)-n-r,appendRows:n,removeRows:r}})}function en(e,t){return e.operations.filter(n=>n.kind===t).reduce((n,r)=>n+(r.count??0),0)}function Zh(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:en(n,"ADD"),removedValues:en(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 jl(e,t,n,r,i,o){if(e.type==="INSERT"&&e.applyBlocks?.length)return zh(e,t,n,r,o);if(e.type==="UPSERT"&&(e.onInsertApplyBlocks?.length||e.onUpdateApplyBlocks?.length))return qh(e,t,n,r,o);if(e.type==="UPDATE"&&e.applyBlocks?.length){let a=await Df(e,t,n,r,o);if(a.type!=="VALIDATION")throw new Error("InternalError: APPLY VALIDATE ONLY returned a mutation result.");return a}return(await zl(e,t,n,r,i,o)).result}var Xr=class extends Error{constructor(n,r){super(`RejectLimitExceededError: ${n}`);this.diagnostic=r;this.name="RejectLimitExceededError"}};async function zl(e,t,n,r,i,o,a=!0,s=!0){let l=e.type==="UPDATE"?"UPDATE":e.type.startsWith("UPSERT")?"UPSERT":"INSERT",d=e.type==="UPDATE"?["$id",...e.assignments.map(_=>_.field)]:[...e.fields];if(new Set(d).size!==d.length)throw new Error("ArgumentError: DML target fields contain duplicates.");let p=e.type==="UPDATE"?e.assignments.map(_=>_.field):e.fields,c=await je(e.appId,p,t,r);e.type==="UPDATE"&&await xn(e,t,r);let u=new Map(c.map(_=>[_.code,_])),f=await yt(e.appId,p,c,t,r),E=Je(c,d),R=ud(E),m=(await eA(e,l,t,n,r,i,u,e.type==="UPDATE"?R:void 0)).sort((_,A)=>_.rowNumber-A.rowNumber),g=m.filter(_=>_.mode==="update"),y=e.type==="UPDATE"?rA:e.type.startsWith("UPSERT")?_=>iA(_,t,n.maxRecords??1e4):void 0,h=n.loadUpdateModeSnapshots??y,S=g.length>0&&h!==void 0,w=new Map;if(S){ls(g,p,c);let _=await h({appId:e.appId,candidates:g,fields:R}),A=new Map;for(let C of g){if(C.targetId===void 0)throw new Error(`InternalError: update-mode validation candidate has no targetId (row=${C.rowNumber}).`);let x=_.get(C.targetId);if(!x)throw new Error(`InternalError: update-mode snapshot is missing for record ${C.targetId}.`);let O=cd(x,C.record??{});A.set(C.rowNumber,O)}f===void 0&&[...A.values()].some(C=>Ht(C,E))&&(f=await ot(e.appId,t,r));for(let C of g){let x=A.get(C.rowNumber);if(!x)throw new Error(`InternalError: validation post-image is missing for row ${C.rowNumber}.`);w.set(C.rowNumber,Yt(x,E,f,o,C.rowNumber,l))}}let I=us(m,l,d,p,c,o,f,e.checkGroups??[],a,s,{validateUpdateBuiltIns:!S}),{errors:L,invalidRows:b,invalidRowNumbers:v}=I;if(S){let _=new Map(I.candidateResults.map(A=>[A.rowNumber,A]));L=[],v=new Set;for(let A of m){let C=_.get(A.rowNumber);if(!C)throw new Error(`InternalError: validation detail is missing for row ${A.rowNumber}.`);if(A.mode==="create"){let F=[...C.preErrors,...C.builtInErrors,...C.checkErrors];L.push(...F),F.length>0&&v.add(A.rowNumber);continue}let x=w.get(A.rowNumber);if(!x)throw new Error(`InternalError: prepared post-image validation is missing for row ${A.rowNumber}.`);let O=pd({rowNumber:A.rowNumber,setFields:p,normalizedPostImage:x.normalizedRecord,preErrors:C.preErrors,postImageErrors:x.errors,checkErrors:C.checkErrors});A.record=O.writeRecord,L.push(...O.errors);for(let F of O.invalidRowNumbers)v.add(F)}b=v.size}let P=[...d,...On],D={type:"VALIDATION",operation:l,validatedRows:m.length,validRows:m.length-b,invalidRows:b,errorCount:L.length,columns:P,errors:L,...e.validationErrorTable?{errTable:e.validationErrorTable}:e.onErrorSkip&&e.errorTable?{errTable:e.errorTable}:{}},M=new Map;for(let _ of d){if(_==="$id"){M.set(_,{sortKind:"number",fieldType:"RECORD_NUMBER",semantics:X({fieldType:"RECORD_NUMBER"})});continue}let A=u.get(_);A&&M.set(_,nt(A,e.appId))}let N=new Set(["$err_statement","$err_row"]);for(let _ of On)M.set(_,z(N.has(_)?"number":"string"));return sn.set(D,M),{result:D,candidates:m,invalidRowNumbers:v,columnMeta:M}}async function Sl(e,t,n,r,i,o){let a=await zl(e,t,n,r,i,o),s=e.errorTable;if(!s)throw new Error("ArgumentError: ON ERROR SKIP requires INTO #error_table.");rt(i,s,a.result.columns,a.result.errors,n.tempTableMaxRows??Fe,a.columnMeta);let l=e.rejectLimit??null;if(l!==null&&a.result.invalidRows>l)throw new Xr(`rejected rows (${a.result.invalidRows}) exceed REJECT LIMIT (${l}).`,a.result);let d=a.candidates.filter(E=>!a.invalidRowNumbers.has(E.rowNumber));if(n.confirm){let E=e.type.startsWith("INSERT")?"INSERT":"UPDATE";if(!await n.confirm(d.length,E))throw new le(E,d.length)}let p={affectedRows:d.length,skippedRows:a.result.invalidRows,rejectLimit:l,errTable:s};if(e.type==="INSERT"||e.type==="INSERT_SELECT"){let E=[];for(let R=0;R<d.length;R+=100){let m=await t.postRecords({app:e.appId,records:d.slice(R,R+100).map(g=>g.record)});E.push(m.ids)}return{type:"INSERT",createdIds:E,insertedCount:E.flat().length,...p}}if(e.type==="UPDATE"){let E=d.map(R=>{if(R.targetId===void 0)throw new Error("InternalError: prepared UPDATE candidate has no targetId.");return{id:R.targetId,record:R.record}});for(let R=0;R<E.length;R+=100)await t.putRecords({app:e.appId,records:E.slice(R,R+100)});return{type:"UPDATE",updatedCount:E.length,...p}}let c=d.filter(E=>E.mode==="create"),u=d.filter(E=>E.mode==="update").map(E=>{if(E.targetId===void 0)throw new Error("InternalError: prepared UPSERT candidate has no targetId.");return{id:E.targetId,record:E.record}}),f=0;for(let E=0;E<c.length;E+=100){let R=await t.postRecords({app:e.appId,records:c.slice(E,E+100).map(m=>m.record)});f+=R.ids.length}for(let E=0;E<u.length;E+=100)await t.putRecords({app:e.appId,records:u.slice(E,E+100)});return{type:"UPSERT",insertedCount:f,updatedCount:u.length,...p}}async function eA(e,t,n,r,i,o,a,s){if(e.type==="UPDATE")return nA(e,n,r,i,o,s);let l,d,p,c,u;if(e.type==="INSERT"||e.type==="UPSERT")$d(e,e.fields),u=new Map(e.fields.map(S=>[S,a.get(S)?.fieldType??""])),an(e,u),l=e.values.map(S=>S.map((w,I)=>w.type==="CASE_VALUE"?Lt(w.expr,{},a.get(e.fields[I])?.fieldType):w));else{let S=await Jl.materialize(e,n,r,i,o,[...a.values()]),w=(e.checkGroups?.length??0)>0;if(S.columns.length<e.fields.length||!w&&S.columns.length!==e.fields.length)throw new Error(`SELECT \u306E\u5217\u6570\uFF08${S.columns.length}\uFF09\u3068 DML \u306E\u30D5\u30A3\u30FC\u30EB\u30C9\u6570\uFF08${e.fields.length}\uFF09\u304C\u4E00\u81F4\u3057\u307E\u305B\u3093`);if(w&&new Set(S.columns).size!==S.columns.length)throw fe("CHECK \u4ED8\u304D DML \u30BD\u30FC\u30B9 SELECT \u306E\u51FA\u529B\u540D\u306F\u4E00\u610F\u3067\u3042\u308B\u5FC5\u8981\u304C\u3042\u308A\u307E\u3059");$d(e,S.columns),d=S.rows,p=S.importPresence,c=S.importRowErrors;let I=S.columnMeta;u=new Map(S.columns.map(L=>{let b=I?.get(L),v=b?.fieldType??(b?.semantics?.compareMode==="number"||b?.sortKind==="number"?"NUMBER":"SINGLE_LINE_TEXT");return[L,v]})),an(e,u),l=S.rows.map(L=>S.columns.map(b=>L[b]??""))}let f=l.map((S,w)=>({rowNumber:w+1,operation:t,mode:"create",payload:new Map(e.fields.flatMap((I,L)=>p&&!p[w]?.has(I)?[]:[[I,S[L]]])),preErrors:[...c?.[w]??[]],record:{},evaluationRow:d?.[w]??Object.fromEntries(e.fields.map((I,L)=>[I,qe(S[L])])),evaluationFieldTypes:u}));if(e.type!=="UPSERT"&&e.type!=="UPSERT_SELECT")return f;for(let S of e.keyFields)if(!e.fields.includes(S))throw new Error(`ON DUPLICATE \u306E\u30AD\u30FC\u300C${S}\u300D\u304C UPSERT \u30D5\u30A3\u30FC\u30EB\u30C9\u306B\u542B\u307E\u308C\u3066\u3044\u307E\u305B\u3093`);let E=new Map([...a].map(([S,w])=>[S,w.fieldType])),R=f.map(S=>e.keyFields.map(w=>qe(S.payload.get(w)))),m=e.keyFields.map(S=>E.get(S)==="NUMBER"),g=new Map;for(let S of R){let w=rn(S,m);g.set(w,(g.get(w)??0)+1)}let y=Xo.has(e);if(y&&[...g.values()].some(S=>S>1))throw new Error("ERR_KEY_DUP_SOURCE: UPSERT \u30BD\u30FC\u30B9\u5185\u3067\u30AD\u30FC\u304C\u91CD\u8907\u3057\u3066\u3044\u307E\u3059");let h=await ii(e.appId,e.keyFields,R,n,r,E);return f.forEach((S,w)=>{let I=R[w],L=ri(h,I);S.mode=L===void 0?"create":"update",L!==void 0&&(S.targetId=L),e.keyFields.forEach((b,v)=>{I[v]===""&&S.preErrors.push({field:b,code:"ERR_KEY_EMPTY",message:`UPSERT \u30AD\u30FC ${b} \u306F\u7A7A\u306B\u3067\u304D\u307E\u305B\u3093`})}),!y&&(g.get(rn(I,m))??0)>1&&S.preErrors.push({field:e.keyFields[0],code:"ERR_KEY_DUP_SOURCE",message:"UPSERT \u30BD\u30FC\u30B9\u5185\u3067\u30AD\u30FC\u304C\u91CD\u8907\u3057\u3066\u3044\u307E\u3059"})}),f}function ql(e){return e.checkGroups?Nn(e.checkGroups):[]}function $d(e,t){let n=new Set(t);for(let r of ql(e)){if(r.tableAlias!==null)throw fe(`CHECK \u306E\u30D5\u30A3\u30FC\u30EB\u30C9 ${r.tableAlias}.${r.field} \u306F\u3053\u306E\u8A55\u4FA1\u884C\u3067\u306F\u4FEE\u98FE\u3067\u304D\u307E\u305B\u3093`);if(!n.has(r.field))throw fe(`CHECK \u306E\u30D5\u30A3\u30FC\u30EB\u30C9 ${r.field} \u306F\u8A55\u4FA1\u884C\u306B\u5B58\u5728\u3057\u307E\u305B\u3093`)}}var tA=new Set(["CHECK_BOX","MULTI_SELECT","USER_SELECT","ORGANIZATION_SELECT","GROUP_SELECT","FILE","KSQL_ARRAY"]);function an(e,t){if(e.checkGroups)for(let n of Fc(e.checkGroups)){let r=n.tableAlias?`${n.tableAlias}.${n.field}`:n.field,i=t.get(r)??t.get(n.field);if(tA.has(i??""))throw fe(`CHECK \u306E\u6BD4\u8F03\u3067\u306F ${i} \u30D5\u30A3\u30FC\u30EB\u30C9 ${r} \u3092\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093`)}}async function nA(e,t,n,r,i,o){if(e.from)return aA(e,e.from,t,n,r,i,o);await xf(e.assignments,t,n,r);let a=await Ae(e.appId,t,r),s=Cf(e,a);an(e,Tl(a,e.appId));let l,d=new Map,p=new Map;if(ji(e)){let c=Ya(e),u=[...new Set([...c.fields,...s,...o??[]])],f=await Ge(t.getRecords,c.app,c.query,u,{maxRecords:n.maxRecords??1e4,parallel:n.fetchParallel??1,onLimit:"error"});p=Ko(f.records),d=p,l=za(e,f.records,a).flatMap(E=>E.records)}else{let c=fr(e);if(s.length>0){let u=[...new Set(["$id",...s,...o??[]])],f=await Ge(t.getRecords,c.app,c.query,u,{maxRecords:n.maxRecords??1e4,parallel:n.fetchParallel??1,onLimit:"error"});p=Ko(f.records),d=p,l=Er(e,[...d.keys()],a).flatMap(E=>E.records)}else if(o){let u=await Ge(t.getRecords,c.app,c.query,[...o],{maxRecords:n.maxRecords??1e4,parallel:n.fetchParallel??1,onLimit:"error"});p=Ko(u.records),l=Er(e,[...p.keys()],a).flatMap(f=>f.records)}else{let u=await lo(t.getRecords,c.app,c.query,{maxRecords:n.maxRecords??1e4,parallel:n.fetchParallel??1});l=Er(e,u.ids,a).flatMap(f=>f.records)}}return l.sort((c,u)=>c.id-u.id).map((c,u)=>({rowNumber:u+1,operation:"UPDATE",mode:"update",payload:new Map([["$id",String(c.id)],...e.assignments.map(f=>[f.field,c.record[f.field]?.value??""])]),preErrors:[],record:c.record,targetId:c.id,validationSnapshot:p.get(c.id),evaluationRow:oA(d.get(c.id),e.appId),evaluationFieldTypes:Tl(a,e.appId)}))}function Ko(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 rA(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 iA(e,t,n){let r=[...new Set(e.candidates.map(a=>{let s=a.targetId;if(!Number.isSafeInteger(s)||s===void 0||s<=0)throw new Error(`InternalError: invalid targetId in UPSERT validation candidate: ${String(s)}.`);return s}))];if(r.length>n)throw new Pe(`\u53D6\u5F97\u4EF6\u6570\u304C\u4E0A\u9650\uFF08${n} \u4EF6\uFF09\u3092\u8D85\u3048\u307E\u3057\u305F\u3002WHERE \u53E5\u3067\u7D5E\u308A\u8FBC\u3080\u304B\u3001maxRecords \u3092\u5F15\u304D\u4E0A\u3052\u3066\u304F\u3060\u3055\u3044\u3002`);let i=new Set(r),o=new Map;for(let a of Gn(r,100)){let s=await t.getRecords({app:e.appId,query:`$id in (${a.join(",")}) limit 500`,fields:[...new Set(e.fields)]});for(let l of s.records){let d=l.$id?.value,p=Number(d);if(!Number.isSafeInteger(p)||p<=0)throw new Error(`InternalError: invalid $id in UPSERT validation snapshot: ${String(d)}.`);if(!i.has(p))throw new Error(`InternalError: unexpected $id in UPSERT validation snapshot: ${p}.`);if(o.has(p))throw new Error(`InternalError: duplicate $id in UPSERT validation snapshot: ${p}.`);o.set(p,l)}}for(let a of r)if(!o.has(a))throw new Error(`InternalError: update-mode snapshot is missing for record ${a}.`);return o}function Cf(e,t){if(e.from)return[];let n=new Set;for(let r of ql(e)){if(r.tableAlias!==null&&r.tableAlias.toLowerCase()!==`app${e.appId}`.toLowerCase())throw fe(`CHECK \u306E\u4FEE\u98FE\u5B50 ${r.tableAlias} \u306F\u66F4\u65B0\u5148 APP${e.appId} \u3067\u306F\u3042\u308A\u307E\u305B\u3093`);if(r.field!=="$id"&&!t.has(r.field))throw fe(`CHECK \u306E\u30BF\u30FC\u30B2\u30C3\u30C8\u30D5\u30A3\u30FC\u30EB\u30C9 ${r.field} \u306F\u5B58\u5728\u3057\u307E\u305B\u3093`);n.add(r.field)}return[...n]}function oA(e,t){if(!e)return{};let n=dt(e,null);return Object.fromEntries([...Object.entries(n),...Object.entries(n).map(([r,i])=>[`APP${t}.${r}`,i])])}function Tl(e,t){return new Map([...e,...[...e].map(([n,r])=>[`APP${t}.${n}`,r]),["$id","RECORD_NUMBER"],[`APP${t}.$id`,"RECORD_NUMBER"]])}async function aA(e,t,n,r,i,o,a){let s=await Yf(e,t,n,i,o);an(e,s.evaluationTypes);let l=await Of(e,t,n,r,i,o,a),d=await Ae(e.appId,n,i),p=Ja(e,l,d).flatMap(f=>f.records),c=new Map(l.map(f=>[Number(f.target.$id?.value),f])),u=a?Ko(l.map(f=>f.target)):new Map;return p.sort((f,E)=>f.id-E.id).map((f,E)=>({rowNumber:E+1,operation:"UPDATE",mode:"update",payload:new Map([["$id",String(f.id)],...e.assignments.map(R=>[R.field,f.record[R.field]?.value??""])]),preErrors:[],record:f.record,targetId:f.id,validationSnapshot:u.get(f.id),evaluationRow:oS(c.get(f.id),e.appId,t.alias),evaluationFieldTypes:s.evaluationTypes}))}var sA=Tf,lA=new Set(["CHECK_BOX","MULTI_SELECT","USER_SELECT","ORGANIZATION_SELECT","GROUP_SELECT","FILE"]);async function Of(e,t,n,r,i,o,a){let s=await uA(e,t,n,i),l=await Yf(e,t,n,i,o),d=[...new Set(e.assignments.filter(w=>w.value.type==="SOURCE_FIELD").map(w=>w.value.type==="SOURCE_FIELD"?w.value.field:"").concat(l.sourceFields))],p=[...new Set([t.joinKeyField,...d])],c=await cA(t,p,d,n,r,i,o),u=new Map,f=new Map;for(let w of c){if(!Object.prototype.hasOwnProperty.call(w,t.joinKeyField))throw new Error(`ArgumentError: UPDATE ... FROM source column ${t.joinKeyField} does not exist.`);let I=Gd(w[t.joinKeyField],s,"source");if(u.has(I))throw new Error(`ArgumentError: UPDATE ... FROM source has multiple rows for normalized key ${I}.`);u.set(I,w),f.set(I,String(w[t.joinKeyField]).trim())}if(u.size===0)return[];let E=r.maxRecords??1e4,R=[...new Set([...CA(e),...l.targetFields,...a??[]])],m=t.targetFilter===null?"":fr({...e,from:null,where:t.targetFilter,checkGroups:void 0}).query,g=[],y=new Set,h=0;for(let w of Gn([...f.values()],sA)){let I=`${t.targetJoinField} in (${w.map(jo).join(",")})`,L=m?`(${I}) and (${m})`:I,b=await Ge(n.getRecords,e.appId,L,R,{maxRecords:E,parallel:r.fetchParallel??1,onLimit:"error"});if(h+=b.records.length,h>E)throw new Pe(`\u53D6\u5F97\u4EF6\u6570\u304C\u4E0A\u9650\uFF08${E} \u4EF6\uFF09\u3092\u8D85\u3048\u307E\u3057\u305F\u3002WHERE \u53E5\u3067\u7D5E\u308A\u8FBC\u3080\u304B\u3001maxRecords \u3092\u5F15\u304D\u4E0A\u3052\u3066\u304F\u3060\u3055\u3044\u3002`);for(let v of b.records){let P=v.$id?.value;if(typeof P!="string"||P==="")throw new Error("ArgumentError: UPDATE ... FROM target record does not contain a valid $id.");y.has(P)||(y.add(P),g.push(v))}}let S=[];for(let w of g){let I=w[t.targetJoinField]?.value,L=Gd(I,s,"target");if(L===null)continue;let b=u.get(L);b!==void 0&&S.push({target:w,source:b})}return S}async function uA(e,t,n,r){if(t.targetJoinField==="$id")return"id";let i=(await ee(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 cA(e,t,n,r,i,o,a){if(e.cteName!==null){let p=a?.get(e.cteName);if(!p)throw new Error(`ArgumentError: temp table ${e.cteName} is not available.`);for(let c of t)if(!p.columns.includes(c))throw new Error(`ArgumentError: UPDATE ... FROM source column ${c} does not exist.`);return p.rows}let s=await Ae(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 p of n){if(p!=="$id"&&!s.has(p))throw new Error(`ArgumentError: UPDATE ... FROM source column ${p} does not exist.`);let c=p==="$id"?"RECORD_NUMBER":s.get(p);if(lA.has(c??""))throw new Error(`ArgumentError: UPDATE ... FROM does not support source field type ${c} (${p}).`)}return(await Ge(r.getRecords,e.appId,"",t,{maxRecords:i.maxRecords??1e4,parallel:i.fetchParallel??1,onLimit:"error"})).records.map(p=>dt(p,null))}function Gd(e,t,n){if(typeof e!="string")throw new Error(`ArgumentError: UPDATE ... FROM ${n} key must be a scalar string: ${String(e)}`);if(t==="string"){if(e===""){if(n==="target")return null;throw new Error("ArgumentError: UPDATE ... FROM source key must not be empty.")}return e}if(t==="number"&&n==="target"&&e==="")return null;if(t==="id"){let i=e.trim(),o=Number(i);if(i===""||!Number.isSafeInteger(o)||o<=0)throw new Error(`ArgumentError: UPDATE ... FROM ${n} key must be a positive safe integer: ${e}`);return String(o)}let r=Le(e);if(r===null)throw new Error(`ArgumentError: UPDATE ... FROM ${n} key must be a finite decimal: ${e}`);return JSON.stringify(r)}async function oi(e,t,n,r,i){let o=await zl(e,t,n,r,i,1,!1,!1);if(o.result.errors.length>0){let c=o.result.errors[0];throw new Error(`DmlValidationError: ${c.$err_code} ${c.$err_message} (row=${c.$err_row}, field=${c.$err_field})`)}let a=o.candidates,s=e.type.startsWith("INSERT")?"INSERT":"UPDATE";if(n.confirm&&a.length>0&&!await n.confirm(a.length,s))throw new le(s,a.length);if(e.type==="INSERT"||e.type==="INSERT_SELECT"){let c=[];for(let u=0;u<a.length;u+=100){let f=await t.postRecords({app:e.appId,records:a.slice(u,u+100).map(E=>E.record)});c.push(f.ids)}return{type:"INSERT",createdIds:c,insertedCount:c.flat().length}}if(e.type==="UPDATE"){let c=a.map(u=>({id:u.targetId,record:u.record}));for(let u=0;u<c.length;u+=100)await t.putRecords({app:e.appId,records:c.slice(u,u+100)});return{type:"UPDATE",updatedCount:c.length}}let l=a.filter(c=>c.mode==="create"),d=a.filter(c=>c.mode==="update").map(c=>({id:c.targetId,record:c.record})),p=0;for(let c=0;c<l.length;c+=100){let u=await t.postRecords({app:e.appId,records:l.slice(c,c+100).map(f=>f.record)});p+=u.ids.length}for(let c=0;c<d.length;c+=100)await t.putRecords({app:e.appId,records:d.slice(c,c+100)});return{type:"UPSERT",insertedCount:p,updatedCount:d.length}}async function pA(e,t,n,r){if(e.applyBlocks?.length)return Jh(e,t,n,r);if(e.checkGroups?.length)return oi(e,t,n,r);if(e.subtableCode)return _A(e,t,n,r);let i=await je(e.appId,e.fields,t,r),o=await yt(e.appId,e.fields,i,t,r),a=await Ae(e.appId,t,r),s=Yi(e,a);on(s.flatMap(d=>d.records),e.fields,i,o);let l=[];for(let d of s){let p=await t.postRecords(d);l.push(p.ids)}return{type:"INSERT",createdIds:l,insertedCount:l.flat().length}}function dA(){return{type:"SELECT",distinct:!1,columns:[],from:{appId:0,alias:null,cteName:ze},joins:[],where:null,groupBy:[],having:null,orderMode:"CANONICAL",orderBy:[],limit:null,offset:null}}async function Lf(e,t,n,r,i){if(!n.enableImport)throw new Error("UnsupportedError: IMPORT capability is disabled.");let o=md(e.source.sourceName,n.importSource);if(e.targets?.some(c=>c.kind==="SUBTABLE")){if(!e.validateOnly&&!n.supportsImportConfirmDetail)throw new Error("UnsupportedError: IMPORT subtable mutation requires a surface that displays parent/table replacement and deletion detail; use VALIDATE ONLY/EXPLAIN.");if(e.source.kind==="CSV"){if(e.writeMode!=="UPDATE_RECORD_NUMBER"||!e.recordNumberSourceHeader)throw new Error("ArgumentError: CSV subtable replacement requires IMPORT UPDATE and MATCH RECORD NUMBER SOURCE.");if(!e.replaceSubtables?.length)throw new Error("ArgumentError: CSV subtable replacement requires REPLACE SUBTABLES (...).");let U=new Set(e.targets.filter(k=>k.kind==="SUBTABLE").map(k=>k.subtableCode));if(e.replaceSubtables.some(k=>!U.has(k)))throw new Error("ArgumentError: REPLACE SUBTABLES contains a table not declared in INTO.");for(let k of e.targets.filter($=>$.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 c=e.targets,u=await ee(e.appId,t,r),f=c.flatMap(U=>U.kind==="FIELD"?[U.field]:U.children),E=u.some(U=>f.includes(U.code)&&U.fieldType==="NUMBER")?await ot(e.appId,t,r):void 0,R=await _o(o,new Map),m=e.source.kind==="JSON"?Sd(e.source,R,c,n.maxRecords??1e4):Td(e.source,R,c,e.replaceSubtables??[],n.maxRecords??1e4,e.recordNumberSourceHeader),g=e.source.kind==="CSV"?"UPDATE":e.keyFields?"UPSERT":"INSERT",y=Pd(m,c,u,E,g);if(e.source.kind==="CSV")return fA(e,m,y,u,t,n,i);qs(y,e.rejectLimit);let h=[...new Set(c.flatMap(U=>U.kind==="FIELD"?[U.field]:U.children))],S=Xs(y.errors,h),w=[...h,...Js],I=y.invalidParentRows.size,L={preflight:"ACTUAL_DATA",parents:{total:y.parents.length,valid:y.parents.length-I,invalid:I,mutationCandidates:y.parents.filter(U=>U.valid).length},tables:Object.fromEntries(y.tableCounts),writesKintone:!1},b={type:"VALIDATION",operation:g,validatedRows:y.parents.length,validRows:y.parents.length-I,invalidRows:I,errorCount:S.length,columns:w,errors:S,importDetail:L,...e.validationErrorTable?{errTable:e.validationErrorTable}:{}};if(e.validationErrorTable&&i&&rt(i,e.validationErrorTable,w,S,n.tempTableMaxRows??Fe,new Map),e.validateOnly)return b;if(Cd(m),y.errors.length>0&&!e.onErrorSkip){let U=y.errors[0];throw new Error(`DmlValidationError: ${U.code} ${U.message} (row=${U.parentRow}, field=${U.field})`)}if(e.onErrorSkip){if(!i||!e.errorTable)throw new Error("ArgumentError: ON ERROR SKIP requires a batch and INTO error table.");rt(i,e.errorTable,w,S,n.tempTableMaxRows??Fe,new Map)}let v=y.parents.filter(U=>U.valid),P=new Map(u.map(U=>[U.code,U.fieldType])),D=v.map(()=>{});if(e.keyFields){for(let V of e.keyFields)if(!e.fields.includes(V))throw new Error(`ON DUPLICATE \u306E\u30AD\u30FC\u300C${V}\u300D\u304C UPSERT \u30D5\u30A3\u30FC\u30EB\u30C9\u306B\u542B\u307E\u308C\u3066\u3044\u307E\u305B\u3093`);let U=e.keyFields.map(V=>P.get(V)==="NUMBER"),k=new Set,$=v.map(V=>e.keyFields.map(Te=>String(V.top[Te]?.value??"")));for(let V of $){let Te=rn(V,U);if(k.has(Te))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(Te)}let be=await ii(e.appId,e.keyFields,$,t,n,P);$.forEach((V,Te)=>{D[Te]=ri(be,V)})}let M=c.filter(U=>U.kind==="SUBTABLE").map(U=>U.subtableCode),N=new Map,_=D.filter(U=>U!==void 0);for(let U of Gn([...new Set(_)],100)){let k=await t.getRecords({app:e.appId,query:`$id in (${U.join(",")}) limit 500`,fields:["$id","$revision",...M]});for(let $ of k.records){let be=Number($.$id?.value),V=Number($.$revision?.value);Number.isFinite(be)&&N.set(be,{id:be,...Number.isFinite(V)?{revision:V}:{},record:$})}}let A=Od(v,D,N),C={kind:"IMPORT_JSON_SUBTABLE",rowIdPolicy:"DROP_AND_RENUMBER_ALL",parentsToWrite:A.length,insertedParents:A.filter(U=>U.mode==="INSERT").length,updatedParents:A.filter(U=>U.mode==="UPDATE").length,hasDeletes:A.some(U=>U.tables.some(k=>k.deleteRows>0)),parents:A.map(U=>({parentRow:U.parentRow,mode:U.mode,...U.targetId===void 0?{}:{targetId:U.targetId},tables:U.tables}))};if(A.length>0){if(!n.confirm)throw new Error("UnsupportedError: JSON IMPORT subtable mutation requires explicit confirmation detail approval.");if(!await n.confirm(A.length,e.keyFields?"UPDATE":"INSERT",{statementIndex:0,statementCount:1,statementType:"IMPORT",targetAppId:e.appId,importDetail:C}))throw new le(e.keyFields?"UPDATE":"INSERT",A.length)}let x=U=>new Map(Object.entries(U).map(([k,$])=>[k,$.value])),O=U=>Nd(x(U.top),new Map([...U.subtables].map(([k,$])=>[k,$.map(be=>({values:x(be)}))]))),F=A.filter(U=>U.mode==="INSERT"),j=A.filter(U=>U.mode==="UPDATE"),q=[];for(let U=0;U<F.length;U+=100){let k=await t.postRecords({app:e.appId,records:F.slice(U,U+100).map(O)});q.push(k.ids)}for(let U=0;U<j.length;U+=100)await t.putRecords({app:e.appId,records:j.slice(U,U+100).map(k=>({id:k.targetId,...k.revision===void 0?{}:{revision:k.revision},record:O(k)}))});return e.keyFields?{type:"UPSERT",insertedCount:q.flat().length,updatedCount:j.length,affectedRows:A.length,skippedRows:y.invalidParentRows.size,rejectLimit:e.rejectLimit,...e.errorTable?{errTable:e.errorTable}:{},importDetail:C}:{type:"INSERT",createdIds:q,insertedCount:q.flat().length,affectedRows:A.length,skippedRows:y.invalidParentRows.size,rejectLimit:e.rejectLimit,...e.errorTable?{errTable:e.errorTable}:{},importDetail:C}}if(e.writeMode==="UPDATE_RECORD_NUMBER")return EA(e,o,t,n,r,i);let a={appId:e.appId,fields:e.fields,select:dA(),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};Xo.set(s,l);let d=c=>(l.audit&&Object.assign(c,{importAudit:l.audit}),c);if(s.validateOnly){if(s.validationErrorTable&&!i)throw new Error("ArgumentError: VALIDATE ONLY INTO requires a batch.");let c=await jl(s,t,{...n,onLimitReached:"error"},r,i,1);return s.validationErrorTable&&i&&rt(i,s.validationErrorTable,c.columns,c.errors,n.tempTableMaxRows??Fe,sn.get(c)??new Map),d(c)}if(s.onErrorSkip){if(!i)throw new Error("ArgumentError: ON ERROR SKIP requires a batch.");let c=await(s.type==="UPSERT_SELECT",Sl(s,t,n,r,i,1));return d(c)}let p=await(s.type==="UPSERT_SELECT"?eu(s,t,n,r,i):Xl(s,t,n,r,i));return d(p)}async function fA(e,t,n,r,i,o,a){if(!e.recordNumberSourceHeader||!e.replaceSubtables?.length)throw new Error("InternalError: incomplete CSV subtable replacement AST.");Ld(t.records);let s=t.records.map(N=>N.recordNumberSourceValue??""),l=el(s,e.recordNumberSourceHeader),d=[...e.replaceSubtables],p=[...new Set(r.filter(N=>!N.inSubtable&&N.fieldType==="SUBTABLE").map(N=>N.code))],c=await Ie(i.getRecords,e.appId,"",["$id","$revision",...p],{maxRecords:o.maxRecords??1e4,parallel:o.fetchParallel??1,onLimit:"error"}),u=new Map,f=new Map;for(let N of c){let _=Number(N.$id?.value),A=Number(N.$revision?.value);if(Number.isFinite(_)){u.set(_,{id:_,...Number.isFinite(A)?{revision:A}:{},record:N});for(let C of p){let x=N[C]?.value;if(Array.isArray(x)){for(let O of x)if(O.id){let F=f.get(O.id)??[];F.push({parentId:_,table:C}),f.set(O.id,F)}}}}}let E=l.normalized.map(N=>N===null?void 0:Number(N)),R=n.parents.map((N,_)=>{let A=[...N.errors];for(let x of l.errors[_])A.push({operation:"UPDATE",parentRow:N.parentRow,field:x.field,code:x.code,message:x.message,sourceValues:t.records[_].top});let C=E[_];return C!==void 0&&!u.has(C)&&A.push({operation:"UPDATE",parentRow:N.parentRow,field:e.recordNumberSourceHeader,code:"ERR_RECORD_NUMBER_NOT_FOUND",message:`record number ${C} does not exist in APP${e.appId}`,sourceValues:t.records[_].top}),{...N,valid:A.length===0,errors:A}}),m=_d(t.records,R,E,u,f),g=m.flatMap(N=>[...N.errors]),y=new Set(m.filter(N=>!N.valid).map(N=>N.parentRow)),h={...n,parents:R,errors:g,invalidParentRows:y};qs(h,e.rejectLimit);let S=m.filter(N=>N.valid),w=m.flatMap(N=>N.tables),I=(N,_)=>w.filter(A=>A.table===N).reduce((A,C)=>A+Number(C[_]),0),L=Object.fromEntries(d.map(N=>[N,{existingRows:I(N,"existingRows"),inputRows:I(N,"inputRows"),updateRows:I(N,"updateRows"),addRows:I(N,"addRows"),deleteRows:I(N,"deleteRows"),rowIdNotFound:I(N,"rowIdNotFound")}])),b={kind:"IMPORT_CSV_SUBTABLE_REPLACE",rowIdPolicy:"PRESERVE_EXISTING",parentsToWrite:S.length,insertedParents:0,updatedParents:S.length,hasDeletes:S.some(N=>N.tables.some(_=>_.deleteRows>0)),totalDeleteRows:S.flatMap(N=>N.tables).reduce((N,_)=>N+_.deleteRows,0),rowIdNotFound:S.flatMap(N=>N.tables).reduce((N,_)=>N+_.rowIdNotFound,0),invalidParents:y.size,parents:S.map(N=>({parentRow:N.parentRow,mode:"UPDATE",targetId:N.targetId,tables:N.tables}))},v=[...new Set(e.targets.flatMap(N=>N.kind==="FIELD"?[N.field]:N.children))],P=Xs(g,v),D=[...v,...Js];if(e.validateOnly){if(e.validationErrorTable&&!a)throw new Error("ArgumentError: VALIDATE ONLY INTO requires a batch.");return e.validationErrorTable&&a&&rt(a,e.validationErrorTable,D,P,o.tempTableMaxRows??Fe,new Map),{type:"VALIDATION",operation:"UPDATE",validatedRows:R.length,validRows:R.length-y.size,invalidRows:y.size,errorCount:P.length,columns:D,errors:P,...e.validationErrorTable?{errTable:e.validationErrorTable}:{},importDetail:{preflight:"ACTUAL_DATA",parents:{total:R.length,valid:S.length,invalid:y.size,mutationCandidates:S.length},tables:L,rowIdPolicy:"PRESERVE_EXISTING",rowIdNotFound:b.rowIdNotFound,writesKintone:!1}}}if(g.length&&!e.onErrorSkip){let N=g[0];throw new Error(`DmlValidationError: ${N.code} ${N.message} (row=${N.parentRow}, field=${N.field})`)}if(e.onErrorSkip){if(!a||!e.errorTable)throw new Error("ArgumentError: ON ERROR SKIP requires a batch and INTO error table.");rt(a,e.errorTable,D,P,o.tempTableMaxRows??Fe,new Map)}if(S.length){if(!o.supportsImportConfirmDetail||!o.confirm)throw new Error("UnsupportedError: CSV subtable replacement requires explicit rendered detail approval.");if(!await o.confirm(S.length,"UPDATE",{statementIndex:0,statementCount:1,statementType:"IMPORT",targetAppId:e.appId,importDetail:b}))throw new le("UPDATE",S.length)}let M=N=>new Map(Object.entries(N).map(([_,A])=>[_,A.value]));for(let N of S){let _=Qs(M(N.top),new Map([...N.subtables].map(([A,C])=>[A,C.map(x=>({...x.rowId?{rowId:x.rowId}:{},values:M(x.record)}))])),"PRESERVE");await i.putRecords({app:e.appId,records:[{id:N.targetId,...N.revision===void 0?{}:{revision:N.revision},record:_}]})}return{type:"UPDATE",updatedCount:S.length,affectedRows:S.length,skippedRows:y.size,rejectLimit:e.rejectLimit,...e.errorTable?{errTable:e.errorTable}:{},importDetail:b}}async function EA(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 je(e.appId,e.fields,n,i),s=await yt(e.appId,e.fields,a,n,i),l=await _o(t,new Map),d=Ys(e.source,l,r.maxRecords??1e4,e.fields,a,e.recordNumberSourceHeader),p=d.recordNumberSourceValues;if(!p)throw new Error("InternalError: record-number source values were not materialized.");let c=el(p,e.recordNumberSourceHeader),u=new Set,f=[...new Set(c.normalized.filter(b=>b!==null))];for(let b=0;b<f.length;b+=100){let v=f.slice(b,b+100),P=await n.getRecords({app:e.appId,query:`$id in (${v.join(",")}) limit 500`,fields:["$id"]});for(let D of P.records){let M=D.$id?.value;typeof M=="string"&&M!==""&&u.add(M.replace(/^0+(?=\d)/,""))}}let E=new Map(a.map(b=>[b.code,b])),R=new Map(e.fields.map(b=>[b,E.get(b)?.fieldType??"SINGLE_LINE_TEXT"])),m=d.rows.map((b,v)=>{let P=c.normalized[v],D=[...d.importRowErrors?.[v]??[],...c.errors[v]];return P!==null&&!u.has(P)&&D.push({field:e.recordNumberSourceHeader,code:"ERR_RECORD_NUMBER_NOT_FOUND",message:`record number ${P} does not exist in APP${e.appId}`}),{rowNumber:v+1,operation:"UPDATE",mode:"update",...P!==null&&u.has(P)?{targetId:Number(P)}:{},payload:new Map([[e.recordNumberSourceHeader,p[v]],...e.fields.map(M=>[M,b[M]??""])]),preErrors:D,record:{},evaluationRow:b,evaluationFieldTypes:R}}),g=[e.recordNumberSourceHeader,...e.fields],y=us(m,"UPDATE",g,e.fields,a,1,s,e.checkGroups??[],!1),h=[...g,...On],S={type:"VALIDATION",operation:"UPDATE",validatedRows:m.length,validRows:m.length-y.invalidRows,invalidRows:y.invalidRows,errorCount:y.errors.length,columns:h,errors:y.errors,...e.validationErrorTable??e.errorTable?{errTable:e.validationErrorTable??e.errorTable}:{}};if(Object.assign(S,{importAudit:d.importAudit}),e.validateOnly){if(e.validationErrorTable&&!o)throw new Error("ArgumentError: VALIDATE ONLY INTO requires a batch.");return e.validationErrorTable&&o&&rt(o,e.validationErrorTable,h,y.errors,r.tempTableMaxRows??Fe,new Map),S}if(!e.onErrorSkip&&y.invalidRows>0){let b=y.errors[0];throw new Error(`DmlValidationError: ${b.$err_code} ${b.$err_message} (row=${b.$err_row}, field=${b.$err_field})`)}if(e.onErrorSkip){if(!o||!e.errorTable)throw new Error("ArgumentError: ON ERROR SKIP requires a batch.");if(rt(o,e.errorTable,h,y.errors,r.tempTableMaxRows??Fe,new Map),e.rejectLimit!=null&&y.invalidRows>e.rejectLimit)throw new Xr(`rejected rows (${y.invalidRows}) exceed REJECT LIMIT (${e.rejectLimit}).`,S)}let w=m.filter(b=>!y.invalidRowNumbers.has(b.rowNumber));if(r.confirm&&!await r.confirm(w.length,"UPDATE"))throw new le("UPDATE",w.length);let I=w.map(b=>({id:b.targetId,record:b.record}));for(let b=0;b<I.length;b+=100)await n.putRecords({app:e.appId,records:I.slice(b,b+100)});let L={type:"UPDATE",updatedCount:I.length,...e.onErrorSkip?{affectedRows:I.length,skippedRows:y.invalidRows,rejectLimit:e.rejectLimit??null,errTable:e.errorTable}:{}};return Object.assign(L,{insertedCount:0,importAudit:d.importAudit}),L}async function RA(e,t,n,r,i,o){let a=Xo.get(e);if(!a){let R=i&&i.size>0?await mt(e.select,t,n,i,r,!0):await vt(e.select,t,n,r,void 0,!0);return{rows:R.rows,columns:R.columns,columnMeta:Ee.get(R)}}let s=await _o(a.handle,a.cache),l=n.maxRecords??1e4,d=new Map((o??[]).map(R=>[R.code,R])),p=e.fields.map(R=>({code:R,fieldType:d.get(R)?.fieldType??"SINGLE_LINE_TEXT"})),c=a.source.kind==="JSON"?Hs(a.source,s,p,l):Ys(a.source,s,l,e.fields,o);if(a.audit=c.importAudit,a.source.kind==="JSON"||!a.source.projection)return c;let u=Dd(a.source.projection),f=new Map(i??[]);f.set(Zs,c);let E=await mt(u,t,{...n,onLimitReached:"error"},f,r,!0);return{rows:E.rows,columns:E.columns,columnMeta:Ee.get(E)}}var Jl={materialize:RA};function _f(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 Xl(e,t,n,r,i){if(e.checkGroups?.length)return oi(e,t,n,r,i);let o=await je(e.appId,e.fields,t,r),a=await yt(e.appId,e.fields,o,t,r),s=await Jl.materialize(e,t,n,r,i,o),{rows:l,columns:d}=s;if(_f(s),d.length!==e.fields.length){let f=d.length===0&&l.length===0?"\u3002\u7D50\u679C\u304C 0 \u884C\u306E\u305F\u3081\u5217\u3092\u7279\u5B9A\u3067\u304D\u307E\u305B\u3093\u3067\u3057\u305F\uFF08SELECT * \u3092\u7A7A\u30BD\u30FC\u30B9\u306B\u4F7F\u3046\u3068\u5217\u3092\u6C7A\u5B9A\u3067\u304D\u307E\u305B\u3093\u3002\u660E\u793A\u5217\u3067\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044\uFF09":"";throw new Error(`SELECT \u306E\u5217\u6570\uFF08${d.length}\uFF09\u3068 INSERT \u306E\u30D5\u30A3\u30FC\u30EB\u30C9\u6570\uFF08${e.fields.length}\uFF09\u304C\u4E00\u81F4\u3057\u307E\u305B\u3093${f}`)}if(n.confirm&&!await n.confirm(l.length,"INSERT"))throw new le("INSERT",l.length);let p=await Ae(e.appId,t,r),c=l.map((f,E)=>{let R={};return e.fields.forEach((m,g)=>{if(s.importPresence&&!s.importPresence[E]?.has(m))return;let y=f[d[g]]??"";R[m]={value:Pf(y,p.get(m))}}),R});c.forEach(f=>on([f],e.fields.filter(E=>E in f),o,a));let u=[];for(let f=0;f<c.length;f+=100){let E=c.slice(f,f+100),R=await t.postRecords({app:e.appId,records:E});u.push(R.ids)}return{type:"INSERT",createdIds:u,insertedCount:u.flat().length}}async function Il(e,t,n,r,i){if(e.applyBlocks?.length)return Df(e,t,n,r);if(e.checkGroups?.length&&Rt(e.where)){let E=await je(e.appId,e.assignments.map(m=>m.field),t,r);await yt(e.appId,e.assignments.map(m=>m.field),E,t,r);let R=await Ae(e.appId,t,r);return Cf(e,R),an(e,Tl(R,e.appId)),await xn(e,t,r),{type:"UPDATE",updatedCount:0}}if(e.checkGroups?.length)return oi(e,t,n,r,i);if(e.subtableCode)return await xn(e,t,r),DA(e,t,n,r);let o=await je(e.appId,e.assignments.map(E=>E.field),t,r),a=e.assignments.map(E=>E.field),s=await yt(e.appId,a,o,t,r);if(await xn(e,t,r),Rt(e.where))return{type:"UPDATE",updatedCount:0};if(e.from!=null)return NA(e,e.from,t,n,r,i);let l=n.maxRecords??1e4;await xf(e.assignments,t,n,r);let d=await Ae(e.appId,t,r);if(ji(e)){let E=Ya(e),m=(await Ge(t.getRecords,E.app,E.query,[...E.fields],{maxRecords:l,parallel:n.fetchParallel??1})).records,g=za(e,m,d);if(on(g.flatMap(y=>y.records.map(h=>h.record)),a,o,s),n.confirm&&!await n.confirm(m.length,"UPDATE"))throw new le("UPDATE",m.length);for(let y of g)await t.putRecords(y);return{type:"UPDATE",updatedCount:m.length}}let p=fr(e),u=(await lo(t.getRecords,p.app,p.query,{maxRecords:l,parallel:n.fetchParallel??1})).ids,f=Er(e,u,d);if(on(f.flatMap(E=>E.records.map(R=>R.record)),a,o,s),n.confirm&&!await n.confirm(u.length,"UPDATE"))throw new le("UPDATE",u.length);for(let E of f)await t.putRecords(E);return{type:"UPDATE",updatedCount:u.length}}async function Df(e,t,n,r,i=1){if(!e.validateOnly&&n.allowApplyMutation!==!0)throw new Error("UnsupportedError: APPLY mutation requires allowApplyMutation=true");if(!st(e.where))return mA(e,t,n,r,i);let o=await ee(e.appId,t,r),a=pt(e,o),s=qi(e,o),l=ns(e),d=await t.getRecords({app:e.appId,query:`$id = ${l} limit 2`,fields:[...s]});if(d.records.length===0)throw new Error(`ArgumentError: APPLY parent $id ${l} does not exist.`);if(d.records.length!==1)throw new Error(`ArgumentError: APPLY parent $id ${l} returned multiple records.`);let p=Number(d.records[0].$id?.value);if(p!==l)throw new Error(`ArgumentError: APPLY snapshot $id ${p} does not match requested $id ${l}.`);Zi(d.records[0]);let c=ep({statement:e,snapshot:d.records[0],fieldInfos:o,metadata:a}),u=Je(o,e.assignments.map(w=>w.field)),f=Ht(c.postImage,u)?await ot(e.appId,t,r):void 0,E=Yt(c.postImage,u,f,i);if(!e.validateOnly&&E.errorCount>0)throw new Error(`ArgumentError: APPLY post-image validation failed: ${JSON.stringify({columns:E.columns,errors:E.errors})}`);let R=xe(n.dmlMaxRows,"dmlMaxRows",gt),m=xe(n.dmlMaxSubtableRows,"dmlMaxSubtableRows",Se),g=c.parentRows>R||c.changedSubtableRows>m;if(e.validateOnly){let w=wr({plans:[c],records:gr(c).records,validations:[],guards:{revisionRequired:!0,parentRows:c.parentRows,dmlMaxRows:R,subtableRows:c.changedSubtableRows,dmlMaxSubtableRows:m,wouldExceed:g}}),I={type:"VALIDATION",operation:"UPDATE",validatedRows:1,validRows:E.invalidRows===0?1:0,invalidRows:E.invalidRows===0?0:1,errorCount:E.errorCount,columns:[...E.columns],errors:E.errors,...e.validationErrorTable?{errTable:e.validationErrorTable}:{},apply:Qr(w.branches[0]),guards:Zr(w.branches[0]),deletedRows:{total:c.tables.reduce((L,b)=>L+b.deletedRows,0),parentRows:c.tables.some(L=>L.deletedRows>0)?1:0},diagnostic:w};return sn.set(I,ia(E.columns,o,e.appId)),I}if(c.parentRows>R)throw new Error(`ArgumentError: APPLY parent rows (${c.parentRows}) exceed dmlMaxRows (${R}).`);if(c.changedSubtableRows>m)throw new Error(`ArgumentError: APPLY changed subtable rows (${c.changedSubtableRows}) exceed dmlMaxSubtableRows (${m}).`);let y=Xi(c,E.normalizedRecord),h=gr(y),S=wr({plans:[y],records:h.records,validations:[],guards:{revisionRequired:!0,parentRows:c.parentRows,dmlMaxRows:R,subtableRows:c.changedSubtableRows,dmlMaxSubtableRows:m,wouldExceed:g}});if(n.confirm){let w=ra(S,!1);if(!await n.confirm(c.parentRows,"UPDATE",{statementIndex:0,statementCount:1,statementType:"UPDATE",targetAppId:e.appId,applyDetail:w,applyDiagnostic:S}))throw new le("UPDATE",c.parentRows)}return await t.putRecords(h),{type:"UPDATE",updatedCount:c.parentRows,diagnostic:Ue(S,{successfulChunks:1,successfulParents:c.parentRows})}}async function mA(e,t,n,r,i){let o=xe(n.dmlMaxRows,"dmlMaxRows",gt),a=xe(n.dmlMaxSubtableRows,"dmlMaxSubtableRows",Se),s=await ee(e.appId,t,r),l=pt(e,s),d;if(zo(e))d=await AA(e,t,n,s,r);else{let f=qi(e,s),E=fr(e).query,R=o+1;d=await Ie(t.getRecords,e.appId,E,[...f],{pageSize:Math.min(500,R),parallel:n.fetchParallel??1,maxRecords:R,stopAfter:R,onLimit:"error"})}if(!e.validateOnly&&d.length>o)throw new Error(`ArgumentError: APPLY parent rows (${d.length}) exceed dmlMaxRows (${o}).`);let p=await ro({statement:e,snapshots:d,fieldInfos:s,metadata:l,dmlMaxRows:o,dmlMaxSubtableRows:a,statementNumber:i,loadNumberPrecision:()=>ot(e.appId,t,r)});if(e.validateOnly)return bA(e,p,s);ku("phase15b",e);let c=wr(p);if(n.confirm){let f=ra(c);if(!await n.confirm(p.guards.parentRows,"UPDATE",{statementIndex:0,statementCount:1,statementType:"UPDATE",targetAppId:e.appId,applyDetail:f,applyDiagnostic:c}))throw new le("UPDATE",p.guards.parentRows)}let u=await Ap(p,t,c);return{...u,diagnostic:Ue(c,u)}}function zo(e){return(e.applyBlocks?.length??0)>0&&!st(e.where)&&(At(e.where)||pe(e.where))}function yA(e){let t=e.type==="EXPLAIN"?e.query:e;return t.type==="UPDATE"&&zo(t)&&pe(t.where)}var gA=`APPLY \u8907\u6570\u89AA UPDATE \u306E\u89AA WHERE \u306B\u3001\u5B89\u5168\u306B\u62BC\u3057\u4E0B\u3052\u3089\u308C\u306A\u3044 KLIKE / NOT KLIKE \u304C\u3042\u308A\u307E\u3059\u3002
|
|
10
10
|
OR / NOT \u914D\u4E0B\u306A\u3069 native query \u3078\u5B8C\u5168\u306B\u9069\u7528\u3067\u304D\u306A\u3044 KLIKE \u306F\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093\u3002
|
|
11
|
-
WHERE \u3092 AND \u306E\u5B89\u5168\u306A KLIKE \u6761\u4EF6\u3078\u66F8\u304D\u63DB\u3048\u308B\u304B\u3001SELECT \u3067\u78BA\u8A8D\u3057\u305F $id IN (...) \u3092\u4F7F\u7528\u3057\u3066\u304F\u3060\u3055\u3044\u3002`;function uA(e){if(e.unappliedKlikes.length>0)throw new Error(`UnsupportedError: ${lA}`)}async function cA(e,t,n,r,i){let o=r.filter(E=>!E.inSubtable),a=new Map(o.map(E=>[E.code,E])),s=new Map(o.map(E=>[E.code,E.fieldType])),l=new Map(o.flatMap(E=>E.optionOrder?[[E.code,new Set(Object.keys(E.optionOrder))]]:[])),d=Is(e.where,{fieldTypes:s,fieldOptions:l});uA(d);let p=d.prefilter===null?"":G(d.prefilter),c=new Set(Yi(e,r));for(let E of pA(e.where))c.add(E);let u=await dA(e.appId,e.where,a,t,i);return(await Ie(t.getRecords,e.appId,p,[...c],{maxRecords:n.maxRecords??1e4,parallel:n.fetchParallel??1,onLimit:"error"})).map(E=>({snapshot:E,row:dt(E,null)})).filter(({row:E})=>te(e.where,E,u.fieldTypeResolver,d.appliedKlikes,u.fieldSemanticsResolver)).map(({snapshot:E})=>E)}function pA(e){return _l(e)}async function dA(e,t,n,r,i){let s=[...fA(t)].some(p=>n.get(p)?.fieldType==="STATUS")?await Wl(e,r,i):void 0;return{fieldTypeResolver:p=>p.field==="$id"?"NUMBER":n.get(p.field)?.fieldType,fieldSemanticsResolver:p=>{if(p.field==="$id")return Pn(X({fieldType:"__ID__"}),e,"$id");let c=n.get(p.field);if(!c)return;let u=c.semantics??X(c),f=c.fieldType==="STATUS"&&s?{...u,optionOrder:s}:u;return Pn(f,e,c.code)}}}function fA(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 EA(e,t,n){let r=t.validations.flatMap(p=>p.errors),i=t.validations.reduce((p,c)=>p+(c.invalidRows>0?1:0),0),o=t.validations[0]?.columns?[...t.validations[0].columns]:[...Je(n,e.fields).payloadFields,...Sr],a=t.guards.parentRows,s=Rs(t),l=s.branches[0],d={type:"VALIDATION",operation:"INSERT",validatedRows:a,validRows:a-i,invalidRows:i,errorCount:r.length,columns:o,errors:r,...e.validationErrorTable?{errTable:e.validationErrorTable}:{},apply:Qr(l),guards:Zr(l),deletedRows:{total:0,parentRows:0},diagnostic:s};return sn.set(d,ta(o,n,e.appId)),d}function RA(e,t,n){let r=t.validations,i=r.flatMap(d=>d.errors),o=r.reduce((d,p)=>d+(p.invalidRows>0?1:0),0),a=r[0]?.columns?[...r[0].columns]:[...Je(n,e.assignments.map(d=>d.field)).payloadFields,...Sr],s=wr(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:Qr(s.branches[0]),guards:Zr(s.branches[0]),deletedRows:{total:t.plans.reduce((d,p)=>d+p.tables.reduce((c,u)=>c+u.deletedRows,0),0),parentRows:t.plans.filter(d=>d.tables.some(p=>p.deletedRows>0)).length},diagnostic:s};return sn.set(l,ta(a,n,e.appId)),l}function mA(e,t,n){let r=t.create.validations.flatMap(E=>E.errors),i=t.update.validations.flatMap(E=>E.errors),o=[...r,...i].map(E=>({...E,$err_operation:"UPSERT"})),a=new Set(o.map(E=>E.$err_row)).size,s=t.create.validations[0]?.columns??t.update.validations[0]?.columns??[...Je(n,e.fields).payloadFields,...Sr],l=ms(t),d=l.branches.find(E=>E.branch==="insert"),p=l.branches.find(E=>E.branch==="update"),c=Qr(d),u=Qr(p),f={type:"VALIDATION",operation:"UPSERT",validatedRows:t.guards.parentRows,validRows:t.guards.parentRows-a,invalidRows:a,errorCount:o.length,columns:[...s],errors:o,...e.validationErrorTable?{errTable:e.validationErrorTable}:{},apply:[...c,...u],guards:{revisionRequired:t.guards.revisionRequired,parentRows:t.guards.parentRows,dmlMaxRows:t.guards.dmlMaxRows,subtableRows:t.guards.subtableRows,dmlMaxSubtableRows:t.guards.dmlMaxSubtableRows,wouldExceed:t.guards.wouldExceed},applyBranches:{create:{apply:c,guards:Zr(d)},update:{apply:u,guards:Zr(p)}},deletedRows:{total:t.update.plans.reduce((E,R)=>E+R.tables.reduce((h,m)=>h+m.deletedRows,0),0),parentRows:t.update.plans.filter(E=>E.tables.some(R=>R.deletedRows>0)).length},diagnostic:l};return sn.set(f,ta([...s],n,e.appId)),f}function Qr(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:en(t,"REMOVE")}:{field:t.field,operations:n,changedSubtableRows:0,deletedRows:0,multiValue:{fieldType:t.fieldType??"UNKNOWN",addedValues:en(t,"ADD"),removedValues:en(t,"REMOVE_VALUE"),changedValues:t.changedCount??0,postImages:t.postImages??[]}}})}function Zr(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 ht=100,Se=500;function xe(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 ta(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:X({fieldType:"RECORD_NUMBER"})});continue}let s=r.get(a);if(s){o.set(a,nt(s,n));continue}o.set(a,q(i.has(a)?"number":"string"))}return o}async function yA(e,t,n,r,i,o){let a=await If(e,t,n,r,i,o),s=await Ae(e.appId,n,i),l=qa(e,a,s),d=e.assignments.map(u=>u.field),p=await ee(e.appId,n,i),c=await yt(e.appId,d,p,n,i);if(on(l.flatMap(u=>u.records.map(f=>f.record)),d,p,c),r.confirm&&!await r.confirm(a.length,"UPDATE"))throw new le("UPDATE",a.length);for(let u of l)await n.putRecords(u);return{type:"UPDATE",updatedCount:a.length}}function hA(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 gA(e,t,n,r){if(await xn(e,t,r),Rt(e.where))return{type:"DELETE",deletedCount:0};if(e.subtableCode)return IA(e,t,n,r);let i=Bc(e),a=(await oo(t.getRecords,i.app,i.query,{maxRecords:n.maxRecords??1e4,parallel:n.fetchParallel??1})).ids;if(n.confirm&&!await n.confirm(a.length,"DELETE"))throw new le("DELETE",a.length);let s=$c(e.appId,a);for(let l of s)await t.deleteRecords(l);return{type:"DELETE",deletedCount:a.length}}async function AA(e,t,n,r){if(e.onInsertApplyBlocks?.length||e.onUpdateApplyBlocks?.length)return $g(e,t,n,r);if(e.checkGroups?.length)return oi(e,t,n,r);let i=await je(e.appId,e.fields,t,r),o=await yt(e.appId,e.fields,i,t,r),a=[],s=[],l=await Ae(e.appId,t,r),d=Nf(e),p=await ii(e.appId,e.keyFields,d,t,n,l);if(e.values.forEach((u,f)=>{let E={};e.fields.forEach((h,m)=>{let y=u[m];y.type==="CASE_VALUE"?E[h]={value:Lt(y.expr,{},l.get(h))}:E[h]={value:ct(y,l.get(h))}});let R=ri(p,d[f]);R!==void 0?s.push({id:R,record:E}):a.push(E)}),on([...a,...s.map(u=>u.record)],e.fields,i,o),n.confirm&&a.length+s.length>0){let u=a.length+s.length;if(!await n.confirm(u,"UPDATE"))throw new le("UPDATE",u)}let c=[];for(let u=0;u<a.length;u+=100){let f=await t.postRecords({app:e.appId,records:a.slice(u,u+100)});c.push(f.ids)}for(let u=0;u<s.length;u+=100)await t.putRecords({app:e.appId,records:s.slice(u,u+100)});return{type:"UPSERT",insertedCount:c.flat().length,updatedCount:s.length}}function Nf(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"?H(i):i.type==="CASE_VALUE"?ve(i.expr,{}):i.elements.map(o=>o.value).join(",")}))}async function Jl(e,t,n,r){if(t.length===0)return;let i=await Ae(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 SA(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 Ie(t.getRecords,e.appId,"",[],{maxRecords:n.maxRecords??1e4,parallel:n.fetchParallel??1}),s=na(a),l=new Map;for(let p of e.values){let c=Fd(p[o]);if(!s.get(c))throw new Error(`_pid=${c} \u306E\u89AA\u30EC\u30B3\u30FC\u30C9\u304C\u898B\u3064\u304B\u308A\u307E\u305B\u3093`);let f={value:{}};e.fields.forEach((R,h)=>{if(R!=="_pid"){if(R.startsWith("_"))throw new Error(`\u30B5\u30D6\u30C6\u30FC\u30D6\u30EB INSERT \u3067\u30B7\u30B9\u30C6\u30E0\u5217\u300C${R}\u300D\u306F\u6307\u5B9A\u3067\u304D\u307E\u305B\u3093`);f.value[R]={value:Fd(p[h])}}});let E=l.get(c);E?E.push(f):l.set(c,[f])}let d=[];for(let[p,c]of l.entries()){let u=s.get(p),E=[...ai(u,i),...c];d.push(Cf(e.appId,p,si(u),i,E))}for(let p of d)await t.putRecords(p);return{type:"INSERT",createdIds:[],insertedCount:e.values.length}}async function TA(e,t,n,r){let i=e.subtableCode;if(!Hr(e.where))throw new Error("\u30B5\u30D6\u30C6\u30FC\u30D6\u30EB UPDATE \u306B\u306F _rid \u6761\u4EF6\u304C\u5FC5\u9808\u3067\u3059");let o=[];Et(e.where,o);for(let u of e.assignments)u.value.type==="CASE_VALUE"&&$o(u.value.expr,o);let a=await Jl(e.appId,o,t,r),s=await Ie(t.getRecords,e.appId,"",[],{maxRecords:n.maxRecords??1e4,parallel:n.fetchParallel??1}),d=Xl(s,i).filter(u=>te(e.where,u.flat,a));if(n.confirm&&!await n.confirm(d.length,"UPDATE"))throw new le("UPDATE",d.length);let p=new Map;for(let u of d){if(!u.rowId)throw new Error("\u30B5\u30D6\u30C6\u30FC\u30D6\u30EB UPDATE \u5BFE\u8C61\u306B id \u672A\u63A1\u756A\u306E\u884C\u304C\u542B\u307E\u308C\u3066\u3044\u307E\u3059");let f=p.get(u.parentId);f||(f=new Map,p.set(u.parentId,f));let E={};for(let R of e.assignments){if(R.field.startsWith("_"))throw new Error(`\u30B5\u30D6\u30C6\u30FC\u30D6\u30EB UPDATE \u3067\u30B7\u30B9\u30C6\u30E0\u5217\u300C${R.field}\u300D\u306F\u66F4\u65B0\u3067\u304D\u307E\u305B\u3093`);E[R.field]={value:Hi(R.value,u.flat,a)}}f.set(u.rowId,E)}let c=na(s);for(let[u,f]of p.entries()){let E=c.get(u);if(!E)continue;let h=ai(E,i).map(m=>{let y=m.id??"";if(!y)return m;let g=f.get(y);return g?{id:y,value:g}:{id:y}});await t.putRecords(wA(e.appId,u,si(E),i,h))}return{type:"UPDATE",updatedCount:d.length}}async function IA(e,t,n,r){let i=e.subtableCode;if(!Hr(e.where))throw new Error("\u30B5\u30D6\u30C6\u30FC\u30D6\u30EB DELETE \u306B\u306F _rid \u6761\u4EF6\u304C\u5FC5\u9808\u3067\u3059");let o=[];Et(e.where,o);let a=await Jl(e.appId,o,t,r),s=await Ie(t.getRecords,e.appId,"",[],{maxRecords:n.maxRecords??1e4,parallel:n.fetchParallel??1}),d=Xl(s,i).filter(u=>te(e.where,u.flat,a));if(n.confirm&&!await n.confirm(d.length,"DELETE"))throw new le("DELETE",d.length);let p=new Map;for(let u of d){let f=p.get(u.parentId);f?f.push(u.rowIndex):p.set(u.parentId,[u.rowIndex])}let c=na(s);for(let[u,f]of p.entries()){let E=c.get(u);if(!E)continue;let R=ai(E,i),h=new Set(f),m=R.filter((y,g)=>!h.has(g));await t.putRecords(Cf(e.appId,u,si(E),i,m))}return{type:"DELETE",deletedCount:d.length}}function na(e){let t=new Map;for(let n of e){let r=String(n.$id?.value??"");r&&t.set(r,n)}return t}function Xl(e,t){let n=[];for(let r of e){let i=String(r.$id?.value??""),o=si(r),a=ai(r,t);for(let s=0;s<a.length;s++){let l=a[s],d={...ji(l,s),_pid:i};for(let[p,c]of Object.entries(r))p!==t&&(d[`_p.${p}`]=Tl(c?.value));n.push({parent:r,parentId:i,parentRevision:o,rowIndex:s,rowId:l.id??"",row:l,flat:d})}}return n}function ai(e,t){let n=e[t]?.value;return Array.isArray(n)?n:[]}function si(e){let t=Number(e.$revision?.value??0);return Number.isFinite(t)?t:0}function Cf(e,t,n,r,i){return{app:e,records:[{id:Number(t),revision:n,record:{[r]:{value:i}}}]}}function wA(e,t,n,r,i){return{app:e,records:[{id:Number(t),revision:n,record:{[r]:{value:i}}}]}}function bA(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 Fd(e){return e.type==="STRING"?e.value:e.type==="NUMBER"?H(e):e.type==="CASE_VALUE"?ve(e.expr,{}):e.elements.map(t=>t.value).join(",")}function Tl(e){if(e==null)return"";if(typeof e=="string")return e;if(typeof e=="number"||typeof e=="boolean")return String(e);try{return JSON.stringify(e)}catch{return String(e)}}function Hr(e){switch(e.type){case"BINARY":return e.left.type==="FIELD"&&e.left.tableAlias===null&&e.left.field==="_rid";case"LOGICAL":return Hr(e.left)||Hr(e.right);case"NOT":case"GROUP":return Hr(e.expr);default:return!1}}async function PA(e,t,n,r){let i=[];Et(e.where,i);let o=await Jl(e.appId,i,t,r),a=await ee(e.appId,t,r);if(Rt(e.where))return{type:"REORDER",reorderedParentCount:0};let s=new Map(a.map(f=>[f.code,f.semantics??X(f)])),l=f=>{if(f.field==="_idx"||f.field==="_pid"||f.field==="_rid")return B("number");let E=f.field.startsWith("_p.")?f.field.slice(3):f.field;return s.get(E)??B("string")},d=await Ie(t.getRecords,e.appId,"",[],{maxRecords:n.maxRecords??1e4,parallel:n.fetchParallel??1}),p=Xl(d,e.subtableCode),c=e.all?new Set(d.map(f=>String(f.$id?.value??"")).filter(f=>f!=="")):new Set(p.filter(f=>e.where&&te(e.where,f.flat,o,void 0,l)).map(f=>f.parentId));if(n.confirm&&!await n.confirm(c.size,"UPDATE"))throw new le("UPDATE",c.size);let u=na(d);for(let f of c){let E=u.get(f);if(!E)continue;let h=ai(E,e.subtableCode).map((y,g)=>({row:y,i:g,flat:NA(E,e.subtableCode,y,g)}));h.sort((y,g)=>CA(y.flat,g.flat,e.by,l));let m=h.map(y=>y.row.id??"");await t.putRecords(bA(e.appId,f,si(E),e.subtableCode,m))}return{type:"REORDER",reorderedParentCount:c.size}}function NA(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}`]=Tl(a?.value));for(let[o,a]of Object.entries(n.value??{}))i[o]=Tl(a?.value);return i}function CA(e,t,n,r){for(let i of n){let o=xd(i.key,e),a=xd(i.key,t),s=i.key.type==="FIELD_NAME"?r(Ye(i.key.name)):i.key.type==="ARITH_KEY"?B("number"):i.key.type==="FUNC_KEY"?nn(i.key.expr).semantics??B("string"):B("number"),l=$t(o,a,s??B("string"));if(l!==0)return i.direction==="ASC"?l:-l}return 0}function xd(e,t){switch(e.type){case"FIELD_NAME":return t[e.name]??"";case"ARITH_KEY":return String(ae(e.expr,t));case"FUNC_KEY":return se(e.expr,t);case"GROUPING_KEY":throw new Error("ArgumentError: GROUPING() is not supported in REORDER BY.")}}async function Ql(e,t,n,r,i){if(e.checkGroups?.length)return oi(e,t,n,r,i);let o=await je(e.appId,e.fields,t,r),a=await yt(e.appId,e.fields,o,t,r),s=await ql.materialize(e,t,n,r,i,o),{rows:l,columns:d}=s;if(bf(s),d.length!==e.fields.length){let m=d.length===0&&l.length===0?"\u3002\u7D50\u679C\u304C 0 \u884C\u306E\u305F\u3081\u5217\u3092\u7279\u5B9A\u3067\u304D\u307E\u305B\u3093\u3067\u3057\u305F\uFF08SELECT * \u3092\u7A7A\u30BD\u30FC\u30B9\u306B\u4F7F\u3046\u3068\u5217\u3092\u6C7A\u5B9A\u3067\u304D\u307E\u305B\u3093\u3002\u660E\u793A\u5217\u3067\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044\uFF09":"";throw new Error(`SELECT \u306E\u5217\u6570\uFF08${d.length}\uFF09\u3068 UPSERT \u306E\u30D5\u30A3\u30FC\u30EB\u30C9\u6570\uFF08${e.fields.length}\uFF09\u304C\u4E00\u81F4\u3057\u307E\u305B\u3093${m}`)}for(let m of e.keyFields)if(!e.fields.includes(m))throw new Error(`ON DUPLICATE \u306E\u30AD\u30FC\u300C${m}\u300D\u304C UPSERT \u30D5\u30A3\u30FC\u30EB\u30C9\u306B\u542B\u307E\u308C\u3066\u3044\u307E\u305B\u3093`);let p=[],c=[],u=await Ae(e.appId,t,r),f=l.map((m,y)=>{let g={};return e.fields.forEach((S,P)=>{if(s.importPresence&&!s.importPresence[y]?.has(S))return;let b=m[d[P]]??"";g[S]={value:Af(b,u.get(S))}}),g});f.forEach(m=>on([m],e.fields.filter(y=>y in m),o,a));let E=f.map(m=>e.keyFields.map(y=>String(m[y]?.value??"")));if(qo.has(e)){let m=e.keyFields.map(g=>u.get(g)==="NUMBER"),y=new Set;for(let g of E){let S=rn(g,m);if(y.has(S))throw new Error("ERR_KEY_DUP_SOURCE: UPSERT \u30BD\u30FC\u30B9\u5185\u3067\u30AD\u30FC\u304C\u91CD\u8907\u3057\u3066\u3044\u307E\u3059");y.add(S)}}let R=await ii(e.appId,e.keyFields,E,t,n,u);if(f.forEach((m,y)=>{let g=ri(R,E[y]);g!==void 0?c.push({id:g,record:m}):p.push(m)}),n.confirm&&p.length+c.length>0){let m=p.length+c.length;if(!await n.confirm(m,"UPDATE"))throw new le("UPDATE",m)}let h=[];for(let m=0;m<p.length;m+=100){let y=await t.postRecords({app:e.appId,records:p.slice(m,m+100)});h.push(y.ids)}for(let m=0;m<c.length;m+=100)await t.putRecords({app:e.appId,records:c.slice(m,m+100)});return{type:"UPSERT",insertedCount:h.flat().length,updatedCount:c.length}}async function Of(e){let t=await e.getApps(),n=["\u30A2\u30D7\u30EAID","\u30A2\u30D7\u30EA\u540D","\u8AAC\u660E"],r=t.map(i=>({\u30A2\u30D7\u30EAID:String(i.appId),\u30A2\u30D7\u30EA\u540D:i.name,\u8AAC\u660E:i.description}));return{type:"SELECT",rows:r,columns:n,rowCount:r.length}}async function Lf(e,t,n){let r=await ee(e.appId,t,n),i=["\u30D5\u30A3\u30FC\u30EB\u30C9\u30B3\u30FC\u30C9","\u30E9\u30D9\u30EB","\u30BF\u30A4\u30D7"],o=r.map(a=>({\u30D5\u30A3\u30FC\u30EB\u30C9\u30B3\u30FC\u30C9:a.code,\u30E9\u30D9\u30EB:a.label,\u30BF\u30A4\u30D7:a.fieldType}));return{type:"SELECT",rows:o,columns:i,rowCount:o.length}}function OA(e,t=!1){try{let n=new Pt(e).tokenize(),r=new Nt(n,{import:t}).parse();return mn("phase15b",r),$e(r),r}catch(n){throw n instanceof ye||n instanceof T,n}}async function ei(e,t,n,r,i){let o=[];Fo(e,t,n,r,o,i),await Promise.all(o)}async function _f(e,t,n,r,i){let o=[];for(let a of e.columns)if(a.type==="CASE_COL")for(let s of a.expr.branches)o.push(ei(s.condition,t,n,r,i));await Promise.all(o)}function Yr(e,t,n,r,i){return i!==void 0&&i.size>0?mt(e,t,n,i,r):vt(e,t,n,r)}function Fo(e,t,n,r,i,o){if(e!==null)switch(e.type){case"BINARY":{let a=e.right;a.type==="SUBQUERY_IN_LIST"&&i.push(Yr(a.query,t,n,r,o).then(s=>{let l=a.column??s.columns[0]??"";a.resolved=new Set(s.rows.map(d=>d[l]??""))})),a.type==="SCALAR_SUBQUERY"&&i.push(Yr(a.query,t,n,r,o).then(s=>{if(s.rowCount===0)throw new Error("\u30B9\u30AB\u30E9\u30FC\u30B5\u30D6\u30AF\u30A8\u30EA\u304C\u5024\u3092\u8FD4\u3057\u307E\u305B\u3093\u3067\u3057\u305F");if(s.rowCount>1)throw new Error("\u30B9\u30AB\u30E9\u30FC\u30B5\u30D6\u30AF\u30A8\u30EA\u304C\u8907\u6570\u884C\u3092\u8FD4\u3057\u307E\u3057\u305F\uFF081\u884C\u306E\u307F\u8A31\u53EF\uFF09");let l=s.columns[0]??"";a.resolved=s.rows[0]?.[l]??""}));break}case"LOGICAL":Fo(e.left,t,n,r,i,o),Fo(e.right,t,n,r,i,o);break;case"NOT":case"GROUP":Fo(e.expr,t,n,r,i,o);break;case"EXISTS":{let a=e;i.push(Yr(a.query,t,n,r,o).then(s=>{a.resolved=s.rowCount>0}));break}case"BOOLEAN":break}}async function Df(e,t,n,r){for(let i of e){if(i.value.type!=="SCALAR_SUBQUERY")continue;let o=await vt(i.value.query,t,n,r);if(o.rowCount===0)throw new Error(`SET \u30B5\u30D6\u30AF\u30A8\u30EA\u304C\u5024\u3092\u8FD4\u3057\u307E\u305B\u3093\u3067\u3057\u305F\uFF08\u30D5\u30A3\u30FC\u30EB\u30C9: ${i.field}\uFF09`);if(o.rowCount>1)throw new Error(`SET \u30B5\u30D6\u30AF\u30A8\u30EA\u304C\u8907\u6570\u884C\u3092\u8FD4\u3057\u307E\u3057\u305F\uFF08\u30D5\u30A3\u30FC\u30EB\u30C9: ${i.field}\uFF09`);let a=o.columns[0]??"",s=o.rows[0]?.[a]??"";i.value={type:"STRING",value:s}}}async function vf(e,t,n,r,i){let o=new Map,a=[];for(let d=0;d<e.length;d++){let p=e[d];if(p.type!=="SCALAR_SUBQUERY_COL")continue;let c=JSON.stringify(p.query),u=o.get(c);u||(u=Yr(p.query,t,n,r,i).then(f=>{if(f.rowCount===0)throw new Error("\u30B9\u30AB\u30E9\u30FC\u30B5\u30D6\u30AF\u30A8\u30EA\u304C\u5024\u3092\u8FD4\u3057\u307E\u305B\u3093\u3067\u3057\u305F");if(f.rowCount>1)throw new Error("\u30B9\u30AB\u30E9\u30FC\u30B5\u30D6\u30AF\u30A8\u30EA\u304C\u8907\u6570\u884C\u3092\u8FD4\u3057\u307E\u3057\u305F\uFF081\u884C\u306E\u307F\u8A31\u53EF\uFF09");let E=f.columns[0]??"";return f.rows[0]?.[E]??""}),o.set(c,u)),a.push([d,u])}let s=await Promise.all(a.map(([,d])=>d)),l=new Map;return a.forEach(([d],p)=>l.set(d,s[p])),l}var Uf=new WeakMap,kf=new WeakMap,Mf=new WeakMap;async function Ff(e,t,n,r=1e4,i){let o=new Set,a=new Set,s=new Set,l={...t,getFields:async h=>(o.add(h),t.getFields(h)),getProcessStatuses:async h=>(a.add(h),t.getProcessStatuses(h)),getNumberPrecision:async h=>(s.add(h),t.getNumberPrecision(h))},d=new Map,p=new Map,c=new Map,u=new Set,f=i??await ni(e,l,n),E=h=>f.nodes.find(m=>m.source===h||JSON.stringify(m.source)===JSON.stringify(h)),R=async h=>{if(h===null||typeof h!="object"||u.has(h))return;if(u.add(h),Array.isArray(h)){await Promise.all(h.map(R));return}let m=h;if(m.type==="SELECT"){let y=h;await zo(y,l,n);let g=[y.from,...y.joins.map(w=>w.table)].some(w=>w.cteName!==null);if(ne(y).type==="PLAIN"&&!g){let w=await vl(y,l,n);w&&c.set(y,w)}let S=[y.from,...y.joins.map(w=>w.table)].filter(w=>w.cteName===null).map(w=>w.appId);(Ze(y.where)||y.orderBy.length>0||y.columns.some(w=>w.type==="WINDOW_COL"&&w.orderBy.length>0))&&S.forEach(w=>o.add(w));let b=await qr(y,l,n),L=E(y);if(b.capability==="UNSUPPORTED"&&!L)throw new Error(`ArgumentError: WHERE predicate is unsupported (${Zt(b)}).`);d.set(y,b);let v=Ml.get(y)??Jo(y,await Xo(y,l,n));if(v&&Uf.set(y,v),y.orderBy.length>0||y.columns.some(w=>w.type==="WINDOW_COL"&&w.orderBy.length>0)){let w=await Jr(y,l,n);if(y.orderMode!=="KINTONE_NATIVE")for(let D of w.semantics.values())D.fieldType==="STATUS"&&D.source&&a.add(D.source.appId);if(Ko(y)&&!g&&L?.allowed!==!1){let D=b.capability==="EXACT_PUSHDOWN"?_e(y):"FULL_SCAN";p.set(y,(y.orderMode==="KINTONE_NATIVE"?Dr:_r)({stmt:y,staticMode:D,whereCapability:b.capability,whereReasons:b.reasons,orderSemantics:w.semantics,maxRecords:r,hasKlike:pe(y.where)}))}}}else if(m.type==="VALIDATE"){let y=h;o.add(y.appId);let g=await ee(y.appId,l,n),S=new Map(g.filter(A=>!A.inSubtable).map(A=>[A.code,A])),P=new Set(g.filter(A=>A.inSubtable).map(A=>A.code)),b=ps(y,g),L=Nn(y.checkGroups??[]),I=_l(y.where);for(let A of L){if(A.field!=="$id"&&!S.has(A.field)&&!P.has(A.field))throw fe(`CHECK \u306E\u30D5\u30A3\u30FC\u30EB\u30C9 ${A.field} \u306F APP${y.appId} \u306B\u5B58\u5728\u3057\u307E\u305B\u3093`);if(A.field!=="$id"&&!S.has(A.field)&&P.has(A.field))throw new Error(`ArgumentError: VALIDATE \u306E CHECK \u3067\u306F\u30B5\u30D6\u30C6\u30FC\u30D6\u30EB\u5B50\u30D5\u30A3\u30FC\u30EB\u30C9 ${A.field} \u3092\u53C2\u7167\u3067\u304D\u307E\u305B\u3093\u3002`)}for(let A of I){if(A!=="$id"&&!S.has(A)&&!P.has(A))throw new Error(`ArgumentError: WHERE field ${A} does not exist in APP${y.appId}.`);if(A!=="$id"&&!S.has(A)&&P.has(A))throw new Error(`ArgumentError: VALIDATE \u306E WHERE \u3067\u306F\u30B5\u30D6\u30C6\u30FC\u30D6\u30EB\u5B50\u30D5\u30A3\u30FC\u30EB\u30C9 ${A} \u3092\u53C2\u7167\u3067\u304D\u307E\u305B\u3093\u3002`)}let v=new Map([...S].map(([A,C])=>[A,C.fieldType]));v.set("$id","RECORD_NUMBER"),an(y,v);let w=Ce(y.where,A=>A.field==="$id"?X({fieldType:"__ID__"}):S.get(A.field)?.semantics??(S.has(A.field)?X(S.get(A.field)):void 0));if(w.capability==="UNSUPPORTED")throw new Error(`ArgumentError: WHERE predicate is unsupported (${Zt(w)}).`);let D=new Map([...S].map(([A,C])=>[A,C.fieldType])),M=new Map([...S.values()].flatMap(A=>A.optionOrder?[[A.code,new Set(Object.keys(A.optionOrder))]]:[])),N=y.where===null?null:w.capability==="EXACT_PUSHDOWN"?y.where:An(y.where,{allowUnqualifiedFields:!0,fieldTypes:D,fieldOptions:M,allowKlike:!1}),_=b.some(A=>A.field.fieldType==="NUMBER");_&&(s.add(y.appId),await ot(y.appId,l,n)),kf.set(y,{targetFields:b.map(A=>A.subtableCode?`${A.subtableCode}(${A.field.code})`:A.field.code),fetchFields:[...new Set(["$id",...b.map(A=>A.subtableCode??A.field.code),...I,...L.map(A=>A.field)])],subtables:new Map([...new Set(b.flatMap(A=>A.subtableCode?[A.subtableCode]:[]))].map(A=>[A,b.filter(C=>C.subtableCode===A).length])),capability:w,prefilter:N,numberPrecision:_})}else if(m.type==="UPDATE"||m.type==="DELETE"){if(o.add(h.appId),m.type==="UPDATE"&&h.applyBlocks?.length){let g=h,S=await ee(g.appId,l,n);if(pt(g,S),Ho(g)){let P=S.filter(L=>!L.inSubtable),b=Is(g.where,{fieldTypes:new Map(P.map(L=>[L.code,L.fieldType])),fieldOptions:new Map(P.flatMap(L=>L.optionOrder?[[L.code,new Set(Object.keys(L.optionOrder))]]:[]))});Mf.set(g,b)}}let y=h;(y.type!=="UPDATE"||!Ho(y))&&E(y)?.allowed!==!1&&await xn(y,l,n)}await Promise.all(Object.values(m).map(R))};if(await R(e),typeof e=="object"&&e!==null&&e.type==="WITH"&&It(e)){let h=wt(e),m=await qr(h,l,n),y=E(h);if(m.capability==="UNSUPPORTED"&&!y)throw new Error(`ArgumentError: WHERE predicate is unsupported (${Zt(m)}).`);if(d.set(h,m),Ko(h)&&y?.allowed!==!1){let g=await Jr(h,l,n);p.set(h,(h.orderMode==="KINTONE_NATIVE"?Dr:_r)({stmt:h,staticMode:m.capability==="EXACT_PUSHDOWN"?_e(h):"FULL_SCAN",whereCapability:m.capability,whereReasons:m.reasons,orderSemantics:g.semantics,maxRecords:r,hasKlike:pe(h.where)}))}}return{capabilities:d,orderPlans:p,plainGroupByPlans:c,fieldApps:o,processStatusApps:a,numberPrecisionApps:s,relativeDatePlan:f}}function Il(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 LA(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 Kd(e){return e==="<>"?"!=":e}function We(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(We).join(", ")})`;case"FUNC_FIELD":case"ARITH_FIELD":case"CASE_FIELD":case"ARITH_VALUE":case"CASE_VALUE":return We(t.expr);case"GROUPING_FIELD":return`GROUPING(${We(t.ref)})`;case"GROUPING_REF":return We(t.field);case"ARITH":case"SCALAR_ARITH":case"CONCAT_OP":return`(${We(t.left)} ${typeof t.op=="string"?t.op:t.type==="CONCAT_OP"?"||":"<op>"} ${We(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(We).join(", ")})`:"<expr>";case"ARRAY":return Array.isArray(t.elements)?`[${t.elements.map(We).join(", ")}]`:"<expr>";case"CASE":case"CASE_WHEN":return"CASE ... END";default:return"<expr>"}}function Xt(e){try{let t=e;switch(t.type){case"BINARY":return`${We(t.left)} ${LA(t.op)} ${We(t.right)}`;case"NULL_CHECK":return`${We(t.field)} IS ${t.not===!0?"NOT ":""}NULL`;case"LOGICAL":return`(${Xt(t.left)} ${t.op==="AND"||t.op==="OR"?t.op:"<op>"} ${Xt(t.right)})`;case"NOT":return`NOT (${Xt(t.expr)})`;case"GROUP":return`(${Xt(t.expr)})`;case"BOOLEAN":return t.value===!0?"TRUE":t.value===!1?"FALSE":"<expr>";default:return"<expr>"}}catch{return"<expr>"}}function wl(e){if(!e.hasServerOnlyWhereFunction)return[];if(!e.allowed&&e.rejection){let n=J(e.rejection.functionName)?"relative date function":"kintone function",r=e.nodes[e.nodes.length-1],i=r?.capability?.reasons.find(a=>a.functionName===e.rejection.functionName),o=r?_A(r.source,e.rejection.functionName):null;return[` ${n}: ${e.rejection.functionName}`," plan status: rejected",` target alias / field: ${o?.alias??"(unknown)"} / ${i?.field??o?.field??"(unknown)"}`,` reason: ${e.rejection.reasonCodes.join(", ")}`," client evaluation: forbidden"," records/cursor/mutation API during EXPLAIN: none"]}let t=[];for(let n of e.nodes){let r=n.joinServerFunctionPlan;if(n.allowed&&n.allowForm==="JOIN_SERVER_FUNCTION_EXACT"&&r){let a=n.joinServerFunctionVariant==="WHOLE_WHERE_EXACT"?"whole-WHERE":"leaf";t.push(` allow form: JOIN_SERVER_FUNCTION_EXACT (${a})`);for(let s of r.serverFunctionConsumptions)for(let l of s.functionLeaves){let d=nl(l),p=l.left.type==="FIELD"?l.left.field:"(unknown)";t.push(` ${tl(d)}: ${d}`,` ${rl(d)}: kintone server exact JOIN prefilter`,` target alias / APP: ${s.targetAlias} / APP${s.appId}`,` field: ${p}`,` function leaf relation: ${s.relation}`,` consumption: ${s.consumption}`)}t.push(` client residual: ${r.residualWhere===null?"(none)":Xt(r.residualWhere)}`),r.adoptedServerFunctionOccurrences.some(J)&&t.push(" relative date client evaluations: 0"),r.adoptedServerFunctionOccurrences.some(s=>!J(s))&&t.push(" kintone function client evaluations: 0");continue}let i=n.fullScanExactPlan;if(n.allowed&&n.allowForm==="FULL_SCAN_EXACT"&&i){for(let s of i.prefilterPlan.exactRelativeLeaves){let l=nl(s),d=s.left.type==="FIELD"?s.left.field:void 0,p=Kd(s.op),c=n.capability?.reasons.find(u=>u.functionName===l&&(d===void 0||u.field===d)&&u.operator===p);t.push(` ${tl(l)}: ${l}`,` ${rl(l)}: kintone server whole-WHERE exact`,` field: ${c?.field??d??"(unknown)"} (${c?.fieldType??"unknown"})`,` operator: ${c?.operator??p}`)}let a=i.serializedWholeWhere;t.push(" where capability: EXACT_PUSHDOWN",` server predicate: ${a}`," client residual: (none)",` ${Bd(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=nl(s),d=s.left.type==="FIELD"?s.left.field:void 0,p=Kd(s.op),c=n.capability?.reasons.find(u=>u.functionName===l&&(d===void 0||u.field===d)&&u.operator===p);t.push(` ${tl(l)}: ${l}`,` ${rl(l)}: kintone server exact prefilter`,` field: ${c?.field??d??"(unknown)"} (${c?.fieldType??"unknown"})`,` operator: ${c?.operator??p}`)}let a=G(o.prefilterWhere);t.push(" where capability: SUPERSET_PREFILTER",` server prefilter: ${a}`,` client residual: ${Xt(o.residualWhere)}`,` ${Bd(o.exactRelativeLeaves)}: 0`,` kintone query: ${a}`);continue}for(let a of n.functionNames){let s=n.capability?.reasons.find(l=>l.functionName===a);if(!J(a)){t.push(` kintone function: ${a}`," kintone function evaluation: kintone server",` field: ${s?.field??"(unknown)"} (${s?.fieldType??"unknown"})`,` operator: ${s?.operator??"(unknown)"}`,` where capability: ${n.capability?.capability??"(unknown)"}`," client residual: (none)"," kintone function client evaluations: 0",` kintone query: ${n.restQuery||"(\u306A\u3057)"}`);continue}t.push(` relative date function: ${a}`," evaluation: kintone server",` field: ${s?.field??"(unknown)"} (${s?.fieldType??"unknown"})`,` operator: ${s?.operator??"(unknown)"}`,` where capability: ${n.capability?.capability??"(unknown)"}`," client evaluation: forbidden",` kintone query: ${n.restQuery||"(\u306A\u3057)"}`)}}return t}function _A(e,t){let n="where"in e?e.where:null,r=null,i=o=>{if(r||o===null||typeof o!="object")return;if(Array.isArray(o)){o.forEach(i);return}let a=o;if(a.type==="BINARY"){let s=a.left,l=a.right,d=l?.type==="KINTONE_FUNC"&&l.name===t,p=l?.type==="IN_LIST"&&Array.isArray(l.values)&&l.values.some(c=>c!==null&&typeof c=="object"&&c.type==="KINTONE_FUNC"&&c.name===t);if((d||p)&&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 tl(e){return J(e)?"relative date function":"kintone function"}function nl(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 rl(e){return J(e)?"relative date evaluation":"kintone function evaluation"}function Bd(e){return e.every(t=>t.right.type==="KINTONE_FUNC"&&J(t.right.name))?"relative date client evaluations":"kintone function client evaluations"}async function xf(e,t,n,r="batch-explain",i=1e4,o=2,a=!1,s=100,l=Se){let d=bl(r);try{let p=Xd(e,a),c=Ua(p);ys(p,n);let u=new Map,f=[];for(let E=0;E<p.length;E++){let R=p[E],h=R.type==="SET_VARIABLE"?R.expr.type==="SCALAR_SUBQUERY"?{...R,expr:xo(R.expr,u)}:R:xo(R,u);$e(h);let m=await ni(h,t,d),y=await Ff(h,t,d,i,m),g=m.hasServerOnlyWhereFunction&&!m.allowed?wl(m):[...wl(m),...Kf(DA(h,c.statements[E],y.capabilities,y.orderPlans,s,l),o)],S=Il(y);f.push({index:E,type:c.statements[E].statementType,plan:g.length===0?S:[g[0],...S,...g.slice(1)]}),(R.type==="SET_VARIABLE"||R.type==="DECLARE_VARIABLE")&&u.set(R.name,R.type==="SET_VARIABLE"&&R.expr.type==="ARRAY"?{type:"array",elements:R.expr.elements.map(P=>({type:"string",value:P.value}))}:{type:"string",value:`@${R.name}`,placeholder:!0})}return{statementCount:p.length,statements:f}}finally{Vl(d)}}function DA(e,t,n,r,i=100,o=Se){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",` rows: \u5B9F\u4F53\u5316\u524D\u306E\u305F\u3081\u4E0D\u660E\uFF08\u65E2\u5B9A\u4E0A\u9650 ${Fe} \u884C\u3001tempTableMaxRows \u3067\u5909\u66F4\u53EF\u3001\u8D85\u904E\u306F\u30A8\u30E9\u30FC\uFF09`,...$r(e.query,t,n,r).map(a=>` ${a}`)];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 a=Yo(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:",...$r(e.expr.query,a,n,r).map(s=>` ${s}`)]}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[`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 $r(e.query,t,n,r);if(e.type==="ASSERT"){let a=[`ASSERT ${e.text}`," 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"],s=[e.left,e.right,e.low,e.high].filter(l=>l!==null&&l.type==="SCALAR_SUBQUERY");return s.forEach((l,d)=>{a.push(s.length>1?` subquery[${d+1}]:`:" subquery:");let p=Yo(l.query)?t:{...t,tempTablesReferenced:[]};a.push(...$r(l.query,p,n,r).map(c=>` ${c}`))}),a}return e.type==="UPDATE"&&(e.applyBlocks?.length??0)>0?ra(e,void 0,n,r,i,o):$r(e,t,n,r)}function Yo(e){if(Array.isArray(e))return e.some(Yo);if(e!==null&&typeof e=="object"){let t=e,n=t.cteName;return typeof n=="string"&&n.startsWith("#")?!0:Object.values(t).some(Yo)}return!1}function $r(e,t,n,r){if(t.tempTablesReferenced.length===0)return ra(e,void 0,n,r);let i=[];e.type==="INSERT_SELECT"?i.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"&&i.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`),i.push(" mode: FULL_SCAN\uFF08\u4E00\u6642\u30C6\u30FC\u30D6\u30EB\u53C2\u7167\uFF09"),i.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 o=t.appIds.filter(a=>e.type!=="INSERT_SELECT"&&e.type!=="UPSERT_SELECT"||a!==e.appId);return o.length>0&&i.push(` app: ${o.map(a=>`APP${a}`).join(", ")}`),i.push(" note: \u4E00\u6642\u30C6\u30FC\u30D6\u30EB\u3078\u306E WHERE \u30D7\u30C3\u30B7\u30E5\u30C0\u30A6\u30F3\u306F\u884C\u308F\u308C\u306A\u3044"),i}async function vA(e,t,n,r,i,o=100,a=Se,s){let l=s??await ni(e.query,t,n),d=await Ff(e.query,t,n,r,l),p=wl(l),c=l.hasServerOnlyWhereFunction&&!l.allowed?[...Il(d),...p]:[...Il(d),...p,...Kf(ra(e.query,void 0,d.capabilities,d.orderPlans,o,a,r,d.plainGroupByPlans),i)];return{type:"SELECT",columns:["plan"],rows:c.map(u=>({plan:u})),rowCount:c.length}}function Kf(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 ra(e,t,n,r,i=100,o=Se,a=1e4,s){if(e.type==="UNION")return kA(e,n,r,s);if(e.type==="WITH")return MA(e,n,r,s);if(e.type==="INSERT")return KA(e,t,i,o);if(e.type==="INSERT_SELECT")return BA(e,t,n,r,s);if(e.type==="UPSERT")return WA(e,t,i,o);if(e.type==="UPSERT_SELECT")return HA(e,t,n,r,s);if(e.type==="UPDATE")return $A(e,t,n,r,i,o,a);if(e.type==="DELETE")return VA(e,t);if(e.type==="REORDER")return YA(e,t);if(e.type==="VALIDATE")return UA(e,t);if(e.type==="IMPORT"){if(e.writeMode==="UPDATE_RECORD_NUMBER"){let p=e.targets?.filter(c=>c.kind==="SUBTABLE")??[];return[...t?[t]:[],`IMPORT UPDATE INTO APP${e.appId}`," writeMode: UPDATE_RECORD_NUMBER",` source: CSV ${e.source.sourceName}`,` keyHeader: ${e.recordNumberSourceHeader}`," mapping: BY_NAME"," parentRows: requires source load"," duplicate: preflight before lookup/write"," matched: requires lookup"," unmatched: requires lookup"," invalid: requires source load"," requiresLookup:true"," inserted: 0"," keyInPayload: false",...p.length?[` replaceSubtables: ${e.replaceSubtables?.join(", ")??"ERROR: required"}`," subtableRowIdPolicy: PRESERVE existing; empty/unknown add without id"," rowIdOwnership: owned elsewhere invalidates the parent"," replacementDiff: existing/input/update/add/delete/rowIdNotFound requires actual-data preflight",' confirmPolicy: highest warning "\u30B5\u30D6\u30C6\u30FC\u30D6\u30EB\u5168\u7F6E\u63DB\u30FBN\u884C\u524A\u9664" plus per-table detail (including delete=0)']:[],` disposition: ${e.validateOnly?"VALIDATE ONLY":e.onErrorSkip?`ON ERROR SKIP INTO ${e.errorTable}`:"fail-fast"}`," gate: enabled for this parse",` writesKintone: ${e.validateOnly?"false":"true"}`]}let l=e.keyFields?"UPSERT":"INSERT",d=e.targets?.some(p=>p.kind==="SUBTABLE")===!0;return[...t?[t]:[],`IMPORT ${l} INTO APP${e.appId}`,` source: ${e.source.kind} ${e.source.sourceName}`,` sourceFormat: ${e.source.kind}`,` encoding: ${e.source.kind==="JSON"?"UTF8 only":e.source.encoding??"UTF8 (or loader metadata)"}`,` mapping: ${e.source.kind==="JSON"?"BY NAME (INTO order)":e.source.projection?"SELECT expressions":e.source.mappingMode}`,...e.source.kind==="JSON"?[" duplicateKeyPolicy: reject"," numberLexemePolicy: preserve; JSON number accepts safe integer only"," precisionTargetsRequireString: true"," unknownKeyPolicy: reject"," presenceAware: true",...d?[" subtableRowIdPolicy: reject _rid/id; DROP IDs and renumber every input row"," subtableUpdatePolicy: present table replaces all rows; missing table is preserved; [] deletes all rows"," confirmPolicy: parent/table existing/input/add/delete detail required; delete is highest warning"]:[]]:[` header: ${e.source.hasHeader?"HEADER":"NO HEADER"}`,...e.source.mappingMode==="BY_NAME"?[` writtenColumns: ${e.fields.join(", ")}`," knownExportColumns: audit and ignore with reason/non-empty count",` unknownColumnPolicy: ${e.source.ignoreUnknownColumns?"ignore with audit/non-empty count":"ERR_IMPORT_UNKNOWN_COLUMN"}`," multipleValueDelimiter: LF (CRLF or LF)"," sourceValueMode: string-preserving"," roundTripNumericGuarantee: exact CSV lexeme passes strict decimal validation"," FILE: audit-ignore unless named in INTO (analyze error)"]:[]],` sourceLimit: 10485760 bytes / ${e.fields.length} target columns`,` key: ${e.keyFields?.join(", ")??"none"}`,` checks: ${e.checkGroups?.length??0}`,` disposition: ${e.validateOnly?"VALIDATE ONLY":e.onErrorSkip?`ON ERROR SKIP INTO ${e.errorTable}`:"fail-fast"}`," gate: enabled for this parse",` preflight: ${e.validateOnly&&d?"requires actual source load at execution; this EXPLAIN is static":"requires load"}`,...d?[e.source.kind==="JSON"?" Phase5C: JSON mutation requires detail-capable confirmation surface":" Phase5D: CSV mutation requires detail-capable confirmation surface"]:[],` writesKintone: ${e.validateOnly?"false":"true"}`," duplicateKey: preflight before lookup/write (requires load)"]}return He(e,t,n,r,s)}function UA(e,t){let n=kf.get(e),r=[];return t&&r.push(t),r.push(`VALIDATE APP${e.appId}`),r.push(" operation: read-only existing-record constraint audit (writesKintone=false)"),r.push(" fetch API: GET records via offset + $id keyset paging (Cursor API unused)"),r.push(" complete input: required (onLimit=truncate disabled)"),n?(r.push(` WHERE capability: ${n.capability.capability}`),r.push(` kintone query: ${n.prefilter===null?"(\u5168\u4EF6\u53D6\u5F97)":G(n.prefilter)}`),r.push(` audit fields: ${n.targetFields.length===0?"(\u306A\u3057)":n.targetFields.join(", ")}`),r.push(` fetch fields: ${n.fetchFields.join(", ")}`),r.push(` mode: ${e.summary?"SUMMARY":"DETAIL"}`),n.subtables.size>0&&r.push(` subtable audit: ${[...n.subtables].map(([i,o])=>`${i}(${o} fields)`).join(", ")}`),r.push(` output schema: ${(e.summary?Ll:Ol).join(", ")}`),r.push(e.summary?" aggregation: record/subtable/field/code; row locator=none":" row locator: grouped by message; $err_subrow / $err_subrow_id list all matching rows (first-occurrence order)"),r.push(` number precision: ${n.numberPrecision?"required":"not required"}`),r.push(" local checks: original WHERE re-evaluation + built-in constraints + CHECK groups"),r.push(" records/mutation API during EXPLAIN: none; violation count unavailable"),r):(r.push(" metadata: form definition required; number precision required for NUMBER targets"),r)}function He(e,t,n,r,i,o=!0){let a=n?.get(e)??(n?[...n].find(([y])=>JSON.stringify(y)===JSON.stringify(e))?.[1]:void 0),s=r?.get(e)??(r?[...r].find(([y])=>JSON.stringify(y)===JSON.stringify(e))?.[1]:void 0),l=i?.get(e)??(i?[...i].find(([y])=>JSON.stringify(y)===JSON.stringify(e))?.[1]:void 0),d=o&&a!==void 0&&ff(e,a),p=d?"COUNT_TOTAL_COUNT":s?.kind==="CANONICAL_LOCAL"||a&&a.capability!=="EXACT_PUSHDOWN"?"FULL_SCAN":_e(e),c=FA(e);a&&a.capability!=="EXACT_PUSHDOWN"&&c.push(...a.reasons.map(y=>y.code));let u=[],f=hp(e,zr.get(e)?.allItems.length);t&&u.push(t),u.push(` mode: ${p}`),f&&(u.push(` grouping source: ${f.source}`),u.push(` grouping sets: ${f.expandedSetCount} (limit: ${f.setLimit})`),u.push(` grouping items: ${f.groupingItemCount} (limit: ${f.itemLimit})`),u.push(` grouping output rows: runtime checked (limit: ${f.outputRowLimit}, before HAVING/DISTINCT/LIMIT)`));let E=ne(e);if(E.type==="PLAIN"){let y=E.allItems;if(l)l.items.forEach((g,S)=>{let P=y[S];P?.type==="FIELD_NAME"&&g.kind==="PHYSICAL"&&u.push(` group key ${P.name}: PHYSICAL (source=${g.sourceIndex}, field=${g.fieldCode})`)});else if([e.from,...e.joins.map(g=>g.table)].some(g=>g.cteName!==null))for(let g of y)g.type==="FIELD_NAME"&&u.push(` group key ${g.name}: DEFERRED (materialized schema unavailable)`)}if(d){let y=e.where===null?"":G(e.where);return u.push(` app: APP${e.from.appId} (${e.from.appId})`),u.push(` kintone query: ${y}${y?" ":""}limit 1`),u.push(" fields: $id"),u.push(" fetch API: GET records.json (totalCount=true)"),u.push(" REST execution: single GET"),u.push(" record limit: maxRecords/onLimitReached not applied"),u.push(" fallback: full record scan when totalCount is missing or invalid"),u.push(" search abort: fail-closed (SearchAbortedError)"),u}s?(u.push(` order plan: ${s.kind}`),s.reasonCodes.length>0&&u.push(` order reason: ${s.reasonCodes.join(", ")}`),s.kind==="KORDER_NATIVE"?(u.push(" order semantics: kintone native (not kSQL canonical)"),u.push(" REST execution: single GET")):s.kind==="KORDER_CURSOR"&&(u.push(" order semantics: kintone native (not kSQL canonical)"),u.push(" fetch API: POST/GET/DELETE records/cursor.json"),u.push(" cursor page size: 500"),u.push(` scan rows: ${s.scanRows}`))):f&&u.push(" order plan: CANONICAL_LOCAL");let R=s&&!s.requiresCompleteInput?{...e,orderBy:[]}:e,h=gt(R);s?.requiresCompleteInput&&h.add("LOCAL_ORDER");let m=Rt(e.where);if(h.size>0&&(!m||f!==null)&&(u.push(" complete input: required (onLimit=truncate disabled)"),u.push(` complete input reason: ${[...h].join(", ")}`),u.push(" onLimit=truncate: disabled")),m)return u.push(" predicate: constant false"),u.push(" records API access: none"),u.push(` app: APP${e.from.appId} (${e.from.appId})`),u;if(p==="FULL_SCAN"&&c.length>0&&u.push(` reason: ${c.join(", ")}`),p==="SIMPLE"){let y=Si(s?.kind==="CANONICAL_REST_TOP_N"?lf(e):e);u.push(` app: APP${e.from.appId} (${e.from.appId})`);let g=s?.kind==="KORDER_CURSOR"?ws(e):y.query;u.push(` kintone query: ${g||"(\u306A\u3057)"}`),u.push(` fields: ${y.fields.length===0?"(\u5168\u30D5\u30A3\u30FC\u30EB\u30C9)":y.fields.join(", ")}`)}else{let y=Uf.get(e),g=y??Tn(e);if(e.joins.length>0)if(y){if(u.push(" join pushdown plan: applied (runtime metadata resolved)"),u.push(" runtime plan timing: variables/subqueries resolved -> metadata resolved -> immutable plan"),u.push(" EXPLAIN unresolved subqueries: not applied (records API is not called)"),y.joinPlan.serverFunctionCandidate&&u.push(` allow form: JOIN_SERVER_FUNCTION_EXACT (${y.joinPlan.serverFunctionCandidate.variant==="WHOLE_WHERE_EXACT"?"whole-WHERE":"leaf"})`),u.push(` client residual: ${y.joinPlan.residualWhere===null?"(none)":Xt(y.joinPlan.residualWhere)}`),u.push(` KLIKE applied nodes: ${y.joinPlan.appliedKlikes.size}`),u.push(` KLIKE unapplied nodes: ${y.joinPlan.allKlikes.length-y.joinPlan.appliedKlikes.size}`),y.joinPlan.residualWhere!==null)for(let N of y.joinPlan.rejections)u.push(` join pushdown not applied: ${N.reason}`)}else{let N=e.joins.some(_=>_.type!=="INNER")?"OUTER_JOIN":[e.from,...e.joins.map(_=>_.table)].some(_=>_.cteName!==null||!!_.subtableCode)?"SOURCE_KIND":"PLAN_NOT_APPLICABLE";u.push(" join pushdown plan: not applied"),u.push(` join pushdown not applied: ${N}`)}let S=Kt(e,e.from,l),P=e.from.alias?` AS ${e.from.alias}`:"",b=g.mainCondition,L=rf(e),I=e.joins.length===0&&a?.capability==="EXACT_PUSHDOWN"&&e.where!==null&&!Tt(e.where)?G(e.where):"",v=e.from.alias?y?.queriesByAlias.get(e.from.alias):void 0,w=v||(b!==null?G(b):I||"(\u5168\u4EF6\u53D6\u5F97)");u.push(` app: APP${e.from.appId}${P} (${e.from.appId})`),u.push(` kintone query: ${w}`);let D=y?.joinPlan.items.find(N=>N.targetAlias===e.from.alias),M=y?.joinPlan.serverFunctionConsumptions.find(N=>N.targetAlias===e.from.alias);D||M?(u.push(` pushdown applied: ${v}`),u.push(` relation: ${D?.relation??"exact"}`)):!y&&L!==null&&u.push(` pushdown candidate: ${G(L)}\uFF08\u5B9F\u884C\u6642\u306E\u578B\u30FB\u5B9F\u5728\u78BA\u8A8D\u5F85\u3061\uFF09`),u.push(` fields: ${S.length===0?"(\u5168\u30D5\u30A3\u30FC\u30EB\u30C9)":S.join(", ")}`);for(let N of e.joins){let _=Kt(e,N.table,l),A=N.table.alias?` AS ${N.table.alias}`:"",C=N.type==="INNER"?"JOIN":`${N.type} JOIN`,x=N.table.alias?g.joinConditions.get(N.table.alias)??null:null,O=N.table.alias&&!N.table.subtableCode&&N.table.cteName===null&&e.where?ir(e.where,{tableAlias:N.table.alias}):null,F=N.table.alias?y?.queriesByAlias.get(N.table.alias):void 0,j=F||(x!==null?G(x):"(\u5168\u4EF6\u53D6\u5F97)");u.push(` ${C}: APP${N.table.appId}${A} (${N.table.appId})`),u.push(` kintone query: ${j}`);let z=y?.joinPlan.items.find(k=>k.targetAlias===N.table.alias),U=y?.joinPlan.serverFunctionConsumptions.find(k=>k.targetAlias===N.table.alias);z||U?(u.push(` pushdown applied: ${F}`),u.push(` relation: ${z?.relation??"exact"}`)):!y&&O!==null&&u.push(` pushdown candidate: ${G(O)}\uFF08\u5B9F\u884C\u6642\u306E\u578B\u30FB\u5B9F\u5728\u78BA\u8A8D\u5F85\u3061\uFF09`),u.push(` fields: ${_.length===0?"(\u5168\u30D5\u30A3\u30FC\u30EB\u30C9)":_.join(", ")}`)}}return u.push(...xA(e,n,r,i)),u}function kA(e,t,n,r){let i=[],o=s=>{if(s.type==="SELECT"){i.push(s);return}o(s.left),i.push(s.right)};o(e);let a=[];return i.forEach((s,l)=>{l>0&&a.push(""),a.push(...He(s,`[union:${l+1}]`,t,n,r,!0))}),a}function MA(e,t,n,r){let i=[];for(let o of e.ctes)o.query.type==="SELECT"&&(i.push(...He(o.query,`[cte: ${o.name}]`,t,n,r,!1)),i.push(""));if((e.query.type==="SELECT"||e.query.type==="UNION")&&i.push(...ra(e.query,"[main]",t,n,100,Se,1e4,r)),It(e)){i.push("");let o=wt(e);i.push(...He(o,"[effective: inlined CTE]",t,n,r,!1))}return i}function FA(e){let t=[];(e.from.subtableCode||e.joins.some(r=>r.table.subtableCode))&&t.push("\u30B5\u30D6\u30C6\u30FC\u30D6\u30EB\u4EEE\u60F3\u30C6\u30FC\u30D6\u30EB"),e.joins.length>0&&t.push("JOIN \u3042\u308A");let n=ne(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"),Tt(e.where)&&t.push("WHERE \u53E5\u306B JS \u8A55\u4FA1\u304C\u5FC5\u8981\u306A\u5F0F"),At(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 xA(e,t,n,r){let i=[],o=1,a=s=>{if(s)switch(s.type){case"BINARY":s.right.type==="SCALAR_SUBQUERY"&&(i.push(""),i.push(...He(s.right.query,`[subquery:${o++}]`,t,n,r,!1))),s.right.type==="SUBQUERY_IN_LIST"&&(i.push(""),i.push(...He(s.right.query,`[subquery:${o++}]`,t,n,r,!1)));break;case"EXISTS":i.push(""),i.push(...He(s.query,`[subquery:${o++}]`,t,n,r,!1));break;case"LOGICAL":a(s.left),a(s.right);break;case"NOT":case"GROUP":a(s.expr);break;case"NULL_CHECK":break;case"BOOLEAN":break}};a(e.where);for(let s of e.columns)s.type==="SCALAR_SUBQUERY_COL"&&(i.push(""),i.push(...He(s.query,`[subquery:${o++}]`,t,n,r,!1)));return e.having&&a(e.having),i}function KA(e,t,n=ht,r=Se){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,...Zl(ro(e,n,r))]:a}function BA(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(...He(e.select,"[source SELECT]",n,r,i,!1)),o}function $A(e,t,n,r,i=100,o=Se,a=1e4){if(e.applyBlocks?.length)return GA(e,t,i,o,a);let s=Mc(e),l=e.assignments.some(f=>f.value.type==="STRING_FUNC"),d=Wi(e),p=e.assignments.some(f=>f.value.type==="SCALAR_SUBQUERY"),c=[];if(t&&c.push(t),c.push(e.from?" [UPDATE FROM]":" [UPDATE]"),c.push(` target: APP${e.appId} (${e.appId})`),e.from){let f=e.from.cteName??`APP${e.from.appId}`;c.push(` source: ${f} AS ${e.from.alias}`),c.push(` join: APP${e.appId}.${e.from.targetJoinField} = ${e.from.alias}.${e.from.joinKeyField}`),c.push(` target filter: ${e.from.targetFilter?ti(e.from.targetFilter):"(none)"}`)}else c.push(` kintone query: ${ti(e.where)}`);e.subtableCode||(c.push(" selection: exact native pushdown; JS residual none"),c.push(" search abort: DML fail-closed (SearchAbortedError; mutation 0)")),c.push(Rt(e.where)?" api: metadata validation only (records API access: none)":" api: GET /k/v1/records.json \u2192 PUT /k/v1/records.json");let u=[];if(s&&u.push("\u7B97\u8853 SET\uFF08\u73FE\u5728\u5024\u3092\u53D6\u5F97\u3057\u3066\u8A08\u7B97\uFF09"),l&&u.push("\u6587\u5B57\u5217\u95A2\u6570 SET\uFF08\u73FE\u5728\u5024\u3092\u53D6\u5F97\u3057\u3066\u8A55\u4FA1\uFF09"),p&&u.push("\u30B9\u30AB\u30E9\u30FC\u30B5\u30D6\u30AF\u30A8\u30EA SET"),!d&&!p&&u.push("\u5358\u7D14 SET"),c.push(` set type: ${u.join(", ")}`),d){let f=qA(e);f.length>0&&c.push(` ref fields: ${f.join(", ")}\uFF08GET \u306B\u542B\u3081\u308B\uFF09`)}c.push(" set fields:");for(let f of e.assignments)c.push(` ${JA(f)}`);for(let f of e.assignments)f.value.type==="SCALAR_SUBQUERY"&&(c.push(""),c.push(...He(f.value.query,`[subquery: ${f.field}]`,n,r,void 0,!1)));return c}function GA(e,t,n,r,i){let o=ro(e,n,r),a=o.branches[0],d=e.applyBlocks.flatMap(E=>[...E.operations]).map(E=>{if(E.kind==="APPEND")return"APPEND";if(E.kind==="ADD"||E.kind==="REMOVE_VALUE")return"VALUE_LITERAL";if(E.selector.kind==="ALL_ROWS")return"ALL_ROWS";let R=E.selector.where;return R.type==="BINARY"&&R.op==="="&&R.left.type==="FIELD"&&R.left.tableAlias===null&&R.left.field==="_rid"?"_rid":"SAFE_PREDICATE"}),p=[...new Set(a.targets.flatMap(E=>E.operations.map(R=>R.kind)))],c=p.includes("REMOVE"),u=Mf.get(e),f=u?["parent selection: safe prefilter + JS residual evaluation",`kintone prefilter: ${u.prefilter===null?"(none; empty query)":G(u.prefilter)}`,"JS residual: original parent WHERE",`applied KLIKE: ${u.appliedKlikes.size}`,`unapplied KLIKE: ${u.unappliedKlikes.length}${u.unappliedKlikes.length>0?" (unsupported: cannot be fully applied to native query)":""}`,`candidate limit: maxRecords=${i}, onLimit=error, stopAfter=none`,`target guard: dmlMaxRows=${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: ${ti(e.where)}`,`parent cardinality: ${st(e.where)?"single":"multiple"}`,...f,`apply target: ${a.targets.map(E=>`${E.field} (${E.targetKind})`).join(" | ")}`,`operations: ${p.join(" | ")}`,`selector: ${d.join(" | ")}`,"snapshot evaluation: yes","inserted rows visible: no","revision guard: required","revision: unknown (records API not called)",`payload preservation: row ids=yes, row order=yes, unpatched cells=yes, remove tables=${c?"FULL_SURVIVORS":"none"}`,"post-image validation: required (B43 equivalent)","parent rows: unknown (records API not called)","matched subtable rows: unknown (records API not called)","validation errors: unknown (records API not called)",`deleted rows: ${c?"unknown (records API not called)":"0 (static without REMOVE)"}`,`dmlMaxRows: ${n}`,`dmlMaxSubtableRows: ${r}`,"MCP mutation: disabled in v1",...Zl(o)]}function VA(e,t){let n=[];return t&&n.push(t),n.push(" [DELETE]"),n.push(` target: APP${e.appId} (${e.appId})`),n.push(` kintone query: ${ti(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(Rt(e.where)?" api: metadata validation only (records API access: none)":" api: GET /k/v1/records.json \u2192 DELETE /k/v1/records.json"),n}function WA(e,t,n=ht,r=Se){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,...Zl(ro(e,n,r))]:a}function Zl(e){let t=[`apply diagnostic: ${e.statementKind}`,`non-transactional: ${e.nonTransactional}`,`partial success: ${e.partialSuccess.possible?"possible":"none"}`];for(let n of e.branches){t.push(`apply branch: ${n.branch}`,` parent rows: ${n.parentRows===null?"unknown (records API not called)":n.parentRows}`,` chunks: ${n.chunk.plannedChunks===null?"unknown":n.chunk.plannedChunks} \xD7 max ${n.chunk.size}`,` revision guard: ${n.guards.revisionRequired?"required":"not required"}`);for(let r of n.targets)t.push(` target: ${r.field} (${r.targetKind})`,` operations: ${r.operations.map(i=>`${i.kind}=${i.count===null?"unknown":i.count}`).join(" | ")}`,` changed count: ${r.changedCount===null?"unknown":r.changedCount}`)}return t.push("records API: 0","mutation API: 0"),t}function HA(e,t,n,r,i){let o=[...t?[t]:[]," [UPSERT SELECT]",` target: APP${e.appId} (${e.appId})`,` key fields: ${e.keyFields.join(", ")}`,` fields: ${e.fields.join(", ")}`," api: GET /k/v1/records.json\uFF08\u91CD\u8907\u5224\u5B9A\uFF09\u2192 POST \u307E\u305F\u306F PUT /k/v1/records.json\uFF08100 \u4EF6\u3054\u3068\u306B\u30D0\u30C3\u30C1\uFF09",""];return o.push(...He(e.select,"[source SELECT]",n,r,i,!1)),o}function YA(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(jA).join(", "),o=[...t?[t]:[]," [REORDER]",` target: APP${e.appId} (${e.appId})`,` table: ${n}`,` scope: ${r}`,` by: ${i}`,Rt(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: ${ti(e.where)}`),o}function jA(e){return`${e.key.type==="FIELD_NAME"?e.key.name:"(\u5F0F)"} ${e.direction}`}function ti(e){if(e.type==="BOOLEAN")return e.value?"TRUE":"FALSE (constant)";try{return G(e)}catch{return"(JS \u8A55\u4FA1\u304C\u5FC5\u8981\u306A\u305F\u3081 kintone \u30AF\u30A8\u30EA\u306B\u5909\u63DB\u4E0D\u53EF)"}}function qA(e){let t=new Set;for(let{value:n}of e.assignments)n.type==="ARITH"&&jo(n,t),n.type==="STRING_FUNC"&&jo(n,t),(n.type==="SCALAR_ARITH"||n.type==="CONCAT_OP")&&jr(n,t);return[...t]}function jo(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"&&(jo(e.left,t),jo(e.right,t)),e.type==="STRING_FUNC")for(let n of e.args)n.type!=="AGG_REF"&&n.type!=="AGG_ARITH"&&jr(n,t)}async function Bf(e,t,n,r,i){let o=jl(e),a=await Ae(e.appId,n,r),s=t.cteName,l=s!==null?new Map((i?.get(s)?.columns??[]).map(u=>[u,i?.get(s)?.columnMeta?.get(u)?.fieldType??(i?.get(s)?.columnMeta?.get(u)?.semantics?.compareMode==="number"?"NUMBER":"SINGLE_LINE_TEXT")])):await Ae(t.appId,n,r),d=new Set,p=new Set;for(let u of o){if(u.tableAlias!==null){if(u.tableAlias.toLowerCase()===`app${e.appId}`.toLowerCase()){if(u.field!=="$id"&&!a.has(u.field))throw fe(`CHECK \u306E\u30BF\u30FC\u30B2\u30C3\u30C8\u30D5\u30A3\u30FC\u30EB\u30C9 ${u.field} \u306F\u5B58\u5728\u3057\u307E\u305B\u3093`);d.add(u.field)}else if(u.tableAlias.toLowerCase()===t.alias.toLowerCase()){if(u.field!=="$id"&&!l.has(u.field))throw fe(`CHECK \u306E\u30BD\u30FC\u30B9\u30D5\u30A3\u30FC\u30EB\u30C9 ${u.field} \u306F\u5B58\u5728\u3057\u307E\u305B\u3093`);p.add(u.field)}else throw fe(`CHECK \u306E\u4FEE\u98FE\u5B50 ${u.tableAlias} \u306F\u66F4\u65B0\u5148\u307E\u305F\u306F FROM alias \u3067\u306F\u3042\u308A\u307E\u305B\u3093`);continue}let f=u.field==="$id"||a.has(u.field),E=u.field==="$id"||l.has(u.field);if(!f)throw fe(`UPDATE FROM \u306E CHECK \u3067\u306F\u30BD\u30FC\u30B9\u5217 ${u.field} \u3092\u4FEE\u98FE\u3057\u3066\u304F\u3060\u3055\u3044`);if(E)throw fe(`UPDATE FROM \u306E CHECK \u306E\u975E\u4FEE\u98FE\u30D5\u30A3\u30FC\u30EB\u30C9 ${u.field} \u306F\u66D6\u6627\u3067\u3059`);d.add(u.field)}let c=new Map;for(let[u,f]of a)c.set(u,f),c.set(`APP${e.appId}.${u}`,f);c.set("$id","RECORD_NUMBER"),c.set(`APP${e.appId}.$id`,"RECORD_NUMBER");for(let[u,f]of l)c.set(`${t.alias}.${u}`,f);return{targetFields:[...d],sourceFields:[...p],evaluationTypes:c}}function zA(e,t,n){if(!e)return{};let r=dt(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 jr(e,t){if(e.type==="FIELD"){t.add(e.tableAlias?`${e.tableAlias}.${e.field}`:e.field);return}if(e.type==="STRING_FUNC"){for(let n of e.args)n.type!=="AGG_REF"&&n.type!=="AGG_ARITH"&&jr(n,t);return}(e.type==="SCALAR_ARITH"||e.type==="CONCAT_OP")&&(jr(e.left,t),jr(e.right,t))}function JA(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} = ${$f(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 $f(e){return`${$d(e.left)} ${e.op} ${$d(e.right)}`}function $d(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"?H(e):e.type==="ARITH"?`(${$f(e)})`:"..."}var le=class extends Error{constructor(n,r){super(`${n} \u3092\u30AD\u30E3\u30F3\u30BB\u30EB\u3057\u307E\u3057\u305F\uFF08\u5BFE\u8C61: ${r} \u4EF6\uFF09`);this.operation=n;this.affectedCount=r;this.name="OperationCancelledError"}};var ce=class extends Error{constructor(t,n,r){super(n),this.name="KsqlEngineError",this.code=t,r!==void 0&&(this.cause=r),Object.setPrototypeOf(this,new.target.prototype)}};function eu(e,t,n){return Object.defineProperties(e,{statementIndex:{value:t,enumerable:!0,configurable:!1,writable:!1},statementType:{value:n,enumerable:!0,configurable:!1,writable:!1}}),e}function Ke(e){return new ce("READ_ONLY_VIOLATION",e)}function Hn(e,t){return new ce("PARSE_ERROR",e,t)}function Gf(){let e=new tn;return new ce("SEARCH_ABORTED",e.message,e)}function li(e){return e instanceof Error&&e.message.trim()!==""||e!==null&&typeof e=="object"&&typeof e.message=="string"?e.message:String(e)}function XA(e){if(e===null||typeof e!="object")return!1;let t=e;return typeof t.status=="number"||typeof t.response?.status=="number"||typeof t.code=="string"&&t.code.trim()!==""}function ln(e){return e instanceof ce?e:e instanceof ye||e instanceof T?new ce("PARSE_ERROR",li(e),e):e instanceof tn||e?.name==="SearchAbortedError"?new ce("SEARCH_ABORTED",li(e),e):e instanceof Pe||e?.name==="FetchAllLimitError"?new ce("FETCH_LIMIT_EXCEEDED",li(e),e):e instanceof Error&&e.name==="ClientOperationError"&&"cause"in e?new ce("CLIENT_ERROR",e.message,e.cause):XA(e)?new ce("CLIENT_ERROR",li(e),e):new ce("EXECUTION_ERROR",li(e),e)}function ia(e,t){let n=ln(e);if(e instanceof Z){let r=t[e.statementIndex];if(r!==void 0)return eu(n,e.statementIndex,r.type)}return n}var QA=2,oa=5,ZA=3e4,eS=10*6e4+3e4,aa=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??QA;if(!Number.isSafeInteger(r)||r<1||r>oa)throw new Error(`ArgumentError: cursorMaxActive must be an integer from 1 to ${oa}.`);this.maxActive=r,this.waitTimeoutMs=n.waitTimeoutMs??ZA,this.quarantineMs=n.quarantineMs??eS}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 Ro(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>oa)throw new Error(`ArgumentError: cursorMaxActive must be an integer from 1 to ${oa}.`)}};function tS(e){let t=e;return t?.status===404&&t.code==="GAIA_CN01"}async function nS(e,t=r=>new Promise(i=>setTimeout(i,r)),n=tS){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 rS(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 Vf(e,t){let n=!1,r=!1,i=Promise.resolve(),o=null;return{totalCount:e,nextPage:()=>{if(r||n)return Promise.resolve({records:[],next:!1});let l=i.then(async()=>{if(r||n)return{records:[],next:!1};let d=await t.get();return d.next||(n=!0,t.onReleased?.()),d});return i=l.then(()=>{},()=>{}),l},close:()=>n?Promise.resolve():o||(r=!0,o=i.then(async()=>{if(!n)try{await rS(nS(t.delete,t.sleep,t.isAlreadyReleasedError),t.cleanupTimeoutMs??5e3),n=!0,t.onReleased?.()}catch(l){throw t.onReleaseUnknown?.(),l}}),o)}}function Wf(e){return Hf(e,oS(e))}function Hf(e,t,n=!1,r){let i=[];for(let o of Object.values(e)){let a=aS(o.options),s=sS(o.type,o.format),l={code:o.code,label:o.label,fieldType:o.type,optionOrder:a,sortKind:s,required:o.required,minValue:sa(o.minValue),maxValue:sa(o.maxValue),minLength:sa(o.minLength),maxLength:sa(o.maxLength),defaultValue:o.defaultValue,inSubtable:n,...r?{subtableCode:r}:{},writable:!t.has(o.code)&&!iS.has(o.type)};l.semantics=X(l),i.push(l),o.fields&&i.push(...Hf(o.fields,t,!0,o.type==="SUBTABLE"?o.code:r))}return i}var iS=new Set(["CALC","RECORD_NUMBER","CREATOR","CREATED_TIME","MODIFIER","UPDATED_TIME","STATUS","STATUS_ASSIGNEE","CATEGORY","REFERENCE_TABLE","SUBTABLE"]);function oS(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 sa(e){return e==null||e===""?void 0:e}function aS(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 sS(e,t){if(e==="NUMBER"||e==="RECORD_NUMBER")return"number";if(e==="CALC")return t==="NUMBER"||t==="NUMBER_DIGIT"?"number":"string"}function Yf(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 lS="Filter aborted because of too many search results";function jf(e){return e?.includes(lS)===!0}var qf="/k/v1/records.json",la="/k/v1/records/cursor.json",uS=4096,cS=2,tu=e=>kintone.api.url(e,!0);function pS(e){let t={app:e.app,query:e.query,...e.fields.length>0?{fields:e.fields}:{},...e.totalCount===!0?{totalCount:!0}:{}},r=kintone.api.urlForGet(qf,t,!0),i={"X-Requested-With":"XMLHttpRequest"};return new TextEncoder().encode(r).byteLength<=uS?{url:r,init:{method:"GET",credentials:"include",headers:i}}:{url:tu(qf),init:{method:"POST",credentials:"include",headers:{...i,"X-HTTP-Method-Override":"GET","Content-Type":"application/json","X-Cybozu-Request-Token":kintone.getRequestToken()},body:JSON.stringify(t)}}}function ui(e){let t=e;if(e instanceof Error&&e.message.trim()!=="")return e;if(t===null||typeof t!="object"||typeof t.message!="string"||t.message.trim()===""){let o=new Error("\u30CD\u30C3\u30C8\u30EF\u30FC\u30AF\u30A8\u30E9\u30FC: kintone \u304B\u3089\u306E\u5FDC\u7B54\u304C\u3042\u308A\u307E\u305B\u3093\uFF08\u30AA\u30D5\u30E9\u30A4\u30F3\u30FB\u901A\u4FE1\u906E\u65AD\u306E\u53EF\u80FD\u6027\uFF09");return Object.assign(o,{cause:e}),o}let n=t,r=[typeof n.code=="string"&&n.code!==""?`${n.message}\uFF08${n.code}\uFF09`:n.message];if(n.errors!==null&&typeof n.errors=="object")for(let[o,a]of Object.entries(n.errors)){let s=Array.isArray(a?.messages)?a.messages.filter(l=>typeof l=="string"):[];s.length>0&&r.push(`${o}: ${s.join(" / ")}`)}let i=new Error(r.join(`
|
|
12
|
-
`));return typeof n.code=="string"&&n.code!==""&&(i.name=n.code),typeof n.code=="string"&&Object.assign(i,{code:n.code}),typeof n.status=="number"&&Object.assign(i,{status:n.status}),Object.assign(i,{cause:e}),i}async function dS(e){try{let t=await e.json();if(t!==null&&typeof t=="object"){let r=t;return ui({code:r.code,message:r.message,errors:r.errors,status:e.status})}let n=new Error(`kintone API error: HTTP ${e.status}`);return Object.assign(n,{status:e.status,cause:t}),ui(n)}catch(t){let n=new Error(`kintone API error: HTTP ${e.status} \u306E\u5FDC\u7B54\u3092 JSON \u3068\u3057\u3066\u89E3\u6790\u3067\u304D\u307E\u305B\u3093`);return Object.assign(n,{status:e.status,cause:t}),ui(n)}}function fS(e){let t=e;return t?.code==="GAIA_CN01"&&(t.status===404||t.status===void 0)}async function un(e,t,n){try{return await kintone.api(tu(e),t,n)}catch(r){throw ui(r)}}function ES(e){if(!Number.isSafeInteger(e)||e<1||e>5)throw new Error("ArgumentError: cursorMaxActive must be an integer from 1 to 5.")}function nu(e={}){let t=e.cursorMaxActive??cS;ES(t);let n=null,r=null,i=new Set;return{async getRecords(a){try{let s=pS(a),l=await fetch(s.url,s.init);if(!l.ok)throw await dS(l);let d=await l.json();return jf(l.headers.get("X-Cybozu-Warning"))?{...d,searchAborted:!0}:d}catch(s){throw ui(s)}},async openCursor(a){let s=tu(la),l=new URL(s,globalThis.location?.href).host.toLowerCase();if(r!==null&&r!==l)throw new Error(`CursorRouteError: factory route changed from ${r} to ${l}.`);if(r=l,n??(n=new aa(l,{maxActive:t})),n.snapshot().active>=t){let R=new Error(`CursorCapacityError: host=${l} \u306E active cursor \u4E0A\u9650 ${t} \u306B\u9054\u3057\u3066\u3044\u307E\u3059\u3002`);throw R.name="CursorCapacityError",R}let d=await n.acquire(),p;try{p=await n.runCreate(()=>un(la,"POST",{app:a.app,query:a.query,size:a.size,fields:a.fields&&a.fields.length>0?a.fields:void 0}))}catch(R){throw typeof R?.code=="string"?(d.release(),R):(d.quarantine(),new mo(R))}let c=p.id,u=Vf(Number(p.totalCount),{get:()=>un(la,"GET",{id:c}),delete:()=>un(la,"DELETE",{id:c}),isAlreadyReleasedError:fS,onReleased:()=>d.release(),onReleaseUnknown:()=>d.quarantine()}),f=null,E={totalCount:u.totalCount,async nextPage(){let R=await u.nextPage();return R.next||i.delete(E),R},close(){return f||(f=u.close().finally(()=>{i.delete(E)}),f)}};return i.add(E),E},async getApps(){let s=[],l=0;for(;;){let d=await un("/k/v1/apps.json","GET",{limit:100,offset:l});for(let p of d.apps)s.push({appId:Number(p.appId),name:p.name,description:p.description});if(d.apps.length<100)break;l+=100}return s},async getFields(a){let s=await un("/k/v1/app/form/fields.json","GET",{app:a});return Wf(s.properties)},async getNumberPrecision(a){let s=await un("/k/v1/app/settings.json","GET",{app:a});return tp(s)},async getProcessStatuses(a){let s=await un("/k/v1/app/status.json","GET",{app:a,lang:"user"});return{enable:s.enable,states:Yf(s.states)}}}}var zf=new Set(["postRecords","putRecords","deleteRecords"]),ci=class extends Error{constructor(t){let n=t instanceof Error?t.message:String(t);super(n),this.name="ClientOperationError",this.cause=t,Object.setPrototypeOf(this,new.target.prototype)}};async function Ut(e){try{return await e()}catch(t){throw new ci(t)}}function RS(e){return()=>{throw Ke(`${String(e)} is blocked by the readonly client`)}}function Yn(e){let t=e.getRecords.bind(e),n=e.openCursor.bind(e),r=e.getApps.bind(e),i=e.getFields.bind(e),o=e.getNumberPrecision.bind(e),a=e.getProcessStatuses.bind(e),s=Object.assign(Object.create(null),{getRecords:async l=>{let d=await Ut(()=>t(l));if(d.searchAborted===!0)throw Gf();return d},openCursor:async l=>{let d=await Ut(()=>n(l)),p=d.nextPage.bind(d),c=d.close.bind(d);return{totalCount:d.totalCount,nextPage:()=>Ut(()=>p()),close:()=>Ut(()=>c())}},getApps:()=>Ut(()=>r()),getFields:l=>Ut(()=>i(l)),getNumberPrecision:l=>Ut(()=>o(l)),getProcessStatuses:l=>Ut(()=>a(l))});return new Proxy(s,{get(l,d,p){return zf.has(d)?RS(d):Reflect.get(l,d,p)},has(l,d){return zf.has(d)?!1:Reflect.has(l,d)}})}function mS(e){let t=new Set,n=null;return{client:{getRecords:e.getRecords.bind(e),async openCursor(i){let o=await e.openCursor.call(e,i),a=null,s={totalCount:o.totalCount,nextPage:o.nextPage.bind(o),close(){return a||(a=Promise.resolve().then(()=>o.close()).finally(()=>{t.delete(s)}),a)}};return t.add(s),s},getApps:e.getApps.bind(e),getFields:e.getFields.bind(e),getNumberPrecision:e.getNumberPrecision.bind(e),getProcessStatuses:e.getProcessStatuses.bind(e)},close(){return n||(n=(async()=>{let o=(await Promise.allSettled([...t].map(a=>a.close()))).find(a=>a.status==="rejected");if(o)throw new ci(o.reason)})(),n)}}}async function jn(e,t){let n=mS(e),r=!1;try{return await t(n.client)}catch(i){throw r=!0,i}finally{try{await n.close()}catch(i){if(!r)throw i}}}var Jf=new Set(["client","maxRecords","fetchParallel","cursorMaxActive"]),Xf=new Set([...Jf,"onLimitReached"]),yS=new Set([...Xf,"variables","tempTableMaxRows"]);function Qf(e){if(e===null||typeof e!="object"||Array.isArray(e))throw new TypeError("options must be an object")}function ua(e,t){if(!Number.isSafeInteger(e)||e<=0)throw new RangeError(`${t} must be a positive safe integer`)}function Zf(e){if(e===null||typeof e!="object")throw new TypeError("client is required");let t=e;for(let n of["getRecords","openCursor","getApps","getFields","getNumberPrecision","getProcessStatuses"])if(typeof t[n]!="function")throw new TypeError(`client.${n} must be a function`)}function hS(e){if(e===null||typeof e!="object"||Array.isArray(e))throw new TypeError("variables must be an object");for(let[t,n]of Object.entries(e))if(typeof n!="string")throw new TypeError(`variables.${t} must be a string`)}function eE(e,t,n){for(let r of Reflect.ownKeys(e))if(typeof r!="string"||!t.has(r))throw new TypeError(`Unknown ${n} option: ${String(r)}`);if(e.maxRecords!==void 0&&ua(e.maxRecords,"maxRecords"),e.fetchParallel!==void 0&&ua(e.fetchParallel,"fetchParallel"),e.cursorMaxActive!==void 0&&(ua(e.cursorMaxActive,"cursorMaxActive"),e.cursorMaxActive>5))throw new RangeError("cursorMaxActive must be between 1 and 5");if(e.onLimitReached!==void 0&&e.onLimitReached!=="error"&&e.onLimitReached!=="truncate")throw new TypeError('onLimitReached must be "error" or "truncate"');return{...e.maxRecords!==void 0?{maxRecords:e.maxRecords}:{},...e.fetchParallel!==void 0?{fetchParallel:e.fetchParallel}:{},...e.cursorMaxActive!==void 0?{cursorMaxActive:e.cursorMaxActive}:{},...e.onLimitReached!==void 0?{onLimitReached:e.onLimitReached}:{}}}function ru(e,t){Qf(e);let n=t==="run"?Xf:Jf;Zf(e.client);let r=eE(e,n,t==="run"?"runQuery":"explainQuery");return{client:e.client,executeOptions:r}}function tE(e){Qf(e),Zf(e.client),e.variables!==void 0&&hS(e.variables),e.tempTableMaxRows!==void 0&&ua(e.tempTableMaxRows,"tempTableMaxRows");let t=eE(e,yS,"runBatch");return{client:e.client,executeOptions:{...t,...e.variables!==void 0?{variables:e.variables}:{},...e.tempTableMaxRows!==void 0?{tempTableMaxRows:e.tempTableMaxRows}:{}}}}function ca(e){return{recordGetCalls:e?.getCalls??0,fetchedRows:e?.fetchedRows??0,elapsedMs:e?.elapsedMs??0,cursorRecordsScanned:e?.cursorRecordsScanned??0,limitReached:e?.limitReached??!1,limitReachedApps:e?[...e.limitReachedApps].sort((t,n)=>t-n):[]}}function gS(e){return Object.fromEntries(Object.entries(e).map(([t,n])=>[t,String(n)]))}function AS(e,t){let n=t?.get(e),r=n?.fieldType??n?.semantics?.fieldType,i=n?.semantics?.compareMode,o=n?.sortKind??(i==="number"||i==="string"?i:void 0),a=n?.publicSourceApp;return{name:e,valueType:"string",...r!==void 0?{fieldType:r}:{},...o!==void 0?{sortKind:o}:{},...a!==void 0?{sourceApp:a}:{}}}function pa(e,t=e.metrics){let n=Gd(e);return{type:"query",rows:e.rows.map(gS),columns:e.columns.map(r=>AS(r,n)),rowCount:e.rowCount,warnings:[...e.warnings??[]],...e.validateStats?{validateStats:e.validateStats}:{},metrics:ca(t)}}function nE(e,t={}){let n=new Pt(e).tokenize(),r=new Nt(n,t).parse();return $e(r),r}function rE(e,t={}){let n=new Pt(e).tokenize(),r=new Nt(n,t).parseStatements();return r.forEach($e),r}function iu(e){let t=e.type==="EXPLAIN"?e.query:e;if(t.type!=="UPDATE"&&t.type!=="INSERT"&&t.type!=="UPSERT")return!1;let n=t;return["applyBlocks","onInsertApplyBlocks","onUpdateApplyBlocks"].some(r=>Array.isArray(n[r])&&n[r].length>0)}function iE(e){if(e instanceof oe)return Hn(e.message,e);let t=ln(e);return t.code==="PARSE_ERROR"?t:Hn("SQL statement could not be parsed",e)}function SS(e){if(e.trim()==="")throw Hn("SQL statement is empty");try{return nE(e,{import:!0})}catch(t){let n=iE(t);throw n.message.includes("\u8907\u6587\u306F\u30D0\u30C3\u30C1\u5B9F\u884C API \u3092\u4F7F\u7528\u3057\u3066\u304F\u3060\u3055\u3044")?Hn("This API accepts one statement; use runBatch for multiple statements",t):n}}function oE(e){if(mi(e)==="UNKNOWN")throw Ke("Unclassifiable statement is not allowed");return e}function aE(e){if(e.trim()==="")throw Hn("SQL statement is empty");try{return rE(e,{import:!0})}catch(t){throw iE(t)}}function TS(e){let t=oE(e),n=t.type;if(n==="IMPORT")throw Ke("IMPORT is disabled by default in engine library queries");if(!dn(t))throw Ke(`${n} statements are not read-only`);if(iu(t))throw Ke("APPLY statements are not allowed in engine library queries");if(!hu(t))throw Ke(`${n} does not return rows; use runBatch for batch-scoped or non-row-returning read-only statements`)}function sE(e){let t=oE(e),n=t.type==="EXPLAIN"?t.query:t;if(n.type==="IMPORT")throw Ke("IMPORT is disabled by default in engine library batches");if(!dn(n))throw Ke(`${n.type} statements are not read-only`);if(iu(n))throw Ke("APPLY statements are not allowed in engine library batches");if(kt(n.type))throw Ke("DML VALIDATE ONLY statements are not supported by runBatch")}function lE(e){let t=SS(e);return TS(t),t}function uE(e){let t=aE(e);return t.forEach(sE),t}function cE(e){let t=e.trim(),n=aE(t);n.forEach(sE);let r=n[0],i=r.type==="EXPLAIN"?r.query:r;return n.length===1&&(i.type==="SELECT"||i.type==="WITH"||i.type==="UNION")?{statements:n,legacySql:r.type==="EXPLAIN"?t:`EXPLAIN ${t}`}:{statements:n}}function IS(e){let t=e.error,n=t?.cause!==void 0?ln(t.cause):new ce("EXECUTION_ERROR",t?.message??`Statement ${e.index} failed`);return eu(n,e.index,e.type)}async function ou(e,t){let n=[];try{let r=tE(t);n=uE(e);let i=await jn(r.client,l=>Jd(e,Yn(l),{...r.executeOptions,captureColumnMeta:!0})),o=i.statements.find(l=>l.status==="error");if(o!==void 0)throw IS(o);let a=[],s=i.statements.map(l=>{let d={index:l.index,type:l.type,status:l.status};return l.tempTable!==void 0&&(d.tempTable=l.tempTable),l.rowCount!==void 0&&(d.rowCount=l.rowCount),l.error!==void 0&&(d.error={code:l.error.code,message:l.error.message}),l.skippedReason!==void 0&&(d.skippedReason=l.skippedReason),l.status==="success"&&l.result?.type==="SELECT"&&(d.resultIndex=a.length,a.push(pa(l.result,i.metrics))),d});return{type:"batch",batch:!0,statementCount:i.statementCount,statements:s,results:a,warnings:[]}}catch(r){throw ia(r,n)}}function pE(e){if(e===null||typeof e!="object"||e.type!=="SELECT")throw new Error("Engine returned a non-SELECT result")}async function au(e,t){try{let n=ru(t,"run"),i=lE(e).type==="VALIDATE"?{...n.executeOptions,onLimitReached:"error"}:n.executeOptions,o=await jn(n.client,a=>Pl(e,Yn(a),{...i,captureColumnMeta:!0}));return pE(o),pa(o)}catch(n){throw ln(n)}}async function su(e,t){let n=[];try{let r=ru(t,"explain"),i=cE(e);if(n=i.statements,i.legacySql!==void 0){let s=await jn(r.client,d=>Pl(i.legacySql,Yn(d),r.executeOptions));pE(s);let l=s.rows.map(d=>String(d.plan??""));return{type:"explain",lines:l,text:l.join(`
|
|
13
|
-
`),metrics:ca(s.metrics)}}let o=await jn(r.client,s=>xf(e,Yn(s),void 0,"batch-explain",r.executeOptions.maxRecords,r.executeOptions.cursorMaxActive)),a=o.statements.flatMap(s=>[...o.statementCount>1?[`[${s.index+1}] ${s.type}`]:[],...s.plan]);return{type:"explain",lines:a,text:a.join(`
|
|
14
|
-
`),metrics:
|
|
11
|
+
WHERE \u3092 AND \u306E\u5B89\u5168\u306A KLIKE \u6761\u4EF6\u3078\u66F8\u304D\u63DB\u3048\u308B\u304B\u3001SELECT \u3067\u78BA\u8A8D\u3057\u305F $id IN (...) \u3092\u4F7F\u7528\u3057\u3066\u304F\u3060\u3055\u3044\u3002`;function hA(e){if(e.unappliedKlikes.length>0)throw new Error(`UnsupportedError: ${gA}`)}async function AA(e,t,n,r,i){let o=r.filter(E=>!E.inSubtable),a=new Map(o.map(E=>[E.code,E])),s=new Map(o.map(E=>[E.code,E.fieldType])),l=new Map(o.flatMap(E=>E.optionOrder?[[E.code,new Set(Object.keys(E.optionOrder))]]:[])),d=bs(e.where,{fieldTypes:s,fieldOptions:l});hA(d);let p=d.prefilter===null?"":G(d.prefilter),c=new Set(qi(e,r));for(let E of SA(e.where))c.add(E);let u=await TA(e.appId,e.where,a,t,i);return(await Ie(t.getRecords,e.appId,p,[...c],{maxRecords:n.maxRecords??1e4,parallel:n.fetchParallel??1,onLimit:"error"})).map(E=>({snapshot:E,row:dt(E,null)})).filter(({row:E})=>te(e.where,E,u.fieldTypeResolver,d.appliedKlikes,u.fieldSemanticsResolver)).map(({snapshot:E})=>E)}function SA(e){return vl(e)}async function TA(e,t,n,r,i){let s=[...IA(t)].some(p=>n.get(p)?.fieldType==="STATUS")?await Yl(e,r,i):void 0;return{fieldTypeResolver:p=>p.field==="$id"?"NUMBER":n.get(p.field)?.fieldType,fieldSemanticsResolver:p=>{if(p.field==="$id")return Pn(X({fieldType:"__ID__"}),e,"$id");let c=n.get(p.field);if(!c)return;let u=c.semantics??X(c),f=c.fieldType==="STATUS"&&s?{...u,optionOrder:s}:u;return Pn(f,e,c.code)}}}function IA(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 wA(e,t,n){let r=t.validations.flatMap(p=>p.errors),i=t.validations.reduce((p,c)=>p+(c.invalidRows>0?1:0),0),o=t.validations[0]?.columns?[...t.validations[0].columns]:[...Je(n,e.fields).payloadFields,...Sr],a=t.guards.parentRows,s=ys(t),l=s.branches[0],d={type:"VALIDATION",operation:"INSERT",validatedRows:a,validRows:a-i,invalidRows:i,errorCount:r.length,columns:o,errors:r,...e.validationErrorTable?{errTable:e.validationErrorTable}:{},apply:Qr(l),guards:Zr(l),deletedRows:{total:0,parentRows:0},diagnostic:s};return sn.set(d,ia(o,n,e.appId)),d}function bA(e,t,n){let r=t.validations,i=r.flatMap(d=>d.errors),o=r.reduce((d,p)=>d+(p.invalidRows>0?1:0),0),a=r[0]?.columns?[...r[0].columns]:[...Je(n,e.assignments.map(d=>d.field)).payloadFields,...Sr],s=wr(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:Qr(s.branches[0]),guards:Zr(s.branches[0]),deletedRows:{total:t.plans.reduce((d,p)=>d+p.tables.reduce((c,u)=>c+u.deletedRows,0),0),parentRows:t.plans.filter(d=>d.tables.some(p=>p.deletedRows>0)).length},diagnostic:s};return sn.set(l,ia(a,n,e.appId)),l}function PA(e,t,n){let r=t.create.validations.flatMap(E=>E.errors),i=t.update.validations.flatMap(E=>E.errors),o=[...r,...i].map(E=>({...E,$err_operation:"UPSERT"})),a=new Set(o.map(E=>E.$err_row)).size,s=t.create.validations[0]?.columns??t.update.validations[0]?.columns??[...Je(n,e.fields).payloadFields,...Sr],l=gs(t),d=l.branches.find(E=>E.branch==="insert"),p=l.branches.find(E=>E.branch==="update"),c=Qr(d),u=Qr(p),f={type:"VALIDATION",operation:"UPSERT",validatedRows:t.guards.parentRows,validRows:t.guards.parentRows-a,invalidRows:a,errorCount:o.length,columns:[...s],errors:o,...e.validationErrorTable?{errTable:e.validationErrorTable}:{},apply:[...c,...u],guards:{revisionRequired:t.guards.revisionRequired,parentRows:t.guards.parentRows,dmlMaxRows:t.guards.dmlMaxRows,subtableRows:t.guards.subtableRows,dmlMaxSubtableRows:t.guards.dmlMaxSubtableRows,wouldExceed:t.guards.wouldExceed},applyBranches:{create:{apply:c,guards:Zr(d)},update:{apply:u,guards:Zr(p)}},deletedRows:{total:t.update.plans.reduce((E,R)=>E+R.tables.reduce((m,g)=>m+g.deletedRows,0),0),parentRows:t.update.plans.filter(E=>E.tables.some(R=>R.deletedRows>0)).length},diagnostic:l};return sn.set(f,ia([...s],n,e.appId)),f}function Qr(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:en(t,"REMOVE")}:{field:t.field,operations:n,changedSubtableRows:0,deletedRows:0,multiValue:{fieldType:t.fieldType??"UNKNOWN",addedValues:en(t,"ADD"),removedValues:en(t,"REMOVE_VALUE"),changedValues:t.changedCount??0,postImages:t.postImages??[]}}})}function Zr(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 gt=100,Se=500;function xe(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 ia(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:X({fieldType:"RECORD_NUMBER"})});continue}let s=r.get(a);if(s){o.set(a,nt(s,n));continue}o.set(a,z(i.has(a)?"number":"string"))}return o}async function NA(e,t,n,r,i,o){let a=await Of(e,t,n,r,i,o),s=await Ae(e.appId,n,i),l=Ja(e,a,s),d=e.assignments.map(u=>u.field),p=await ee(e.appId,n,i),c=await yt(e.appId,d,p,n,i);if(on(l.flatMap(u=>u.records.map(f=>f.record)),d,p,c),r.confirm&&!await r.confirm(a.length,"UPDATE"))throw new le("UPDATE",a.length);for(let u of l)await n.putRecords(u);return{type:"UPDATE",updatedCount:a.length}}function CA(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 OA(e,t,n,r){if(await xn(e,t,r),Rt(e.where))return{type:"DELETE",deletedCount:0};if(e.subtableCode)return vA(e,t,n,r);let i=Yc(e),a=(await lo(t.getRecords,i.app,i.query,{maxRecords:n.maxRecords??1e4,parallel:n.fetchParallel??1})).ids;if(n.confirm&&!await n.confirm(a.length,"DELETE"))throw new le("DELETE",a.length);let s=jc(e.appId,a);for(let l of s)await t.deleteRecords(l);return{type:"DELETE",deletedCount:a.length}}async function LA(e,t,n,r){if(e.onInsertApplyBlocks?.length||e.onUpdateApplyBlocks?.length)return Xh(e,t,n,r);if(e.checkGroups?.length)return oi(e,t,n,r);let i=await je(e.appId,e.fields,t,r),o=await yt(e.appId,e.fields,i,t,r),a=[],s=[],l=await Ae(e.appId,t,r),d=vf(e),p=await ii(e.appId,e.keyFields,d,t,n,l);if(e.values.forEach((u,f)=>{let E={};e.fields.forEach((m,g)=>{let y=u[g];y.type==="CASE_VALUE"?E[m]={value:Lt(y.expr,{},l.get(m))}:E[m]={value:ct(y,l.get(m))}});let R=ri(p,d[f]);R!==void 0?s.push({id:R,record:E}):a.push(E)}),on([...a,...s.map(u=>u.record)],e.fields,i,o),n.confirm&&a.length+s.length>0){let u=a.length+s.length;if(!await n.confirm(u,"UPDATE"))throw new le("UPDATE",u)}let c=[];for(let u=0;u<a.length;u+=100){let f=await t.postRecords({app:e.appId,records:a.slice(u,u+100)});c.push(f.ids)}for(let u=0;u<s.length;u+=100)await t.putRecords({app:e.appId,records:s.slice(u,u+100)});return{type:"UPSERT",insertedCount:c.flat().length,updatedCount:s.length}}function vf(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"?H(i):i.type==="CASE_VALUE"?ve(i.expr,{}):i.elements.map(o=>o.value).join(",")}))}async function Ql(e,t,n,r){if(t.length===0)return;let i=await Ae(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 _A(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 Ie(t.getRecords,e.appId,"",[],{maxRecords:n.maxRecords??1e4,parallel:n.fetchParallel??1}),s=oa(a),l=new Map;for(let p of e.values){let c=Vd(p[o]);if(!s.get(c))throw new Error(`_pid=${c} \u306E\u89AA\u30EC\u30B3\u30FC\u30C9\u304C\u898B\u3064\u304B\u308A\u307E\u305B\u3093`);let f={value:{}};e.fields.forEach((R,m)=>{if(R!=="_pid"){if(R.startsWith("_"))throw new Error(`\u30B5\u30D6\u30C6\u30FC\u30D6\u30EB INSERT \u3067\u30B7\u30B9\u30C6\u30E0\u5217\u300C${R}\u300D\u306F\u6307\u5B9A\u3067\u304D\u307E\u305B\u3093`);f.value[R]={value:Vd(p[m])}}});let E=l.get(c);E?E.push(f):l.set(c,[f])}let d=[];for(let[p,c]of l.entries()){let u=s.get(p),E=[...ai(u,i),...c];d.push(Uf(e.appId,p,si(u),i,E))}for(let p of d)await t.putRecords(p);return{type:"INSERT",createdIds:[],insertedCount:e.values.length}}async function DA(e,t,n,r){let i=e.subtableCode;if(!Hr(e.where))throw new Error("\u30B5\u30D6\u30C6\u30FC\u30D6\u30EB UPDATE \u306B\u306F _rid \u6761\u4EF6\u304C\u5FC5\u9808\u3067\u3059");let o=[];Et(e.where,o);for(let u of e.assignments)u.value.type==="CASE_VALUE"&&Wo(u.value.expr,o);let a=await Ql(e.appId,o,t,r),s=await Ie(t.getRecords,e.appId,"",[],{maxRecords:n.maxRecords??1e4,parallel:n.fetchParallel??1}),d=Zl(s,i).filter(u=>te(e.where,u.flat,a));if(n.confirm&&!await n.confirm(d.length,"UPDATE"))throw new le("UPDATE",d.length);let p=new Map;for(let u of d){if(!u.rowId)throw new Error("\u30B5\u30D6\u30C6\u30FC\u30D6\u30EB UPDATE \u5BFE\u8C61\u306B id \u672A\u63A1\u756A\u306E\u884C\u304C\u542B\u307E\u308C\u3066\u3044\u307E\u3059");let f=p.get(u.parentId);f||(f=new Map,p.set(u.parentId,f));let E={};for(let R of e.assignments){if(R.field.startsWith("_"))throw new Error(`\u30B5\u30D6\u30C6\u30FC\u30D6\u30EB UPDATE \u3067\u30B7\u30B9\u30C6\u30E0\u5217\u300C${R.field}\u300D\u306F\u66F4\u65B0\u3067\u304D\u307E\u305B\u3093`);E[R.field]={value:zi(R.value,u.flat,a)}}f.set(u.rowId,E)}let c=oa(s);for(let[u,f]of p.entries()){let E=c.get(u);if(!E)continue;let m=ai(E,i).map(g=>{let y=g.id??"";if(!y)return g;let h=f.get(y);return h?{id:y,value:h}:{id:y}});await t.putRecords(UA(e.appId,u,si(E),i,m))}return{type:"UPDATE",updatedCount:d.length}}async function vA(e,t,n,r){let i=e.subtableCode;if(!Hr(e.where))throw new Error("\u30B5\u30D6\u30C6\u30FC\u30D6\u30EB DELETE \u306B\u306F _rid \u6761\u4EF6\u304C\u5FC5\u9808\u3067\u3059");let o=[];Et(e.where,o);let a=await Ql(e.appId,o,t,r),s=await Ie(t.getRecords,e.appId,"",[],{maxRecords:n.maxRecords??1e4,parallel:n.fetchParallel??1}),d=Zl(s,i).filter(u=>te(e.where,u.flat,a));if(n.confirm&&!await n.confirm(d.length,"DELETE"))throw new le("DELETE",d.length);let p=new Map;for(let u of d){let f=p.get(u.parentId);f?f.push(u.rowIndex):p.set(u.parentId,[u.rowIndex])}let c=oa(s);for(let[u,f]of p.entries()){let E=c.get(u);if(!E)continue;let R=ai(E,i),m=new Set(f),g=R.filter((y,h)=>!m.has(h));await t.putRecords(Uf(e.appId,u,si(E),i,g))}return{type:"DELETE",deletedCount:d.length}}function oa(e){let t=new Map;for(let n of e){let r=String(n.$id?.value??"");r&&t.set(r,n)}return t}function Zl(e,t){let n=[];for(let r of e){let i=String(r.$id?.value??""),o=si(r),a=ai(r,t);for(let s=0;s<a.length;s++){let l=a[s],d={...Ji(l,s),_pid:i};for(let[p,c]of Object.entries(r))p!==t&&(d[`_p.${p}`]=wl(c?.value));n.push({parent:r,parentId:i,parentRevision:o,rowIndex:s,rowId:l.id??"",row:l,flat:d})}}return n}function ai(e,t){let n=e[t]?.value;return Array.isArray(n)?n:[]}function si(e){let t=Number(e.$revision?.value??0);return Number.isFinite(t)?t:0}function Uf(e,t,n,r,i){return{app:e,records:[{id:Number(t),revision:n,record:{[r]:{value:i}}}]}}function UA(e,t,n,r,i){return{app:e,records:[{id:Number(t),revision:n,record:{[r]:{value:i}}}]}}function kA(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 Vd(e){return e.type==="STRING"?e.value:e.type==="NUMBER"?H(e):e.type==="CASE_VALUE"?ve(e.expr,{}):e.elements.map(t=>t.value).join(",")}function wl(e){if(e==null)return"";if(typeof e=="string")return e;if(typeof e=="number"||typeof e=="boolean")return String(e);try{return JSON.stringify(e)}catch{return String(e)}}function Hr(e){switch(e.type){case"BINARY":return e.left.type==="FIELD"&&e.left.tableAlias===null&&e.left.field==="_rid";case"LOGICAL":return Hr(e.left)||Hr(e.right);case"NOT":case"GROUP":return Hr(e.expr);default:return!1}}async function MA(e,t,n,r){let i=[];Et(e.where,i);let o=await Ql(e.appId,i,t,r),a=await ee(e.appId,t,r);if(Rt(e.where))return{type:"REORDER",reorderedParentCount:0};let s=new Map(a.map(f=>[f.code,f.semantics??X(f)])),l=f=>{if(f.field==="_idx"||f.field==="_pid"||f.field==="_rid")return B("number");let E=f.field.startsWith("_p.")?f.field.slice(3):f.field;return s.get(E)??B("string")},d=await Ie(t.getRecords,e.appId,"",[],{maxRecords:n.maxRecords??1e4,parallel:n.fetchParallel??1}),p=Zl(d,e.subtableCode),c=e.all?new Set(d.map(f=>String(f.$id?.value??"")).filter(f=>f!=="")):new Set(p.filter(f=>e.where&&te(e.where,f.flat,o,void 0,l)).map(f=>f.parentId));if(n.confirm&&!await n.confirm(c.size,"UPDATE"))throw new le("UPDATE",c.size);let u=oa(d);for(let f of c){let E=u.get(f);if(!E)continue;let m=ai(E,e.subtableCode).map((y,h)=>({row:y,i:h,flat:FA(E,e.subtableCode,y,h)}));m.sort((y,h)=>xA(y.flat,h.flat,e.by,l));let g=m.map(y=>y.row.id??"");await t.putRecords(kA(e.appId,f,si(E),e.subtableCode,g))}return{type:"REORDER",reorderedParentCount:c.size}}function FA(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}`]=wl(a?.value));for(let[o,a]of Object.entries(n.value??{}))i[o]=wl(a?.value);return i}function xA(e,t,n,r){for(let i of n){let o=Wd(i.key,e),a=Wd(i.key,t),s=i.key.type==="FIELD_NAME"?r(Ye(i.key.name)):i.key.type==="ARITH_KEY"?B("number"):i.key.type==="FUNC_KEY"?nn(i.key.expr).semantics??B("string"):B("number"),l=$t(o,a,s??B("string"));if(l!==0)return i.direction==="ASC"?l:-l}return 0}function Wd(e,t){switch(e.type){case"FIELD_NAME":return t[e.name]??"";case"ARITH_KEY":return String(ae(e.expr,t));case"FUNC_KEY":return se(e.expr,t);case"GROUPING_KEY":throw new Error("ArgumentError: GROUPING() is not supported in REORDER BY.")}}async function eu(e,t,n,r,i){if(e.checkGroups?.length)return oi(e,t,n,r,i);let o=await je(e.appId,e.fields,t,r),a=await yt(e.appId,e.fields,o,t,r),s=await Jl.materialize(e,t,n,r,i,o),{rows:l,columns:d}=s;if(_f(s),d.length!==e.fields.length){let g=d.length===0&&l.length===0?"\u3002\u7D50\u679C\u304C 0 \u884C\u306E\u305F\u3081\u5217\u3092\u7279\u5B9A\u3067\u304D\u307E\u305B\u3093\u3067\u3057\u305F\uFF08SELECT * \u3092\u7A7A\u30BD\u30FC\u30B9\u306B\u4F7F\u3046\u3068\u5217\u3092\u6C7A\u5B9A\u3067\u304D\u307E\u305B\u3093\u3002\u660E\u793A\u5217\u3067\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044\uFF09":"";throw new Error(`SELECT \u306E\u5217\u6570\uFF08${d.length}\uFF09\u3068 UPSERT \u306E\u30D5\u30A3\u30FC\u30EB\u30C9\u6570\uFF08${e.fields.length}\uFF09\u304C\u4E00\u81F4\u3057\u307E\u305B\u3093${g}`)}for(let g of e.keyFields)if(!e.fields.includes(g))throw new Error(`ON DUPLICATE \u306E\u30AD\u30FC\u300C${g}\u300D\u304C UPSERT \u30D5\u30A3\u30FC\u30EB\u30C9\u306B\u542B\u307E\u308C\u3066\u3044\u307E\u305B\u3093`);let p=[],c=[],u=await Ae(e.appId,t,r),f=l.map((g,y)=>{let h={};return e.fields.forEach((S,w)=>{if(s.importPresence&&!s.importPresence[y]?.has(S))return;let I=g[d[w]]??"";h[S]={value:Pf(I,u.get(S))}}),h});f.forEach(g=>on([g],e.fields.filter(y=>y in g),o,a));let E=f.map(g=>e.keyFields.map(y=>String(g[y]?.value??"")));if(Xo.has(e)){let g=e.keyFields.map(h=>u.get(h)==="NUMBER"),y=new Set;for(let h of E){let S=rn(h,g);if(y.has(S))throw new Error("ERR_KEY_DUP_SOURCE: UPSERT \u30BD\u30FC\u30B9\u5185\u3067\u30AD\u30FC\u304C\u91CD\u8907\u3057\u3066\u3044\u307E\u3059");y.add(S)}}let R=await ii(e.appId,e.keyFields,E,t,n,u);if(f.forEach((g,y)=>{let h=ri(R,E[y]);h!==void 0?c.push({id:h,record:g}):p.push(g)}),n.confirm&&p.length+c.length>0){let g=p.length+c.length;if(!await n.confirm(g,"UPDATE"))throw new le("UPDATE",g)}let m=[];for(let g=0;g<p.length;g+=100){let y=await t.postRecords({app:e.appId,records:p.slice(g,g+100)});m.push(y.ids)}for(let g=0;g<c.length;g+=100)await t.putRecords({app:e.appId,records:c.slice(g,g+100)});return{type:"UPSERT",insertedCount:m.flat().length,updatedCount:c.length}}async function kf(e){let t=await e.getApps(),n=["\u30A2\u30D7\u30EAID","\u30A2\u30D7\u30EA\u540D","\u8AAC\u660E"],r=t.map(i=>({\u30A2\u30D7\u30EAID:String(i.appId),\u30A2\u30D7\u30EA\u540D:i.name,\u8AAC\u660E:i.description}));return{type:"SELECT",rows:r,columns:n,rowCount:r.length}}async function Mf(e,t,n){let r=await ee(e.appId,t,n),i=["\u30D5\u30A3\u30FC\u30EB\u30C9\u30B3\u30FC\u30C9","\u30E9\u30D9\u30EB","\u30BF\u30A4\u30D7"],o=r.map(a=>({\u30D5\u30A3\u30FC\u30EB\u30C9\u30B3\u30FC\u30C9:a.code,\u30E9\u30D9\u30EB:a.label,\u30BF\u30A4\u30D7:a.fieldType}));return{type:"SELECT",rows:o,columns:i,rowCount:o.length}}function KA(e,t=!1){try{let n=new Pt(e).tokenize(),r=new Nt(n,{import:t}).parse();return mn("phase15b",r),$e(r),r}catch(n){throw n instanceof ye||n instanceof T,n}}async function ei(e,t,n,r,i){let o=[];Bo(e,t,n,r,o,i),await Promise.all(o)}async function Ff(e,t,n,r,i){let o=[];for(let a of e.columns)if(a.type==="CASE_COL")for(let s of a.expr.branches)o.push(ei(s.condition,t,n,r,i));await Promise.all(o)}function Yr(e,t,n,r,i){return i!==void 0&&i.size>0?mt(e,t,n,i,r):vt(e,t,n,r)}function Bo(e,t,n,r,i,o){if(e!==null)switch(e.type){case"BINARY":{let a=e.right;a.type==="SUBQUERY_IN_LIST"&&i.push(Yr(a.query,t,n,r,o).then(s=>{let l=a.column??s.columns[0]??"";a.resolved=new Set(s.rows.map(d=>d[l]??""))})),a.type==="SCALAR_SUBQUERY"&&i.push(Yr(a.query,t,n,r,o).then(s=>{if(s.rowCount===0)throw new Error("\u30B9\u30AB\u30E9\u30FC\u30B5\u30D6\u30AF\u30A8\u30EA\u304C\u5024\u3092\u8FD4\u3057\u307E\u305B\u3093\u3067\u3057\u305F");if(s.rowCount>1)throw new Error("\u30B9\u30AB\u30E9\u30FC\u30B5\u30D6\u30AF\u30A8\u30EA\u304C\u8907\u6570\u884C\u3092\u8FD4\u3057\u307E\u3057\u305F\uFF081\u884C\u306E\u307F\u8A31\u53EF\uFF09");let l=s.columns[0]??"";a.resolved=s.rows[0]?.[l]??""}));break}case"LOGICAL":Bo(e.left,t,n,r,i,o),Bo(e.right,t,n,r,i,o);break;case"NOT":case"GROUP":Bo(e.expr,t,n,r,i,o);break;case"EXISTS":{let a=e;i.push(Yr(a.query,t,n,r,o).then(s=>{a.resolved=s.rowCount>0}));break}case"BOOLEAN":break}}async function xf(e,t,n,r){for(let i of e){if(i.value.type!=="SCALAR_SUBQUERY")continue;let o=await vt(i.value.query,t,n,r);if(o.rowCount===0)throw new Error(`SET \u30B5\u30D6\u30AF\u30A8\u30EA\u304C\u5024\u3092\u8FD4\u3057\u307E\u305B\u3093\u3067\u3057\u305F\uFF08\u30D5\u30A3\u30FC\u30EB\u30C9: ${i.field}\uFF09`);if(o.rowCount>1)throw new Error(`SET \u30B5\u30D6\u30AF\u30A8\u30EA\u304C\u8907\u6570\u884C\u3092\u8FD4\u3057\u307E\u3057\u305F\uFF08\u30D5\u30A3\u30FC\u30EB\u30C9: ${i.field}\uFF09`);let a=o.columns[0]??"",s=o.rows[0]?.[a]??"";i.value={type:"STRING",value:s}}}async function Kf(e,t,n,r,i){let o=new Map,a=[];for(let d=0;d<e.length;d++){let p=e[d];if(p.type!=="SCALAR_SUBQUERY_COL")continue;let c=JSON.stringify(p.query),u=o.get(c);u||(u=Yr(p.query,t,n,r,i).then(f=>{if(f.rowCount===0)throw new Error("\u30B9\u30AB\u30E9\u30FC\u30B5\u30D6\u30AF\u30A8\u30EA\u304C\u5024\u3092\u8FD4\u3057\u307E\u305B\u3093\u3067\u3057\u305F");if(f.rowCount>1)throw new Error("\u30B9\u30AB\u30E9\u30FC\u30B5\u30D6\u30AF\u30A8\u30EA\u304C\u8907\u6570\u884C\u3092\u8FD4\u3057\u307E\u3057\u305F\uFF081\u884C\u306E\u307F\u8A31\u53EF\uFF09");let E=f.columns[0]??"";return f.rows[0]?.[E]??""}),o.set(c,u)),a.push([d,u])}let s=await Promise.all(a.map(([,d])=>d)),l=new Map;return a.forEach(([d],p)=>l.set(d,s[p])),l}var Bf=new WeakMap,$f=new WeakMap,Gf=new WeakMap;async function Vf(e,t,n,r=1e4,i){let o=new Set,a=new Set,s=new Set,l={...t,getFields:async m=>(o.add(m),t.getFields(m)),getProcessStatuses:async m=>(a.add(m),t.getProcessStatuses(m)),getNumberPrecision:async m=>(s.add(m),t.getNumberPrecision(m))},d=new Map,p=new Map,c=new Map,u=new Set,f=i??await ni(e,l,n),E=m=>f.nodes.find(g=>g.source===m||JSON.stringify(g.source)===JSON.stringify(m)),R=async m=>{if(m===null||typeof m!="object"||u.has(m))return;if(u.add(m),Array.isArray(m)){await Promise.all(m.map(R));return}let g=m;if(g.type==="SELECT"){let y=m;await Qo(y,l,n);let h=[y.from,...y.joins.map(P=>P.table)].some(P=>P.cteName!==null);if(ne(y).type==="PLAIN"&&!h){let P=await kl(y,l,n);P&&c.set(y,P)}let S=[y.from,...y.joins.map(P=>P.table)].filter(P=>P.cteName===null).map(P=>P.appId);(Ze(y.where)||y.orderBy.length>0||y.columns.some(P=>P.type==="WINDOW_COL"&&P.orderBy.length>0))&&S.forEach(P=>o.add(P));let I=await zr(y,l,n),L=E(y);if(I.capability==="UNSUPPORTED"&&!L)throw new Error(`ArgumentError: WHERE predicate is unsupported (${Zt(I)}).`);d.set(y,I);let v=xl.get(y)??Zo(y,await ea(y,l,n));if(v&&Bf.set(y,v),y.orderBy.length>0||y.columns.some(P=>P.type==="WINDOW_COL"&&P.orderBy.length>0)){let P=await Jr(y,l,n);if(y.orderMode!=="KINTONE_NATIVE")for(let D of P.semantics.values())D.fieldType==="STATUS"&&D.source&&a.add(D.source.appId);if(Go(y)&&!h&&L?.allowed!==!1){let D=I.capability==="EXACT_PUSHDOWN"?_e(y):"FULL_SCAN";p.set(y,(y.orderMode==="KINTONE_NATIVE"?Dr:_r)({stmt:y,staticMode:D,whereCapability:I.capability,whereReasons:I.reasons,orderSemantics:P.semantics,maxRecords:r,hasKlike:pe(y.where)}))}}}else if(g.type==="VALIDATE"){let y=m;o.add(y.appId);let h=await ee(y.appId,l,n),S=new Map(h.filter(A=>!A.inSubtable).map(A=>[A.code,A])),w=new Set(h.filter(A=>A.inSubtable).map(A=>A.code)),I=fs(y,h),L=Nn(y.checkGroups??[]),b=vl(y.where);for(let A of L){if(A.field!=="$id"&&!S.has(A.field)&&!w.has(A.field))throw fe(`CHECK \u306E\u30D5\u30A3\u30FC\u30EB\u30C9 ${A.field} \u306F APP${y.appId} \u306B\u5B58\u5728\u3057\u307E\u305B\u3093`);if(A.field!=="$id"&&!S.has(A.field)&&w.has(A.field))throw new Error(`ArgumentError: VALIDATE \u306E CHECK \u3067\u306F\u30B5\u30D6\u30C6\u30FC\u30D6\u30EB\u5B50\u30D5\u30A3\u30FC\u30EB\u30C9 ${A.field} \u3092\u53C2\u7167\u3067\u304D\u307E\u305B\u3093\u3002`)}for(let A of b){if(A!=="$id"&&!S.has(A)&&!w.has(A))throw new Error(`ArgumentError: WHERE field ${A} does not exist in APP${y.appId}.`);if(A!=="$id"&&!S.has(A)&&w.has(A))throw new Error(`ArgumentError: VALIDATE \u306E WHERE \u3067\u306F\u30B5\u30D6\u30C6\u30FC\u30D6\u30EB\u5B50\u30D5\u30A3\u30FC\u30EB\u30C9 ${A} \u3092\u53C2\u7167\u3067\u304D\u307E\u305B\u3093\u3002`)}let v=new Map([...S].map(([A,C])=>[A,C.fieldType]));v.set("$id","RECORD_NUMBER"),an(y,v);let P=Ce(y.where,A=>A.field==="$id"?X({fieldType:"__ID__"}):S.get(A.field)?.semantics??(S.has(A.field)?X(S.get(A.field)):void 0));if(P.capability==="UNSUPPORTED")throw new Error(`ArgumentError: WHERE predicate is unsupported (${Zt(P)}).`);let D=new Map([...S].map(([A,C])=>[A,C.fieldType])),M=new Map([...S.values()].flatMap(A=>A.optionOrder?[[A.code,new Set(Object.keys(A.optionOrder))]]:[])),N=y.where===null?null:P.capability==="EXACT_PUSHDOWN"?y.where:An(y.where,{allowUnqualifiedFields:!0,fieldTypes:D,fieldOptions:M,allowKlike:!1}),_=I.some(A=>A.field.fieldType==="NUMBER");_&&(s.add(y.appId),await ot(y.appId,l,n)),$f.set(y,{targetFields:I.map(A=>A.subtableCode?`${A.subtableCode}(${A.field.code})`:A.field.code),fetchFields:[...new Set(["$id",...I.map(A=>A.subtableCode??A.field.code),...b,...L.map(A=>A.field)])],subtables:new Map([...new Set(I.flatMap(A=>A.subtableCode?[A.subtableCode]:[]))].map(A=>[A,I.filter(C=>C.subtableCode===A).length])),capability:P,prefilter:N,numberPrecision:_})}else if(g.type==="UPDATE"||g.type==="DELETE"){if(o.add(m.appId),g.type==="UPDATE"&&m.applyBlocks?.length){let h=m,S=await ee(h.appId,l,n);if(pt(h,S),zo(h)){let w=S.filter(L=>!L.inSubtable),I=bs(h.where,{fieldTypes:new Map(w.map(L=>[L.code,L.fieldType])),fieldOptions:new Map(w.flatMap(L=>L.optionOrder?[[L.code,new Set(Object.keys(L.optionOrder))]]:[]))});Gf.set(h,I)}}let y=m;(y.type!=="UPDATE"||!zo(y))&&E(y)?.allowed!==!1&&await xn(y,l,n)}await Promise.all(Object.values(g).map(R))};if(await R(e),typeof e=="object"&&e!==null&&e.type==="WITH"&&It(e)){let m=wt(e),g=await zr(m,l,n),y=E(m);if(g.capability==="UNSUPPORTED"&&!y)throw new Error(`ArgumentError: WHERE predicate is unsupported (${Zt(g)}).`);if(d.set(m,g),Go(m)&&y?.allowed!==!1){let h=await Jr(m,l,n);p.set(m,(m.orderMode==="KINTONE_NATIVE"?Dr:_r)({stmt:m,staticMode:g.capability==="EXACT_PUSHDOWN"?_e(m):"FULL_SCAN",whereCapability:g.capability,whereReasons:g.reasons,orderSemantics:h.semantics,maxRecords:r,hasKlike:pe(m.where)}))}}return{capabilities:d,orderPlans:p,plainGroupByPlans:c,fieldApps:o,processStatusApps:a,numberPrecisionApps:s,relativeDatePlan:f}}function bl(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 BA(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 Hd(e){return e==="<>"?"!=":e}function We(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(We).join(", ")})`;case"FUNC_FIELD":case"ARITH_FIELD":case"CASE_FIELD":case"ARITH_VALUE":case"CASE_VALUE":return We(t.expr);case"GROUPING_FIELD":return`GROUPING(${We(t.ref)})`;case"GROUPING_REF":return We(t.field);case"ARITH":case"SCALAR_ARITH":case"CONCAT_OP":return`(${We(t.left)} ${typeof t.op=="string"?t.op:t.type==="CONCAT_OP"?"||":"<op>"} ${We(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(We).join(", ")})`:"<expr>";case"ARRAY":return Array.isArray(t.elements)?`[${t.elements.map(We).join(", ")}]`:"<expr>";case"CASE":case"CASE_WHEN":return"CASE ... END";default:return"<expr>"}}function Xt(e){try{let t=e;switch(t.type){case"BINARY":return`${We(t.left)} ${BA(t.op)} ${We(t.right)}`;case"NULL_CHECK":return`${We(t.field)} IS ${t.not===!0?"NOT ":""}NULL`;case"LOGICAL":return`(${Xt(t.left)} ${t.op==="AND"||t.op==="OR"?t.op:"<op>"} ${Xt(t.right)})`;case"NOT":return`NOT (${Xt(t.expr)})`;case"GROUP":return`(${Xt(t.expr)})`;case"BOOLEAN":return t.value===!0?"TRUE":t.value===!1?"FALSE":"<expr>";default:return"<expr>"}}catch{return"<expr>"}}function Pl(e){if(!e.hasServerOnlyWhereFunction)return[];if(!e.allowed&&e.rejection){let n=J(e.rejection.functionName)?"relative date function":"kintone function",r=e.nodes[e.nodes.length-1],i=r?.capability?.reasons.find(a=>a.functionName===e.rejection.functionName),o=r?$A(r.source,e.rejection.functionName):null;return[` ${n}: ${e.rejection.functionName}`," plan status: rejected",` target alias / field: ${o?.alias??"(unknown)"} / ${i?.field??o?.field??"(unknown)"}`,` reason: ${e.rejection.reasonCodes.join(", ")}`," client evaluation: forbidden"," records/cursor/mutation API during EXPLAIN: none"]}let t=[];for(let n of e.nodes){let r=n.joinServerFunctionPlan;if(n.allowed&&n.allowForm==="JOIN_SERVER_FUNCTION_EXACT"&&r){let a=n.joinServerFunctionVariant==="WHOLE_WHERE_EXACT"?"whole-WHERE":"leaf";t.push(` allow form: JOIN_SERVER_FUNCTION_EXACT (${a})`);for(let s of r.serverFunctionConsumptions)for(let l of s.functionLeaves){let d=il(l),p=l.left.type==="FIELD"?l.left.field:"(unknown)";t.push(` ${rl(d)}: ${d}`,` ${ol(d)}: kintone server exact JOIN prefilter`,` target alias / APP: ${s.targetAlias} / APP${s.appId}`,` field: ${p}`,` function leaf relation: ${s.relation}`,` consumption: ${s.consumption}`)}t.push(` client residual: ${r.residualWhere===null?"(none)":Xt(r.residualWhere)}`),r.adoptedServerFunctionOccurrences.some(J)&&t.push(" relative date client evaluations: 0"),r.adoptedServerFunctionOccurrences.some(s=>!J(s))&&t.push(" kintone function client evaluations: 0");continue}let i=n.fullScanExactPlan;if(n.allowed&&n.allowForm==="FULL_SCAN_EXACT"&&i){for(let s of i.prefilterPlan.exactRelativeLeaves){let l=il(s),d=s.left.type==="FIELD"?s.left.field:void 0,p=Hd(s.op),c=n.capability?.reasons.find(u=>u.functionName===l&&(d===void 0||u.field===d)&&u.operator===p);t.push(` ${rl(l)}: ${l}`,` ${ol(l)}: kintone server whole-WHERE exact`,` field: ${c?.field??d??"(unknown)"} (${c?.fieldType??"unknown"})`,` operator: ${c?.operator??p}`)}let a=i.serializedWholeWhere;t.push(" where capability: EXACT_PUSHDOWN",` server predicate: ${a}`," client residual: (none)",` ${Yd(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=il(s),d=s.left.type==="FIELD"?s.left.field:void 0,p=Hd(s.op),c=n.capability?.reasons.find(u=>u.functionName===l&&(d===void 0||u.field===d)&&u.operator===p);t.push(` ${rl(l)}: ${l}`,` ${ol(l)}: kintone server exact prefilter`,` field: ${c?.field??d??"(unknown)"} (${c?.fieldType??"unknown"})`,` operator: ${c?.operator??p}`)}let a=G(o.prefilterWhere);t.push(" where capability: SUPERSET_PREFILTER",` server prefilter: ${a}`,` client residual: ${Xt(o.residualWhere)}`,` ${Yd(o.exactRelativeLeaves)}: 0`,` kintone query: ${a}`);continue}for(let a of n.functionNames){let s=n.capability?.reasons.find(l=>l.functionName===a);if(!J(a)){t.push(` kintone function: ${a}`," kintone function evaluation: kintone server",` field: ${s?.field??"(unknown)"} (${s?.fieldType??"unknown"})`,` operator: ${s?.operator??"(unknown)"}`,` where capability: ${n.capability?.capability??"(unknown)"}`," client residual: (none)"," kintone function client evaluations: 0",` kintone query: ${n.restQuery||"(\u306A\u3057)"}`);continue}t.push(` relative date function: ${a}`," evaluation: kintone server",` field: ${s?.field??"(unknown)"} (${s?.fieldType??"unknown"})`,` operator: ${s?.operator??"(unknown)"}`,` where capability: ${n.capability?.capability??"(unknown)"}`," client evaluation: forbidden",` kintone query: ${n.restQuery||"(\u306A\u3057)"}`)}}return t}function $A(e,t){let n="where"in e?e.where:null,r=null,i=o=>{if(r||o===null||typeof o!="object")return;if(Array.isArray(o)){o.forEach(i);return}let a=o;if(a.type==="BINARY"){let s=a.left,l=a.right,d=l?.type==="KINTONE_FUNC"&&l.name===t,p=l?.type==="IN_LIST"&&Array.isArray(l.values)&&l.values.some(c=>c!==null&&typeof c=="object"&&c.type==="KINTONE_FUNC"&&c.name===t);if((d||p)&&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 rl(e){return J(e)?"relative date function":"kintone function"}function il(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 ol(e){return J(e)?"relative date evaluation":"kintone function evaluation"}function Yd(e){return e.every(t=>t.right.type==="KINTONE_FUNC"&&J(t.right.name))?"relative date client evaluations":"kintone function client evaluations"}async function Wf(e,t,n,r="batch-explain",i=1e4,o=2,a=!1,s=100,l=Se){let d=Nl(r);try{let p=rf(e,a),c=Ma(p);hs(p,n);let u=new Map,f=[];for(let E=0;E<p.length;E++){let R=p[E],m=R.type==="SET_VARIABLE"?R.expr.type==="SCALAR_SUBQUERY"?{...R,expr:$o(R.expr,u)}:R:$o(R,u);$e(m);let g=await ni(m,t,d),y=await Vf(m,t,d,i,g),h=g.hasServerOnlyWhereFunction&&!g.allowed?Pl(g):[...Pl(g),...Hf(GA(m,c.statements[E],y.capabilities,y.orderPlans,s,l),o)],S=bl(y);f.push({index:E,type:c.statements[E].statementType,plan:h.length===0?S:[h[0],...S,...h.slice(1)]}),(R.type==="SET_VARIABLE"||R.type==="DECLARE_VARIABLE")&&u.set(R.name,R.type==="SET_VARIABLE"&&R.expr.type==="ARRAY"?{type:"array",elements:R.expr.elements.map(w=>({type:"string",value:w.value}))}:{type:"string",value:`@${R.name}`,placeholder:!0})}return{statementCount:p.length,statements:f}}finally{Hl(d)}}function GA(e,t,n,r,i=100,o=Se){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",` rows: \u5B9F\u4F53\u5316\u524D\u306E\u305F\u3081\u4E0D\u660E\uFF08\u65E2\u5B9A\u4E0A\u9650 ${Fe} \u884C\u3001tempTableMaxRows \u3067\u5909\u66F4\u53EF\u3001\u8D85\u904E\u306F\u30A8\u30E9\u30FC\uFF09`,...$r(e.query,t,n,r).map(a=>` ${a}`)];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 a=qo(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:",...$r(e.expr.query,a,n,r).map(s=>` ${s}`)]}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[`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 $r(e.query,t,n,r);if(e.type==="ASSERT"){let a=[`ASSERT ${e.text}`," 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"],s=[e.left,e.right,e.low,e.high].filter(l=>l!==null&&l.type==="SCALAR_SUBQUERY");return s.forEach((l,d)=>{a.push(s.length>1?` subquery[${d+1}]:`:" subquery:");let p=qo(l.query)?t:{...t,tempTablesReferenced:[]};a.push(...$r(l.query,p,n,r).map(c=>` ${c}`))}),a}return e.type==="UPDATE"&&(e.applyBlocks?.length??0)>0?aa(e,void 0,n,r,i,o):$r(e,t,n,r)}function qo(e){if(Array.isArray(e))return e.some(qo);if(e!==null&&typeof e=="object"){let t=e,n=t.cteName;return typeof n=="string"&&n.startsWith("#")?!0:Object.values(t).some(qo)}return!1}function $r(e,t,n,r){if(t.tempTablesReferenced.length===0)return aa(e,void 0,n,r);let i=[];e.type==="INSERT_SELECT"?i.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"&&i.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`),i.push(" mode: FULL_SCAN\uFF08\u4E00\u6642\u30C6\u30FC\u30D6\u30EB\u53C2\u7167\uFF09"),i.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 o=t.appIds.filter(a=>e.type!=="INSERT_SELECT"&&e.type!=="UPSERT_SELECT"||a!==e.appId);return o.length>0&&i.push(` app: ${o.map(a=>`APP${a}`).join(", ")}`),i.push(" note: \u4E00\u6642\u30C6\u30FC\u30D6\u30EB\u3078\u306E WHERE \u30D7\u30C3\u30B7\u30E5\u30C0\u30A6\u30F3\u306F\u884C\u308F\u308C\u306A\u3044"),i}async function VA(e,t,n,r,i,o=100,a=Se,s){let l=s??await ni(e.query,t,n),d=await Vf(e.query,t,n,r,l),p=Pl(l),c=l.hasServerOnlyWhereFunction&&!l.allowed?[...bl(d),...p]:[...bl(d),...p,...Hf(aa(e.query,void 0,d.capabilities,d.orderPlans,o,a,r,d.plainGroupByPlans),i)];return{type:"SELECT",columns:["plan"],rows:c.map(u=>({plan:u})),rowCount:c.length}}function Hf(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 aa(e,t,n,r,i=100,o=Se,a=1e4,s){if(e.type==="UNION")return HA(e,n,r,s);if(e.type==="WITH")return YA(e,n,r,s);if(e.type==="INSERT")return qA(e,t,i,o);if(e.type==="INSERT_SELECT")return JA(e,t,n,r,s);if(e.type==="UPSERT")return eS(e,t,i,o);if(e.type==="UPSERT_SELECT")return tS(e,t,n,r,s);if(e.type==="UPDATE")return XA(e,t,n,r,i,o,a);if(e.type==="DELETE")return ZA(e,t);if(e.type==="REORDER")return nS(e,t);if(e.type==="VALIDATE")return WA(e,t);if(e.type==="IMPORT"){if(e.writeMode==="UPDATE_RECORD_NUMBER"){let p=e.targets?.filter(c=>c.kind==="SUBTABLE")??[];return[...t?[t]:[],`IMPORT UPDATE INTO APP${e.appId}`," writeMode: UPDATE_RECORD_NUMBER",` source: CSV ${e.source.sourceName}`,` keyHeader: ${e.recordNumberSourceHeader}`," mapping: BY_NAME"," parentRows: requires source load"," duplicate: preflight before lookup/write"," matched: requires lookup"," unmatched: requires lookup"," invalid: requires source load"," requiresLookup:true"," inserted: 0"," keyInPayload: false",...p.length?[` replaceSubtables: ${e.replaceSubtables?.join(", ")??"ERROR: required"}`," subtableRowIdPolicy: PRESERVE existing; empty/unknown add without id"," rowIdOwnership: owned elsewhere invalidates the parent"," replacementDiff: existing/input/update/add/delete/rowIdNotFound requires actual-data preflight",' confirmPolicy: highest warning "\u30B5\u30D6\u30C6\u30FC\u30D6\u30EB\u5168\u7F6E\u63DB\u30FBN\u884C\u524A\u9664" plus per-table detail (including delete=0)']:[],` disposition: ${e.validateOnly?"VALIDATE ONLY":e.onErrorSkip?`ON ERROR SKIP INTO ${e.errorTable}`:"fail-fast"}`," gate: enabled for this parse",` writesKintone: ${e.validateOnly?"false":"true"}`]}let l=e.keyFields?"UPSERT":"INSERT",d=e.targets?.some(p=>p.kind==="SUBTABLE")===!0;return[...t?[t]:[],`IMPORT ${l} INTO APP${e.appId}`,` source: ${e.source.kind} ${e.source.sourceName}`,` sourceFormat: ${e.source.kind}`,` encoding: ${e.source.kind==="JSON"?"UTF8 only":e.source.encoding??"UTF8 (or loader metadata)"}`,` mapping: ${e.source.kind==="JSON"?"BY NAME (INTO order)":e.source.projection?"SELECT expressions":e.source.mappingMode}`,...e.source.kind==="JSON"?[" duplicateKeyPolicy: reject"," numberLexemePolicy: preserve; JSON number accepts safe integer only"," precisionTargetsRequireString: true"," unknownKeyPolicy: reject"," presenceAware: true",...d?[" subtableRowIdPolicy: reject _rid/id; DROP IDs and renumber every input row"," subtableUpdatePolicy: present table replaces all rows; missing table is preserved; [] deletes all rows"," confirmPolicy: parent/table existing/input/add/delete detail required; delete is highest warning"]:[]]:[` header: ${e.source.hasHeader?"HEADER":"NO HEADER"}`,...e.source.mappingMode==="BY_NAME"?[` writtenColumns: ${e.fields.join(", ")}`," knownExportColumns: audit and ignore with reason/non-empty count",` unknownColumnPolicy: ${e.source.ignoreUnknownColumns?"ignore with audit/non-empty count":"ERR_IMPORT_UNKNOWN_COLUMN"}`," multipleValueDelimiter: LF (CRLF or LF)"," sourceValueMode: string-preserving"," roundTripNumericGuarantee: exact CSV lexeme passes strict decimal validation"," FILE: audit-ignore unless named in INTO (analyze error)"]:[]],` sourceLimit: 10485760 bytes / ${e.fields.length} target columns`,` key: ${e.keyFields?.join(", ")??"none"}`,` checks: ${e.checkGroups?.length??0}`,` disposition: ${e.validateOnly?"VALIDATE ONLY":e.onErrorSkip?`ON ERROR SKIP INTO ${e.errorTable}`:"fail-fast"}`," gate: enabled for this parse",` preflight: ${e.validateOnly&&d?"requires actual source load at execution; this EXPLAIN is static":"requires load"}`,...d?[e.source.kind==="JSON"?" Phase5C: JSON mutation requires detail-capable confirmation surface":" Phase5D: CSV mutation requires detail-capable confirmation surface"]:[],` writesKintone: ${e.validateOnly?"false":"true"}`," duplicateKey: preflight before lookup/write (requires load)"]}return He(e,t,n,r,s)}function WA(e,t){let n=$f.get(e),r=[];return t&&r.push(t),r.push(`VALIDATE APP${e.appId}`),r.push(" operation: read-only existing-record constraint audit (writesKintone=false)"),r.push(" fetch API: GET records via offset + $id keyset paging (Cursor API unused)"),r.push(" complete input: required (onLimit=truncate disabled)"),n?(r.push(` WHERE capability: ${n.capability.capability}`),r.push(` kintone query: ${n.prefilter===null?"(\u5168\u4EF6\u53D6\u5F97)":G(n.prefilter)}`),r.push(` audit fields: ${n.targetFields.length===0?"(\u306A\u3057)":n.targetFields.join(", ")}`),r.push(` fetch fields: ${n.fetchFields.join(", ")}`),r.push(` mode: ${e.summary?"SUMMARY":"DETAIL"}`),n.subtables.size>0&&r.push(` subtable audit: ${[...n.subtables].map(([i,o])=>`${i}(${o} fields)`).join(", ")}`),r.push(` output schema: ${(e.summary?Dl:_l).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 He(e,t,n,r,i,o=!0){let a=n?.get(e)??(n?[...n].find(([y])=>JSON.stringify(y)===JSON.stringify(e))?.[1]:void 0),s=r?.get(e)??(r?[...r].find(([y])=>JSON.stringify(y)===JSON.stringify(e))?.[1]:void 0),l=i?.get(e)??(i?[...i].find(([y])=>JSON.stringify(y)===JSON.stringify(e))?.[1]:void 0),d=o&&a!==void 0&&hf(e,a),p=d?"COUNT_TOTAL_COUNT":s?.kind==="CANONICAL_LOCAL"||a&&a.capability!=="EXACT_PUSHDOWN"?"FULL_SCAN":_e(e),c=jA(e);a&&a.capability!=="EXACT_PUSHDOWN"&&c.push(...a.reasons.map(y=>y.code));let u=[],f=wp(e,qr.get(e)?.allItems.length);t&&u.push(t),u.push(` mode: ${p}`),f&&(u.push(` grouping source: ${f.source}`),u.push(` grouping sets: ${f.expandedSetCount} (limit: ${f.setLimit})`),u.push(` grouping items: ${f.groupingItemCount} (limit: ${f.itemLimit})`),u.push(` grouping output rows: runtime checked (limit: ${f.outputRowLimit}, before HAVING/DISTINCT/LIMIT)`));let E=ne(e);if(E.type==="PLAIN"){let y=E.allItems;if(l)l.items.forEach((h,S)=>{let w=y[S];w?.type==="FIELD_NAME"&&h.kind==="PHYSICAL"&&u.push(` group key ${w.name}: PHYSICAL (source=${h.sourceIndex}, field=${h.fieldCode})`)});else if([e.from,...e.joins.map(h=>h.table)].some(h=>h.cteName!==null))for(let h of y)h.type==="FIELD_NAME"&&u.push(` group key ${h.name}: DEFERRED (materialized schema unavailable)`)}if(d){let y=e.where===null?"":G(e.where);return u.push(` app: APP${e.from.appId} (${e.from.appId})`),u.push(` kintone query: ${y}${y?" ":""}limit 1`),u.push(" fields: $id"),u.push(" fetch API: GET records.json (totalCount=true)"),u.push(" REST execution: single GET"),u.push(" record limit: maxRecords/onLimitReached not applied"),u.push(" fallback: full record scan when totalCount is missing or invalid"),u.push(" search abort: fail-closed (SearchAbortedError)"),u}s?(u.push(` order plan: ${s.kind}`),s.reasonCodes.length>0&&u.push(` order reason: ${s.reasonCodes.join(", ")}`),s.kind==="KORDER_NATIVE"?(u.push(" order semantics: kintone native (not kSQL canonical)"),u.push(" REST execution: single GET")):s.kind==="KORDER_CURSOR"&&(u.push(" order semantics: kintone native (not kSQL canonical)"),u.push(" fetch API: POST/GET/DELETE records/cursor.json"),u.push(" cursor page size: 500"),u.push(` scan rows: ${s.scanRows}`))):f&&u.push(" order plan: CANONICAL_LOCAL");let R=s&&!s.requiresCompleteInput?{...e,orderBy:[]}:e,m=ht(R);s?.requiresCompleteInput&&m.add("LOCAL_ORDER");let g=Rt(e.where);if(m.size>0&&(!g||f!==null)&&(u.push(" complete input: required (onLimit=truncate disabled)"),u.push(` complete input reason: ${[...m].join(", ")}`),u.push(" onLimit=truncate: disabled")),g)return u.push(" predicate: constant false"),u.push(" records API access: none"),u.push(` app: APP${e.from.appId} (${e.from.appId})`),u;if(p==="FULL_SCAN"&&c.length>0&&u.push(` reason: ${c.join(", ")}`),p==="SIMPLE"){let y=wi(s?.kind==="CANONICAL_REST_TOP_N"?Ef(e):e);u.push(` app: APP${e.from.appId} (${e.from.appId})`);let h=s?.kind==="KORDER_CURSOR"?Ps(e):y.query;u.push(` kintone query: ${h||"(\u306A\u3057)"}`),u.push(` fields: ${y.fields.length===0?"(\u5168\u30D5\u30A3\u30FC\u30EB\u30C9)":y.fields.join(", ")}`)}else{let y=Bf.get(e),h=y??Tn(e);if(e.joins.length>0)if(y){if(u.push(" join pushdown plan: applied (runtime metadata resolved)"),u.push(" runtime plan timing: variables/subqueries resolved -> metadata resolved -> immutable plan"),u.push(" EXPLAIN unresolved subqueries: not applied (records API is not called)"),y.joinPlan.serverFunctionCandidate&&u.push(` allow form: JOIN_SERVER_FUNCTION_EXACT (${y.joinPlan.serverFunctionCandidate.variant==="WHOLE_WHERE_EXACT"?"whole-WHERE":"leaf"})`),u.push(` client residual: ${y.joinPlan.residualWhere===null?"(none)":Xt(y.joinPlan.residualWhere)}`),u.push(` KLIKE applied nodes: ${y.joinPlan.appliedKlikes.size}`),u.push(` KLIKE unapplied nodes: ${y.joinPlan.allKlikes.length-y.joinPlan.appliedKlikes.size}`),y.joinPlan.residualWhere!==null)for(let N of y.joinPlan.rejections)u.push(` join pushdown not applied: ${N.reason}`)}else{let N=e.joins.some(_=>_.type!=="INNER")?"OUTER_JOIN":[e.from,...e.joins.map(_=>_.table)].some(_=>_.cteName!==null||!!_.subtableCode)?"SOURCE_KIND":"PLAN_NOT_APPLICABLE";u.push(" join pushdown plan: not applied"),u.push(` join pushdown not applied: ${N}`)}let S=Kt(e,e.from,l),w=e.from.alias?` AS ${e.from.alias}`:"",I=h.mainCondition,L=cf(e),b=e.joins.length===0&&a?.capability==="EXACT_PUSHDOWN"&&e.where!==null&&!Tt(e.where)?G(e.where):"",v=e.from.alias?y?.queriesByAlias.get(e.from.alias):void 0,P=v||(I!==null?G(I):b||"(\u5168\u4EF6\u53D6\u5F97)");u.push(` app: APP${e.from.appId}${w} (${e.from.appId})`),u.push(` kintone query: ${P}`);let D=y?.joinPlan.items.find(N=>N.targetAlias===e.from.alias),M=y?.joinPlan.serverFunctionConsumptions.find(N=>N.targetAlias===e.from.alias);D||M?(u.push(` pushdown applied: ${v}`),u.push(` relation: ${D?.relation??"exact"}`)):!y&&L!==null&&u.push(` pushdown candidate: ${G(L)}\uFF08\u5B9F\u884C\u6642\u306E\u578B\u30FB\u5B9F\u5728\u78BA\u8A8D\u5F85\u3061\uFF09`),u.push(` fields: ${S.length===0?"(\u5168\u30D5\u30A3\u30FC\u30EB\u30C9)":S.join(", ")}`);for(let N of e.joins){let _=Kt(e,N.table,l),A=N.table.alias?` AS ${N.table.alias}`:"",C=N.type==="INNER"?"JOIN":`${N.type} JOIN`,x=N.table.alias?h.joinConditions.get(N.table.alias)??null:null,O=N.table.alias&&!N.table.subtableCode&&N.table.cteName===null&&e.where?ir(e.where,{tableAlias:N.table.alias}):null,F=N.table.alias?y?.queriesByAlias.get(N.table.alias):void 0,j=F||(x!==null?G(x):"(\u5168\u4EF6\u53D6\u5F97)");u.push(` ${C}: APP${N.table.appId}${A} (${N.table.appId})`),u.push(` kintone query: ${j}`);let q=y?.joinPlan.items.find(k=>k.targetAlias===N.table.alias),U=y?.joinPlan.serverFunctionConsumptions.find(k=>k.targetAlias===N.table.alias);q||U?(u.push(` pushdown applied: ${F}`),u.push(` relation: ${q?.relation??"exact"}`)):!y&&O!==null&&u.push(` pushdown candidate: ${G(O)}\uFF08\u5B9F\u884C\u6642\u306E\u578B\u30FB\u5B9F\u5728\u78BA\u8A8D\u5F85\u3061\uFF09`),u.push(` fields: ${_.length===0?"(\u5168\u30D5\u30A3\u30FC\u30EB\u30C9)":_.join(", ")}`)}}return u.push(...zA(e,n,r,i)),u}function HA(e,t,n,r){let i=[],o=s=>{if(s.type==="SELECT"){i.push(s);return}o(s.left),i.push(s.right)};o(e);let a=[];return i.forEach((s,l)=>{l>0&&a.push(""),a.push(...He(s,`[union:${l+1}]`,t,n,r,!0))}),a}function YA(e,t,n,r){let i=[];for(let o of e.ctes)o.query.type==="SELECT"&&(i.push(...He(o.query,`[cte: ${o.name}]`,t,n,r,!1)),i.push(""));if((e.query.type==="SELECT"||e.query.type==="UNION")&&i.push(...aa(e.query,"[main]",t,n,100,Se,1e4,r)),It(e)){i.push("");let o=wt(e);i.push(...He(o,"[effective: inlined CTE]",t,n,r,!1))}return i}function jA(e){let t=[];(e.from.subtableCode||e.joins.some(r=>r.table.subtableCode))&&t.push("\u30B5\u30D6\u30C6\u30FC\u30D6\u30EB\u4EEE\u60F3\u30C6\u30FC\u30D6\u30EB"),e.joins.length>0&&t.push("JOIN \u3042\u308A");let n=ne(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"),Tt(e.where)&&t.push("WHERE \u53E5\u306B JS \u8A55\u4FA1\u304C\u5FC5\u8981\u306A\u5F0F"),At(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 zA(e,t,n,r){let i=[],o=1,a=s=>{if(s)switch(s.type){case"BINARY":s.right.type==="SCALAR_SUBQUERY"&&(i.push(""),i.push(...He(s.right.query,`[subquery:${o++}]`,t,n,r,!1))),s.right.type==="SUBQUERY_IN_LIST"&&(i.push(""),i.push(...He(s.right.query,`[subquery:${o++}]`,t,n,r,!1)));break;case"EXISTS":i.push(""),i.push(...He(s.query,`[subquery:${o++}]`,t,n,r,!1));break;case"LOGICAL":a(s.left),a(s.right);break;case"NOT":case"GROUP":a(s.expr);break;case"NULL_CHECK":break;case"BOOLEAN":break}};a(e.where);for(let s of e.columns)s.type==="SCALAR_SUBQUERY_COL"&&(i.push(""),i.push(...He(s.query,`[subquery:${o++}]`,t,n,r,!1)));return e.having&&a(e.having),i}function qA(e,t,n=gt,r=Se){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,...tu(ao(e,n,r))]:a}function JA(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(...He(e.select,"[source SELECT]",n,r,i,!1)),o}function XA(e,t,n,r,i=100,o=Se,a=1e4){if(e.applyBlocks?.length)return QA(e,t,i,o,a);let s=Gc(e),l=e.assignments.some(f=>f.value.type==="STRING_FUNC"),d=ji(e),p=e.assignments.some(f=>f.value.type==="SCALAR_SUBQUERY"),c=[];if(t&&c.push(t),c.push(e.from?" [UPDATE FROM]":" [UPDATE]"),c.push(` target: APP${e.appId} (${e.appId})`),e.from){let f=e.from.cteName??`APP${e.from.appId}`;c.push(` source: ${f} AS ${e.from.alias}`),c.push(` join: APP${e.appId}.${e.from.targetJoinField} = ${e.from.alias}.${e.from.joinKeyField}`),c.push(` target filter: ${e.from.targetFilter?ti(e.from.targetFilter):"(none)"}`)}else c.push(` kintone query: ${ti(e.where)}`);e.subtableCode||(c.push(" selection: exact native pushdown; JS residual none"),c.push(" search abort: DML fail-closed (SearchAbortedError; mutation 0)")),c.push(Rt(e.where)?" api: metadata validation only (records API access: none)":" api: GET /k/v1/records.json \u2192 PUT /k/v1/records.json");let u=[];if(s&&u.push("\u7B97\u8853 SET\uFF08\u73FE\u5728\u5024\u3092\u53D6\u5F97\u3057\u3066\u8A08\u7B97\uFF09"),l&&u.push("\u6587\u5B57\u5217\u95A2\u6570 SET\uFF08\u73FE\u5728\u5024\u3092\u53D6\u5F97\u3057\u3066\u8A55\u4FA1\uFF09"),p&&u.push("\u30B9\u30AB\u30E9\u30FC\u30B5\u30D6\u30AF\u30A8\u30EA SET"),!d&&!p&&u.push("\u5358\u7D14 SET"),c.push(` set type: ${u.join(", ")}`),d){let f=iS(e);f.length>0&&c.push(` ref fields: ${f.join(", ")}\uFF08GET \u306B\u542B\u3081\u308B\uFF09`)}c.push(" set fields:");for(let f of e.assignments)c.push(` ${aS(f)}`);for(let f of e.assignments)f.value.type==="SCALAR_SUBQUERY"&&(c.push(""),c.push(...He(f.value.query,`[subquery: ${f.field}]`,n,r,void 0,!1)));return c}function QA(e,t,n,r,i){let o=ao(e,n,r),a=o.branches[0],d=e.applyBlocks.flatMap(E=>[...E.operations]).map(E=>{if(E.kind==="APPEND")return"APPEND";if(E.kind==="ADD"||E.kind==="REMOVE_VALUE")return"VALUE_LITERAL";if(E.selector.kind==="ALL_ROWS")return"ALL_ROWS";let R=E.selector.where;return R.type==="BINARY"&&R.op==="="&&R.left.type==="FIELD"&&R.left.tableAlias===null&&R.left.field==="_rid"?"_rid":"SAFE_PREDICATE"}),p=[...new Set(a.targets.flatMap(E=>E.operations.map(R=>R.kind)))],c=p.includes("REMOVE"),u=Gf.get(e),f=u?["parent selection: safe prefilter + JS residual evaluation",`kintone prefilter: ${u.prefilter===null?"(none; empty query)":G(u.prefilter)}`,"JS residual: original parent WHERE",`applied KLIKE: ${u.appliedKlikes.size}`,`unapplied KLIKE: ${u.unappliedKlikes.length}${u.unappliedKlikes.length>0?" (unsupported: cannot be fully applied to native query)":""}`,`candidate limit: maxRecords=${i}, onLimit=error, stopAfter=none`,`target guard: dmlMaxRows=${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: ${ti(e.where)}`,`parent cardinality: ${st(e.where)?"single":"multiple"}`,...f,`apply target: ${a.targets.map(E=>`${E.field} (${E.targetKind})`).join(" | ")}`,`operations: ${p.join(" | ")}`,`selector: ${d.join(" | ")}`,"snapshot evaluation: yes","inserted rows visible: no","revision guard: required","revision: unknown (records API not called)",`payload preservation: row ids=yes, row order=yes, unpatched cells=yes, remove tables=${c?"FULL_SURVIVORS":"none"}`,"post-image validation: required (B43 equivalent)","parent rows: unknown (records API not called)","matched subtable rows: unknown (records API not called)","validation errors: unknown (records API not called)",`deleted rows: ${c?"unknown (records API not called)":"0 (static without REMOVE)"}`,`dmlMaxRows: ${n}`,`dmlMaxSubtableRows: ${r}`,"MCP mutation: disabled in v1",...tu(o)]}function ZA(e,t){let n=[];return t&&n.push(t),n.push(" [DELETE]"),n.push(` target: APP${e.appId} (${e.appId})`),n.push(` kintone query: ${ti(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(Rt(e.where)?" api: metadata validation only (records API access: none)":" api: GET /k/v1/records.json \u2192 DELETE /k/v1/records.json"),n}function eS(e,t,n=gt,r=Se){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,...tu(ao(e,n,r))]:a}function tu(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 tS(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(...He(e.select,"[source SELECT]",n,r,i,!1)),o}function nS(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(rS).join(", "),o=[...t?[t]:[]," [REORDER]",` target: APP${e.appId} (${e.appId})`,` table: ${n}`,` scope: ${r}`,` by: ${i}`,Rt(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: ${ti(e.where)}`),o}function rS(e){return`${e.key.type==="FIELD_NAME"?e.key.name:"(\u5F0F)"} ${e.direction}`}function ti(e){if(e.type==="BOOLEAN")return e.value?"TRUE":"FALSE (constant)";try{return G(e)}catch{return"(JS \u8A55\u4FA1\u304C\u5FC5\u8981\u306A\u305F\u3081 kintone \u30AF\u30A8\u30EA\u306B\u5909\u63DB\u4E0D\u53EF)"}}function iS(e){let t=new Set;for(let{value:n}of e.assignments)n.type==="ARITH"&&Jo(n,t),n.type==="STRING_FUNC"&&Jo(n,t),(n.type==="SCALAR_ARITH"||n.type==="CONCAT_OP")&&jr(n,t);return[...t]}function Jo(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"&&(Jo(e.left,t),Jo(e.right,t)),e.type==="STRING_FUNC")for(let n of e.args)n.type!=="AGG_REF"&&n.type!=="AGG_ARITH"&&jr(n,t)}async function Yf(e,t,n,r,i){let o=ql(e),a=await Ae(e.appId,n,r),s=t.cteName,l=s!==null?new Map((i?.get(s)?.columns??[]).map(u=>[u,i?.get(s)?.columnMeta?.get(u)?.fieldType??(i?.get(s)?.columnMeta?.get(u)?.semantics?.compareMode==="number"?"NUMBER":"SINGLE_LINE_TEXT")])):await Ae(t.appId,n,r),d=new Set,p=new Set;for(let u of o){if(u.tableAlias!==null){if(u.tableAlias.toLowerCase()===`app${e.appId}`.toLowerCase()){if(u.field!=="$id"&&!a.has(u.field))throw fe(`CHECK \u306E\u30BF\u30FC\u30B2\u30C3\u30C8\u30D5\u30A3\u30FC\u30EB\u30C9 ${u.field} \u306F\u5B58\u5728\u3057\u307E\u305B\u3093`);d.add(u.field)}else if(u.tableAlias.toLowerCase()===t.alias.toLowerCase()){if(u.field!=="$id"&&!l.has(u.field))throw fe(`CHECK \u306E\u30BD\u30FC\u30B9\u30D5\u30A3\u30FC\u30EB\u30C9 ${u.field} \u306F\u5B58\u5728\u3057\u307E\u305B\u3093`);p.add(u.field)}else throw fe(`CHECK \u306E\u4FEE\u98FE\u5B50 ${u.tableAlias} \u306F\u66F4\u65B0\u5148\u307E\u305F\u306F FROM alias \u3067\u306F\u3042\u308A\u307E\u305B\u3093`);continue}let f=u.field==="$id"||a.has(u.field),E=u.field==="$id"||l.has(u.field);if(!f)throw fe(`UPDATE FROM \u306E CHECK \u3067\u306F\u30BD\u30FC\u30B9\u5217 ${u.field} \u3092\u4FEE\u98FE\u3057\u3066\u304F\u3060\u3055\u3044`);if(E)throw fe(`UPDATE FROM \u306E CHECK \u306E\u975E\u4FEE\u98FE\u30D5\u30A3\u30FC\u30EB\u30C9 ${u.field} \u306F\u66D6\u6627\u3067\u3059`);d.add(u.field)}let c=new Map;for(let[u,f]of a)c.set(u,f),c.set(`APP${e.appId}.${u}`,f);c.set("$id","RECORD_NUMBER"),c.set(`APP${e.appId}.$id`,"RECORD_NUMBER");for(let[u,f]of l)c.set(`${t.alias}.${u}`,f);return{targetFields:[...d],sourceFields:[...p],evaluationTypes:c}}function oS(e,t,n){if(!e)return{};let r=dt(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 jr(e,t){if(e.type==="FIELD"){t.add(e.tableAlias?`${e.tableAlias}.${e.field}`:e.field);return}if(e.type==="STRING_FUNC"){for(let n of e.args)n.type!=="AGG_REF"&&n.type!=="AGG_ARITH"&&jr(n,t);return}(e.type==="SCALAR_ARITH"||e.type==="CONCAT_OP")&&(jr(e.left,t),jr(e.right,t))}function aS(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} = ${jf(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 jf(e){return`${jd(e.left)} ${e.op} ${jd(e.right)}`}function jd(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"?H(e):e.type==="ARITH"?`(${jf(e)})`:"..."}var le=class extends Error{constructor(n,r){super(`${n} \u3092\u30AD\u30E3\u30F3\u30BB\u30EB\u3057\u307E\u3057\u305F\uFF08\u5BFE\u8C61: ${r} \u4EF6\uFF09`);this.operation=n;this.affectedCount=r;this.name="OperationCancelledError"}};var ce=class extends Error{constructor(t,n,r){super(n),this.name="KsqlEngineError",this.code=t,r!==void 0&&(this.cause=r),Object.setPrototypeOf(this,new.target.prototype)}};function nu(e,t,n){return Object.defineProperties(e,{statementIndex:{value:t,enumerable:!0,configurable:!1,writable:!1},statementType:{value:n,enumerable:!0,configurable:!1,writable:!1}}),e}function Ke(e){return new ce("READ_ONLY_VIOLATION",e)}function Hn(e,t){return new ce("PARSE_ERROR",e,t)}function zf(){let e=new tn;return new ce("SEARCH_ABORTED",e.message,e)}function li(e){return e instanceof Error&&e.message.trim()!==""||e!==null&&typeof e=="object"&&typeof e.message=="string"?e.message:String(e)}function sS(e){if(e===null||typeof e!="object")return!1;let t=e;return typeof t.status=="number"||typeof t.response?.status=="number"||typeof t.code=="string"&&t.code.trim()!==""}function ln(e){return e instanceof ce?e:e instanceof ye||e instanceof T?new ce("PARSE_ERROR",li(e),e):e instanceof tn||e?.name==="SearchAbortedError"?new ce("SEARCH_ABORTED",li(e),e):e instanceof Pe||e?.name==="FetchAllLimitError"?new ce("FETCH_LIMIT_EXCEEDED",li(e),e):e instanceof Error&&e.name==="ClientOperationError"&&"cause"in e?new ce("CLIENT_ERROR",e.message,e.cause):sS(e)?new ce("CLIENT_ERROR",li(e),e):new ce("EXECUTION_ERROR",li(e),e)}function sa(e,t){let n=ln(e);if(e instanceof Z){let r=t[e.statementIndex];if(r!==void 0)return nu(n,e.statementIndex,r.type)}return n}var lS=2,la=5,uS=3e4,cS=10*6e4+3e4,ua=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??lS;if(!Number.isSafeInteger(r)||r<1||r>la)throw new Error(`ArgumentError: cursorMaxActive must be an integer from 1 to ${la}.`);this.maxActive=r,this.waitTimeoutMs=n.waitTimeoutMs??uS,this.quarantineMs=n.quarantineMs??cS}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 go(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>la)throw new Error(`ArgumentError: cursorMaxActive must be an integer from 1 to ${la}.`)}};function pS(e){let t=e;return t?.status===404&&t.code==="GAIA_CN01"}async function dS(e,t=r=>new Promise(i=>setTimeout(i,r)),n=pS){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 fS(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 qf(e,t){let n=!1,r=!1,i=Promise.resolve(),o=null;return{totalCount:e,nextPage:()=>{if(r||n)return Promise.resolve({records:[],next:!1});let l=i.then(async()=>{if(r||n)return{records:[],next:!1};let d=await t.get();return d.next||(n=!0,t.onReleased?.()),d});return i=l.then(()=>{},()=>{}),l},close:()=>n?Promise.resolve():o||(r=!0,o=i.then(async()=>{if(!n)try{await fS(dS(t.delete,t.sleep,t.isAlreadyReleasedError),t.cleanupTimeoutMs??5e3),n=!0,t.onReleased?.()}catch(l){throw t.onReleaseUnknown?.(),l}}),o)}}function Jf(e){return Xf(e,RS(e))}function Xf(e,t,n=!1,r){let i=[];for(let o of Object.values(e)){let a=mS(o.options),s=yS(o.type,o.format),l={code:o.code,label:o.label,fieldType:o.type,optionOrder:a,sortKind:s,required:o.required,minValue:ca(o.minValue),maxValue:ca(o.maxValue),minLength:ca(o.minLength),maxLength:ca(o.maxLength),defaultValue:o.defaultValue,inSubtable:n,...r?{subtableCode:r}:{},writable:!t.has(o.code)&&!ES.has(o.type)};l.semantics=X(l),i.push(l),o.fields&&i.push(...Xf(o.fields,t,!0,o.type==="SUBTABLE"?o.code:r))}return i}var ES=new Set(["CALC","RECORD_NUMBER","CREATOR","CREATED_TIME","MODIFIER","UPDATED_TIME","STATUS","STATUS_ASSIGNEE","CATEGORY","REFERENCE_TABLE","SUBTABLE"]);function RS(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 ca(e){return e==null||e===""?void 0:e}function mS(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 yS(e,t){if(e==="NUMBER"||e==="RECORD_NUMBER")return"number";if(e==="CALC")return t==="NUMBER"||t==="NUMBER_DIGIT"?"number":"string"}function Qf(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 gS="Filter aborted because of too many search results";function Zf(e){return e?.includes(gS)===!0}var eE="/k/v1/records.json",pa="/k/v1/records/cursor.json",hS=4096,AS=2,ru=e=>kintone.api.url(e,!0);function SS(e){let t={app:e.app,query:e.query,...e.fields.length>0?{fields:e.fields}:{},...e.totalCount===!0?{totalCount:!0}:{}},r=kintone.api.urlForGet(eE,t,!0),i={"X-Requested-With":"XMLHttpRequest"};return new TextEncoder().encode(r).byteLength<=hS?{url:r,init:{method:"GET",credentials:"include",headers:i}}:{url:ru(eE),init:{method:"POST",credentials:"include",headers:{...i,"X-HTTP-Method-Override":"GET","Content-Type":"application/json","X-Cybozu-Request-Token":kintone.getRequestToken()},body:JSON.stringify(t)}}}function ui(e){let t=e;if(e instanceof Error&&e.message.trim()!=="")return e;if(t===null||typeof t!="object"||typeof t.message!="string"||t.message.trim()===""){let o=new Error("\u30CD\u30C3\u30C8\u30EF\u30FC\u30AF\u30A8\u30E9\u30FC: kintone \u304B\u3089\u306E\u5FDC\u7B54\u304C\u3042\u308A\u307E\u305B\u3093\uFF08\u30AA\u30D5\u30E9\u30A4\u30F3\u30FB\u901A\u4FE1\u906E\u65AD\u306E\u53EF\u80FD\u6027\uFF09");return Object.assign(o,{cause:e}),o}let n=t,r=[typeof n.code=="string"&&n.code!==""?`${n.message}\uFF08${n.code}\uFF09`:n.message];if(n.errors!==null&&typeof n.errors=="object")for(let[o,a]of Object.entries(n.errors)){let s=Array.isArray(a?.messages)?a.messages.filter(l=>typeof l=="string"):[];s.length>0&&r.push(`${o}: ${s.join(" / ")}`)}let i=new Error(r.join(`
|
|
12
|
+
`));return typeof n.code=="string"&&n.code!==""&&(i.name=n.code),typeof n.code=="string"&&Object.assign(i,{code:n.code}),typeof n.status=="number"&&Object.assign(i,{status:n.status}),Object.assign(i,{cause:e}),i}async function TS(e){try{let t=await e.json();if(t!==null&&typeof t=="object"){let r=t;return ui({code:r.code,message:r.message,errors:r.errors,status:e.status})}let n=new Error(`kintone API error: HTTP ${e.status}`);return Object.assign(n,{status:e.status,cause:t}),ui(n)}catch(t){let n=new Error(`kintone API error: HTTP ${e.status} \u306E\u5FDC\u7B54\u3092 JSON \u3068\u3057\u3066\u89E3\u6790\u3067\u304D\u307E\u305B\u3093`);return Object.assign(n,{status:e.status,cause:t}),ui(n)}}function IS(e){let t=e;return t?.code==="GAIA_CN01"&&(t.status===404||t.status===void 0)}async function un(e,t,n){try{return await kintone.api(ru(e),t,n)}catch(r){throw ui(r)}}function wS(e){if(!Number.isSafeInteger(e)||e<1||e>5)throw new Error("ArgumentError: cursorMaxActive must be an integer from 1 to 5.")}function iu(e={}){let t=e.cursorMaxActive??AS;wS(t);let n=null,r=null,i=new Set;return{async getRecords(a){try{let s=SS(a),l=await fetch(s.url,s.init);if(!l.ok)throw await TS(l);let d=await l.json();return Zf(l.headers.get("X-Cybozu-Warning"))?{...d,searchAborted:!0}:d}catch(s){throw ui(s)}},async openCursor(a){let s=ru(pa),l=new URL(s,globalThis.location?.href).host.toLowerCase();if(r!==null&&r!==l)throw new Error(`CursorRouteError: factory route changed from ${r} to ${l}.`);if(r=l,n??(n=new ua(l,{maxActive:t})),n.snapshot().active>=t){let R=new Error(`CursorCapacityError: host=${l} \u306E active cursor \u4E0A\u9650 ${t} \u306B\u9054\u3057\u3066\u3044\u307E\u3059\u3002`);throw R.name="CursorCapacityError",R}let d=await n.acquire(),p;try{p=await n.runCreate(()=>un(pa,"POST",{app:a.app,query:a.query,size:a.size,fields:a.fields&&a.fields.length>0?a.fields:void 0}))}catch(R){throw typeof R?.code=="string"?(d.release(),R):(d.quarantine(),new ho(R))}let c=p.id,u=qf(Number(p.totalCount),{get:()=>un(pa,"GET",{id:c}),delete:()=>un(pa,"DELETE",{id:c}),isAlreadyReleasedError:IS,onReleased:()=>d.release(),onReleaseUnknown:()=>d.quarantine()}),f=null,E={totalCount:u.totalCount,async nextPage(){let R=await u.nextPage();return R.next||i.delete(E),R},close(){return f||(f=u.close().finally(()=>{i.delete(E)}),f)}};return i.add(E),E},async getApps(){let s=[],l=0;for(;;){let d=await un("/k/v1/apps.json","GET",{limit:100,offset:l});for(let p of d.apps)s.push({appId:Number(p.appId),name:p.name,description:p.description});if(d.apps.length<100)break;l+=100}return s},async getFields(a){let s=await un("/k/v1/app/form/fields.json","GET",{app:a});return Jf(s.properties)},async getNumberPrecision(a){let s=await un("/k/v1/app/settings.json","GET",{app:a});return sp(s)},async getProcessStatuses(a){let s=await un("/k/v1/app/status.json","GET",{app:a,lang:"user"});return{enable:s.enable,states:Qf(s.states)}}}}var tE=new Set(["postRecords","putRecords","deleteRecords"]),ci=class extends Error{constructor(t){let n=t instanceof Error?t.message:String(t);super(n),this.name="ClientOperationError",this.cause=t,Object.setPrototypeOf(this,new.target.prototype)}};async function Ut(e){try{return await e()}catch(t){throw new ci(t)}}function bS(e){return()=>{throw Ke(`${String(e)} is blocked by the readonly client`)}}function Yn(e){let t=e.getRecords.bind(e),n=e.openCursor.bind(e),r=e.getApps.bind(e),i=e.getFields.bind(e),o=e.getNumberPrecision.bind(e),a=e.getProcessStatuses.bind(e),s=Object.assign(Object.create(null),{getRecords:async l=>{let d=await Ut(()=>t(l));if(d.searchAborted===!0)throw zf();return d},openCursor:async l=>{let d=await Ut(()=>n(l)),p=d.nextPage.bind(d),c=d.close.bind(d);return{totalCount:d.totalCount,nextPage:()=>Ut(()=>p()),close:()=>Ut(()=>c())}},getApps:()=>Ut(()=>r()),getFields:l=>Ut(()=>i(l)),getNumberPrecision:l=>Ut(()=>o(l)),getProcessStatuses:l=>Ut(()=>a(l))});return new Proxy(s,{get(l,d,p){return tE.has(d)?bS(d):Reflect.get(l,d,p)},has(l,d){return tE.has(d)?!1:Reflect.has(l,d)}})}function PS(e){let t=new Set,n=null;return{client:{getRecords:e.getRecords.bind(e),async openCursor(i){let o=await e.openCursor.call(e,i),a=null,s={totalCount:o.totalCount,nextPage:o.nextPage.bind(o),close(){return a||(a=Promise.resolve().then(()=>o.close()).finally(()=>{t.delete(s)}),a)}};return t.add(s),s},getApps:e.getApps.bind(e),getFields:e.getFields.bind(e),getNumberPrecision:e.getNumberPrecision.bind(e),getProcessStatuses:e.getProcessStatuses.bind(e)},close(){return n||(n=(async()=>{let o=(await Promise.allSettled([...t].map(a=>a.close()))).find(a=>a.status==="rejected");if(o)throw new ci(o.reason)})(),n)}}}async function jn(e,t){let n=PS(e),r=!1;try{return await t(n.client)}catch(i){throw r=!0,i}finally{try{await n.close()}catch(i){if(!r)throw i}}}var NS="A-Za-z",CS="\\u3040-\\u30FF\\u3400-\\u9FFF\\uF900-\\uFAFF\\uFF01-\\uFF60",au=`${NS}${CS}`,rE=`${au}0-9_`,OS=new RegExp(`^[${au}]$`,"u"),LS=new RegExp(`^[${rE}]$`,"u"),_S=new RegExp(`^[${au}][${rE}]{0,63}$`,"u");function DS(e){return OS.test(e)}function vS(e){return LS.test(e)}function su(e){let t=e.normalize("NFC").toUpperCase();if(!_S.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 ou(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 US(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 kS(e,t){let n=t>0?e[t-1]:"";if(ou(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,!DS(e[l]??""))return null;for(l++;l<e.length&&vS(e[l]);)l++;s=l;try{o=su(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&&ou(e[l]);)l++;if(l===f)return null}let d=l,p=null;if(e[l]==="@"){l++;let f=l;for(;l<e.length&&US(e[l]);)l++;if(l===f)return null;p=e.slice(f,l)}let c=l<e.length?e[l]:"";if(ou(c))return null;let u={profile:p,start:t,referenceValueStart:a,referenceValueEnd:s,appEnd:d,fullEnd:l};return r==="physical"?{...u,source:r,appId:i}:{...u,source:r,logicalName:o}}function lu(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]!==`
|
|
13
|
+
`;)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=kS(e,n);if(!i){n++;continue}t.push(i),n=i.fullEnd}return t}function nE(e){let t=9e8;for(;e.has(t);)t++;return e.add(t),t}function iE(e,t="dev",n){let r=lu(e),i=r.some(m=>m.profile!==null),o=new Map,a=m=>m??t;for(let m of r){if(m.source!=="physical")continue;let g=a(m.profile),y=o.get(m.appId);y||(y=new Set,o.set(m.appId,y)),y.add(g.toLowerCase())}let s=new Set(r.filter(m=>m.source==="physical").map(m=>m.appId)),l=new Map;for(let m of r){if(m.source!=="logical")continue;let g=a(m.profile).toLowerCase(),y=`logical:${m.logicalName}@${g}`;if(l.has(y))continue;if(!n)throw new Error(`ArgumentError: logical app LAPP_${m.logicalName}@${g} requires logicalApps configuration.`);let h=n.resolveLogicalApp(m.logicalName,g);l.set(y,h),s.add(h)}let d=new Map,p=new Map;for(let[m,g]of o.entries()){let y=[...g].sort();if(!(y.length<=1))for(let h of y){let S=nE(s);d.set(`physical:${m}@${h}`,S),p.set(S,{source:"physical",mappedAppId:S,appId:m,profile:h})}}let c=[],u=[],f=0,E=0,R=(m,g,y,h)=>{if(!m&&g===y)return;let S=f;c.push(m),f+=m.length,u.push({normalizedStart:S,normalizedEnd:f,sourceStart:g,sourceEnd:y,...h===void 0?{}:{bindingMappedAppId:h}})};for(let m of r){let g=a(m.profile).toLowerCase(),y;if(m.source==="physical")y={source:"physical",mappedAppId:d.get(`physical:${m.appId}@${g}`)??m.appId,appId:m.appId,profile:g};else{let w=`logical:${m.logicalName}@${g}`,I=d.get(w);I===void 0&&(I=nE(s),d.set(w,I)),y={source:"logical",logicalName:m.logicalName,mappedAppId:I,appId:l.get(w),profile:g}}p.set(y.mappedAppId,y),R(e.slice(E,m.start),E,m.start);let h=e.slice(m.referenceValueEnd,m.appEnd),S=m.source==="physical"?`${e.slice(m.start,m.referenceValueStart)}${y.mappedAppId}${h}`:`APP${y.mappedAppId}${h}`;R(S,m.start,m.fullEnd,y.mappedAppId),E=m.fullEnd}return R(e.slice(E),E,e.length),{normalizedSql:c.join(""),hasProfileSyntax:i,appBindingByMappedApp:p,rewriteSegments:u}}var oE=new Set(["client","logicalApps","maxRecords","fetchParallel","cursorMaxActive"]),aE=new Set([...oE,"onLimitReached"]),MS=new Set([...aE,"variables","tempTableMaxRows"]);function sE(e){if(e===null||typeof e!="object"||Array.isArray(e))throw new TypeError("options must be an object")}function pi(e,t){if(!Number.isSafeInteger(e)||e<=0)throw new RangeError(`${t} must be a positive safe integer`)}function lE(e){if(e===null||typeof e!="object")throw new TypeError("client is required");let t=e;for(let n of["getRecords","openCursor","getApps","getFields","getNumberPrecision","getProcessStatuses"])if(typeof t[n]!="function")throw new TypeError(`client.${n} must be a function`)}function FS(e){if(e===null||typeof e!="object"||Array.isArray(e))throw new TypeError("variables must be an object");for(let[t,n]of Object.entries(e))if(typeof n!="string")throw new TypeError(`variables.${t} must be a string`)}function uE(e){if(e===void 0)return;if(e===null||typeof e!="object"||Array.isArray(e))throw new TypeError("logicalApps must be an object");let t={};for(let[n,r]of Object.entries(e)){let i;try{i=su(n)}catch{throw new TypeError(`logicalApps key "${n}" is invalid`)}if(Object.prototype.hasOwnProperty.call(t,i))throw new TypeError(`logicalApps key "${n}" duplicates "${i}" after canonical normalization`);pi(r,`logicalApps.${n}`),t[i]=r}return t}function cE(e,t,n){for(let r of Reflect.ownKeys(e))if(typeof r!="string"||!t.has(r))throw new TypeError(`Unknown ${n} option: ${String(r)}`);if(e.maxRecords!==void 0&&pi(e.maxRecords,"maxRecords"),e.fetchParallel!==void 0&&pi(e.fetchParallel,"fetchParallel"),e.cursorMaxActive!==void 0&&(pi(e.cursorMaxActive,"cursorMaxActive"),e.cursorMaxActive>5))throw new RangeError("cursorMaxActive must be between 1 and 5");if(e.onLimitReached!==void 0&&e.onLimitReached!=="error"&&e.onLimitReached!=="truncate")throw new TypeError('onLimitReached must be "error" or "truncate"');return{...e.maxRecords!==void 0?{maxRecords:e.maxRecords}:{},...e.fetchParallel!==void 0?{fetchParallel:e.fetchParallel}:{},...e.cursorMaxActive!==void 0?{cursorMaxActive:e.cursorMaxActive}:{},...e.onLimitReached!==void 0?{onLimitReached:e.onLimitReached}:{}}}function uu(e,t){sE(e);let n=t==="run"?aE:oE;lE(e.client);let r=cE(e,n,t==="run"?"runQuery":"explainQuery"),i=uE(e.logicalApps);return{client:e.client,...i===void 0?{}:{logicalApps:i},executeOptions:r}}function pE(e){sE(e),lE(e.client),e.variables!==void 0&&FS(e.variables),e.tempTableMaxRows!==void 0&&pi(e.tempTableMaxRows,"tempTableMaxRows");let t=cE(e,MS,"runBatch"),n=uE(e.logicalApps);return{client:e.client,...n===void 0?{}:{logicalApps:n},executeOptions:{...t,...e.variables!==void 0?{variables:e.variables}:{},...e.tempTableMaxRows!==void 0?{tempTableMaxRows:e.tempTableMaxRows}:{}}}}function xS(e,t,n){return e.slice(t,n)}function di(e,t,n){let r=lu(e),i=r.find(d=>d.profile!==null);if(i!==void 0)throw new Error(`ArgumentError: browser engine library does not support @profile suffixes (${xS(e,i.start,i.fullEnd)}).`);if(!r.some(d=>d.source==="logical"))return{sql:e,client:t,logicalBindings:[]};let o=iE(e,"browser",{resolveLogicalApp(d){let p=n?.[d];if(p===void 0)throw new Error(`ArgumentError: logical app LAPP_${d} is not defined.`);return p}}),a=[...o.appBindingByMappedApp.values()].filter(d=>d.source==="logical"),s=d=>o.appBindingByMappedApp.get(d)?.appId??d,l={getRecords:d=>t.getRecords({...d,app:s(d.app)}),openCursor:d=>t.openCursor({...d,app:s(d.app)}),getApps:()=>t.getApps(),getFields:d=>t.getFields(s(d)),getNumberPrecision:d=>t.getNumberPrecision(s(d)),getProcessStatuses:d=>t.getProcessStatuses(s(d))};return{sql:o.normalizedSql,client:l,logicalBindings:a}}function fi(e,t){if(t.length===0)return e;let n=t.map(r=>`LAPP_${r.logicalName} -> APP${r.appId}`).filter((r,i,o)=>o.indexOf(r)===i);return e.message=`${e.message} [logical apps: ${n.join(", ")}]`,e}function da(e){return{recordGetCalls:e?.getCalls??0,fetchedRows:e?.fetchedRows??0,elapsedMs:e?.elapsedMs??0,cursorRecordsScanned:e?.cursorRecordsScanned??0,limitReached:e?.limitReached??!1,limitReachedApps:e?[...e.limitReachedApps].sort((t,n)=>t-n):[]}}function KS(e){return Object.fromEntries(Object.entries(e).map(([t,n])=>[t,String(n)]))}function BS(e,t){let n=t?.get(e),r=n?.fieldType??n?.semantics?.fieldType,i=n?.semantics?.compareMode,o=n?.sortKind??(i==="number"||i==="string"?i:void 0),a=n?.publicSourceApp;return{name:e,valueType:"string",...r!==void 0?{fieldType:r}:{},...o!==void 0?{sortKind:o}:{},...a!==void 0?{sourceApp:a}:{}}}function fa(e,t=e.metrics){let n=zd(e);return{type:"query",rows:e.rows.map(KS),columns:e.columns.map(r=>BS(r,n)),rowCount:e.rowCount,warnings:[...e.warnings??[]],...e.validateStats?{validateStats:e.validateStats}:{},metrics:da(t)}}function dE(e,t={}){let n=new Pt(e).tokenize(),r=new Nt(n,t).parse();return $e(r),r}function fE(e,t={}){let n=new Pt(e).tokenize(),r=new Nt(n,t).parseStatements();return r.forEach($e),r}function cu(e){let t=e.type==="EXPLAIN"?e.query:e;if(t.type!=="UPDATE"&&t.type!=="INSERT"&&t.type!=="UPSERT")return!1;let n=t;return["applyBlocks","onInsertApplyBlocks","onUpdateApplyBlocks"].some(r=>Array.isArray(n[r])&&n[r].length>0)}function EE(e){if(e instanceof oe)return Hn(e.message,e);let t=ln(e);return t.code==="PARSE_ERROR"?t:Hn("SQL statement could not be parsed",e)}function $S(e){if(e.trim()==="")throw Hn("SQL statement is empty");try{return dE(e,{import:!0})}catch(t){let n=EE(t);throw n.message.includes("\u8907\u6587\u306F\u30D0\u30C3\u30C1\u5B9F\u884C API \u3092\u4F7F\u7528\u3057\u3066\u304F\u3060\u3055\u3044")?Hn("This API accepts one statement; use runBatch for multiple statements",t):n}}function RE(e){if(hi(e)==="UNKNOWN")throw Ke("Unclassifiable statement is not allowed");return e}function mE(e){if(e.trim()==="")throw Hn("SQL statement is empty");try{return fE(e,{import:!0})}catch(t){throw EE(t)}}function GS(e){let t=RE(e),n=t.type;if(n==="IMPORT")throw Ke("IMPORT is disabled by default in engine library queries");if(!dn(t))throw Ke(`${n} statements are not read-only`);if(cu(t))throw Ke("APPLY statements are not allowed in engine library queries");if(!wu(t))throw Ke(`${n} does not return rows; use runBatch for batch-scoped or non-row-returning read-only statements`)}function yE(e){let t=RE(e),n=t.type==="EXPLAIN"?t.query:t;if(n.type==="IMPORT")throw Ke("IMPORT is disabled by default in engine library batches");if(!dn(n))throw Ke(`${n.type} statements are not read-only`);if(cu(n))throw Ke("APPLY statements are not allowed in engine library batches");if(kt(n.type))throw Ke("DML VALIDATE ONLY statements are not supported by runBatch")}function gE(e){let t=$S(e);return GS(t),t}function hE(e){let t=mE(e);return t.forEach(yE),t}function AE(e){let t=e.trim(),n=mE(t);n.forEach(yE);let r=n[0],i=r.type==="EXPLAIN"?r.query:r;return n.length===1&&(i.type==="SELECT"||i.type==="WITH"||i.type==="UNION")?{statements:n,legacySql:r.type==="EXPLAIN"?t:`EXPLAIN ${t}`}:{statements:n}}function VS(e){let t=e.error,n=t?.cause!==void 0?ln(t.cause):new ce("EXECUTION_ERROR",t?.message??`Statement ${e.index} failed`);return nu(n,e.index,e.type)}async function pu(e,t){let n=[],r=[];try{let i=pE(t),o=di(e,i.client,i.logicalApps);r=o.logicalBindings,n=hE(o.sql);let a=await jn(o.client,p=>nf(o.sql,Yn(p),{...i.executeOptions,captureColumnMeta:!0})),s=a.statements.find(p=>p.status==="error");if(s!==void 0)throw VS(s);let l=[],d=a.statements.map(p=>{let c={index:p.index,type:p.type,status:p.status};return p.tempTable!==void 0&&(c.tempTable=p.tempTable),p.rowCount!==void 0&&(c.rowCount=p.rowCount),p.error!==void 0&&(c.error={code:p.error.code,message:p.error.message}),p.skippedReason!==void 0&&(c.skippedReason=p.skippedReason),p.status==="success"&&p.result?.type==="SELECT"&&(c.resultIndex=l.length,l.push(fa(p.result,a.metrics))),c});return{type:"batch",batch:!0,statementCount:a.statementCount,statements:d,results:l,warnings:[]}}catch(i){throw fi(sa(i,n),r)}}function SE(e){if(e===null||typeof e!="object"||e.type!=="SELECT")throw new Error("Engine returned a non-SELECT result")}async function du(e,t){let n=[];try{let r=uu(t,"run"),i=di(e,r.client,r.logicalApps);n=i.logicalBindings;let a=gE(i.sql).type==="VALIDATE"?{...r.executeOptions,onLimitReached:"error"}:r.executeOptions,s=await jn(i.client,l=>Cl(i.sql,Yn(l),{...a,captureColumnMeta:!0}));return SE(s),fa(s)}catch(r){throw fi(ln(r),n)}}async function fu(e,t){let n=[],r=[];try{let i=uu(t,"explain"),o=di(e,i.client,i.logicalApps);r=o.logicalBindings;let a=AE(o.sql);if(n=a.statements,a.legacySql!==void 0){let d=await jn(o.client,c=>Cl(a.legacySql,Yn(c),i.executeOptions));SE(d);let p=d.rows.map(c=>String(c.plan??""));return{type:"explain",lines:p,text:p.join(`
|
|
14
|
+
`),metrics:da(d.metrics)}}let s=await jn(o.client,d=>Wf(o.sql,Yn(d),void 0,"batch-explain",i.executeOptions.maxRecords,i.executeOptions.cursorMaxActive)),l=s.statements.flatMap(d=>[...s.statementCount>1?[`[${d.index+1}] ${d.type}`]:[],...d.plan]);return{type:"explain",lines:l,text:l.join(`
|
|
15
|
+
`),metrics:da()}}catch(i){throw fi(sa(i,n),r)}}var Eu="3.37.0";var TE=(e,t)=>Object.prototype.hasOwnProperty.call(e,t);function WS(){let e=Object.create(null);return Object.freeze({versions:e,get(t){return TE(e,t)?e[t]:void 0}})}function HS(e){if(e===null||typeof e!="object")return!1;let t=e;return t.versions!==null&&typeof t.versions=="object"&&!Array.isArray(t.versions)&&typeof t.get=="function"}function IE(e,t,n,r=console){let i;if(e.ksql===void 0){i=WS();try{e.ksql=i}catch(a){r.error(`[kSQL engine ${t}] window.ksql registry could not be initialized; loading was aborted.`,a);return}}else if(HS(e.ksql))i=e.ksql;else{r.error(`[kSQL engine ${t}] window.ksql already exists but is not a compatible { versions, get } registry; loading was aborted.`);return}if(TE(i.versions,t))return r.warn(`[kSQL engine ${t}] this version is already registered; the first entry was kept.`),i;let o=Object.freeze(n);try{i.versions[t]=o}catch(a){r.error(`[kSQL engine ${t}] the compatible window.ksql registry rejected registration; loading was aborted.`,a);return}return i}var YS={version:Eu,createReadonlyKintoneClient:iu,explainQuery:fu,KsqlEngineError:ce,runBatch:pu,runQuery:du};IE(window,Eu,YS);})();
|