@rex0220/kintone-sql-tools 3.37.0 → 3.38.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 +87 -51
- package/dist-engine/index.cjs +9 -9
- package/dist-engine/index.mjs +9 -9
- package/dist-engine/ksql-engine.umd.js +9 -9
- package/dist-engine/meta/bundle-baseline.json +10 -10
- package/dist-engine/meta/cjs.json +27 -14
- package/dist-engine/meta/esm.json +27 -14
- package/dist-engine/meta/umd.json +27 -14
- package/dist-engine/publicTypes.d.ts +1 -0
- package/dist-mcp/ksql-mcp.js +91 -52
- package/dist-mcpb/ksql-mcp.mcpb +0 -0
- package/package.json +1 -1
package/dist-engine/index.mjs
CHANGED
|
@@ -1,15 +1,15 @@
|
|
|
1
|
-
async function Ie(e,t,n,r,i={}){let o=i.pageSize??yE,a=Math.max(1,i.parallel??gE),s=i.maxRecords??hE,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=du(n,R),y=await pu(e,t,g,c,o,m);if(cu(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=fu(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=du(n,R),b=await Promise.all(I.map(P=>pu(e,t,L,c,o,P)));for(let P of b)cu(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=fu(P.records),m=0}}return u}function cu(e,t){e.searchAborted&&t.onSearchAborted?.()}function Eu(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 yE=500,gE=1,hE=1e4,Ea=1e4;async function pu(e,t,n,r,i,o){let a=AE(n,i,o);return e({app:t,query:a,fields:r})}function du(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 AE(e,t,n){let r=e.trimEnd(),i=`limit ${t} offset ${n}`;return r?`${r} ${i}`:i}function fu(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 SE=/^([+-]?)(?:(\d+)(?:\.(\d*))?|\.(\d+))(?:[eE]([+-]?)(\d+))?$/;function TE(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=SE.exec(e.trim());if(t===null)return null;let n=TE(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 IE(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 Ru(e){let t=Le(e);return t===null?null:IE(t)}function wE(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=wE(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 Ee(e){return{type:"NUMBER",value:Number(e),raw:e}}function H(e){let t=e.raw??String(e.value);return Ru(t)??t}function mu(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 bE(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=bE(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 yu(e){return ne(e).type!=="NONE"}function gu(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 Mt(e){return e==="INSERT"||e==="INSERT_SELECT"||e==="UPDATE"||e==="DELETE"||e==="UPSERT"||e==="UPSERT_SELECT"||e==="REORDER"||e==="IMPORT"}function PE(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 Mt(e.type)&&!("validateOnly"in e&&e.validateOnly===!0)}function dn(e){return!Ra(e)&&(PE(e.type)||Mt(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 Au=new Set(["STDDEV_POP","STDDEV_SAMP","VAR_POP","VAR_SAMP","MEDIAN","MODE"]);function Re(e,t){for(let n of t)e.add(n)}function 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"&&Au.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"&&!Au.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(Mt(e.type))return t.add("DML"),t;switch(e.type){case"VALIDATE":t.add("VALIDATE");break;case"SELECT":Re(t,pn(e));break;case"UNION":Re(t,Tu(e));break;case"WITH":for(let n of e.ctes)Re(t,ht(n.query));Re(t,ht(e.query));break;case"CREATE_TEMP_TABLE":Re(t,ht(e.query));break;default:break}return yi(e)&&t.add("STATISTICAL_AGGREGATE"),gi(e)&&t.add("AGGREGATE"),t}function Su(e){return ht(e).size>0}function Tu(e){let t=e.left.type==="SELECT"?pn(e.left):Tu(e.left);return Re(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"&&Re(t,pn(r.query)),r.type==="CASE_COL")for(let i of r.expr.branches)Re(t,cn(i.condition));return Re(t,cn(e.where)),Re(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")&&Re(t,pn(e.right.query));break;case"LOGICAL":Re(t,cn(e.left)),Re(t,cn(e.right));break;case"NOT":case"GROUP":Re(t,cn(e.expr));break;case"EXISTS":Re(t,pn(e.query));break;case"NULL_CHECK":case"BOOLEAN":break}return t}function Iu(e){if(!e||typeof e!="object")return!1;let t=e;return t.where!==null&&t.where!==void 0}function wu(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"]),kt=new Set(["TODAY","NOW","LOGINUSER","PRIMARY_ORGANIZATION"]),zn=new Set([...kt,...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 kt.has(e)}function Be(e){return zn.has(e)}var NE=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 CE(e,t){let n=qn;qn=e;try{return t()}finally{qn=n}}function OE(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 CE(e,()=>LE(t,NE[e]))}function LE(e,t){let n=OE(e);if(n===null)return;if(n.type==="UPSERT"){DE(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"){vE(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"),UE(i.where,t.multipleParents),Pu(r,t)}function Pu(e,t){for(let n of e){for(let r of n.operations)t.operations.has(r.kind)||W(`${r.kind} in this phase`);Nu(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"&&bu(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"&&bu(r.selector.where,t.idxSelectors)}}}}function Nu(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 _E=new Set(["MULTI_SELECT","CHECK_BOX","USER_SELECT","ORGANIZATION_SELECT","GROUP_SELECT"]);function Cu(e,t){if(Nu(e),e.targetKind==="MULTI_VALUE"){if(!_E.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 DE(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"),Ou(n,"UPSERT ON INSERT"),Pu(r,{...t,idxSelectors:!1,expectRows:!1})}function Ou(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 vE(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"),Ou(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 Lu(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 UE(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 bu(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=ME(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 ME(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 _u(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 ce(e){if(e===null)return!1;if(St(e))return!0;switch(e.type){case"LOGICAL":return ce(e.left)||ce(e.right);case"NOT":case"GROUP":return ce(e.expr);case"BINARY":case"NULL_CHECK":case"EXISTS":case"BOOLEAN":return!1}}function G(e){switch(e.type){case"BINARY":return kE(e);case"NULL_CHECK":return xE(e);case"LOGICAL":return KE(e);case"NOT":return BE(e);case"GROUP":return $E(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 kE(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=vu(e.left),n=FE(e.op),r=GE(e.right,e.op);return`${t} ${n} ${r}`}function FE(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 xE(e){let t=vu(e.field);return e.not?`${t} != ""`:`${t} = ""`}function KE(e){let t=G(e.left),n=G(e.right),r=e.op==="AND"?"and":"or",i=Du(e.left)?`(${t})`:t,o=Du(e.right)?`(${n})`:n;return`${i} ${r} ${o}`}function BE(e){return G(Jn(e.expr))}function $E(e){return`(${G(e.expr)})`}function vu(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 GE(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 Uu(e);case"NUMBER":return H(e);case"KINTONE_FUNC":return Mu(e);case"IN_LIST":return zE(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 Uu(e){return`"${e.value.replace(/\\/g,"\\\\").replace(/"/g,'\\"')}"`}function Mu(e){switch(e.name){case"TODAY":case"NOW":case"LOGINUSER":case"PRIMARY_ORGANIZATION":return`${e.name}()`}return VE(e)}function VE(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"||!YE(e.args.offset,e.args.offsetText)||!WE.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&&!HE.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"||!jE(e.args.day)?Qn():e.args.day===null?`${e.name}()`:`${e.name}(${e.args.day})`}return Qn()}var WE=new Set(["DAYS","WEEKS","MONTHS","YEARS"]),HE=new Set(["SUNDAY","MONDAY","TUESDAY","WEDNESDAY","THURSDAY","FRIDAY","SATURDAY"]);function YE(e,t){return!Number.isSafeInteger(e)||!/^(?:0|[1-9]\d*|-[1-9]\d*)$/.test(t)?!1:Number(t)===e}function jE(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 zE(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 qE(e.values),`(${e.values.map(r=>r.type==="STRING"?Uu(r):r.type==="NUMBER"?H(r):Mu(r)).join(",")})`}function qE(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 Du(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 ku(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 xu(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(xu).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`${ku(e.left)} ${e.op.replace("_"," ")} ${xu(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 Fu(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 ${Fu(r.result)}`).join(" "),n=e.elseResult===null?"":` ELSE ${Fu(e.elseResult)}`;return`CASE ${t}${n} END`}function XE(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(XE).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 QE(e){return e.type==="WILDCARD"?"*":e.type==="FIELD_REF"||e.type==="ARITH"?gn(e,!0):xt(e)}function we(e,t,n){let r=QE(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 ZE(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||ZE(e.columns)||e.columns.some(t=>t.type==="AGGREGATE"||t.type==="ARITH_AGG_COL"||t.type==="SCALAR_SUBQUERY_COL"||t.type==="STRFUNC_COL"&&Vu(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 Ku(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 Ku(e.field);case"LOGICAL":return Tt(e.left)||Tt(e.right);case"NOT":case"GROUP":return Tt(e.expr);case"EXISTS":return!0}}function Ku(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(eR).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:tR(e.columns),totalCount:!1}}function Gu(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=Hu(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 eR(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 tR(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 nR(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"?nR(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)rR(n,t)}function rR(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)Bu(n.result,t);e.elseResult&&Bu(e.elseResult,t)}}function Bu(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"&&iR(e.arg,t);return}e.type==="AGG_ARITH"&&(Ta(e.left,t),Ta(e.right,t))}function iR(e,t){e.type==="FIELD_REF"||e.type==="ARITH"?tr(e,t):hn(e,t)}function Vu(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"?Vu(e):e.type==="SCALAR_ARITH"||e.type==="CONCAT_OP"?nr(e.left)||nr(e.right):e.type==="CASE_WHEN"?e.branches.some(t=>$u(t.result))||e.elseResult!==null&&$u(e.elseResult):!1}function $u(e){return e.type==="ARRAY"||e.type==="FIELD_REF"||e.type==="ARITH"?!1:nr(e)}function Wu(e,t){let n=new Set,r=Hu(e,t,{includeMaterialized:!0,unqualified:n});return{bySource:new Map([...r.entries()].map(([i,o])=>[i,new Set(o.fields)])),unqualified:n}}function Hu(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=oR(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")&&aR(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}},k=(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)=>k(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 oR(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 aR(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||yu(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:Yu(e.left,t)};case"NULL_CHECK":return{...e,field:Yu(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 Yu(e,t){return e.type==="FIELD"&&e.tableAlias===t?{...e,tableAlias:null}:e}function An(e,t={}){return rr(e,n=>sR(n,t))}function ir(e,t={}){return rr(e,n=>ju(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 sR(e,t){return lR(e,t)||pR(e,t)?!0:ju(e,t)?t.fieldTypes?.get(e.left.field)==="NUMBER":cR(e,t)}function lR(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 uR=new Set(["DROP_DOWN","RADIO_BUTTON","CHECK_BOX","MULTI_SELECT","STATUS"]);function cR(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||!uR.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 pR(e,t){return!dR(e.left,t)||e.right.type!=="NUMBER"?!1:e.op==="="||e.op===">"||e.op==="<"||e.op===">="||e.op==="<="}function dR(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 ju(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||!RR(l,a)||o===null||!qu(o,l))return null;let d={prefilterWhere:t.where,residualWhere:null,exactRelativeLeaves:ER(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 fR(p,e,l),p}function fR(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 ER(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 RR(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 Ju(e){Xu(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 Xu(e){switch(e.type){case"SELECT":In(e);return;case"UNION":La(e);return;case"WITH":Qu(e);return;case"EXPLAIN":Xu(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)&&ce(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&&ce(e.where)&&!gR(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&&ce(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):Qu(e)}function La(e){Oa(e.left),In(e.right)}function Qu(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(yR(e),ce(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(mR(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 mR(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 yR(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 gR(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&&hR(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 hR(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 Zu(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(AR(t))throw new ar;return;default:return}}function AR(e){let t=!1;return Li(e,n=>{t||!Object.prototype.hasOwnProperty.call(n,"where")||SR(n.where)&&(t=!0)}),t}function SR(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){Zu(e),Ju(e)}var ec=Symbol("ksql.groupingRowMeta"),tc=new WeakMap;function nc(e,t){return Object.defineProperty(e,ec,{value:{includedCanonicalIds:t},enumerable:!1,configurable:!1,writable:!1}),e}function TR(e){return e[ec]}function IR(e){return TR(e)?.includedCanonicalIds}function rc(e,t){tc.set(e,t)}function wn(e,t){let n=IR(t);if(!n)throw new Error("internal error: GROUPING() evaluation requires B65 grouping row membership.");let r=tc.get(e);if(!r)throw new Error("internal error: GROUPING() reference was not resolved during B65 planning.");return n.has(r)?"0":"1"}var oc=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 wR(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 bR(e){return new Set(e.flatMap(t=>"alias"in t&&typeof t.alias=="string"?[t.alias]:[]))}function ic(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 PR(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).`);rc(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 NR(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 ac(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=gu(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)PR(p,t,a);let l=bR(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)||ic(c)||_a(c,t,a,"HAVING")}for(let p of e.orderBy)for(let c of NR(p.key))c.tableAlias===null&&l.has(c.field)||ic(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(!wR(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 Mi=16,sc=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 Ma(e){if(Array.isArray(e)){for(let t of e)Ma(t);return}if(e!==null&&typeof e=="object"){let t=e;t.type==="SELECT"&&va(e);for(let n of Object.values(t))Ma(n)}}function ka(e){if(e.length===0)throw new Z("ArgumentError: SQL is empty.",0);if(e.forEach((c,u)=>{try{Ma(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>sc)throw new Z(`ParseError: batch exceeds ${sc} 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>Mi)throw new Z(`ParseError: batch exceeds ${Mi} 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>Mi)throw new Z(`ParseError: batch exceeds ${Mi} 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:Iu(c),insertValuesCount:wu(c),appIds:[...y].sort((L,b)=>L-b),tempTablesCreated:R,tempTablesReferenced:[...g],tempTablesDropped:m,dependsOn:[...h].sort((L,b)=>L-b),tempOnlySource:I,targetAppId:Mt(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:Su(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 ki=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 me=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 me(`\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 me("\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 me("\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 me("\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&&lc(this.input[this.pos]);)this.pos++;let n=this.input.slice(t,this.pos),r=n.toUpperCase(),i=ki.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 me("\u300C#\u300D \u306E\u76F4\u5F8C\u306B\u306F\u8B58\u5225\u5B50\u304C\u5FC5\u8981\u3067\u3059",t,this.input);for(;this.pos<this.input.length&&lc(this.input[this.pos]);)this.pos++;let r=this.input.slice(t,this.pos);if(this.input[this.pos]==="@")throw new me(`@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 me("\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 me("\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
|
+
async function Ie(e,t,n,r,i={}){let o=i.pageSize??AE,a=Math.max(1,i.parallel??SE),s=i.maxRecords??TE,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,y=Ru(n,R),g=await Eu(e,t,y,c,o,m);if(fu(g,i),u.push(...g.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(g.records.length<o)return u;for(m+=o,m>=ya&&(R=mu(g.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>=ya)break;I.push(D)}let L=Ru(n,R),b=await Promise.all(I.map(P=>Eu(e,t,L,c,o,P)));for(let P of b)fu(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>=ya){let P=b[b.length-1];R=mu(P.records),m=0}}return u}function fu(e,t){e.searchAborted&&t.onSearchAborted?.()}function yu(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 AE=500,SE=1,TE=1e4,ya=1e4;async function Eu(e,t,n,r,i,o){let a=IE(n,i,o);return e({app:t,query:a,fields:r})}function Ru(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 IE(e,t,n){let r=e.trimEnd(),i=`limit ${t} offset ${n}`;return r?`${r} ${i}`:i}function mu(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 wE=/^([+-]?)(?:(\d+)(?:\.(\d*))?|\.(\d+))(?:[eE]([+-]?)(\d+))?$/;function bE(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=wE.exec(e.trim());if(t===null)return null;let n=bE(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 PE(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 gu(e){let t=Le(e);return t===null?null:PE(t)}function NE(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 mi(e,t){if(e.sign!==t.sign)return e.sign<t.sign?-1:1;if(e.sign===0)return 0;let n=NE(e,t);return e.sign===-1?n===0?0:n===-1?1:-1:n}function yi(e,t){let n=Le(e),r=Le(t);if(n===null||r===null)throw new Error("ArgumentError: compareDecimal requires finite decimal inputs.");return mi(n,r)}var ze="__NO_FROM__";function Ee(e){return{type:"NUMBER",value:Number(e),raw:e}}function H(e){let t=e.raw??String(e.value);return gu(t)??t}function hu(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 CE(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=CE(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 Au(e){return ne(e).type!=="NONE"}function Su(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 Ai(e){if(!e||typeof e!="object")return"UNKNOWN";let t=e;return typeof t.type=="string"?t.type:"UNKNOWN"}function Mt(e){return e==="INSERT"||e==="INSERT_SELECT"||e==="UPDATE"||e==="DELETE"||e==="UPSERT"||e==="UPSERT_SELECT"||e==="REORDER"||e==="IMPORT"}function OE(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 ga(e){return Mt(e.type)&&!("validateOnly"in e&&e.validateOnly===!0)}function dn(e){return!ga(e)&&(OE(e.type)||Mt(e.type))}function Tu(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 Iu=new Set(["STDDEV_POP","STDDEV_SAMP","VAR_POP","VAR_SAMP","MEDIAN","MODE"]);function Re(e,t){for(let n of t)e.add(n)}function 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"&&Iu.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=>gi(i,t)):gi(r,t))}function hi(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"&&!Iu.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=>hi(i,t)):hi(r,t))}function ht(e){let t=new Set;if(Mt(e.type))return t.add("DML"),t;switch(e.type){case"VALIDATE":t.add("VALIDATE");break;case"SELECT":Re(t,pn(e));break;case"UNION":Re(t,bu(e));break;case"WITH":for(let n of e.ctes)Re(t,ht(n.query));Re(t,ht(e.query));break;case"CREATE_TEMP_TABLE":Re(t,ht(e.query));break;default:break}return gi(e)&&t.add("STATISTICAL_AGGREGATE"),hi(e)&&t.add("AGGREGATE"),t}function wu(e){return ht(e).size>0}function bu(e){let t=e.left.type==="SELECT"?pn(e.left):bu(e.left);return Re(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"&&Re(t,pn(r.query)),r.type==="CASE_COL")for(let i of r.expr.branches)Re(t,cn(i.condition));return Re(t,cn(e.where)),Re(t,cn(e.having)),gi(e)&&t.add("STATISTICAL_AGGREGATE"),hi(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")&&Re(t,pn(e.right.query));break;case"LOGICAL":Re(t,cn(e.left)),Re(t,cn(e.right));break;case"NOT":case"GROUP":Re(t,cn(e.expr));break;case"EXISTS":Re(t,pn(e.query));break;case"NULL_CHECK":case"BOOLEAN":break}return t}function Pu(e){if(!e||typeof e!="object")return!1;let t=e;return t.where!==null&&t.where!==void 0}function Nu(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 Si=new Set(["YESTERDAY","TOMORROW","FROM_TODAY","THIS_WEEK","LAST_WEEK","NEXT_WEEK","THIS_MONTH","LAST_MONTH","NEXT_MONTH","THIS_YEAR","LAST_YEAR","NEXT_YEAR"]),kt=new Set(["TODAY","NOW","LOGINUSER","PRIMARY_ORGANIZATION"]),zn=new Set([...kt,...Si]),xt="WHERE_RELATIVE_DATE_REQUIRES_EXACT_PUSHDOWN",at="WHERE_KINTONE_FUNCTION_REQUIRES_EXACT_PUSHDOWN";function J(e){return Si.has(e)}function fn(e){return kt.has(e)}function Be(e){return zn.has(e)}var LE=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})}),Sa=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 _E(e,t){let n=qn;qn=e;try{return t()}finally{qn=n}}function DE(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 _E(e,()=>vE(t,LE[e]))}function vE(e,t){let n=DE(e);if(n===null)return;if(n.type==="UPSERT"){ME(n,t);return}let r=n.applyBlocks;if(ha(r),!t.multipleBlocks&&r.length!==1&&W("multiple APPLY blocks in this phase"),n.type==="INSERT"){kE(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"),xE(i.where,t.multipleParents),Ou(r,t)}function Ou(e,t){for(let n of e){for(let r of n.operations)t.operations.has(r.kind)||W(`${r.kind} in this phase`);Lu(n);for(let r of n.operations){if(r.kind==="APPEND"){for(let i of r.fields)Ti(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"&&Cu(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"&&Cu(r.selector.where,t.idxSelectors)}}}}function Lu(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 UE=new Set(["MULTI_SELECT","CHECK_BOX","USER_SELECT","ORGANIZATION_SELECT","GROUP_SELECT"]);function _u(e,t){if(Lu(e),e.targetKind==="MULTI_VALUE"){if(!UE.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 ha(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 ME(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??[];ha(n),ha(r),!t.multipleBlocks&&(n.length>1||r.length>1)&&W("multiple APPLY blocks in this phase"),Du(n,"UPSERT ON INSERT"),Ou(r,{...t,idxSelectors:!1,expectRows:!1})}function Du(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)Ti(i,"APPEND targets");Rn(r.values,"APPEND values")}}function kE(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"),Du(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 Ii(e,t){let n=Sa[e],r="validateOnly"in t&&t.validateOnly===!0;if(t.type!=="EXPLAIN"&&!r&&Ta(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 Ta(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 vu(e,t){if(!(t.type!=="UPDATE"||!t.applyBlocks?.length||st(t.where))&&!Sa[e].publicMultipleParentWrite)throw new Error(`UnsupportedError: APPLY ${En(e)} public multiple-parent write is not connected`)}function yn(e){if(!Sa[e].internalPreparedWrite)throw new Error(`UnsupportedError: APPLY ${En(e)} internal prepared write is not available`)}function En(e){return`Phase ${e.slice(5)}`}function xE(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"),Aa(e,t))}function Aa(e,t){if(Array.isArray(e)){for(let o of e)Aa(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))Aa(o,t)}function Cu(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}`),Ti(l,t,n)}if(i==="FIELD_REF"&&Ti(r.field,t,n),!(o==="PATCH"||o==="APPEND"||o==="REMOVE"))for(let s of Object.values(r))Rn(s,t,n)}function Ti(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=FE(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 FE(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 Uu(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 ce(e){if(e===null)return!1;if(St(e))return!0;switch(e.type){case"LOGICAL":return ce(e.left)||ce(e.right);case"NOT":case"GROUP":return ce(e.expr);case"BINARY":case"NULL_CHECK":case"EXISTS":case"BOOLEAN":return!1}}function G(e){switch(e.type){case"BINARY":return KE(e);case"NULL_CHECK":return $E(e);case"LOGICAL":return GE(e);case"NOT":return VE(e);case"GROUP":return WE(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 KE(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=ku(e.left),n=BE(e.op),r=HE(e.right,e.op);return`${t} ${n} ${r}`}function BE(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 $E(e){let t=ku(e.field);return e.not?`${t} != ""`:`${t} = ""`}function GE(e){let t=G(e.left),n=G(e.right),r=e.op==="AND"?"and":"or",i=Mu(e.left)?`(${t})`:t,o=Mu(e.right)?`(${n})`:n;return`${i} ${r} ${o}`}function VE(e){return G(Jn(e.expr))}function WE(e){return`(${G(e.expr)})`}function ku(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 ZE(e.field)}function HE(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 xu(e);case"NUMBER":return H(e);case"KINTONE_FUNC":return Fu(e);case"IN_LIST":return XE(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 xu(e){return`"${e.value.replace(/\\/g,"\\\\").replace(/"/g,'\\"')}"`}function Fu(e){switch(e.name){case"TODAY":case"NOW":case"LOGINUSER":case"PRIMARY_ORGANIZATION":return`${e.name}()`}return YE(e)}function YE(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"||!qE(e.args.offset,e.args.offsetText)||!jE.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&&!zE.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"||!JE(e.args.day)?Qn():e.args.day===null?`${e.name}()`:`${e.name}(${e.args.day})`}return Qn()}var jE=new Set(["DAYS","WEEKS","MONTHS","YEARS"]),zE=new Set(["SUNDAY","MONDAY","TUESDAY","WEDNESDAY","THURSDAY","FRIDAY","SATURDAY"]);function qE(e,t){return!Number.isSafeInteger(e)||!/^(?:0|[1-9]\d*|-[1-9]\d*)$/.test(t)?!1:Number(t)===e}function JE(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 XE(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 QE(e.values),`(${e.values.map(r=>r.type==="STRING"?xu(r):r.type==="NUMBER"?H(r):Fu(r)).join(",")})`}function QE(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 ZE(e){return/^[\w$\u3000-\u9FFF]+$/u.test(e)?e:`"${e.replace(/"/g,'\\"')}"`}function Mu(e){return e.type==="LOGICAL"}var ie=class extends Error{constructor(t){super(t),this.name="KintoneQueryError"}};function wi(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 wa(e);let n=`${gn(e.left)}${e.op}${gn(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 wa(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 Ia(e.expr)}function $u(e){switch(e.type){case"STRING":return wi(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=>wi(t.value)).join(",")}]`;case"IN_LIST":return`(${e.values.map($u).join(",")})`;case"ARITH_VALUE":return gn(e.expr);case"CASE_VALUE":return Ia(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("_"," ")} ${$u(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 Bu(e){return e.type==="ARRAY"?`[${e.elements.map(t=>wi(t.value)).join(",")}]`:e.type==="FIELD_REF"||e.type==="ARITH"?gn(e):Ft(e)}function Ia(e){let t=e.branches.map(r=>`WHEN ${Zn(r.condition)} THEN ${Bu(r.result)}`).join(" "),n=e.elseResult===null?"":` ELSE ${Bu(e.elseResult)}`;return`CASE ${t}${n} END`}function eR(e){return e.type==="AGG_REF"?we(e.func,e.distinct,e.arg):e.type==="AGG_ARITH"?er(e):Ft(e)}function wa(e){return`${e.func}(${e.args.map(eR).join(",")})`}function Ft(e){switch(e.type){case"STRING":return wi(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 wa(e);case"CASE_WHEN":return Ia(e);case"SCALAR_ARITH":return`(${Ft(e.left)}${e.op}${Ft(e.right)})`;case"CONCAT_OP":return`(${Ft(e.left)}||${Ft(e.right)})`}}function tR(e){return e.type==="WILDCARD"?"*":e.type==="FIELD_REF"||e.type==="ARITH"?gn(e,!0):Ft(e)}function we(e,t,n){let r=tR(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 nR(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||nR(e.columns)||e.columns.some(t=>t.type==="AGGREGATE"||t.type==="ARITH_AGG_COL"||t.type==="SCALAR_SUBQUERY_COL"||t.type==="STRFUNC_COL"&&Yu(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 Gu(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 Gu(e.field);case"LOGICAL":return Tt(e.left)||Tt(e.right);case"NOT":case"GROUP":return Tt(e.expr);case"EXISTS":return!0}}function Gu(e){return e.type==="FUNC_FIELD"||e.type==="ARITH_FIELD"||e.type==="CASE_FIELD"}function bi(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(rR).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:iR(e.columns),totalCount:!1}}function Hu(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=zu(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 rR(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 iR(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(Pa(r.field)):r.type==="ARITH_COL"?tr(r.expr,n):r.type==="STRFUNC_COL"?Na(r.expr,n):r.type==="SCALAR_VALUE_COL"&&hn(r.expr,n);return[...new Set(n)]}function oR(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(Pa(e.field)):e.type==="ARITH"?oR(e,t):e.type==="STRING_FUNC"&&Na(e,t)}function Pa(e){let t=e.indexOf(".");return t<=0?e:e.slice(t+1)||e}function Na(e,t){for(let n of e.args)aR(n,t)}function aR(e,t){if(e.type==="AGG_REF"||e.type==="AGG_ARITH"){ba(e,t);return}hn(e,t)}function hn(e,t){if(e.type==="FIELD"){t.push(Pa(e.tableAlias?`${e.tableAlias}.${e.field}`:e.field));return}if(e.type==="STRING_FUNC"){Na(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)Vu(n.result,t);e.elseResult&&Vu(e.elseResult,t)}}function Vu(e,t){if(e.type!=="ARRAY"){if(e.type==="FIELD_REF"||e.type==="ARITH"){tr(e,t);return}hn(e,t)}}function ba(e,t){if(e.type==="AGG_REF"){e.arg.type!=="WILDCARD"&&sR(e.arg,t);return}e.type==="AGG_ARITH"&&(ba(e.left,t),ba(e.right,t))}function sR(e,t){e.type==="FIELD_REF"||e.type==="ARITH"?tr(e,t):hn(e,t)}function Yu(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"?Yu(e):e.type==="SCALAR_ARITH"||e.type==="CONCAT_OP"?nr(e.left)||nr(e.right):e.type==="CASE_WHEN"?e.branches.some(t=>Wu(t.result))||e.elseResult!==null&&Wu(e.elseResult):!1}function Wu(e){return e.type==="ARRAY"||e.type==="FIELD_REF"||e.type==="ARITH"?!1:nr(e)}function ju(e,t){let n=new Set,r=zu(e,t,{includeMaterialized:!0,unqualified:n});return{bySource:new Map([...r.entries()].map(([i,o])=>[i,new Set(o.fields)])),unqualified:n}}function zu(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=lR(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 F=a.get(A);if(!(!F||F.allFields)){if(A.subtableCode){if(C.startsWith("_p.")){let O=C.slice(3);O&&O!=="*"&&F.fields.add(O);return}return void 0}C&&F.fields.add(C)}},R=(A,C="select",F)=>{if(!A||A==="*")return;if(A==="_p.*"){f();return}if(A.endsWith(".*")){let x=A.slice(0,-2);if(!x){u();return}if(x==="_p"){f();return}let j=d.get(x);if(j){c(j);return}return}if(C==="groupBy"&&F!==void 0){if(F.kind==="PHYSICAL"){let x=r[F.sourceIndex];x&&(n||x.cteName===null)&&E(x,F.fieldCode)}return}if((C==="orderBy"||C==="having"||C==="groupBy")&&p.has(A)||(C==="orderBy"||C==="having"||C==="groupBy")&&uR(A))return;let O=A.indexOf(".");if(O>0){let x=A.slice(0,O),j=A.slice(O+1);if(x==="_p"){l&&E(l,`_p.${j}`);return}let q=d.get(x);if(q){E(q,j);return}if(n)return}n?n.unqualified.add(A):s&&E(s,A)},m=(A,C,F="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,F)},y=(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"){y(A.left,C),y(A.right,C);return}if(A.type==="STRING_FUNC"){S(A,C);return}},g=(A,C="select")=>{if(A.type==="AGG_REF"){A.arg.type!=="WILDCARD"&&I(A.arg,C);return}A.type==="AGG_ARITH"&&(g(A.left,C),g(A.right,C))},h=(A,C="select")=>{if(A.type==="AGG_REF"||A.type==="AGG_ARITH"){g(A,C);return}w(A,C)},S=(A,C="select")=>{for(let F of A.args)h(F,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"){y(A,C);return}w(A,C)},L=(A,C="select")=>{if(A.type!=="ARRAY"){if(A.type==="FIELD_REF"||A.type==="ARITH"){y(A,C);return}w(A,C)}},b=(A,C="select")=>{for(let F of A.branches)D(F.condition,C),L(F.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"){y(A.expr,C);return}A.type!=="GROUPING_FIELD"&&b(A.expr,C)},P=(A,C="select")=>{if(A.type==="ARITH_VALUE"){y(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}},k=(A,C)=>{if(A.type==="FIELD_NAME"){R(A.name,"groupBy",C);return}if(A.type==="ARITH_KEY"){y(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"){y(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":g(A.expr,"select");break;case"ARITH_COL":y(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)=>k(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 lR(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 uR(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||Au(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=Pi(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 Pi(e,t){if(e===null||t===null)return e;switch(e.type){case"BINARY":return{...e,left:qu(e.left,t)};case"NULL_CHECK":return{...e,field:qu(e.field,t)};case"LOGICAL":return{...e,left:Pi(e.left,t),right:Pi(e.right,t)};case"NOT":case"GROUP":return{...e,expr:Pi(e.expr,t)};case"EXISTS":case"BOOLEAN":return e}}function qu(e,t){return e.type==="FIELD"&&e.tableAlias===t?{...e,tableAlias:null}:e}function An(e,t={}){return rr(e,n=>cR(n,t))}function ir(e,t={}){return rr(e,n=>Ju(n,t)||Xu(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 cR(e,t){return pR(e,t)||ER(e,t)?!0:Ju(e,t)?t.fieldTypes?.get(e.left.field)==="NUMBER":fR(e,t)}function pR(e,t){return t.allowKlike===!1||e.op!=="KLIKE"&&e.op!=="NOT_KLIKE"||e.left.type!=="FIELD"||!Ca(e.left,t)?!1:e.right.type==="STRING"||t.allowUnresolvedKlikeVariables===!0&&e.right.type==="VARIABLE"}var dR=new Set(["DROP_DOWN","RADIO_BUTTON","CHECK_BOX","MULTI_SELECT","STATUS"]);function fR(e,t){if(!Xu(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||!dR.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 ER(e,t){return!RR(e.left,t)||e.right.type!=="NUMBER"?!1:e.op==="="||e.op===">"||e.op==="<"||e.op===">="||e.op==="<="}function RR(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 Ju(e,t){return e.left.type!=="FIELD"||e.left.field==="$id"||!Ca(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 Xu(e,t){return e.left.type!=="FIELD"||e.left.field==="$id"||!Ca(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 Ca(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 Oa(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 Ni(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||!gR(l,a)||o===null||!Qu(o,l))return null;let d={prefilterWhere:t.where,residualWhere:null,exactRelativeLeaves:yR(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 mR(p,e,l),p}function mR(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 yR(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 gR(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){ec(e)}function _a(e){if(Oa(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 ec(e){switch(e.type){case"SELECT":In(e);return;case"UNION":va(e);return;case"WITH":tc(e);return;case"EXPLAIN":ec(e.query);return;case"CREATE_TEMP_TABLE":Da(e.query);return;case"SET_VARIABLE":case"DECLARE_VARIABLE":case"ASSERT":Bt(e);return;case"UPDATE":if(e.applyBlocks?.length&&!st(e.where)&&ce(e.where)){La(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&&ce(e.where)&&!SR(e,e.where)){La(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&&ce(e.where)){La(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 La(e){Oi(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 Da(e){e.type==="SELECT"?In(e):e.type==="UNION"?va(e):tc(e)}function va(e){Da(e.left),In(e.right)}function tc(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"&&va(t.query);Da(e.query)}function In(e){if(AR(e),ce(e.where)&&!(_e(e)==="SIMPLE"&&e.from.cteName===null&&e.joins.every(n=>n.table.cteName===null))){let n=Tn(e,{allowUnresolvedVariables:!0});if(Oa(n).length===0){Bt(e);return}if(hR(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 hR(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 AR(e){Oi(e,t=>{if(!St(t))return;if(!Ci(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){Li(e,t=>{t.type==="SELECT"&&In(t)},!0)}function bt(e){let t=!1;return Li(e,n=>{n.type==="BINARY"&&(n.op==="KLIKE"||n.op==="NOT_KLIKE")&&(t=!0)}),t}function SR(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 Ci(e,t){if(e===null)return!1;if(e===t)return!0;switch(e.type){case"LOGICAL":return Ci(e.left,t)||Ci(e.right,t);case"NOT":case"GROUP":return Ci(e.expr,t);case"BINARY":case"NULL_CHECK":case"EXISTS":return!1;case"BOOLEAN":return!1}}function Oi(e,t){if(Array.isArray(e)){for(let r of e)Oi(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&&TR(r)||Oi(r,t)}function Li(e,t,n=!1){if(Array.isArray(e)){for(let i of e)Li(i,t);return}if(e===null||typeof e!="object")return;let r=e;n||t(r);for(let i of Object.values(r))Li(i,t)}function TR(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 nc(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(IR(t))throw new ar;return;default:return}}function IR(e){let t=!1;return _i(e,n=>{t||!Object.prototype.hasOwnProperty.call(n,"where")||wR(n.where)&&(t=!0)}),t}function wR(e){let t=!1;return _i(e,n=>{n.type==="KINTONE_FUNC"&&n.name==="PRIMARY_ORGANIZATION"&&(t=!0)}),t}function _i(e,t){if(Array.isArray(e)){for(let r of e)_i(r,t);return}if(e===null||typeof e!="object")return;let n=e;t(n);for(let r of Object.values(n))_i(r,t)}function $e(e){nc(e),Zu(e)}var rc=Symbol("ksql.groupingRowMeta"),ic=new WeakMap;function oc(e,t){return Object.defineProperty(e,rc,{value:{includedCanonicalIds:t},enumerable:!1,configurable:!1,writable:!1}),e}function bR(e){return e[rc]}function PR(e){return bR(e)?.includedCanonicalIds}function ac(e,t){ic.set(e,t)}function wn(e,t){let n=PR(t);if(!n)throw new Error("internal error: GROUPING() evaluation requires B65 grouping row membership.");let r=ic.get(e);if(!r)throw new Error("internal error: GROUPING() reference was not resolved during B65 planning.");return n.has(r)?"0":"1"}var lc=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 Ui(e){return e.tableAlias?`${e.tableAlias}.${e.field}`:e.field}function Ma(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 Mi(e,t){if(e===null||typeof e!="object")return;if(Array.isArray(e)){e.forEach(r=>Mi(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=>Mi(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(Ma(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 NR(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 CR(e){return new Set(e.flatMap(t=>"alias"in t&&typeof t.alias=="string"?[t.alias]:[]))}function sc(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 OR(e,t,n){let r=t(e.field);if(!r.physical)throw new Error(`ArgumentError: B65 grouping reference ${Ui(e.field)} must resolve to a physical APP field.`);if(!n.has(r.canonicalId))throw new Error(`ArgumentError: B65 GROUPING argument ${Ui(e.field)} is not present in grouping allItems (reason=B65_GROUPING_ARG_NOT_ITEM).`);ac(e,r.canonicalId)}function Ua(e,t,n,r){let i=t(e);if(!i.physical||!n.has(i.canonicalId))throw new Error(`ArgumentError: B65 non-aggregate field ${Ui(e)} in ${r} is not a grouping item (reason=B65_NON_GROUPED_DEPENDENCY).`)}function LR(e){if(e.type==="GROUPING_KEY")return[];if(e.type==="FIELD_NAME")return[Ma(e.name)];let t=[];return sr(e,t),t}function ka(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),Mi(e.columns,r),Mi(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 uc(e,t,n=()=>{}){ka(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=Su(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 ${Ui(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)OR(p,t,a);let l=CR(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(Ma(p.field)):sr(p,c);for(let u of c)Ua(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)||sc(c)||Ua(c,t,a,"HAVING")}for(let p of e.orderBy)for(let c of LR(p.key))c.tableAlias===null&&l.has(c.field)||sc(c)||Ua(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(!NR(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,cc=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 xa(e,t){if(Array.isArray(e)){for(let n of e)xa(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))xa(i,t)}}function Fa(e){if(Array.isArray(e)){for(let t of e)Fa(t);return}if(e!==null&&typeof e=="object"){let t=e;t.type==="SELECT"&&ka(e);for(let n of Object.values(t))Fa(n)}}function Ka(e){if(e.length===0)throw new Z("ArgumentError: SQL is empty.",0);if(e.forEach((c,u)=>{try{Fa(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=Ai(c),R=[],m=[],y=new Set,g=new Set,h=new Set,S=[];xa(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>cc)throw new Z(`ParseError: batch exceeds ${cc} variables.`,u)}c.type==="CREATE_TEMP_TABLE"?ur(c.query,y,g):c.type==="DROP_TEMP_TABLE"||ur(c,y,g);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 y){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:ga(c),isReadOnly:dn(c),hasWhere:Pu(c),insertValuesCount:Nu(c),appIds:[...g].sort((L,b)=>L-b),tempTablesCreated:R,tempTablesReferenced:[...y],tempTablesDropped:m,dependsOn:[...h].sort((L,b)=>L-b),tempOnlySource:I,targetAppId:Mt(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:wu(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 xi=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 me=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(Ba(n))return this.readIdentOrKeyword(t);if(n==="#")return this.readHashIdent(t);if(n==="@")return this.readVariable(t);throw new me(`\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 me("\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 me("\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 me("\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&&pc(this.input[this.pos]);)this.pos++;let n=this.input.slice(t,this.pos),r=n.toUpperCase(),i=xi.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(!Ba(n))throw new me("\u300C#\u300D \u306E\u76F4\u5F8C\u306B\u306F\u8B58\u5225\u5B50\u304C\u5FC5\u8981\u3067\u3059",t,this.input);for(;this.pos<this.input.length&&pc(this.input[this.pos]);)this.pos++;let r=this.input.slice(t,this.pos);if(this.input[this.pos]==="@")throw new me(`@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 me("\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 me("\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 me("\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||CR(t)}function lc(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 CR(e){return e>=12352&&e<=12543||e>=13312&&e<=40959||e>=63744&&e<=64255||e>=65281&&e<=65376}var cc=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"}),dc=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"}),nI=Object.freeze(Object.values(Ka).filter(e=>e!==void 0)),OR=Object.freeze(["COUNT","SUM","AVG","MAX","MIN"]),LR=new Set(OR);function _R(e){return LR.has(e)}var fc=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 pc(e){return Fi[e]!==void 0}var DR=Object.freeze([...Ai]),vR=new Set(["DAYS","WEEKS","MONTHS","YEARS"]),UR=new Set(["SUNDAY","MONDAY","TUESDAY","WEDNESDAY","THURSDAY","FRIDAY","SATURDAY"]);function MR(e){return vR.has(e)}function kR(e){return UR.has(e)}function FR(e){return Number.isInteger(e)&&e>=1&&e<=31}var rI=Object.freeze(Array.from(new Set([...Object.keys(xa),...dc,...Object.keys(Ka),...Object.keys(fc),...Object.keys(Fi),...DR,"IF"]))),xR=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 KR(e,t){return e.kind==="("||e.kind==="."||t.kind===")"||t.kind===","||t.kind==="."?!1:t.kind==="("?!xR.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>cc)throw new T(`batch exceeds ${cc} 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&&KR(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 fc[this.peek().kind]??null}parseWindowColumn(t){if(this.advance(),this.expect("("),this.peek().kind!==")")throw new T(`${t} \u306F\u5F15\u6570\u3092\u53D7\u3051\u4ED8\u3051\u307E\u305B\u3093`,this.peek());this.expect(")"),this.expectSoftKeyword("OVER",`${t} \u306B\u306F OVER (...) \u304C\u5FC5\u8981\u3067\u3059`),this.expect("(");let n=[];if(this.isSoftKeyword("PARTITION")){this.advance(),this.expect("BY","PARTITION \u306E\u5F8C\u306B\u306F BY \u304C\u5FC5\u8981\u3067\u3059");do{let o=this.parseQualifiedIdent();n.push({type:"FIELD",tableAlias:o.tableAlias,field:o.field})}while(this.consume(","))}let r=this.consume("ORDER")?(this.expect("BY"),this.parseOrderBy(!1)):[];if(this.expect(")"),!this.consume("AS"))throw new T("\u30A6\u30A3\u30F3\u30C9\u30A6\u95A2\u6570\u306B\u306F AS alias \u304C\u5FC5\u8981\u3067\u3059",this.peek());let i=this.parseAliasName();return{type:"WINDOW_COL",func:t,partitionBy:n,orderBy:r,alias:i}}selectColumnHasAggregate(t){return t.type==="AGGREGATE"||t.type==="ARITH_AGG_COL"?!0:t.type==="STRFUNC_COL"?t.expr.args.some(n=>this.stringFuncArgHasAggregate(n)):t.type==="SCALAR_VALUE_COL"?this.scalarValueHasAggregate(t.expr):!1}stringFuncArgHasAggregate(t){return t.type==="AGG_REF"||t.type==="AGG_ARITH"?!0:this.scalarValueHasAggregate(t)}scalarValueHasAggregate(t){return t.type==="STRING_FUNC"?t.args.some(n=>this.stringFuncArgHasAggregate(n)):t.type==="SCALAR_ARITH"||t.type==="CONCAT_OP"?this.scalarValueHasAggregate(t.left)||this.scalarValueHasAggregate(t.right):t.type==="CASE_WHEN"?[...t.branches.map(r=>r.result),...t.elseResult?[t.elseResult]:[]].some(r=>r.type==="ARRAY"||r.type==="FIELD_REF"||r.type==="ARITH"?!1:this.scalarValueHasAggregate(r)):!1}isArithOp(t){return t==="+"||t==="-"||t==="*"||t==="/"||t==="%"}continueAggArith(t){return this.continueAggArithAddSub(this.continueAggArithMulDiv(t))}continueAggArithMulDiv(t){for(;this.peek().kind==="*"||this.peek().kind==="/"||this.peek().kind==="%";){let n=this.parseArithOp();t={type:"AGG_ARITH",left:t,op:n,right:this.parseAggPrimary()}}return t}continueAggArithAddSub(t){for(;this.peek().kind==="+"||this.peek().kind==="-";){let n=this.parseArithOp();t={type:"AGG_ARITH",left:t,op:n,right:this.parseAggArithMulDiv()}}return t}parseAggArithMulDiv(){return this.continueAggArithMulDiv(this.parseAggPrimary())}parseAggPrimary(){if(this.consume("(")){let n=this.continueAggArith(this.parseAggPrimary());return this.expect(")"),n}if(this.peek().kind==="-"){this.advance();let n=this.parseAggPrimary();return n.type==="NUMBER"?Ee(`-${H(n)}`):{type:"AGG_ARITH",left:Ee("0"),op:"-",right:n}}if(this.peek().kind==="NUMBER"){let n=this.advance();return Ee(n.value)}let t=this.tryAggregateFunc();if(t!==null)return this.parseAggregateRef(t);throw new T("\u96C6\u8A08\u7B97\u8853\u5F0F\u306B\u306F\u96C6\u8A08\u95A2\u6570\u307E\u305F\u306F\u6570\u5024\u304C\u5FC5\u8981\u3067\u3059",this.peek())}parseScalarValueExpr(t={}){let n=this.scalarAllowsAggregateArgs,r=this.scalarAllowsCase;this.scalarAllowsAggregateArgs=t.allowAggregateArgs===!0,this.scalarAllowsCase=t.allowCase!==!1;let i;try{i=this.parseScalarAddSubConcat(this.scalarAllowsCase)}finally{this.scalarAllowsAggregateArgs=n,this.scalarAllowsCase=r}let o=this.peek();if(o.kind==="IS"||o.kind==="="||o.kind==="!="||o.kind==="<>"||o.kind===">"||o.kind==="<"||o.kind===">="||o.kind==="<="||o.kind==="LIKE"||o.kind==="KLIKE"||o.kind==="IN"||o.kind==="BETWEEN")throw new T("\u30B9\u30AB\u30E9\u30FC\u5024\u5F0F\u306B\u6BD4\u8F03\u30FB\u8FF0\u8A9E\u306F\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093",o);return i}parseScalarAddSubConcat(t){let n=this.parseScalarMulDiv(t);for(;this.peek().kind==="+"||this.peek().kind==="-"||this.peek().kind==="||";){let r=this.advance(),i=this.parseScalarMulDiv(t);n=r.kind==="||"?{type:"CONCAT_OP",left:n,right:i}:{type:"SCALAR_ARITH",left:n,op:r.kind==="+"?"+":"-",right:i}}return n}parseScalarMulDiv(t){let n=this.parseScalarPrimary(t);for(;this.peek().kind==="*"||this.peek().kind==="/"||this.peek().kind==="%";){let r=this.advance(),i=r.kind==="*"?"*":r.kind==="/"?"/":"%";n={type:"SCALAR_ARITH",left:n,op:i,right:this.parseScalarPrimary(t)}}return n}parseScalarPrimary(t){let n=this.peek();if(n.kind==="("){if(this.peekAt(1).kind==="SELECT")throw new T("\u30B9\u30AB\u30E9\u30FC\u5024\u5F0F\u306B\u30B5\u30D6\u30AF\u30A8\u30EA\u306F\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093",n);this.advance();let r=this.parseScalarAddSubConcat(t);return this.expect(")"),r}if(n.kind==="+"||n.kind==="-"){if(this.advance(),this.peek().kind==="+"||this.peek().kind==="-")throw new T("\u5358\u9805\u7B26\u53F7\u3092\u91CD\u306D\u3066\u6307\u5B9A\u3059\u308B\u3053\u3068\u306F\u3067\u304D\u307E\u305B\u3093",this.peek());let r=this.parseScalarPrimary(t);if(r.type==="NUMBER")return Ee(`${n.kind==="-"?"-":"+"}${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:Ee("0"),op:"-",right:r}}if(n.kind==="STRING")return this.advance(),{type:"STRING",value:n.value};if(n.kind==="NUMBER")return this.advance(),Ee(n.value);if(n.kind==="VARIABLE")return this.advance(),{type:"VARIABLE",name:n.value.slice(1).toLowerCase()};if(n.kind==="CASE"){if(!t)throw new T("\u3053\u306E\u30B9\u30AB\u30E9\u30FC\u5024\u5F0F\u3067\u306F CASE \u3092\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093",n);return this.parseCaseWhenExpr()}if(this.tryAggregateFunc()!==null)throw new T(this.insideAggregateArg>0?"\u96C6\u8A08\u95A2\u6570\u306E\u5F15\u6570\u5185\u306B\u96C6\u8A08\u95A2\u6570\u306F\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093":"\u30B9\u30AB\u30E9\u30FC\u5024\u5F0F\u306B\u96C6\u7D04\u95A2\u6570\u306F\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093",n);if(this.tryStringFuncName()!==null)return this.parseStringFuncExpr();if(n.kind==="IDENT"||n.kind==="BIDENT")return this.advance(),this.consume(".")?{type:"FIELD",tableAlias:n.value,field:this.parseIdentifier()}:{type:"FIELD",tableAlias:null,field:n.value};throw new T("\u30B9\u30AB\u30E9\u30FC\u5024\u5F0F\u306E\u30AA\u30DA\u30E9\u30F3\u30C9\u304C\u5FC5\u8981\u3067\u3059",n)}hasTopLevelTokenBeforeValueEnd(t){let n=0;for(let r=this.pos;r<this.tokens.length;r++){let i=this.tokens[r].kind;if(i==="("||i==="[")n++;else if(i===")"||i==="]"){if(n===0)break;n--}if(i===t)return!0;if(n===0&&(i===","||i==="AS"||i==="FROM"||i==="WHERE"||i==="WHEN"||i==="THEN"||i==="ELSE"||i==="END"||i===";"||i==="EOF"))break}return!1}parseArithAddSub(){return this.continueArithAddSub(this.parseArithMulDiv())}parseArithMulDiv(){return this.continueArithMulDiv(this.parseArithPrimary())}continueArith(t){return this.continueArithAddSub(this.continueArithMulDiv(t))}continueArithMulDiv(t){for(;this.peek().kind==="*"||this.peek().kind==="/"||this.peek().kind==="%";){let n=this.parseArithOp(),r=this.parseArithPrimary();t={type:"ARITH",left:t,op:n,right:r}}return t}continueArithAddSub(t){for(;this.peek().kind==="+"||this.peek().kind==="-";){let n=this.parseArithOp(),r=this.parseArithMulDiv();t={type:"ARITH",left:t,op:n,right:r}}return t}parseArithPrimary(){if(this.consume("(")){let n=this.parseArithAddSub();return this.expect(")"),n}if(this.allowUnaryPlusNumber&&this.peek().kind==="+"){this.advance();let n=this.expect("NUMBER","\u5358\u9805 + \u306E\u76F4\u5F8C\u306B\u306F\u6570\u5024\u30EA\u30C6\u30E9\u30EB\u304C\u5FC5\u8981\u3067\u3059");return Ee(`+${n.value}`)}if(this.peek().kind==="-"){if(this.advance(),this.peek().kind==="-"||this.peek().kind==="+")throw new T("\u5358\u9805\u7B26\u53F7\u3092\u91CD\u306D\u3066\u6307\u5B9A\u3059\u308B\u3053\u3068\u306F\u3067\u304D\u307E\u305B\u3093",this.peek());let n=this.parseArithPrimary();return n.type==="NUMBER"?Ee(`-${H(n)}`):{type:"ARITH",left:Ee("0"),op:"-",right:n}}if(this.tryStringFuncName()!==null)return this.parseStringFuncExpr();let t=this.peek();if(t.kind==="NUMBER")return this.advance(),Ee(t.value);if(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(dc.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=BR(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(!_R(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(!MR(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(!kR(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(!FR(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(pc(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(Ee(i.value));else if(i.kind==="-"||i.kind==="+"){let o=this.peek();if(o.kind!=="NUMBER")throw new T(n,i);this.advance();let a=i.kind==="-"?"-":"+";t.push(Ee(`${a}${o.value}`))}else if(i.kind==="VARIABLE")t.push({type:"VARIABLE",name:i.value.slice(1).toLowerCase()});else if(i.kind==="LOGINUSER"){if(t.length>0)throw new T(r,i);if(this.expect("(","LOGINUSER \u306E\u76F4\u5F8C\u306B\u306F\u7A7A\u5F15\u6570\u306E () \u304C\u5FC5\u8981\u3067\u3059"),this.expect(")","LOGINUSER \u306E\u76F4\u5F8C\u306B\u306F\u7A7A\u5F15\u6570\u306E () \u304C\u5FC5\u8981\u3067\u3059"),t.push({type:"KINTONE_FUNC",name:"LOGINUSER"}),this.peek().kind===",")throw new T(r,this.peek())}else 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=mu(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(Ee(`${r.kind==="-"?"-":"+"}${i.value}`))}else{let r=this.advance();if(r.kind==="STRING")n.push({type:"STRING",value:r.value});else if(r.kind==="NUMBER")n.push(Ee(r.value));else throw new T("INSERT \u306E\u5024\u306B\u306F\u6587\u5B57\u5217\u30FB\u6570\u5024\u30FB\u914D\u5217\u30EA\u30C6\u30E9\u30EB\u30FBCASE WHEN \u304C\u5FC5\u8981\u3067\u3059",r)}while(this.consume(","));if(n.length!==t)throw new T(`\u30AB\u30E9\u30E0\u6570\uFF08${t}\uFF09\u3068\u5024\u306E\u6570\uFF08${n.length}\uFF09\u304C\u4E00\u81F4\u3057\u307E\u305B\u3093`,this.prev());return n}parseUpdate(){this.expect("UPDATE"),this.rejectTempTableDml();let t=this.parseIdentifier(),{appId:n,subtableCode:r}=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(pc(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"||ki.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 BR(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 $R=new Set(["SINGLE_LINE_TEXT","MULTI_LINE_TEXT","RICH_TEXT","LINK","DATE","TIME","DATETIME","CREATED_TIME","UPDATED_TIME","CREATOR","MODIFIER"]),GR=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":GR.has(e.fieldType)?t="option":$R.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 VR(e,t){return e<t?-1:e>t?1:0}function Ec(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 WR(e,t){let n=Ec(e),r=Ec(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 Rc(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 HR(e,t,n){let r=Rc(e,n),i=Rc(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 YR(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 mc(e,t){let n=t.optionOrder??new Map,i=[...new Set(YR(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(yc),i}function yc(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 jR(e,t,n){let r=mc(e,n),i=mc(t,n),o=Math.min(r.length,i.length);for(let a=0;a<o;a++){let s=yc(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 WR(e,t);case"recordNumber":return HR(e,t,n.fieldType==="RECORD_NUMBER");case"option":return jR(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 gc(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):VR(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 pe(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(pe(e.left,t,n,r)),o=Number(pe(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 Tc(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 pe(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 zR(e){return e>=55296&&e<=56319}function qR(e){return e>=56320&&e<=57343}function $i(e,t){return t>0&&t<e.length&&zR(e.charCodeAt(t-1))&&qR(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 $a(e,t){let n=Math.min(Math.max(0,t),e.length);return $i(e,n)&&(n-=1),e.slice(0,n)}function JR(e,t){let n=Math.max(0,e.length-t);return $i(e,n)&&(n+=1),e.slice(n)}function XR(e,t,n){let r=hc(t,e.length),i=hc(n,e.length);return i<=r?"":($i(e,r)&&(r+=1),$i(e,i)&&(i-=1),e.slice(r,Math.max(r,i)))}function QR(e,t){let n=e.repeat(Math.ceil(t/e.length));return $a(n,t)}var ZR=200,cr=new Map;function em(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=em(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>=ZR){let s=cr.keys().next().value;s!==void 0&&cr.delete(s)}return cr.set(i,a),a}function tm(e){if(e.includes("$`")||e.includes("$'"))throw new Error("ArgumentError: REGEXP_REPLACE replacement must not contain $` or $'.")}function nm(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 rm(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 im(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 rm(n,o,p,l?s:void 0)})}function se(e,t,n,r){let i=e.args.map(o=>dm(o,t,n,r));switch(e.func){case"UPPER":return(i[0]??"").toUpperCase();case"LOWER":return(i[0]??"").toLowerCase();case"TRIM":return(i[0]??"").trim();case"LTRIM":return(i[0]??"").trimStart();case"RTRIM":return(i[0]??"").trimEnd();case"LENGTH":return String((i[0]??"").length);case"LENGTH_CHAR":return ye("LENGTH_CHAR",i,1,1),String([...i[0]??""].length);case"SUBSTRING":{let o=i[0]??"",a=Math.max(0,Number(i[1]??"1")-1),s=i[2]!==void 0?Number(i[2]):void 0;return XR(o,a,s!==void 0?a+s:o.length)}case"LEFT":{ye("LEFT",i,2,2);let o=i[0],a=Math.trunc(Number(i[1]));return Number.isNaN(a)||a<=0?"":$a(o,a)}case"RIGHT":{ye("RIGHT",i,2,2);let o=i[0],a=Math.trunc(Number(i[1]));return Number.isNaN(a)||a<=0?"":JR(o,a)}case"INSTR":return ye("INSTR",i,2,2),String(i[0].indexOf(i[1])+1);case"LPAD":case"RPAD":{ye(e.func,i,2,3);let o=i[0],a=Math.trunc(Number(i[1]));if(Number.isNaN(a)||a<=0)return"";if(o.length>=a)return $a(o,a);let s=i[2]??" ";if(s==="")return o;let l=QR(s,a-o.length);return e.func==="LPAD"?l+o:o+l}case"GREATEST":case"LEAST":return ye(e.func,i,2),gc(i,e.func==="GREATEST"?"greatest":"least");case"CONCAT":return i.join("");case"REPLACE":{let o=i[0]??"",a=i[1]??"",s=i[2]??"";return a===""?o:o.split(a).join(s)}case"REGEXP_LIKE":return ye("REGEXP_LIKE",i,2,3),Ba(i[1],i[2]??"").test(i[0])?"1":"0";case"REGEXP_REPLACE":{ye("REGEXP_REPLACE",i,3,5),tm(i[2]);let o=nm(i[4]),a=Ba(i[1],i[3]??"",!0);return o===0?i[0].replace(a,i[2]):im(i[0],a,i[2],o)}case"REGEXP_SUBSTR":return ye("REGEXP_SUBSTR",i,2,3),Ba(i[1],i[2]??"").exec(i[0])?.[0]??"";case"TRANSLATE":{ye("TRANSLATE",i,3,3);let o=[...i[1]],a=[...i[2]];if(o.length!==a.length)throw new Error(`ArgumentError: TRANSLATE \u306E from \u3068 to \u306F\u540C\u3058\u6587\u5B57\u6570\u3067\u3042\u308B\u5FC5\u8981\u304C\u3042\u308A\u307E\u3059\uFF08from=${o.length}, to=${a.length}\uFF09`);let s=new Map;return o.forEach((l,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 ye("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 cm(o,a)}case"YEAR":{let o=i[0]??"";return o.length>=4?String(parseInt(o.slice(0,4),10)):""}case"MONTH":{let o=i[0]??"";return o.length>=7?String(parseInt(o.slice(5,7),10)):""}case"DAY":{let o=i[0]??"";return o.length>=10?String(parseInt(o.slice(8,10),10)):""}case"DAYOFWEEK":return ye(e.func,i,1,1),Bi(i[0])?String(Ga(i[0])+1):"";case"QUARTER":return ye(e.func,i,1,1),Bi(i[0])?String(Math.ceil(Number(i[0].slice(5,7))/3)):"";case"WEEK":return ye(e.func,i,1,1),Bi(i[0])?String(Sc(i[0])):"";case"DATE_FORMAT":return am(i[0]??"",i[1]??"");case"DATEDIFF":return sm(i[0]??"",i[1]??"");case"DATE_ADD":return lm(i[0]??"",Number(i[1]??"0"),(i[2]??"DAY").toUpperCase());case"LAST_DAY":return ye("LAST_DAY",i,1,1),um(i[0]);case"ABS":return String(Math.abs(Number(i[0]??"0")));case"MOD":{let o=Number(i[0]??"0"),a=Number(i[1]??"0");return String(a!==0?o%a:NaN)}case"POWER":return String(Math.pow(Number(i[0]??"0"),Number(i[1]??"0")));case"SQRT":return String(Math.sqrt(Number(i[0]??"0")));case"CURRENT_DATE":{let o=new Date,a=o.getFullYear(),s=String(o.getMonth()+1).padStart(2,"0"),l=String(o.getDate()).padStart(2,"0");return`${a}-${s}-${l}`}case"CURRENT_TIMESTAMP":return new Date().toISOString()}}function ye(e,t,n,r=Number.POSITIVE_INFINITY){if(t.length>=n&&t.length<=r)return;let i=n===r?String(n):r===Number.POSITIVE_INFINITY?`${n} or more`:`${n} to ${r}`;throw new Error(`ArgumentError: ${e} expects ${i} argument(s).`)}function 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 Ac(e){let t=Gi(e),n=t.getUTCDay()||7;return t.setUTCDate(t.getUTCDate()+4-n),t}function om(e){return Ac(e).getUTCFullYear()}function Sc(e){let t=Ac(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 am(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(Sc(e)).padStart(2,"0"):"";case"%G":return l?String(om(e)).padStart(4,"0"):"";default:return d}})}function sm(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 lm(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 um(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 cm(e,t){if(/^-?\d+$/.test(t.trim()))return pm(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 pm(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 dm(e,t,n,r){return e.type==="AGG_REF"||e.type==="AGG_ARITH"?"":e.type==="NUMBER"?H(e):String(pe(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 fm(e,t,n,r,i);case"NULL_CHECK":return hm(e,t);case"LOGICAL":return Am(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 fm(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=Lc(e.left,t,n,i),a=e.left.type==="FIELD"?n?.(e.left):void 0,s=Rm(e.left,a,i);return Em(e.op,o,e.right,t,a,n,s,i)}function Em(e,t,n,r,i,o,a=B("string"),s){if(e==="IN"||e==="NOT_IN"){let d=null;if(n.type==="IN_LIST"&&(gm(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=ym(t,d,i);return e==="IN"?p:!p}if(e==="LIKE"){let d=Va(n,r,o);return Oc(t,d)}if(e==="NOT_LIKE"){let d=Va(n,r,o);return!Oc(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 Ic=new Set(["LENGTH","LENGTH_CHAR","INSTR","ROUND","FLOOR","CEIL","TRUNCATE","YEAR","MONTH","DAY","DATEDIFF","ABS","MOD","POWER","SQRT","DAYOFWEEK","QUARTER","WEEK"]);function Rm(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(Ic.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(Ic.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 wc=new Set(["CHECK_BOX","MULTI_SELECT"]),bc=new Set(["USER_SELECT","ORGANIZATION_SELECT","GROUP_SELECT","STATUS_ASSIGNEE"]),mm=new Set(["CREATOR","MODIFIER"]);function ym(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(wc.has(n)||bc.has(n)||mm.has(n))try{i=JSON.parse(e)}catch{return r()}else return r();return wc.has(n)?!Array.isArray(i)||!i.every(o=>typeof o=="string")?r():i.length===0&&t.has("")?!0:i.some(o=>t.has(o)):bc.has(n)?!Array.isArray(i)||!i.every(Pc)?r():i.length===0&&t.has("")?!0:i.some(o=>t.has(o.code)):Pc(i)?t.has(i.code):r()}function Pc(e){return e!==null&&typeof e=="object"&&!Array.isArray(e)&&typeof e.code=="string"}function gm(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 hm(e,t){let n=Lc(e.field,t);return e.not?n!=="":n===""}function Am(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 Lc(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 Sm(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 Cc(i.result,t,n,r);return e.elseResult!==null?Cc(e.elseResult,t,n,r):""}function Tc(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?null:Nc(e.elseResult,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"?ae(e,t):Ot(e,t,n,r)}function Cc(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(pe(e,t,n,r))}function _c(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 Sm(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,Tm=200;function Oc(e,t){if(!_u(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>=Tm&&Vi.clear(),Vi.set(t,n)}return n.test(e)}function Nn(e){return vc(e)}function Dc(e){return vc(e.flatMap(t=>t.rules.map(n=>n.condition)))}function vc(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 de("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 de("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 de(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=pe(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 Im=new Set(["USER_SELECT","ORGANIZATION_SELECT","GROUP_SELECT"]),wm=new Set(["CHECK_BOX","MULTI_SELECT"]);function Yi(e,t=new Map){let n=e.values.map(r=>bm(e.fields,r,t));return Rr(n,100).map(r=>({app:e.appId,records:r}))}function bm(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=Yc(e);return{app:e.appId,query:G(e.where),fields:["$id",...t],totalCount:!1}}function Er(e,t,n=new Map){let r=Pm(e.assignments,n);return Rr(t,100).map(i=>({app:e.appId,records:i.map(o=>({id:o,record:r}))}))}function Pm(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 Fc(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"?xc(n,t):n.type==="SCALAR_ARITH"||n.type==="CONCAT_OP"?Cn(n,t):n.type==="STRING_FUNC"?ja(n,t):n.type==="CASE_VALUE"&&Kc(n.expr,t);return Yc(e).forEach(n=>t.add(n)),{app:e.appId,query:G(e.where),fields:["$id",...t],totalCount:!1}}function xc(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"?xc(e,t):e.type==="STRING_FUNC"&&ja(e,t)}function ja(e,t){for(let n of e.args)Nm(n,t)}function Nm(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"&&Kc(e,t)}function Wa(e,t){if(e.type==="AGG_REF"){e.arg.type!=="WILDCARD"&&Cm(e.arg,t);return}e.type==="AGG_ARITH"&&(Wa(e.left,t),Wa(e.right,t))}function Cm(e,t){e.type==="FIELD_REF"||e.type==="ARITH"?dr(e,t):Cn(e,t)}function Uc(e,t){if(e.type!=="ARRAY"){if(e.type==="FIELD_REF"||e.type==="ARITH"){dr(e,t);return}Cn(e,t)}}function Kc(e,t){for(let n of e.branches)Hi(n.condition,t),Uc(n.result,t);e.elseResult!==null&&Uc(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=Bc(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(pe(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 Om=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=Bc(i),l={};for(let{field:d,value:p}of e.assignments){let c=n.get(d);if(p.type==="SOURCE_FIELD"){if(Om.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(pe(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 Bc(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=Mc(e.left,t),r=Mc(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 Mc(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 $c(e){return Ha(e.where),{app:e.appId,query:G(e.where),fields:["$id"],totalCount:!1}}function Gc(e,t){return Rr(t,100).map(n=>({app:e,ids:n}))}function Vc(e){return Im.has(e??"")}function Lm(e){return wm.has(e??"")}function _m(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 Dm(e){return!e||/^\d{4}-\d{2}-\d{2}$/.test(e)?e:e.replace(/\//g,"-")}function Wc(e,t){return Vc(t)?e===""?[]:e.split(",").map(n=>({code:n.trim()})):Lm(t)?e===""?[]:e.split(",").map(n=>n.trim()):t==="DATETIME"?_m(e):t==="DATE"?Dm(e):e}function Hc(e,t){return Vc(t)?e.map(n=>({code:n})):e}function kc(e,t,n){return e.type==="ARRAY"?Hc(e.elements.map(r=>r.value),n):e.type==="STRING"?Wc(e.value,n):e.type==="STRING_FUNC"?se(e,t):e.type==="FIELD_REF"||e.type==="ARITH"?String(ae(e,t)):String(pe(e,t))}function Yc(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=Qa(e,t);if(!n.ok)throw new Q(n.message);return n.value}function Qa(e,t){try{return{ok:!0,value:vm(e,t)}}catch(n){return{ok:!1,message:n instanceof Error?n.message:String(n)}}}function vm(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 Wc(e.value,t);case"NUMBER":return H(e);case"ARRAY":return Hc(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"]),Um=new Set(["USER_SELECT","ORGANIZATION_SELECT","GROUP_SELECT"]);function mr(e){throw new Error(`ArgumentError: ${e}`)}function jc(e,t,n){let r=Mm(n.fieldType,e.field),i=km(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 Mm(e,t){return Za.has(e)||Um.has(e)?e:mr(`APPLY multi-value target ${t} has unsupported type ${e}.`)}function km(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),Fm(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(Cu(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 Fm(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]=Zc(i?.value);return n}function qc(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}.`),Xc(t,n,i,o)}function Jc(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),Xc(e,o,r,a)})}function Xc(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(jc(p,t[p.field]?.value,P));continue}let c=n.childrenByTable.get(p.field),u=Vm(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=Bm(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 k=Km(D,u,E,p.field);D.expectRows&&zc(D.expectRows,k.length,r,p.field,P,D.kind),g.push({kind:"PATCH",matchedRows:k.length,changedRows:k.length});for(let N of k){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 k=I.get(D);return k?{id:P.id,value:k}:{id:P.id}}),...m.map(P=>({value:P.value}))]})}let s=Wm(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:xm(e,r,t,n)}))}function xm(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 Km(e,t,n,r){return Qc(e.selector,t,n,r)}function Bm(e,t,n,r){return Qc(e.selector,t,n,r)}function Qc(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=$m(i);a!==null&&o.length===0&&Y(`APPLY _rid ${a} does not exist in snapshot table ${r}.`);let s=Gm(i);return s!==null&&o.length===0&&Y(`APPLY _idx ${s} does not exist in snapshot table ${r}.`),o}function $m(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 Gm(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 Vm(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 Wm(e){let t={};for(let[n,r]of Object.entries(e))t[n]=Zc(r?.value);return t}function Zc(e){if(e==null)return"";if(typeof e=="string")return e;if(typeof e=="number"||typeof e=="boolean")return String(e);try{return JSON.stringify(e)}catch{return String(e)}}function 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),Hm(i),t[i.table]={value:i.payloadRows};return{app:e.app,records:[{id:e.parentId,revision:e.revision,record:t}]}}function ep(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 Hm(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 tp(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 np(e){let t=e.numberPrecision;if(t==null||typeof t!="object")throw new Error("SettingsError: numberPrecision is missing from app settings.");let n=tp(t.digits,"digits",1,30),r=tp(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 rp(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 Ym=new Set(["CHECK_BOX","MULTI_SELECT"]),jm=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=zm(e);if(i!==""&&!qm(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:Jm(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}=rp(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)&&jm.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 zm(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 qm(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(Ym.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 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 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 k=Ne(v,c.get(b),a);k.ok?m.record[b]={value:D?v:k.value}:y.push({field:b,code:k.code,message:k.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,k])=>[D,qe(k)])),v=m.evaluationFieldTypes,P=D=>{let k=D.tableAlias?`${D.tableAlias}.${D.field}`:D.field;return v?.get(k)??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 Xm(e){return ps(e).length>0}function Qm(e){return e.fieldType==="NUMBER"||Xm(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=Qm;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 Zm=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"&&!Zm.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=ey(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:ip(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:ip(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 ip(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 ey(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;op(o,"dmlMaxRows"),op(a,"dmlMaxSubtableRows");for(let h of n)Zi(h);let l=Jc(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 ap({plans:m,records:g,validations:y,guards:{revisionRequired:!0,parentRows:f,dmlMaxRows:o,subtableRows:E,dmlMaxSubtableRows:a,wouldExceed:R}})}function op(e,t){if(!Number.isSafeInteger(e)||e<=0)throw new Error(`ArgumentError: ${t} must be a positive safe integer.`)}function ap(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))ap(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)sp(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),sp(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 ty(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;lp(r,"dmlMaxRows"),lp(i,"dmlMaxSubtableRows");let a=e.metadata??io(t,n),s=ty(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(k=>[k,v[D]?.value?.[k]??P.value[k]]))}))}}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 up({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 sp(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 lp(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 up(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))up(n,t);return Object.freeze(e)}async function pp(e){let{statement:t,matches:n,fieldInfos:r,dmlMaxRows:i,dmlMaxSubtableRows:o,statementNumber:a=1}=e;cp(i,"dmlMaxRows"),cp(o,"dmlMaxSubtableRows"),ay(t,n);let s=n.filter(g=>g.targetId===void 0),l=n.filter(g=>g.targetId!==void 0),d=ny(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=ry(t,g.sourceRowIndex,y),w=S.applyBlocks?.length?pt(S,r):iy(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=oy(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:sy(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 ny(e,t){return{type:"INSERT",appId:e.appId,fields:[...e.fields],values:t.map(n=>e.values[n]),applyBlocks:e.onInsertApplyBlocks??[],validateOnly:!0}}function ry(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 iy(e){return{targetTables:new Map,targetMultiValueFields:new Map,childrenByTable:new Map,fieldsByCode:new Map(e.map(t=>[t.code,t]))}}function oy(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 ay(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 sy(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 cp(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",[Ep(e)])}function ys(e){return Ln("INSERT",[fp(e)])}function gs(e){return Ln("UPSERT",[fp(e.create),Ep(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 fp(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 Ep(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:dp(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:dp(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 dp(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=>ly(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 ly(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 Rp(e,t,n){yn("phase10c");let r=ep(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 mp(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 yp(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 uy=/^[A-Za-z_][A-Za-z0-9_]{0,63}$/;function cy(e){if(!uy.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 py(e){let t=Object.create(null);for(let[n,r]of Object.entries(e??{})){let i=cy(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=py(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 dy(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 dy(i)?!0:Object.values(i).some(n)};return n(e)}function gp(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 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:Eu(i),metrics:o}}var Me=["=","!=",">","<",">=","<="],fy=new Set(["DATE","DATETIME","CREATED_TIME","UPDATED_TIME"]),Ey=new Set(Me),Ry=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"])]]),my=new Map([["TODAY",new Set(Me)],["NOW",new Set(Me)],["LOGINUSER",new Set(["in","not in"])],["PRIMARY_ORGANIZATION",new Set(["in","not in"])]]),yy=["=","!=","in","not in"],gy=new Map([["RECORD_NUMBER",new Set([...Me,"in","not in"])],["__ID__",new Set([...Me,"in","not in"])],["CREATOR",new Set(["in","not in"])],["MODIFIER",new Set(["in","not in"])],["CREATED_TIME",new Set(Me)],["UPDATED_TIME",new Set(Me)],["DATE",new Set(Me)],["TIME",new Set(Me)],["DATETIME",new Set(Me)],["SINGLE_LINE_TEXT",new Set(["=","!=","in","not in","like","not like"])],["LINK",new Set(["=","!=","in","not in","like","not like"])],["NUMBER",new Set([...Me,"in","not in"])],["CALC",new Set([...Me,"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(yy)]]),hy=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"])]]),Tp=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"]),Ip=new Set(["CHECK_BOX","MULTI_SELECT","FILE","USER_SELECT","ORGANIZATION_SELECT","GROUP_SELECT","STATUS_ASSIGNEE","CATEGORY"]);function Ay(e){return gy.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 Sy(e.op,e.left,e.right,t);case"NULL_CHECK":return e.field.type!=="FIELD"?Ts():wy(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:bp(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 Py(e.op,n,r)}}}function Sy(e,t,n,r){if(n.type==="KINTONE_FUNC"&&J(n.name))return Ty(e,t,n,r);if(n.type==="KINTONE_FUNC"&&Ap(n))return Sp(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?Sp(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(!wp(i.fieldType,o))return _n("WHERE_OPERATOR_INVALID_FOR_FIELD_TYPE",t.field,i.fieldType,o);if(!by(i.fieldType,e))return _n("WHERE_OPERATOR_UNSUPPORTED",t.field,i.fieldType,o);let a=Ay(i.fieldType),s=n.type==="STRING"||n.type==="NUMBER"||n.type==="IN_LIST"||Ap(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 Ap(e){return e.type==="KINTONE_FUNC"&&kt.has(e.name)}function Sp(e,t,n,r){let i=Nr(e),o=n.name;if(!kt.has(o)||t.type!=="FIELD")return uo("WHERE_KINTONE_FUNCTION_CONTEXT_UNSUPPORTED",o,void 0,void 0,i);let a=r(t),s=Ry.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):my.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 Ty(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?Iy(n)?Ey.has(i)?!fy.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 Iy(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 wy(e,t,n){let r=n(e);return r?wp(r.fieldType,t)?!Tp.has(r.fieldType)&&!Ip.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 wp(e,t){let n=hy.get(e);return n===void 0||n.has(t)}function by(e,t){return Tp.has(e)?!0:Ip.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 Py(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 Pp({capability:"UNSUPPORTED",reasons:[{code:e,functionName:t,field:n,fieldType:r,operator:i}]})}function bp(e){return e.some(t=>t.code.startsWith("WHERE_RELATIVE_DATE_")||t.functionName!==void 0&&J(t.functionName))}function Ny(e){return e.some(t=>t.code.startsWith("WHERE_KINTONE_FUNCTION_")||t.functionName!==void 0&&kt.has(t.functionName))}function Pp(e){if(e.capability==="EXACT_PUSHDOWN"||!bp(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 Cy(e){if(e.capability==="EXACT_PUSHDOWN"||!Ny(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&&kt.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 Cy(Pp(e))}var Oy=new Set(["DROP_DOWN","RADIO_BUTTON","CHECK_BOX","MULTI_SELECT","STATUS"]),Ly=new Set(["SINGLE_LINE_TEXT","LINK","MULTI_LINE_TEXT","RICH_TEXT","FILE"]),_y=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)?Cp(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"}):Cp(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=ky(e,n,r);return o==="unsafe"?Or():Object.freeze({relation:o,owner:n})}function Op(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 Lp(e,t){let n=new Set;jt(e,n);let i=(e===null?[]:vp(Dn(e,t))).map(s=>Object.freeze({targetAlias:s.owner.alias,appId:s.owner.appId,predicate:s.predicate,relation:s.relation})),o=Dy(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(My(e,t)),fetchQueriesByAlias:new Map,...o})}function _p(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 Mn(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))||Dp(Uy(e))!==e.allKlikes.length))}function Dy(e,t){if(e===null)return Np(null);let n=Object.freeze([...ue(e)]);if(n.length===0)return Np(e);let r=vy(e,t,n);if(r!==null)return r;let i=fo(e),o=[],a=new Set;for(let c of i){let u=Op(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 vy(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),Dp(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=Op(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 Np(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 Dp(e){return[...e.matchAll(/\s(?:not\s+)?like\s/g)].length}function Uy(e){let t=e.serverFunctionConsumptions[0];return t===void 0?"":e.fetchQueriesByAlias.get(t.targetAlias)??""}function My(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(Fp(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 vp([...n,...r]);if(Fp(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:Up(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 vp(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:Up(i.relation,n.relation)}}return t}function ky(e,t,n){if(e.op==="LIKE"||e.op==="NOT_LIKE")return"unsafe";if(e.op==="KLIKE"||e.op==="NOT_KLIKE")return Ly.has(n)&&e.right.type==="STRING"&&e.right.value!==""?"exact":"unsafe";if(n==="__ID__"||t.fieldCode==="$id")return Fy(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===">")&&Mp(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"||_y.has(n))return e.op!=="="||e.right.type!=="STRING"?"unsafe":n==="DATE"?kp(e.right.value)?"superset":"unsafe":n==="TIME"?xy(e.right.value)?"superset":"unsafe":Ky(e.right.value)?"superset":"unsafe";if(Oy.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 Cp(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 Up(e,t){return e==="exact"&&t==="exact"?"exact":"superset"}function Fy(e){return e.type==="NUMBER"&&Mp(e)&&e.value>0}function Mp(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 xy(e){let t=/^(\d{2}):(\d{2})$/.exec(e);return t!==null&&Number(t[1])<=23&&Number(t[2])<=59}function Ky(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 Fp(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 By(e,t){return e.key.type==="FIELD_NAME"?t.get(e.key.name):void 0}function $y(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=By(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"&&!$y(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 Gy=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 Vy(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(Vy(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}Gy.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 xp(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 Kp=["$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 Wy=/^(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"?Wy.test(t.field):Object.values(t).some(Os)}function Hy(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 Yy=["_pid","_rid","_idx"];function Cs(e){return[...new Set(e)]}function jy(e){switch(e.kind){case"APP":return Cs([...e.fieldCodes,...Kp]);case"SUBTABLE":return Cs([...e.childFieldCodes,...Yy,...e.parentFieldCodes.map(t=>`_p.${t}`)]);case"MATERIALIZED":return Cs(e.columns)}}function Bp(e,t){return[e.from,...e.joins.map(r=>r.table)].map((r,i)=>({sourceIndex:i,qualifier:r.alias??r.cteName,columns:jy(t(r,i))}))}function zy(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 qy(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 Xy(e,t,n){let r=zy(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:qy(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=Hy(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 $p(e,t,n){return{items:e.map(r=>r.type==="FIELD_NAME"?Xy(r.name,t,n):{kind:"EXPRESSION"})}}var Qy={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 Gp(e,t){let n=Qy[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 Vp(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=>Gp(s.fieldType,s.code)==="PROCESS")?(await n()).enable:!1;return[...r.filter(s=>{let l=Gp(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 Zy(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(Wp(e,a,r.leftColumns),Wp(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 Wp(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 eg(e,t,n,r,i){return t===null?e:e.filter(o=>te(t,o,n,r,i))}function Xp(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 tg(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)=>rg(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&&Xp(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[Ms(p.expr)]=String(ae(p.expr,l[0])):p.type==="FUNC_KEY"&&(d[Dt(p.expr)]=se(p.expr,l[0]));Qp(d,l,n,r),s.push(d)}return s}function ng(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=Hp(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,Hp(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)}Qp(f,u,n,r),nc(f,c),o.push(f)}}return o}function Hp(e,t){return t?t[e.directKey]??(e.unqualifiedBridgeKey===null?void 0:t[e.unqualifiedBridgeKey])??"":""}function Qp(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??kn(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=ks(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(pe(a,e))}}function rg(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"?Zp(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 ig(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 kn(e){return er(e)}function Zp(e,t){if(e.type==="FIELD_REF")return t?.(ig(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=>Zp(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 og(e,t,n,r){return t===null?e:e.filter(i=>te(t,i,n,void 0,r))}function ag(e,t,n,r,i){if(e.length===0)return e;let o=sg(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 sg(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(dg(t,a,o))}function Ds(e,t,n,r,i,o){return t.length===0?e:ed(e,t,n,r,i,o).rows.map(a=>a.row)}function ed(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(td.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:cg(p,d,o)}))})),l=(d,p)=>lg(d,p,t,a);return s.sort(l),{rows:s,compare:l}}function lg(e,t,n,r){for(let i=0;i<n.length;i++){let o=ug(e.keys[i],t.keys[i],r[i]);if(o!==0)return n[i].direction==="ASC"?o:-o}return 0}function ug(e,t,n){return $t(e.s,t.s,n.semantics)}var td=new Set(["LENGTH","LENGTH_CHAR","INSTR","ROUND","FLOOR","CEIL","TRUNCATE","YEAR","MONTH","DAY","DATEDIFF","ABS","MOD","POWER","SQRT","DAYOFWEEK","QUARTER","WEEK"]);function cg(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=kn(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(pe(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=>pg(l,c))),p=s.get(d);p?p.push(l):s.set(d,[l])}for(let l of s.values()){let d=ed(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 pg(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??kn(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(pe(e.expr,t,r.resolveFieldType,r.resolveFieldSemantics))}case"SCALAR_SUBQUERY_COL":return r.scalarCache?.get(n)??"";case"WINDOW_COL":return t[e.alias]??""}}function dg(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=qp(jp(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=Rg(t),l=t.some(u=>u.type==="WILDCARD"||u.type==="PARENT_WILDCARD"),d=l?null:fg(t,s),p=d??[];return l&&e.length===0?{rows:[],columns:Eg(t,s)}:{rows:e.map((u,f)=>{let E={},R={scalarCache:n,resolveFieldType:r,resolveFieldSemantics:o,wildcardKeys:Object.keys(qp(jp(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??kn(g.expr);E[h]=y,d===null&&f===0&&p.push(h);break}case"ARITH_COL":{let h=d?.[m]??g.alias??Ms(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 fg(e,t){return e.map((n,r)=>nd(n,r,t))}function Eg(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=nd(o,i,t);r.has(a)||(r.add(a),n.push(a))}return n}function nd(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??kn(e.expr);case"ARITH_COL":return e.alias??Ms(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 Rg(e){let t=new Map;for(let r of e){if(r.type!=="FIELD"||r.alias)continue;let i=Yp(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=Yp(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 Yp(e){if(e.startsWith("_p."))return e;let t=e.indexOf(".");return t<=0?e:e.slice(t+1)||e}function jp(e){let t={};for(let[n,r]of Object.entries(e))n.startsWith("_p.")||(t[n]=r);return t}function Ms(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"?kn(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 mg(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=>mg(t))}function yg(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"?ks(e,t,n):Io(e,t,n)}function Io(e,t,n){return e.type==="STRING_FUNC"?ks(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 ks(e,t,n){return{type:"STRING_FUNC",func:e.func,args:e.args.map(r=>yg(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 Jp(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 gg(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(td.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=gg(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(Jp(E?.get(S),S),void 0,h);for(let v of t.joins){let P=v.table.alias,k=(n.get(P)??[]).map(_=>dt(_,P)),N=Ls(Jp(E?.get(P),P),void 0,k);h=Zy(h,k,v,{leftColumns:I,rightColumns:N}),I=Ls(I,N,h)}let L=e.residualWhere!==void 0?e.residualWhere:t.where;h=eg(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=ng(h,m,t.columns,c,{maxGeneratedRows:5e4})}else(b.type==="PLAIN"||Xp(t.columns))&&(h=tg(h,b.type==="PLAIN"?b.allItems:[],t.columns,c,b.type==="PLAIN"?g:void 0,{scalarCache:r,resolveFieldType:s,resolveFieldSemantics:l}));return h=og(h,t.having,d,p),h=Us(h,t.columns,i,o,y),t.distinct&&(h=ag(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 rd(e,t){let n=[];for(let r of e){let i=xs(r.$id?.value),o=hg(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 hg(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 id(e){return["$id",...new Set([...e.topLevel.map(t=>t.code).filter(t=>t!=="$id"&&t!=="$revision"),...e.subtables.keys()])]}function od(e,t){let n=Mr(e);for(let[r,i]of Object.entries(t))n[r]=Mr(i);return n}function ad(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]=Mr(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 Mr(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(Mr(a,t));return o}let i={};t.set(n,i);for(let[o,a]of Object.entries(e))i[o]=Mr(a,t);return i}function ld(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 ld(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 kr(e,t,n,r,i=!0){e.left.type==="UNION"?kr(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 sd(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"&&kr(i.query,`${t}.cte[${o}]`,n,!0,!1)}),e.query.type==="SELECT"?Ve(e.query,`${t}.main`,n,r,!1,!r,!0):kr(e.query,`${t}.main`,n,!0,!1)}function ud(e,t,n,r=!1){switch(e.type){case"SELECT":Ve(e,t,n,r);return;case"UNION":kr(e,t,n,r);return;case"WITH":sd(e,t,n,r);return;case"CREATE_TEMP_TABLE":e.query.type==="WITH"?sd(e.query,`${t}.query`,n,!1):e.query.type==="UNION"?kr(e.query,`${t}.query`,n,!0,!1):Ve(e.query,`${t}.query`,n,!1,!1,!0,!0);return;case"EXPLAIN":ud(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=ld(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 Ag(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)&&Mn(t)}function Sg(e){return{kind:e.kind,source:e.source,functionNames:e.functionNames,path:e.path,clientWhereEvaluation:!0,allowed:!1}}function Tg(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=Tg(n,t);return{functionName:n,path:e.path,code:i.find(o=>o!==r)??r,reasonCodes:i}}async function cd(e,t){let n=[];ud(e,"statement",n);let r=[];for(let i of n){if(i.kind==="FORBIDDEN"){let p=Sg(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&&Ag(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=Ig(e.where,t);if(!a.ok)return i(a.reasonCodes);if(!wg(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=Pg(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=bg(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)])||!Ng(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 Ig(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 wg(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 bg(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 Pg(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 Ng(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 pd(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 Cg(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 Og(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 me("\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 Ba(e){let t=e.codePointAt(0);return t>=65&&t<=90||t>=97&&t<=122||t===95||t===36||_R(t)}function pc(e){let t=e.codePointAt(0);return Ba(e)||t>=48&&t<=57}function bn(e){let t=e.codePointAt(0);return t>=48&&t<=57}function _R(e){return e>=12352&&e<=12543||e>=13312&&e<=40959||e>=63744&&e<=64255||e>=65281&&e<=65376}var fc=20,$a=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"}),Rc=Object.freeze(["CURRENT_DATE","CURRENT_TIMESTAMP"]),Ga=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"}),oI=Object.freeze(Object.values(Ga).filter(e=>e!==void 0)),DR=Object.freeze(["COUNT","SUM","AVG","MAX","MIN"]),vR=new Set(DR);function UR(e){return vR.has(e)}var mc=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 Ec(e){return Fi[e]!==void 0}var MR=Object.freeze([...Si]),kR=new Set(["DAYS","WEEKS","MONTHS","YEARS"]),xR=new Set(["SUNDAY","MONDAY","TUESDAY","WEDNESDAY","THURSDAY","FRIDAY","SATURDAY"]);function FR(e){return kR.has(e)}function KR(e){return xR.has(e)}function BR(e){return Number.isInteger(e)&&e>=1&&e<=31}var aI=Object.freeze(Array.from(new Set([...Object.keys($a),...Rc,...Object.keys(Ga),...Object.keys(mc),...Object.keys(Fi),...MR,"IF"]))),$R=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 GR(e,t){return e.kind==="("||e.kind==="."||t.kind===")"||t.kind===","||t.kind==="."?!1:t.kind==="("?!$R.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>fc)throw new T(`batch exceeds ${fc} 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,y;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()}y=this.parseIdentifier()}this.peek().kind==="ON"&&this.peekAt(1).kind==="DUPLICATE"&&(m=this.parseOnDuplicate());let g;if(this.peek().kind==="REPLACE"||this.isSoftKeyword("REPLACE")){if(this.advance(),!this.isSoftKeyword("SUBTABLES"))throw new T("REPLACE must be followed by SUBTABLES (...).",this.peek());if(this.advance(),this.expect("("),g=this.parseIdentList(),this.expect(")"),new Set(g).size!==g.length)throw new T("REPLACE SUBTABLES contains duplicates.",this.prev())}let h=o.filter(I=>I.kind==="SUBTABLE");if(h.length){if(f)throw new T("IMPORT subtables cannot use SELECT projection.",this.prev());if(l==="JSON"){if(h.some(I=>I.rowIdSourceHeader))throw new T("JSON subtable IMPORT does not accept ROW ID SOURCE.",this.prev());if(g)throw new T("REPLACE SUBTABLES is CSV-only; JSON uses nested-array replacement semantics.",this.prev())}else{if(t!=="UPDATE_RECORD_NUMBER"||!y)throw new T("CSV subtable IMPORT requires IMPORT UPDATE and MATCH RECORD NUMBER SOURCE.",this.prev());if(E!=="BY_NAME")throw new T("CSV subtable IMPORT requires BY NAME.",this.prev());if(!g)throw new T("CSV subtable IMPORT requires REPLACE SUBTABLES (...).",this.prev());let I=new Set(g);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(g)throw new T("REPLACE SUBTABLES requires subtable targets in INTO.",this.prev());if(t){if(l!=="CSV")throw new T("IMPORT UPDATE supports CSV only.",this.prev());if(E!=="BY_NAME")throw new T("IMPORT UPDATE requires BY NAME.",this.prev());if(!y)throw new T("IMPORT UPDATE requires MATCH RECORD NUMBER SOURCE <header>.",this.peek());if(m)throw new T("IMPORT UPDATE and ON DUPLICATE are mutually exclusive.",this.prev())}else if(y)throw new T("MATCH RECORD NUMBER SOURCE requires IMPORT UPDATE.",this.prev());let S=this.parseCheckGroups(),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:y}:{},...g?{replaceSubtables:g}:{},...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&&GR(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(y=>y.type==="WINDOW_COL"),m=r.some(y=>this.selectColumnHasAggregate(y));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 this.withAliasDisplay({type:"GROUPING_COL",ref:o,alias:a?.alias??null},a)}if(this.tryAggregateFunc()===null&&this.hasTopLevelTokenBeforeValueEnd("||")){let o=this.parseScalarValueExpr({allowAggregateArgs:!0}),a=this.consume("AS")?this.parseAliasName():null;return this.withAliasDisplay({type:"SCALAR_VALUE_COL",expr:o,alias:a?.alias??null},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());let a=this.parseAliasName();return this.withAliasDisplay({type:"VARIABLE_COL",name:o.value.slice(1).toLowerCase(),alias:a.alias},a)}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 this.withAliasDisplay({type:"CASE_COL",expr:o,alias:a?.alias??null},a)}if(this.peek().kind==="IF"){let o=this.parseIfExpr(!0),a=this.consume("AS")?this.parseAliasName():null;return this.withAliasDisplay({type:"CASE_COL",expr:o,alias:a?.alias??null},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 this.withAliasDisplay({type:"ARITH_COL",expr:s,alias:l?.alias??null},l)}let a=this.consume("AS")?this.parseAliasName():null;return this.withAliasDisplay({type:"STRFUNC_COL",expr:o,alias:a?.alias??null},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 this.withAliasDisplay({type:"ARITH_AGG_COL",expr:s,alias:l?.alias??null},l)}let a=this.consume("AS")?this.parseAliasName():null;return this.withAliasDisplay({type:"AGGREGATE",func:o.func,distinct:o.distinct,arg:o.arg,...o.separator!==void 0?{separator:o.separator}:{},alias:a?.alias??null},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 this.withAliasDisplay({type:"SCALAR_SUBQUERY_COL",query:o,alias:a?.alias??null},a)}if(this.peek().kind==="STRING"){let o=this.expect("STRING").value,a=this.consume("AS")?this.parseAliasName():null;return this.withAliasDisplay({type:"LITERAL_COL",value:o,alias:a?.alias??null},a)}if(this.peek().kind==="("||this.peek().kind==="NUMBER"){let o=this.parseSelectArith(()=>this.parseArithAddSub()),a=this.consume("AS")?this.parseAliasName():null;return this.withAliasDisplay({type:"ARITH_COL",expr:o,alias:a?.alias??null},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 this.withAliasDisplay({type:"ARITH_COL",expr:a,alias:s?.alias??null},s)}let i=this.consume("AS")?this.parseAliasName():null;return this.withAliasDisplay({type:"FIELD",field:r,alias:i?.alias??null},i)}tryWindowFunc(){return mc[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 this.withAliasDisplay({type:"WINDOW_COL",func:t,partitionBy:n,orderBy:r,alias:i.alias},i)}selectColumnHasAggregate(t){return t.type==="AGGREGATE"||t.type==="ARITH_AGG_COL"?!0:t.type==="STRFUNC_COL"?t.expr.args.some(n=>this.stringFuncArgHasAggregate(n)):t.type==="SCALAR_VALUE_COL"?this.scalarValueHasAggregate(t.expr):!1}stringFuncArgHasAggregate(t){return t.type==="AGG_REF"||t.type==="AGG_ARITH"?!0:this.scalarValueHasAggregate(t)}scalarValueHasAggregate(t){return t.type==="STRING_FUNC"?t.args.some(n=>this.stringFuncArgHasAggregate(n)):t.type==="SCALAR_ARITH"||t.type==="CONCAT_OP"?this.scalarValueHasAggregate(t.left)||this.scalarValueHasAggregate(t.right):t.type==="CASE_WHEN"?[...t.branches.map(r=>r.result),...t.elseResult?[t.elseResult]:[]].some(r=>r.type==="ARRAY"||r.type==="FIELD_REF"||r.type==="ARITH"?!1:this.scalarValueHasAggregate(r)):!1}isArithOp(t){return t==="+"||t==="-"||t==="*"||t==="/"||t==="%"}continueAggArith(t){return this.continueAggArithAddSub(this.continueAggArithMulDiv(t))}continueAggArithMulDiv(t){for(;this.peek().kind==="*"||this.peek().kind==="/"||this.peek().kind==="%";){let n=this.parseArithOp();t={type:"AGG_ARITH",left:t,op:n,right:this.parseAggPrimary()}}return t}continueAggArithAddSub(t){for(;this.peek().kind==="+"||this.peek().kind==="-";){let n=this.parseArithOp();t={type:"AGG_ARITH",left:t,op:n,right:this.parseAggArithMulDiv()}}return t}parseAggArithMulDiv(){return this.continueAggArithMulDiv(this.parseAggPrimary())}parseAggPrimary(){if(this.consume("(")){let n=this.continueAggArith(this.parseAggPrimary());return this.expect(")"),n}if(this.peek().kind==="-"){this.advance();let n=this.parseAggPrimary();return n.type==="NUMBER"?Ee(`-${H(n)}`):{type:"AGG_ARITH",left:Ee("0"),op:"-",right:n}}if(this.peek().kind==="NUMBER"){let n=this.advance();return Ee(n.value)}let t=this.tryAggregateFunc();if(t!==null)return this.parseAggregateRef(t);throw new T("\u96C6\u8A08\u7B97\u8853\u5F0F\u306B\u306F\u96C6\u8A08\u95A2\u6570\u307E\u305F\u306F\u6570\u5024\u304C\u5FC5\u8981\u3067\u3059",this.peek())}parseScalarValueExpr(t={}){let n=this.scalarAllowsAggregateArgs,r=this.scalarAllowsCase;this.scalarAllowsAggregateArgs=t.allowAggregateArgs===!0,this.scalarAllowsCase=t.allowCase!==!1;let i;try{i=this.parseScalarAddSubConcat(this.scalarAllowsCase)}finally{this.scalarAllowsAggregateArgs=n,this.scalarAllowsCase=r}let o=this.peek();if(o.kind==="IS"||o.kind==="="||o.kind==="!="||o.kind==="<>"||o.kind===">"||o.kind==="<"||o.kind===">="||o.kind==="<="||o.kind==="LIKE"||o.kind==="KLIKE"||o.kind==="IN"||o.kind==="BETWEEN")throw new T("\u30B9\u30AB\u30E9\u30FC\u5024\u5F0F\u306B\u6BD4\u8F03\u30FB\u8FF0\u8A9E\u306F\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093",o);return i}parseScalarAddSubConcat(t){let n=this.parseScalarMulDiv(t);for(;this.peek().kind==="+"||this.peek().kind==="-"||this.peek().kind==="||";){let r=this.advance(),i=this.parseScalarMulDiv(t);n=r.kind==="||"?{type:"CONCAT_OP",left:n,right:i}:{type:"SCALAR_ARITH",left:n,op:r.kind==="+"?"+":"-",right:i}}return n}parseScalarMulDiv(t){let n=this.parseScalarPrimary(t);for(;this.peek().kind==="*"||this.peek().kind==="/"||this.peek().kind==="%";){let r=this.advance(),i=r.kind==="*"?"*":r.kind==="/"?"/":"%";n={type:"SCALAR_ARITH",left:n,op:i,right:this.parseScalarPrimary(t)}}return n}parseScalarPrimary(t){let n=this.peek();if(n.kind==="("){if(this.peekAt(1).kind==="SELECT")throw new T("\u30B9\u30AB\u30E9\u30FC\u5024\u5F0F\u306B\u30B5\u30D6\u30AF\u30A8\u30EA\u306F\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093",n);this.advance();let r=this.parseScalarAddSubConcat(t);return this.expect(")"),r}if(n.kind==="+"||n.kind==="-"){if(this.advance(),this.peek().kind==="+"||this.peek().kind==="-")throw new T("\u5358\u9805\u7B26\u53F7\u3092\u91CD\u306D\u3066\u6307\u5B9A\u3059\u308B\u3053\u3068\u306F\u3067\u304D\u307E\u305B\u3093",this.peek());let r=this.parseScalarPrimary(t);if(r.type==="NUMBER")return Ee(`${n.kind==="-"?"-":"+"}${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:Ee("0"),op:"-",right:r}}if(n.kind==="STRING")return this.advance(),{type:"STRING",value:n.value};if(n.kind==="NUMBER")return this.advance(),Ee(n.value);if(n.kind==="VARIABLE")return this.advance(),{type:"VARIABLE",name:n.value.slice(1).toLowerCase()};if(n.kind==="CASE"){if(!t)throw new T("\u3053\u306E\u30B9\u30AB\u30E9\u30FC\u5024\u5F0F\u3067\u306F CASE \u3092\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093",n);return this.parseCaseWhenExpr()}if(this.tryAggregateFunc()!==null)throw new T(this.insideAggregateArg>0?"\u96C6\u8A08\u95A2\u6570\u306E\u5F15\u6570\u5185\u306B\u96C6\u8A08\u95A2\u6570\u306F\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093":"\u30B9\u30AB\u30E9\u30FC\u5024\u5F0F\u306B\u96C6\u7D04\u95A2\u6570\u306F\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093",n);if(this.tryStringFuncName()!==null)return this.parseStringFuncExpr();if(n.kind==="IDENT"||n.kind==="BIDENT")return this.advance(),this.consume(".")?{type:"FIELD",tableAlias:n.value,field:this.parseIdentifier()}:{type:"FIELD",tableAlias:null,field:n.value};throw new T("\u30B9\u30AB\u30E9\u30FC\u5024\u5F0F\u306E\u30AA\u30DA\u30E9\u30F3\u30C9\u304C\u5FC5\u8981\u3067\u3059",n)}hasTopLevelTokenBeforeValueEnd(t){let n=0;for(let r=this.pos;r<this.tokens.length;r++){let i=this.tokens[r].kind;if(i==="("||i==="[")n++;else if(i===")"||i==="]"){if(n===0)break;n--}if(i===t)return!0;if(n===0&&(i===","||i==="AS"||i==="FROM"||i==="WHERE"||i==="WHEN"||i==="THEN"||i==="ELSE"||i==="END"||i===";"||i==="EOF"))break}return!1}parseArithAddSub(){return this.continueArithAddSub(this.parseArithMulDiv())}parseArithMulDiv(){return this.continueArithMulDiv(this.parseArithPrimary())}continueArith(t){return this.continueArithAddSub(this.continueArithMulDiv(t))}continueArithMulDiv(t){for(;this.peek().kind==="*"||this.peek().kind==="/"||this.peek().kind==="%";){let n=this.parseArithOp(),r=this.parseArithPrimary();t={type:"ARITH",left:t,op:n,right:r}}return t}continueArithAddSub(t){for(;this.peek().kind==="+"||this.peek().kind==="-";){let n=this.parseArithOp(),r=this.parseArithMulDiv();t={type:"ARITH",left:t,op:n,right:r}}return t}parseArithPrimary(){if(this.consume("(")){let n=this.parseArithAddSub();return this.expect(")"),n}if(this.allowUnaryPlusNumber&&this.peek().kind==="+"){this.advance();let n=this.expect("NUMBER","\u5358\u9805 + \u306E\u76F4\u5F8C\u306B\u306F\u6570\u5024\u30EA\u30C6\u30E9\u30EB\u304C\u5FC5\u8981\u3067\u3059");return Ee(`+${n.value}`)}if(this.peek().kind==="-"){if(this.advance(),this.peek().kind==="-"||this.peek().kind==="+")throw new T("\u5358\u9805\u7B26\u53F7\u3092\u91CD\u306D\u3066\u6307\u5B9A\u3059\u308B\u3053\u3068\u306F\u3067\u304D\u307E\u305B\u3093",this.peek());let n=this.parseArithPrimary();return n.type==="NUMBER"?Ee(`-${H(n)}`):{type:"ARITH",left:Ee("0"),op:"-",right:n}}if(this.tryStringFuncName()!==null)return this.parseStringFuncExpr();let t=this.peek();if(t.kind==="NUMBER")return this.advance(),Ee(t.value);if(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=$a[this.peek().kind];if(n==="LEFT"||n==="RIGHT")return n}let t=$a[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(Rc.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=VR(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 Ga[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(!UR(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(!FR(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(!KR(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(!BR(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(Ec(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(Ee(i.value));else if(i.kind==="-"||i.kind==="+"){let o=this.peek();if(o.kind!=="NUMBER")throw new T(n,i);this.advance();let a=i.kind==="-"?"-":"+";t.push(Ee(`${a}${o.value}`))}else if(i.kind==="VARIABLE")t.push({type:"VARIABLE",name:i.value.slice(1).toLowerCase()});else if(i.kind==="LOGINUSER"){if(t.length>0)throw new T(r,i);if(this.expect("(","LOGINUSER \u306E\u76F4\u5F8C\u306B\u306F\u7A7A\u5F15\u6570\u306E () \u304C\u5FC5\u8981\u3067\u3059"),this.expect(")","LOGINUSER \u306E\u76F4\u5F8C\u306B\u306F\u7A7A\u5F15\u6570\u306E () \u304C\u5FC5\u8981\u3067\u3059"),t.push({type:"KINTONE_FUNC",name:"LOGINUSER"}),this.peek().kind===",")throw new T(r,this.peek())}else 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=hu(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(Ee(`${r.kind==="-"?"-":"+"}${i.value}`))}else{let r=this.advance();if(r.kind==="STRING")n.push({type:"STRING",value:r.value});else if(r.kind==="NUMBER")n.push(Ee(r.value));else throw new T("INSERT \u306E\u5024\u306B\u306F\u6587\u5B57\u5217\u30FB\u6570\u5024\u30FB\u914D\u5217\u30EA\u30C6\u30E9\u30EB\u30FBCASE WHEN \u304C\u5FC5\u8981\u3067\u3059",r)}while(this.consume(","));if(n.length!==t)throw new T(`\u30AB\u30E9\u30E0\u6570\uFF08${t}\uFF09\u3068\u5024\u306E\u6570\uFF08${n.length}\uFF09\u304C\u4E00\u81F4\u3057\u307E\u305B\u3093`,this.prev());return n}parseUpdate(){this.expect("UPDATE"),this.rejectTempTableDml();let t=this.parseIdentifier(),{appId:n,subtableCode:r}=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(Ec(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"||xi.has(t.value.toUpperCase()))return this.advance(),{alias:t.value.toLowerCase(),display:t.value};throw new T("\u30A8\u30A4\u30EA\u30A2\u30B9\u540D\u304C\u5FC5\u8981\u3067\u3059",t)}withAliasDisplay(t,n){return n!==null&&Object.defineProperty(t,"aliasDisplay",{value:n.display,enumerable:!1}),t}parseFieldPath(){let t=this.parseIdentifier();if(this.peek().kind!==".")return t;this.advance();let n=this.parseIdentifier();return`${t}.${n}`}parseColumnFieldRef(){let t=this.parseIdentifier();if(this.peek().kind!==".")return t;if(this.advance(),this.consume("*"))return`${t}.*`;let n=this.parseIdentifier();return`${t}.${n}`}};function VR(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 WR=new Set(["SINGLE_LINE_TEXT","MULTI_LINE_TEXT","RICH_TEXT","LINK","DATE","TIME","DATETIME","CREATED_TIME","UPDATED_TIME","CREATOR","MODIFIER"]),HR=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":HR.has(e.fieldType)?t="option":WR.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 YR(e,t){return e<t?-1:e>t?1:0}function yc(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 jR(e,t){let n=yc(e),r=yc(t);return n.band!==r.band?n.band<r.band?-1:1:n.band===2&&r.band===2?mi(n.value,r.value):n.band===5&&r.band===5?Ct(n.value,r.value):0}function gc(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 zR(e,t,n){let r=gc(e,n),i=gc(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 qR(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 hc(e,t){let n=t.optionOrder??new Map,i=[...new Set(qR(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(Ac),i}function Ac(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 JR(e,t,n){let r=hc(e,n),i=hc(t,n),o=Math.min(r.length,i.length);for(let a=0;a<o;a++){let s=Ac(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 jR(e,t);case"recordNumber":return zR(e,t,n.fieldType==="RECORD_NUMBER");case"option":return JR(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 Sc(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?mi(s,l):YR(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 pe(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(pe(e.left,t,n,r)),o=Number(pe(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 bc(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 pe(e,t,n,r)}}function Bi(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 XR(e){return e>=55296&&e<=56319}function QR(e){return e>=56320&&e<=57343}function Gi(e,t){return t>0&&t<e.length&&XR(e.charCodeAt(t-1))&&QR(e.charCodeAt(t))}function Tc(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 Wa(e,t){let n=Math.min(Math.max(0,t),e.length);return Gi(e,n)&&(n-=1),e.slice(0,n)}function ZR(e,t){let n=Math.max(0,e.length-t);return Gi(e,n)&&(n+=1),e.slice(n)}function em(e,t,n){let r=Tc(t,e.length),i=Tc(n,e.length);return i<=r?"":(Gi(e,r)&&(r+=1),Gi(e,i)&&(i-=1),e.slice(r,Math.max(r,i)))}function tm(e,t){let n=e.repeat(Math.ceil(t/e.length));return Wa(n,t)}var nm=200,cr=new Map;function rm(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 Va(e,t,n=!1){let r=rm(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>=nm){let s=cr.keys().next().value;s!==void 0&&cr.delete(s)}return cr.set(i,a),a}function im(e){if(e.includes("$`")||e.includes("$'"))throw new Error("ArgumentError: REGEXP_REPLACE replacement must not contain $` or $'.")}function om(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 am(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 sm(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 am(n,o,p,l?s:void 0)})}function se(e,t,n,r){let i=e.args.map(o=>Rm(o,t,n,r));switch(e.func){case"UPPER":return(i[0]??"").toUpperCase();case"LOWER":return(i[0]??"").toLowerCase();case"TRIM":return(i[0]??"").trim();case"LTRIM":return(i[0]??"").trimStart();case"RTRIM":return(i[0]??"").trimEnd();case"LENGTH":return String((i[0]??"").length);case"LENGTH_CHAR":return ye("LENGTH_CHAR",i,1,1),String([...i[0]??""].length);case"SUBSTRING":{let o=i[0]??"",a=Math.max(0,Number(i[1]??"1")-1),s=i[2]!==void 0?Number(i[2]):void 0;return em(o,a,s!==void 0?a+s:o.length)}case"LEFT":{ye("LEFT",i,2,2);let o=i[0],a=Math.trunc(Number(i[1]));return Number.isNaN(a)||a<=0?"":Wa(o,a)}case"RIGHT":{ye("RIGHT",i,2,2);let o=i[0],a=Math.trunc(Number(i[1]));return Number.isNaN(a)||a<=0?"":ZR(o,a)}case"INSTR":return ye("INSTR",i,2,2),String(i[0].indexOf(i[1])+1);case"LPAD":case"RPAD":{ye(e.func,i,2,3);let o=i[0],a=Math.trunc(Number(i[1]));if(Number.isNaN(a)||a<=0)return"";if(o.length>=a)return Wa(o,a);let s=i[2]??" ";if(s==="")return o;let l=tm(s,a-o.length);return e.func==="LPAD"?l+o:o+l}case"GREATEST":case"LEAST":return ye(e.func,i,2),Sc(i,e.func==="GREATEST"?"greatest":"least");case"CONCAT":return i.join("");case"REPLACE":{let o=i[0]??"",a=i[1]??"",s=i[2]??"";return a===""?o:o.split(a).join(s)}case"REGEXP_LIKE":return ye("REGEXP_LIKE",i,2,3),Va(i[1],i[2]??"").test(i[0])?"1":"0";case"REGEXP_REPLACE":{ye("REGEXP_REPLACE",i,3,5),im(i[2]);let o=om(i[4]),a=Va(i[1],i[3]??"",!0);return o===0?i[0].replace(a,i[2]):sm(i[0],a,i[2],o)}case"REGEXP_SUBSTR":return ye("REGEXP_SUBSTR",i,2,3),Va(i[1],i[2]??"").exec(i[0])?.[0]??"";case"TRANSLATE":{ye("TRANSLATE",i,3,3);let o=[...i[1]],a=[...i[2]];if(o.length!==a.length)throw new Error(`ArgumentError: TRANSLATE \u306E from \u3068 to \u306F\u540C\u3058\u6587\u5B57\u6570\u3067\u3042\u308B\u5FC5\u8981\u304C\u3042\u308A\u307E\u3059\uFF08from=${o.length}, to=${a.length}\uFF09`);let s=new Map;return o.forEach((l,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 Bi("round",Number(i[0]??"0"),Number(i[1]??"0"));case"FLOOR":return Bi("floor",Number(i[0]??"0"),Number(i[1]??"0"));case"CEIL":return Bi("ceil",Number(i[0]??"0"),Number(i[1]??"0"));case"TRUNCATE":return ye("TRUNCATE",i,1,2),Bi("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 fm(o,a)}case"YEAR":{let o=i[0]??"";return o.length>=4?String(parseInt(o.slice(0,4),10)):""}case"MONTH":{let o=i[0]??"";return o.length>=7?String(parseInt(o.slice(5,7),10)):""}case"DAY":{let o=i[0]??"";return o.length>=10?String(parseInt(o.slice(8,10),10)):""}case"DAYOFWEEK":return ye(e.func,i,1,1),$i(i[0])?String(Ha(i[0])+1):"";case"QUARTER":return ye(e.func,i,1,1),$i(i[0])?String(Math.ceil(Number(i[0].slice(5,7))/3)):"";case"WEEK":return ye(e.func,i,1,1),$i(i[0])?String(wc(i[0])):"";case"DATE_FORMAT":return um(i[0]??"",i[1]??"");case"DATEDIFF":return cm(i[0]??"",i[1]??"");case"DATE_ADD":return pm(i[0]??"",Number(i[1]??"0"),(i[2]??"DAY").toUpperCase());case"LAST_DAY":return ye("LAST_DAY",i,1,1),dm(i[0]);case"ABS":return String(Math.abs(Number(i[0]??"0")));case"MOD":{let o=Number(i[0]??"0"),a=Number(i[1]??"0");return String(a!==0?o%a:NaN)}case"POWER":return String(Math.pow(Number(i[0]??"0"),Number(i[1]??"0")));case"SQRT":return String(Math.sqrt(Number(i[0]??"0")));case"CURRENT_DATE":{let o=new Date,a=o.getFullYear(),s=String(o.getMonth()+1).padStart(2,"0"),l=String(o.getDate()).padStart(2,"0");return`${a}-${s}-${l}`}case"CURRENT_TIMESTAMP":return new Date().toISOString()}}function ye(e,t,n,r=Number.POSITIVE_INFINITY){if(t.length>=n&&t.length<=r)return;let i=n===r?String(n):r===Number.POSITIVE_INFINITY?`${n} or more`:`${n} to ${r}`;throw new Error(`ArgumentError: ${e} expects ${i} argument(s).`)}function 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 Vi(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 $i(e){let t=e.slice(0,10);if(!/^\d{4}-\d{2}-\d{2}$/.test(t))return!1;let n=Vi(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 Ha(e){return Vi(e).getUTCDay()}function Ic(e){let t=Vi(e),n=t.getUTCDay()||7;return t.setUTCDate(t.getUTCDate()+4-n),t}function lm(e){return Ic(e).getUTCFullYear()}function wc(e){let t=Ic(e),n=t.getUTCFullYear(),r=Vi(`${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 um(e,t){if(!e||e.length<10)return"";let{y:n,mo:r,d:i,h:o,mi:a,sec:s}=pr(e),l=$i(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(Ha(e)):"";case"%a":return l?["\u65E5","\u6708","\u706B","\u6C34","\u6728","\u91D1","\u571F"][Ha(e)]:"";case"%v":return l?String(wc(e)).padStart(2,"0"):"";case"%G":return l?String(lm(e)).padStart(4,"0"):"";default:return d}})}function cm(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 pm(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 dm(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 fm(e,t){if(/^-?\d+$/.test(t.trim()))return Em(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 Em(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 Rm(e,t,n,r){return e.type==="AGG_REF"||e.type==="AGG_ARITH"?"":e.type==="NUMBER"?H(e):String(pe(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 mm(e,t,n,r,i);case"NULL_CHECK":return Tm(e,t);case"LOGICAL":return Im(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 mm(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=vc(e.left,t,n,i),a=e.left.type==="FIELD"?n?.(e.left):void 0,s=gm(e.left,a,i);return ym(e.op,o,e.right,t,a,n,s,i)}function ym(e,t,n,r,i,o,a=B("string"),s){if(e==="IN"||e==="NOT_IN"){let d=null;if(n.type==="IN_LIST"&&(Sm(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=Am(t,d,i);return e==="IN"?p:!p}if(e==="LIKE"){let d=Ya(n,r,o);return Dc(t,d)}if(e==="NOT_LIKE"){let d=Ya(n,r,o);return!Dc(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=Ya(n,r,o,s);return Gt(e,t,l,a)}var Pc=new Set(["LENGTH","LENGTH_CHAR","INSTR","ROUND","FLOOR","CEIL","TRUNCATE","YEAR","MONTH","DAY","DATEDIFF","ABS","MOD","POWER","SQRT","DAYOFWEEK","QUARTER","WEEK"]);function gm(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(Pc.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(Pc.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 Nc=new Set(["CHECK_BOX","MULTI_SELECT"]),Cc=new Set(["USER_SELECT","ORGANIZATION_SELECT","GROUP_SELECT","STATUS_ASSIGNEE"]),hm=new Set(["CREATOR","MODIFIER"]);function Am(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(Nc.has(n)||Cc.has(n)||hm.has(n))try{i=JSON.parse(e)}catch{return r()}else return r();return Nc.has(n)?!Array.isArray(i)||!i.every(o=>typeof o=="string")?r():i.length===0&&t.has("")?!0:i.some(o=>t.has(o)):Cc.has(n)?!Array.isArray(i)||!i.every(Oc)?r():i.length===0&&t.has("")?!0:i.some(o=>t.has(o.code)):Oc(i)?t.has(i.code):r()}function Oc(e){return e!==null&&typeof e=="object"&&!Array.isArray(e)&&typeof e.code=="string"}function Sm(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 Tm(e,t){let n=vc(e.field,t);return e.not?n!=="":n===""}function Im(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 vc(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 Ya(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 wm(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 _c(i.result,t,n,r);return e.elseResult!==null?_c(e.elseResult,t,n,r):""}function bc(e,t,n,r){for(let i of e.branches)if(te(i.condition,t,n,void 0,r))return Lc(i.result,t,n,r);return e.elseResult===null?null:Lc(e.elseResult,t,n,r)}function Lc(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 _c(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(pe(e,t,n,r))}function Uc(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 wm(e){throw J(e)?new Error(`${e}: ${xt}`):fn(e)?new Error(`${e}: ${at}`):new Error(`InternalError: unexpected KINTONE_FUNC name: ${e}`)}var Wi=new Map,bm=200;function Dc(e,t){if(!Uu(t))return e.includes(t);let n=Wi.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"),Wi.size>=bm&&Wi.clear(),Wi.set(t,n)}return n.test(e)}function Nn(e){return kc(e)}function Mc(e){return kc(e.flatMap(t=>t.rules.map(n=>n.condition)))}function kc(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 de("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 de("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 de(e){return new T(e,{kind:"EOF",value:"CHECK",pos:0})}function Hi(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=pe(a.message,t);r.push({groupIndex:o,message:s==null?"":String(s)});break}}),r}function za(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 Pm=new Set(["USER_SELECT","ORGANIZATION_SELECT","GROUP_SELECT"]),Nm=new Set(["CHECK_BOX","MULTI_SELECT"]);function ji(e,t=new Map){let n=e.values.map(r=>Cm(e.fields,r,t));return Rr(n,100).map(r=>({app:e.appId,records:r}))}function Cm(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){za(e.where);let t=qc(e);return{app:e.appId,query:G(e.where),fields:["$id",...t],totalCount:!1}}function Er(e,t,n=new Map){let r=Om(e.assignments,n);return Rr(t,100).map(i=>({app:e.appId,records:i.map(o=>({id:o,record:r}))}))}function Om(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 Bc(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 zi(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 qa(e){za(e.where);let t=new Set;for(let{value:n}of e.assignments)n.type==="ARITH"?$c(n,t):n.type==="SCALAR_ARITH"||n.type==="CONCAT_OP"?Cn(n,t):n.type==="STRING_FUNC"?Ja(n,t):n.type==="CASE_VALUE"&&Gc(n.expr,t);return qc(e).forEach(n=>t.add(n)),{app:e.appId,query:G(e.where),fields:["$id",...t],totalCount:!1}}function $c(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"?$c(e,t):e.type==="STRING_FUNC"&&Ja(e,t)}function Ja(e,t){for(let n of e.args)Lm(n,t)}function Lm(e,t){if(e.type==="AGG_REF"||e.type==="AGG_ARITH"){ja(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"&&Gc(e,t)}function ja(e,t){if(e.type==="AGG_REF"){e.arg.type!=="WILDCARD"&&_m(e.arg,t);return}e.type==="AGG_ARITH"&&(ja(e.left,t),ja(e.right,t))}function _m(e,t){e.type==="FIELD_REF"||e.type==="ARITH"?dr(e,t):Cn(e,t)}function xc(e,t){if(e.type!=="ARRAY"){if(e.type==="FIELD_REF"||e.type==="ARITH"){dr(e,t);return}Cn(e,t)}}function Gc(e,t){for(let n of e.branches)Yi(n.condition,t),xc(n.result,t);e.elseResult!==null&&xc(e.elseResult,t)}function Yi(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":Yi(e.left,t),Yi(e.right,t);break;case"NOT":case"GROUP":Yi(e.expr,t);break;case"EXISTS":case"BOOLEAN":break}}function Xa(e,t,n=new Map){let r=t.map(i=>{let o=Number(i.$id.value),a=Vc(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?es(e,r):ae(e,t));if(e.type==="SCALAR_ARITH"||e.type==="CONCAT_OP")return String(pe(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 qi(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 Dm=new Set(["CHECK_BOX","MULTI_SELECT","USER_SELECT","ORGANIZATION_SELECT","GROUP_SELECT","FILE"]);function Za(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=Vc(i),l={};for(let{field:d,value:p}of e.assignments){let c=n.get(d);if(p.type==="SOURCE_FIELD"){if(Dm.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(es(p,i))}:p.type==="SCALAR_ARITH"||p.type==="CONCAT_OP"?l[d]={value:String(pe(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 Vc(e){return Object.fromEntries(Object.entries(e).map(([t,n])=>[t,typeof n.value=="string"?n.value:JSON.stringify(n.value??"")]))}function es(e,t){let n=Fc(e.left,t),r=Fc(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 Fc(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 es(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 Wc(e){return za(e.where),{app:e.appId,query:G(e.where),fields:["$id"],totalCount:!1}}function Hc(e,t){return Rr(t,100).map(n=>({app:e,ids:n}))}function Yc(e){return Pm.has(e??"")}function vm(e){return Nm.has(e??"")}function Um(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 Mm(e){return!e||/^\d{4}-\d{2}-\d{2}$/.test(e)?e:e.replace(/\//g,"-")}function jc(e,t){return Yc(t)?e===""?[]:e.split(",").map(n=>({code:n.trim()})):vm(t)?e===""?[]:e.split(",").map(n=>n.trim()):t==="DATETIME"?Um(e):t==="DATE"?Mm(e):e}function zc(e,t){return Yc(t)?e.map(n=>({code:n})):e}function Kc(e,t,n){return e.type==="ARRAY"?zc(e.elements.map(r=>r.value),n):e.type==="STRING"?jc(e.value,n):e.type==="STRING_FUNC"?se(e,t):e.type==="FIELD_REF"||e.type==="ARITH"?String(ae(e,t)):String(pe(e,t))}function qc(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=ts(e,t);if(!n.ok)throw new Q(n.message);return n.value}function ts(e,t){try{return{ok:!0,value:km(e,t)}}catch(n){return{ok:!1,message:n instanceof Error?n.message:String(n)}}}function km(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 jc(e.value,t);case"NUMBER":return H(e);case"ARRAY":return zc(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 ns=new Set(["CHECK_BOX","MULTI_SELECT"]),xm=new Set(["USER_SELECT","ORGANIZATION_SELECT","GROUP_SELECT"]);function mr(e){throw new Error(`ArgumentError: ${e}`)}function Jc(e,t,n){let r=Fm(n.fieldType,e.field),i=Km(t,r,e.field),o=new Set(i),a=[],s=new Set,l=new Set;for(let y of e.operations){let g=y.value;g!==""&&(y.kind==="ADD"?(s.has(g)||a.push(g),s.add(g)):l.add(g))}for(let y of s)l.has(y)&&mr(`APPLY multi-value field ${e.field} has conflicting ADD and REMOVE for ${JSON.stringify(y)}.`);let d=i.filter(y=>!l.has(y)),p=a.filter(y=>!o.has(y)),c=[...d,...p],u=new Set(i.filter(y=>l.has(y))).size,f=new Set,E=new Set,R=e.operations.map(y=>{let g=y.kind==="ADD"?f:E,h=!g.has(y.value);return g.add(y.value),{kind:y.kind,value:y.value,changed:y.value!==""&&h&&(y.kind==="ADD"?!o.has(y.value):o.has(y.value))}}),m=ns.has(r)?c:c.map(y=>({code:y}));return{field:e.field,fieldType:r,operations:R,postImageValue:m,addedValues:p.length,removedValues:u,changedValues:p.length+u}}function Fm(e,t){return ns.has(e)||xm.has(e)?e:mr(`APPLY multi-value target ${t} has unsupported type ${e}.`)}function Km(e,t,n){if(!Array.isArray(e))return mr(`APPLY snapshot for ${n} must be an array.`);let r=e.map((i,o)=>ns.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 os(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)rs(s.field,null,r),Bm(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(_u(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)rs(u.field,s.field,r,p),is(u.value,s.field,r,p);c.selector.kind==="WHERE"&&is(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),rs(f,s.field,r,p)}else c.kind==="REMOVE"&&c.selector.kind==="WHERE"&&is(c.selector.where,s.field,r,p)}return{targetTables:i,targetMultiValueFields:o,childrenByTable:a,fieldsByCode:r}}function Bm(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 rs(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 is(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 Ji(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 Xi(e,t){let n={_rid:e.id??"",_idx:String(t)};for(let[r,i]of Object.entries(e.value??{}))n[r]=np(i?.value);return n}function Qc(e){let{statement:t,snapshot:n,fieldInfos:r}=e,i=e.metadata??pt(t,r),o=ls(n.$id?.value,"APPLY snapshot $id"),a=os(t);return o!==a&&Y(`APPLY snapshot $id ${o} does not match requested $id ${a}.`),ep(t,n,i,o)}function Zc(e,t,n,r=pt(e,n)){let i=new Set;return t.map(o=>{let a=ls(o.$id?.value,"APPLY snapshot $id");return i.has(a)&&Y(`APPLY snapshots contain duplicate parentId ${a}.`),i.add(a),ep(e,o,r,a)})}function ep(e,t,n,r){let i=ls(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(Jc(p,t[p.field]?.value,P));continue}let c=n.childrenByTable.get(p.field),u=Ym(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=[],y=[],g=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=as(D,c,p.field);y.push({kind:"APPEND",addedRows:N.length}),m.push(...N);continue}if(D.kind==="REMOVE"){let N=Vm(D,u,E,p.field);D.expectRows&&Xc(D.expectRows,N.length,r,p.field,P,D.kind),y.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 k=Gm(D,u,E,p.field);D.expectRows&&Xc(D.expectRows,k.length,r,p.field,P,D.kind),y.push({kind:"PATCH",matchedRows:k.length,changedRows:k.length});for(let N of k){let _=u[N];S.has(N)&&Y(`APPLY row ${_.id} is selected by both PATCH and REMOVE.`),h.add(N);let A=Xi(_,N);for(let C of D.assignments){let F=`${_.id}\0${C.field}`;g.has(F)&&Y(`APPLY patches cell ${_.id}.${C.field} more than once.`),g.add(F),R.push({rowIndex:N,field:C.field,value:qi(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:y,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 k=I.get(D);return k?{id:P.id,value:k}:{id:P.id}}),...m.map(P=>({value:P.value}))]})}let s=jm(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 Xc(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 as(e,t,n){return e.values.map(r=>({value:$m(e,r,t,n)}))}function $m(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?ss(a):s.type==="CASE_VALUE"?Lt(s.expr,{},a.fieldType):ct(s,a.fieldType)}}return o}function ss(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 Gm(e,t,n,r){return tp(e.selector,t,n,r)}function Vm(e,t,n,r){return tp(e.selector,t,n,r)}function tp(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,Xi(l,d),n)?[d]:[]),a=Wm(i);a!==null&&o.length===0&&Y(`APPLY _rid ${a} does not exist in snapshot table ${r}.`);let s=Hm(i);return s!==null&&o.length===0&&Y(`APPLY _idx ${s} does not exist in snapshot table ${r}.`),o}function Wm(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 Hm(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 Ym(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 ls(e,t){let n=Number(e);return(!Number.isSafeInteger(n)||n<=0)&&Y(`${t} must be a positive integer.`),n}function jm(e){let t={};for(let[n,r]of Object.entries(e))t[n]=np(r?.value);return t}function np(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 eo(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),zm(i),t[i.table]={value:i.payloadRows};return{app:e.app,records:[{id:e.parentId,revision:e.revision,record:t}]}}function rp(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 zm(e){let t=us(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(us(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=us(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)=>!cs(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 us(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 cs(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)=>cs(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)&&cs(n[a],r[a]))}function ip(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 op(e){let t=e.numberPrecision;if(t==null||typeof t!="object")throw new Error("SettingsError: numberPrecision is missing from app settings.");let n=ip(t.digits,"digits",1,30),r=ip(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 ap(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 qm=new Set(["CHECK_BOX","MULTI_SELECT"]),Jm=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=Xm(e);if(i!==""&&!Qm(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:Zm(t.fieldType),message:o}}if(t.required&&to(r))return{ok:!1,code:"ERR_REQUIRED",message:`${t.code} \u306F\u5FC5\u9808\u3067\u3059`};if(!to(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&&yi(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&&yi(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}=ap(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(!to(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!to(r)&&Jm.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 Xm(e){return e==null?"":no(e)&&e.type==="NUMBER"?H(e):no(e)&&e.type==="STRING"?e.value:typeof e=="string"||typeof e=="number"?String(e):""}function Qm(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(no(e)){let r=ts(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(qm.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 no(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(no(e)){if(e.type==="STRING")return e.value==="";if(e.type==="ARRAY")return e.elements.length===0}return!1}function to(e){return e===""||Array.isArray(e)&&e.length===0}function Zm(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 ps(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 ds(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&&ps(e,r,i);let R;for(let m of e){m.record??(m.record={});let y=d?[...m.preErrors]:[],g=[],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 k=Ne(v,c.get(b),a);k.ok?m.record[b]={value:D?v:k.value}:g.push({field:b,code:k.code,message:k.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&&g.push({field:b.code,code:"ERR_REQUIRED",message:`${b.code} \u306F\u5FC5\u9808\u3067\u3059`}):g.push({field:b.code,code:P.code,message:P.message})}else{let P=Ne(b.defaultValue,b,a);P.ok||g.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,k])=>[D,qe(k)])),v=m.evaluationFieldTypes,P=D=>{let k=D.tableAlias?`${D.tableAlias}.${D.field}`:D.field;return v?.get(k)??v?.get(D.field)};try{for(let D of Hi(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(y),builtInErrors:w(g),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 fs=["required","length","range","choice"];function Es(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 Rs(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 ey(e){return Es(e).length>0}function ty(e){return e.fieldType==="NUMBER"||ey(e)}function ro(e,t,n){return{subtable:e,subrow:t+1,subrowId:String(n.id??"")}}function ms(e,t){let{topByCode:n,childrenByTable:r}=Rs(t),i=ty;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(y=>y.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 ny=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=Rs(e),r=n.topLevel.filter(o=>o.fieldType!=="SUBTABLE"&&o.fieldType!=="FILE"&&!ny.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=ry(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 y of t.payloadFields)m[y]=y==="$id"?p:qe(e[y]?.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:sp(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 y=E[m],g=R[m];for(let h of f){let S=y.value?.[h.code]?.value,w=Ne(S,h,n);w.ok?(g.value??(g.value={}),g.value[h.code]={value:sp(S,h.fieldType,w.value)}):c(h,S,w,ro(u,m,y))}}}return{normalizedRecord:a,errors:s,columns:d,invalidRows:l.size,invalidRowNumbers:l,errorCount:s.length}}function sp(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 ry(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 io(e){let{statement:t,snapshots:n,fieldInfos:r,metadata:i,dmlMaxRows:o,dmlMaxSubtableRows:a,statementNumber:s=1}=e;lp(o,"dmlMaxRows"),lp(a,"dmlMaxSubtableRows");for(let h of n)eo(h);let l=Zc(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)=>Qi(h,u[S].normalizedRecord)),y=m.flatMap(h=>gr(h).records),g=u.map(h=>({errors:h.errors,columns:h.columns,invalidRows:h.invalidRows,errorCount:h.errorCount}));return up({plans:m,records:y,validations:g,guards:{revisionRequired:!0,parentRows:f,dmlMaxRows:o,subtableRows:E,dmlMaxSubtableRows:a,wouldExceed:R}})}function lp(e,t){if(!Number.isSafeInteger(e)||e<=0)throw new Error(`ArgumentError: ${t} must be a positive safe integer.`)}function up(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))up(n,t);return Object.freeze(e)}var ys=new Set(["CALC","RECORD_NUMBER","CREATOR","CREATED_TIME","MODIFIER","UPDATED_TIME","STATUS","STATUS_ASSIGNEE","CATEGORY","REFERENCE_TABLE"]);function oo(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)cp(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),cp(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 iy(e,t,n=oo(e,t),r){let i=new Map(t.map(s=>[s.code,s.fieldType])),o=ji(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=>as(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||ys.has(c.fieldType)||(d[c.code]=s[c.code]??{value:ss(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;pp(r,"dmlMaxRows"),pp(i,"dmlMaxSubtableRows");let a=e.metadata??oo(t,n),s=iy(t,n,a,e.parentRowNumbers),l=n.filter(S=>S.fieldType==="SUBTABLE"||S.fieldType!=="FILE"&&S.writable!==!1&&!ys.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(k=>[k,v[D]?.value?.[k]??P.value[k]]))}))}}return{...S,postImage:I,record:L}}),y=m.map(S=>S.record),g=[];for(let S=0;S<y.length;S+=100)g.push({app:t.appId,records:y.slice(S,S+100)});let h=u.map(S=>({errors:S.errors,columns:S.columns,invalidRows:S.invalidRows,errorCount:S.errorCount}));return dp({applyBlocks:t.applyBlocks??[],candidates:m,records:y,batches:g,validations:h,guards:{revisionRequired:!1,parentRows:f,dmlMaxRows:r,subtableRows:E,dmlMaxSubtableRows:i,wouldExceed:R}})}function cp(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||ys.has(i.fieldType))return Xe(`APPLY assignment target ${e} is not writable (${i.fieldType}).`)}function pp(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 dp(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))dp(n,t);return Object.freeze(e)}async function Ep(e){let{statement:t,matches:n,fieldInfos:r,dmlMaxRows:i,dmlMaxSubtableRows:o,statementNumber:a=1}=e;fp(i,"dmlMaxRows"),fp(o,"dmlMaxSubtableRows"),uy(t,n);let s=n.filter(y=>y.targetId===void 0),l=n.filter(y=>y.targetId!==void 0),d=oy(t,s.map(y=>y.sourceRowIndex)),p=await Tr({statement:d,fieldInfos:r,metadata:oo(d,r),dmlMaxRows:i,dmlMaxSubtableRows:o,statementNumber:a,parentRowNumbers:s.map(y=>y.sourceRowIndex+1),loadNumberPrecision:e.loadNumberPrecision}),c=[],u=new Set;for(let y of l){let g=y.targetId;u.has(g)&&gs(`UPSERT APPLY resolves more than one source row to parent $id ${g}.`),u.add(g),y.snapshot||gs(`UPSERT APPLY snapshot for parent $id ${g} is missing.`);let h=Number(y.snapshot.$id?.value);h!==g&&gs(`UPSERT APPLY snapshot $id ${h} does not match target $id ${g}.`);let S=ay(t,y.sourceRowIndex,g),w=S.applyBlocks?.length?pt(S,r):sy(r);c.push(await io({statement:S,snapshots:[y.snapshot],fieldInfos:r,metadata:w,dmlMaxRows:i,dmlMaxSubtableRows:o,statementNumber:a,parentRowNumbers:[y.sourceRowIndex+1],loadNumberPrecision:e.loadNumberPrecision}))}let f=ly(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 y=[...p.validations.flatMap(g=>g.errors),...f.validations.flatMap(g=>g.errors)];if(y.length>0)throw new Error(`ArgumentError: APPLY post-image validation failed: ${JSON.stringify({columns:p.validations[0]?.columns??f.validations[0]?.columns??[],errors:y})}`)}if(!t.validateOnly&&E>i)throw new Error(`ArgumentError: APPLY parent rows (${E}) exceed dmlMaxRows (${i}).`);if(!t.validateOnly&&R>o)throw new Error(`ArgumentError: APPLY changed subtable rows (${R}) exceed dmlMaxSubtableRows (${o}).`);return hs({create:p,update:f,createBatches:p.batches,updateBatches:cy(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 oy(e,t){return{type:"INSERT",appId:e.appId,fields:[...e.fields],values:t.map(n=>e.values[n]),applyBlocks:e.onInsertApplyBlocks??[],validateOnly:!0}}function ay(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 sy(e){return{targetTables:new Map,targetMultiValueFields:new Map,childrenByTable:new Map,fieldsByCode:new Map(e.map(t=>[t.code,t]))}}function ly(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 hs({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 uy(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 cy(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 fp(e,t){if(!Number.isSafeInteger(e)||e<=0)throw new Error(`ArgumentError: ${t} must be a positive safe integer.`)}function gs(e){throw new Error(`ArgumentError: ${e}`)}function hs(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))hs(n,t);return Object.freeze(e)}function wr(e){return Ln("UPDATE",[yp(e)])}function As(e){return Ln("INSERT",[mp(e)])}function Ss(e){return Ln("UPSERT",[mp(e.create),yp(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 so(e,t,n){return e.type==="UPDATE"?Ln("UPDATE",[ao("update",e.applyBlocks??[],null,!0,t,n)]):e.type==="INSERT"?Ln("INSERT",[ao("insert",e.applyBlocks??[],e.values.length,!1,t,n)]):Ln("UPSERT",[ao("insert",e.onInsertApplyBlocks??[],null,!1,t,n),ao("update",e.onUpdateApplyBlocks??[],null,!0,t,n)])}function Ln(e,t){return{statementKind:e,branches:t,nonTransactional:!0,partialSuccess:{possible:!0}}}function mp(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 yp(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:Rp(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:Rp(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 Rp(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 ao(e,t,n,r,i,o){let a=t.map(p=>{let c=p.operations.map(f=>py(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 py(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 gp(e,t,n){yn("phase10c");let r=rp(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 hp(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 Ap(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 dy=/^[A-Za-z_][A-Za-z0-9_]{0,63}$/;function fy(e){if(!dy.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 Ey(e){let t=Object.create(null);for(let[n,r]of Object.entries(e??{})){let i=fy(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 Ts(e,t){let n=Ey(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 Ry(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 Is(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 Ry(i)?!0:Object.values(i).some(n)};return n(e)}function Sp(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 Tp(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 lo(e.left);case"NULL_CHECK":return lo(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 lo(e){if(Array.isArray(e))return e.some(lo);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(lo)}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 uo(e,t,n,r){let{records:i,metrics:o}=await Ge(e,t,n,["$id"],r);return{ids:yu(i),metrics:o}}var Me=["=","!=",">","<",">=","<="],my=new Set(["DATE","DATETIME","CREATED_TIME","UPDATED_TIME"]),yy=new Set(Me),gy=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"])]]),hy=new Map([["TODAY",new Set(Me)],["NOW",new Set(Me)],["LOGINUSER",new Set(["in","not in"])],["PRIMARY_ORGANIZATION",new Set(["in","not in"])]]),Ay=["=","!=","in","not in"],Sy=new Map([["RECORD_NUMBER",new Set([...Me,"in","not in"])],["__ID__",new Set([...Me,"in","not in"])],["CREATOR",new Set(["in","not in"])],["MODIFIER",new Set(["in","not in"])],["CREATED_TIME",new Set(Me)],["UPDATED_TIME",new Set(Me)],["DATE",new Set(Me)],["TIME",new Set(Me)],["DATETIME",new Set(Me)],["SINGLE_LINE_TEXT",new Set(["=","!=","in","not in","like","not like"])],["LINK",new Set(["=","!=","in","not in","like","not like"])],["NUMBER",new Set([...Me,"in","not in"])],["CALC",new Set([...Me,"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(Ay)]]),Ty=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"])]]),bp=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"]),Pp=new Set(["CHECK_BOX","MULTI_SELECT","FILE","USER_SELECT","ORGANIZATION_SELECT","GROUP_SELECT","STATUS_ASSIGNEE","CATEGORY"]);function Iy(e){return Sy.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 wy(e.op,e.left,e.right,t);case"NULL_CHECK":return e.field.type!=="FIELD"?bs():Ny(e.field,e.not?"IS NOT NULL":"IS NULL",t);case"EXISTS":return bs();case"GROUP":return Pr(e.expr,t);case"NOT":{let n=Pr(e.expr,t);return n.capability!=="SUPERSET_PREFILTER"?n:Cp(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 Oy(e.op,n,r)}}}function wy(e,t,n,r){if(n.type==="KINTONE_FUNC"&&J(n.name))return by(e,t,n,r);if(n.type==="KINTONE_FUNC"&&Ip(n))return wp(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?wp(e,t,p[0],r):co("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 bs();let i=r(t);if(!i)return _n("WHERE_FIELD_UNRESOLVED",t.field,void 0,Nr(e));let o=Nr(e);if(!Np(i.fieldType,o))return _n("WHERE_OPERATOR_INVALID_FOR_FIELD_TYPE",t.field,i.fieldType,o);if(!Cy(i.fieldType,e))return _n("WHERE_OPERATOR_UNSUPPORTED",t.field,i.fieldType,o);let a=Iy(i.fieldType),s=n.type==="STRING"||n.type==="NUMBER"||n.type==="IN_LIST"||Ip(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 Ip(e){return e.type==="KINTONE_FUNC"&&kt.has(e.name)}function wp(e,t,n,r){let i=Nr(e),o=n.name;if(!kt.has(o)||t.type!=="FIELD")return co("WHERE_KINTONE_FUNCTION_CONTEXT_UNSUPPORTED",o,void 0,void 0,i);let a=r(t),s=gy.get(o);return!a||!s.has(a.fieldType)||a.inSubtable||a.requiresCollectionOperators?co("WHERE_KINTONE_FUNCTION_FIELD_TYPE_UNSUPPORTED",o,t.field,a?.fieldType,i):hy.get(o).has(i)?{capability:"EXACT_PUSHDOWN",reasons:[{code:"WHERE_EXACT",functionName:o,field:t.field,fieldType:a.fieldType,operator:i}]}:co("WHERE_KINTONE_FUNCTION_OPERATOR_UNSUPPORTED",o,t.field,a.fieldType,i)}function by(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?Py(n)?yy.has(i)?!my.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 Py(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 Ny(e,t,n){let r=n(e);return r?Np(r.fieldType,t)?!bp.has(r.fieldType)&&!Pp.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 Np(e,t){let n=Ty.get(e);return n===void 0||n.has(t)}function Cy(e,t){return bp.has(e)?!0:Pp.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 Oy(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 bs(){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 co(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 Op({capability:"UNSUPPORTED",reasons:[{code:e,functionName:t,field:n,fieldType:r,operator:i}]})}function Cp(e){return e.some(t=>t.code.startsWith("WHERE_RELATIVE_DATE_")||t.functionName!==void 0&&J(t.functionName))}function Ly(e){return e.some(t=>t.code.startsWith("WHERE_KINTONE_FUNCTION_")||t.functionName!==void 0&&kt.has(t.functionName))}function Op(e){if(e.capability==="EXACT_PUSHDOWN"||!Cp(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 _y(e){if(e.capability==="EXACT_PUSHDOWN"||!Ly(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&&kt.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 _y(Op(e))}var Dy=new Set(["DROP_DOWN","RADIO_BUTTON","CHECK_BOX","MULTI_SELECT","STATUS"]),vy=new Set(["SINGLE_LINE_TEXT","LINK","MULTI_LINE_TEXT","RICH_TEXT","FILE"]),Uy=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)?_p(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"}):_p(n[0],e.field)}function Ns(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=Ky(e,n,r);return o==="unsafe"?Or():Object.freeze({relation:o,owner:n})}function Dp(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 vp(e,t){let n=new Set;jt(e,n);let i=(e===null?[]:kp(Dn(e,t))).map(s=>Object.freeze({targetAlias:s.owner.alias,appId:s.owner.appId,predicate:s.predicate,relation:s.relation})),o=My(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(Fy(e,t)),fetchQueriesByAlias:new Map,...o})}function Up(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(yo(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 Mn(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(yo(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))||Mp(xy(e))!==e.allKlikes.length))}function My(e,t){if(e===null)return Lp(null);let n=Object.freeze([...ue(e)]);if(n.length===0)return Lp(e);let r=ky(e,t,n);if(r!==null)return r;let i=Eo(e),o=[],a=new Set;for(let c of i){let u=Dp(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=yo(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=Ro(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 ky(e,t,n){let r=po(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(yo(o),n))return null;let a=new Set;if(jt(e,a),Mp(o)!==a.size)return null;let s=Object.freeze(fo(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 po(e,t){switch(e.type){case"BINARY":{if(ue(e).length>0){let i=Dp(e,t);return i.relation==="function-leaf-exact"?i.owner:null}let r=Ns(e,t);return r.relation==="exact"&&r.owner!==void 0?r.owner:null}case"LOGICAL":{let n=po(e.left,t),r=po(e.right,t);return n!==null&&r!==null&&go(n,r)?n:null}case"GROUP":case"NOT":return po(e.expr,t);case"NULL_CHECK":case"EXISTS":case"BOOLEAN":return null}}function fo(e){switch(e.type){case"BINARY":return ue(e).length>0?[e]:[];case"LOGICAL":return[...fo(e.left),...fo(e.right)];case"GROUP":case"NOT":return fo(e.expr);case"NULL_CHECK":case"EXISTS":case"BOOLEAN":return[]}}function Lp(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 Eo(e){switch(e.type){case"BINARY":return ue(e).length>0?[e]:[];case"LOGICAL":return e.op==="AND"?[...Eo(e.left),...Eo(e.right)]:[];case"GROUP":return Eo(e.expr);case"NOT":case"NULL_CHECK":case"EXISTS":case"BOOLEAN":return[]}}function Ro(e,t){if(e.type==="BINARY")return t.has(e)?null:e;if(e.type==="LOGICAL"){if(e.op!=="AND")return e;let n=Ro(e.left,t),r=Ro(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=Ro(e.expr,t);return n===null?null:n===e.expr?e:{...e,expr:n}}return e}function yo(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 Mp(e){return[...e.matchAll(/\s(?:not\s+)?like\s/g)].length}function xy(e){let t=e.serverFunctionConsumptions[0];return t===void 0?"":e.fetchQueriesByAlias.get(t.targetAlias)??""}function Fy(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(mo(i.right)){n.add("CROSS_TABLE_BINARY");return}Ns(i,t).relation==="unsafe"&&n.add("UNSAFE_RELATION");return}if(i.type==="LOGICAL"){if(i.op==="OR"){if(Bp(i)){n.add("KLIKE_OR");return}let o=Dn(i.left,t),a=Dn(i.right,t);if(o.length!==1||a.length!==1||!go(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"||mo(e.right))throw Ps(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 Ps(t,`field ${e.left.field} is not uniquely owned by the target`);return}case"NULL_CHECK":case"EXISTS":case"BOOLEAN":throw Ps(t,"predicate shape is outside the Phase A serializer contract")}}function Ps(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=Ns(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 kp([...n,...r]);if(Bp(e))return[];if(n.length!==1||r.length!==1)return[];let i=n[0],o=r[0];return go(i.owner,o.owner)?[{owner:i.owner,predicate:{type:"LOGICAL",op:"OR",left:i.predicate,right:o.predicate},relation:xp(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 kp(e){let t=[];for(let n of e){let r=t.findIndex(o=>go(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:xp(i.relation,n.relation)}}return t}function Ky(e,t,n){if(e.op==="LIKE"||e.op==="NOT_LIKE")return"unsafe";if(e.op==="KLIKE"||e.op==="NOT_KLIKE")return vy.has(n)&&e.right.type==="STRING"&&e.right.value!==""?"exact":"unsafe";if(n==="__ID__"||t.fieldCode==="$id")return By(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===">")&&Fp(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"||Uy.has(n))return e.op!=="="||e.right.type!=="STRING"?"unsafe":n==="DATE"?Kp(e.right.value)?"superset":"unsafe":n==="TIME"?$y(e.right.value)?"superset":"unsafe":Gy(e.right.value)?"superset":"unsafe";if(Dy.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 _p(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 go(e,t){return e.alias===t.alias&&e.appId===t.appId&&e.source===t.source}function xp(e,t){return e==="exact"&&t==="exact"?"exact":"superset"}function By(e){return e.type==="NUMBER"&&Fp(e)&&e.value>0}function Fp(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 $y(e){let t=/^(\d{2}):(\d{2})$/.exec(e);return t!==null&&Number(t[1])<=23&&Number(t[2])<=59}function Gy(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 Bp(e){let t=new Set;return jt(e,t),t.size>0}function mo(e){if(e===null||typeof e!="object")return!1;if(Array.isArray(e))return e.some(mo);let t=e;return t.type==="FIELD"||t.type==="FIELD_REF"?!0:Object.values(t).some(mo)}function Cs(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 Vy(e,t){return e.key.type==="FIELD_NAME"?t.get(e.key.name):void 0}function Wy(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=Vy(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"&&!Wy(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 Hy=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 Yy(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(Yy(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}Hy.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 ho=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"}},Ao=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}},So=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 $p(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 So(a).message}}return{records:n,cleanupWarning:o}}function Os(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 Gp=["$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 Ls(e){return e.startsWith("_")||e.startsWith("$")}var jy=/^(COUNT|SUM|AVG|MAX|MIN|GROUP_CONCAT|STDDEV_POP|STDDEV_SAMP|VAR_POP|VAR_SAMP|MEDIAN|MODE)\(/;function Ds(e){if(e===null||typeof e!="object")return!1;if(Array.isArray(e))return e.some(Ds);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"?jy.test(t.field):Object.values(t).some(Ds)}function zy(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)||Ds(e)?"AGGREGATE_DEPENDENT":"SAFE"}}var qy=["_pid","_rid","_idx"];function _s(e){return[...new Set(e)]}function Jy(e){switch(e.kind){case"APP":return _s([...e.fieldCodes,...Gp]);case"SUBTABLE":return _s([...e.childFieldCodes,...qy,...e.parentFieldCodes.map(t=>`_p.${t}`)]);case"MATERIALIZED":return _s(e.columns)}}function Vp(e,t){return[e.from,...e.joins.map(r=>r.table)].map((r,i)=>({sourceIndex:i,qualifier:r.alias??r.cteName,columns:Jy(t(r,i))}))}function Xy(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 Qy(e,t){return e.qualifier===null?t:`${e.qualifier}.${t}`}function Zy(e){return"alias"in e&&typeof e.alias=="string"?e.alias:null}function eg(e,t,n){let r=Xy(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:Qy(l,r.fieldCode)}}if(r.qualifier!==null)return{kind:"UNKNOWN",name:e};let a=t.flatMap((l,d)=>Zy(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=zy(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 Wp(e,t,n){return{items:e.map(r=>r.type==="FIELD_NAME"?eg(r.name,t,n):{kind:"EXPRESSION"})}}var tg={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 Hp(e,t){let n=tg[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 Yp(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=>Hp(s.fieldType,s.code)==="PROCESS")?(await n()).enable:!1;return[...r.filter(s=>{let l=Hp(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 ng(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(jp(e,a,r.leftColumns),jp(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 y of m)f.push({...y,...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 jp(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 rg(e,t,n,r,i){return t===null?e:e.filter(o=>te(t,o,n,r,i))}function ed(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 ig(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)=>ag(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&&ed(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[Fs(p.expr)]=String(ae(p.expr,l[0])):p.type==="FUNC_KEY"&&(d[Dt(p.expr)]=se(p.expr,l[0]));td(d,l,n,r),s.push(d)}return s}function og(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=zp(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,zp(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)}td(f,u,n,r),oc(f,c),o.push(f)}}return o}function zp(e,t){return t?t[e.directKey]??(e.unqualifiedBridgeKey===null?void 0:t[e.unqualifiedBridgeKey])??"":""}function td(e,t,n,r){for(let i of n)if(i.type==="AGGREGATE"){let o=we(i.func,i.distinct,i.arg),a=String(Us(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??kn(i.expr);e[o]=String(To(i.expr,t,r))}else if(i.type==="STRFUNC_COL"&&Ur(i.expr)){let o=i.alias??Dt(i.expr),a=Ks(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=wo(i.expr,t,r);e[o]=String(pe(a,e))}}function ag(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=Io(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 Us(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"?nd(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,y]of f){if(y>R){E=m,R=y;continue}if(y!==R)continue;let g=$t(m,E,c);(g<0||g===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,y=0;for(let h of u){let S=h-E;R++;let w=S-m;m+=w/R,y+=w*(S-m)}let g=Math.max(0,y/(f?R-1:R));return e==="STDDEV_POP"||e==="STDDEV_SAMP"?Math.sqrt(g):g}}}function sg(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 To(e,t,n){if(e.type==="NUMBER")return e.value;if(e.type==="AGG_REF")return Number(Us(e.func,e.distinct,e.arg,e.separator,t,n));let r=To(e.left,t,n),i=To(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 kn(e){return er(e)}function nd(e,t){if(e.type==="FIELD_REF")return t?.(sg(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=>nd(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 lg(e,t,n,r){return t===null?e:e.filter(i=>te(t,i,n,void 0,r))}function ug(e,t,n,r,i){if(e.length===0)return e;let o=cg(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 cg(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(Rg(t,a,o))}function Ms(e,t,n,r,i,o){return t.length===0?e:rd(e,t,n,r,i,o).rows.map(a=>a.row)}function rd(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(id.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:fg(p,d,o)}))})),l=(d,p)=>pg(d,p,t,a);return s.sort(l),{rows:s,compare:l}}function pg(e,t,n,r){for(let i=0;i<n.length;i++){let o=dg(e.keys[i],t.keys[i],r[i]);if(o!==0)return n[i].direction==="ASC"?o:-o}return 0}function dg(e,t,n){return $t(e.s,t.s,n.semantics)}var id=new Set(["LENGTH","LENGTH_CHAR","INSTR","ROUND","FLOOR","CEIL","TRUNCATE","YEAR","MONTH","DAY","DATEDIFF","ABS","MOD","POWER","SQRT","DAYOFWEEK","QUARTER","WEEK"]);function fg(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 ks(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=kn(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(pe(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 xs(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=>Eg(l,c))),p=s.get(d);p?p.push(l):s.set(d,[l])}for(let l of s.values()){let d=rd(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 Eg(e,t){let n=t.tableAlias?`${t.tableAlias}.${t.field}`:t.field;return ut(e,n)}function bo(e,t,n){let r=n??0;return t===null?e.slice(r):e.slice(r,r+t)}function Io(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??kn(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(pe(e.expr,t,r.resolveFieldType,r.resolveFieldSemantics))}case"SCALAR_SUBQUERY_COL":return r.scalarCache?.get(n)??"";case"WINDOW_COL":return t[e.alias]??""}}function Rg(e,t,n={}){return e.map((r,i)=>{let o=Io(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(Jp(E),a),m=Io(t[0],E,0,{wildcardKeys:Object.keys(R)}),y={};if(typeof m!="string")for(let[g,h]of m.entries)h!==null&&(y[g]=h);return y}),f=u.length>0?Object.keys(u[0]):[...i??[]];return{rows:u,columns:f}}let s=gg(t),l=t.some(u=>u.type==="WILDCARD"||u.type==="PARENT_WILDCARD"),d=l?null:mg(t,s),p=d??[];return l&&e.length===0?{rows:[],columns:yg(t,s)}:{rows:e.map((u,f)=>{let E={},R={scalarCache:n,resolveFieldType:r,resolveFieldSemantics:o,wildcardKeys:Object.keys(Qp(Jp(u),a)),parentWildcardKeys:Object.keys(u).filter(m=>m.startsWith("_p.")).sort()};for(let[m,y]of t.entries()){let g=Io(y,u,m,R);switch(y.type){case"VARIABLE_COL":break;case"WILDCARD":if(typeof g!="string")for(let[h,S]of g.entries)S!==null&&(E[h]=S);break;case"PARENT_WILDCARD":{if(typeof g!="string")for(let[h,S]of g.entries)S!==null&&(E[h]=S),f===0&&p.push(h);break}case"FIELD":{let h=d?.[m]??y.alias??s.get(m)??y.field;E[h]=g,d===null&&f===0&&p.push(h);break}case"LITERAL_COL":{let h=d?.[m]??y.alias??`'${y.value}'`;E[h]=g,d===null&&f===0&&p.push(h);break}case"AGGREGATE":{let h=we(y.func,y.distinct,y.arg),S=d?.[m]??y.alias??h;E[S]=g,d===null&&f===0&&p.push(S);break}case"ARITH_AGG_COL":{let h=d?.[m]??y.alias??kn(y.expr);E[h]=g,d===null&&f===0&&p.push(h);break}case"ARITH_COL":{let h=d?.[m]??y.alias??Fs(y.expr);E[h]=g,d===null&&f===0&&p.push(h);break}case"CASE_COL":{let h=d?.[m]??y.alias??"case";E[h]=g,d===null&&f===0&&p.push(h);break}case"GROUPING_COL":{let h=d?.[m]??y.alias??`GROUPING(${y.ref.field.tableAlias?`${y.ref.field.tableAlias}.`:""}${y.ref.field.field})`;E[h]=g,d===null&&f===0&&p.push(h);break}case"STRFUNC_COL":{let h=d?.[m]??y.alias??Dt(y.expr);E[h]=g,d===null&&f===0&&p.push(h);break}case"SCALAR_VALUE_COL":{let h=d?.[m]??y.alias??et(y.expr);E[h]=g,d===null&&f===0&&p.push(h);break}case"SCALAR_SUBQUERY_COL":{let h=d?.[m]??y.alias??"(subquery)";E[h]=g,d===null&&f===0&&p.push(h);break}case"WINDOW_COL":{let h=d?.[m]??y.alias;E[h]=g,d===null&&f===0&&p.push(h);break}}}return E}),columns:p}}function mg(e,t){return e.map((n,r)=>od(n,r,t))}function yg(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=od(o,i,t);r.has(a)||(r.add(a),n.push(a))}return n}function od(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??kn(e.expr);case"ARITH_COL":return e.alias??Fs(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 gg(e){let t=new Map;for(let r of e){if(r.type!=="FIELD"||r.alias)continue;let i=qp(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=qp(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 qp(e){if(e.startsWith("_p."))return e;let t=e.indexOf(".");return t<=0?e:e.slice(t+1)||e}function Jp(e){let t={};for(let[n,r]of Object.entries(e))n.startsWith("_p.")||(t[n]=r);return t}function Fs(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"?kn(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 hg(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=>Xp(t.result))||e.elseResult!==null&&Xp(e.elseResult):!1}function Xp(e){return e.type==="ARRAY"||e.type==="FIELD_REF"||e.type==="ARITH"?!1:_t(e)}function Ur(e){return e.args.some(t=>hg(t))}function Ag(e,t,n){if(e.type==="AGG_REF"){let r=Us(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=To(e,t,n);return{type:"NUMBER",value:r,raw:String(r)}}return e.type==="STRING_FUNC"?Ks(e,t,n):wo(e,t,n)}function wo(e,t,n){return e.type==="STRING_FUNC"?Ks(e,t,n):e.type==="SCALAR_ARITH"||e.type==="CONCAT_OP"?{...e,left:wo(e.left,t,n),right:wo(e.right,t,n)}:e}function Ks(e,t,n){return{type:"STRING_FUNC",func:e.func,args:e.args.map(r=>Ag(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 vs(e,t,n){if(!(e===void 0&&t===void 0&&n.length===0))return[...new Set([...e??[],...t??[],...Object.keys(n[0]??{})])]}function Sg(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(id.has(n.expr.func)?"number":"string")));return t}function Bs(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:y}=e,g=Sg(t.columns);for(let[v,P]of a??[])g.set(v,P);let h=[],S=t.from.alias;h=(n.get(S)??n.get(null)??[]).map(v=>dt(v,S));let I=vs(Zp(E?.get(S),S),void 0,h);for(let v of t.joins){let P=v.table.alias,k=(n.get(P)??[]).map(_=>dt(_,P)),N=vs(Zp(E?.get(P),P),void 0,k);h=ng(h,k,v,{leftColumns:I,rightColumns:N}),I=vs(I,N,h)}let L=e.residualWhere!==void 0?e.residualWhere:t.where;h=rg(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=og(h,m,t.columns,c,{maxGeneratedRows:5e4})}else(b.type==="PLAIN"||ed(t.columns))&&(h=ig(h,b.type==="PLAIN"?b.allItems:[],t.columns,c,b.type==="PLAIN"?y:void 0,{scalarCache:r,resolveFieldType:s,resolveFieldSemantics:l}));return h=lg(h,t.having,d,p),h=xs(h,t.columns,i,o,g),t.distinct&&(h=ug(h,t.columns,r,s,l)),h=Ms(h,t.orderBy,i,o,g,ks(t.columns,r,s,l)),h=bo(h,t.limit,t.offset),vr(h,t.columns,r,s,f,l,R)}function ad(e,t){let n=[];for(let r of e){let i=$s(r.$id?.value),o=Tg(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=$s(p?.value);l[`_p.${d}`]={value:c}}for(let[d,p]of Object.entries(s.value??{}))l[d]={value:$s(p?.value)};n.push(l)}}return n}function Tg(e){return Array.isArray(e)?e.filter(t=>!!t&&typeof t=="object"):[]}function $s(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 sd(e){return["$id",...new Set([...e.topLevel.map(t=>t.code).filter(t=>t!=="$id"&&t!=="$revision"),...e.subtables.keys()])]}function ld(e,t){let n=Mr(e);for(let[r,i]of Object.entries(t))n[r]=Mr(i);return n}function ud(e){let t=[...e.preErrors.map(i=>Gs(i)),...e.postImageErrors.map(i=>Gs(i,i.$err_subtable!=="")),...e.checkErrors.map(i=>Gs(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]=Mr(e.normalizedPostImage[i])}return{errors:t,invalidRows:n.size,invalidRowNumbers:n,writeRecord:r}}function Gs(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 Mr(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(Mr(a,t));return o}let i={};t.set(n,i);for(let[o,a]of Object.entries(e))i[o]=Mr(a,t);return i}function pd(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 Ws(e){return pd(e,!0)}function Po(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=Ws(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)}),Po(e,e).forEach((l,d)=>Ve(l,`${t}.select-source[${d}]`,n,a,a?!1:i,a?!1:o,a))}function kr(e,t,n,r,i=!0){e.left.type==="UNION"?kr(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 cd(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"&&kr(i.query,`${t}.cte[${o}]`,n,!0,!1)}),e.query.type==="SELECT"?Ve(e.query,`${t}.main`,n,r,!1,!r,!0):kr(e.query,`${t}.main`,n,!0,!1)}function dd(e,t,n,r=!1){switch(e.type){case"SELECT":Ve(e,t,n,r);return;case"UNION":kr(e,t,n,r);return;case"WITH":cd(e,t,n,r);return;case"CREATE_TEMP_TABLE":e.query.type==="WITH"?cd(e.query,`${t}.query`,n,!1):e.query.type==="UNION"?kr(e.query,`${t}.query`,n,!0,!1):Ve(e.query,`${t}.query`,n,!1,!1,!0,!0);return;case"EXPLAIN":dd(e.query,`${t}.query`,n,r);return;case"VALIDATE":case"REORDER":{let i=Ws(e.where);i.length>0&&n.push({kind:"FORBIDDEN",source:e,where:e.where,functionNames:i,path:t,allowFullScanExact:!1,relativeFunctionOccurrences:ue(e.where)}),Po(e,e).forEach((o,a)=>Ve(o,`${t}.select-source[${a}]`,n,!0,!0,!1));return}case"UPDATE":case"DELETE":{let i=Ws(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=pd(e.applyBlocks,!0);o.length>0&&n.push({kind:"FORBIDDEN",source:e,where:null,functionNames:o,path:`${t}.apply`,allowFullScanExact:!1,relativeFunctionOccurrences:[]})}Po(e,e).forEach((o,a)=>Ve(o,`${t}.select-source[${a}]`,n,r,!1,!1));return}default:Po(e,e).forEach((i,o)=>Ve(i,`${t}.select-source[${o}]`,n,r,!1,!1))}}function No(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 Hs(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 Ig(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)&&Mn(t)}function wg(e){return{kind:e.kind,source:e.source,functionNames:e.functionNames,path:e.path,clientWhereEvaluation:!0,allowed:!1}}function bg(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(xt)||n.push(xt),[...new Set(n)]}function Vs(e,t){let n=e.functionNames[0],r=fn(n)?at:xt,i=bg(n,t);return{functionName:n,path:e.path,code:i.find(o=>o!==r)??r,reasonCodes:i}}async function fd(e,t){let n=[];dd(e,"statement",n);let r=[];for(let i of n){if(i.kind==="FORBIDDEN"){let p=wg(i);return r.push(p),{hasRelativeDate:i.functionNames.some(J),hasServerOnlyWhereFunction:!0,nodes:r,allowed:!1,rejection:Vs(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"&&No(E,i.relativeFunctionOccurrences),m,y;if(!R&&i.allowPhase2Prefilter!==!1&&f.capability==="SUPERSET_PREFILTER"&&t.prefilterDecomposition){let w=await t.prefilterDecomposition(p);w?.eligible===!0&&Hs(p,w)&&(m=w.plan,y=!0,R=!0)}let g;!R&&f.capability==="EXACT_PUSHDOWN"&&(g=Ni({select:p,selectMode:u,capability:f,context:{allowFullScanExact:i.allowFullScanExact},serializedWholeWhere:E||null,relativeFunctionNames:i.relativeFunctionOccurrences})??void 0,g&&(m=g.prefilterPlan,R=!0));let h;if(!R&&t.joinServerFunctionPlan){let w=await t.joinServerFunctionPlan(p);w!==null&&Ig(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:y}:{},...g?{fullScanExactPlan:g,allowForm:g.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:Vs(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"&&No(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:Vs(i,a)}}return{hasRelativeDate:n.some(i=>i.functionNames.some(J)),hasServerOnlyWhereFunction:n.length>0,nodes:r,allowed:!0}}function Ys(e){if(!e.allowed&&e.rejection){let t=fn(e.rejection.functionName)?at:xt,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 js(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=Fr(e.where);if(o.length===0)return i(["NO_RELATIVE_DATE"]);let a=Pg(e.where,t);if(!a.ok)return i(a.reasonCodes);if(!Ng(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=Og(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??No,c=[];for(let h of a.leaves){let S=_o(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=Cg(l.condition),f=new Set(c),E=Oo(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=>_o(h));if(!p(R,[...new Set(m)])||!Lg(R,m))return i(["PREFILTER_FUNCTION_MISSING"]);let y=n.rewriteResidual?n.rewriteResidual(e.where,f):Lo(e.where,f);if(y!==null&&Fr(y).length>0)return i(["RESIDUAL_RELATIVE_DATE_REMAINED"]);if(y===null)return i(["DEFER_TO_PHASE1"],"DEFER_PHASE1");let g=new Set;for(let h of m)g.add(h);return{eligible:!0,plan:{prefilterWhere:E,residualWhere:y,exactRelativeLeaves:c,relativeFunctionNames:g,appliedKlikes:l.appliedKlikes,capability:r.capability,reasons:r.reasons}}}function Pg(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}Fr(o).length>0&&(r="RELATIVE_DATE_CONTEXT_UNSUPPORTED");return;case"NOT":Fr(o).length>0&&(r="RELATIVE_DATE_CONTEXT_UNSUPPORTED");return;case"BINARY":{if(_o(o)===null)return;if(Ce(o,t).capability!=="EXACT_PUSHDOWN"){r="RELATIVE_DATE_LEAF_NOT_EXACT";return}n.push(o);return}case"EXISTS":Fr(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 _o(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 Fr(e){let t=[],n=r=>{if(r.type==="BINARY"&&_o(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 Ng(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 Cg(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 Oo(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=Oo(e.left,t,n),i=Oo(e.right,t,n);return r!==null&&i!==null?{...e,left:r,right:i}:r??i}case"GROUP":{let r=Oo(e.expr,t,n);return r===null?null:{...e,expr:r}}case"NULL_CHECK":case"NOT":case"EXISTS":case"BOOLEAN":return null}}var xr={type:"BOOLEAN",value:!0};function Lo(e,t){if(e.type==="BINARY"&&t.has(e))return xr;switch(e.type){case"LOGICAL":{if(e.op!=="AND")return e;let n=Lo(e.left,t)??xr,r=Lo(e.right,t)??xr;return Co(n)?Co(r)?null:r:Co(r)?n:n===e.left&&r===e.right?e:{...e,left:n,right:r}}case"GROUP":{let n=Lo(e.expr,t)??xr;return Co(n)?xr:n===e.expr?e:{...e,expr:n}}case"BINARY":case"NULL_CHECK":case"NOT":case"EXISTS":case"BOOLEAN":return e}}function Co(e){return e.type==="BOOLEAN"&&e.value}function Og(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 Lg(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 Ed(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 Do(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 _g(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 Dg(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 vg(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 vo(e,t){let n=Dg(_g(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}`)),vg(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 Ug=new Set(["CHECK_BOX","MULTI_SELECT","USER_SELECT","ORGANIZATION_SELECT","GROUP_SELECT"]),Mg=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 Rd(e,t,n){if(!Ug.has(t??""))return e;if(e==="")return[];let r=e.split(/\r\n|\n/);if(r.some(i=>i===""))throw new Kr;return Mg.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 md(e){try{return new TextDecoder("utf-8",{fatal:!0}).decode(e)}catch{throw new K("JSON source is not valid UTF-8.")}}function yd(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
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=Ed(fd(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 vg=new Set(["CHECK_BOX","MULTI_SELECT"]),Rd=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 Ug(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)&&!(e instanceof Map)&&e.kind==="number"}function Mg(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."),Ug(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."),!vg.has(t.fieldType)&&!Rd.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."),Rd.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]=Mg(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]=dd(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 md(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 yd(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 kg=new Set(["USER_SELECT","ORGANIZATION_SELECT","GROUP_SELECT"]),Fg=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 Sd(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)gd(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)gd(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=>xg(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 xg(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)||hd(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):hd(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 gd(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&&Fg.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;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=Kg(e),d=Ne(l,t,n);d.ok?r[i]={value:Bg(l,t)?l:d.value}:o.push({...a,code:d.code,message:s?`\u65E2\u5B9A\u5024: ${d.message}`:d.message})}function Kg(e){return Ad(e)?e.lexeme:Array.isArray(e)?e.map(t=>t instanceof Map?t:Ad(t)?t.lexeme:t):e}function Ad(e){return typeof e=="object"&&e!==null&&e.kind==="number"}function Bg(e,t){return kg.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?"":$g(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 $g(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 Td(e,t){return Qs(e,t,"DROP")}function Id(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 wd(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 Gg(e,t){let n=e[t]?.value;return Array.isArray(n)?n:[]}function bd(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 Pd(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=Gg(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 Nd(e){return{...e,from:{appId:0,alias:null,cteName:Zs}}}function Vg(e){return/^[0-9]+$/.test(e)?e.replace(/^0+(?=\d)/,""):null}function el(e,t){let n=e.map(Vg),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 Wg="\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"}},fe=new WeakMap;function Vd(e){return fe.get(e)}var sn=new WeakMap,Xo=new WeakMap,Cd=new WeakMap,Hg=1,Yg=1;function Wd(e,t){if(t)return t;let n=Cd.get(e);return n||(n=`client:${Hg++}`,Cd.set(e,n)),n}function Nl(e){return`${e}\0inv:${Yg++}`}async function Cl(e,t,n={}){let r=Date.now(),i=Nl(Wd(t,n.cacheContext));try{let o=DA(e,n.enableImport===!0),a=Hd(),s=jd(t,a),l={aborted:!1},d=Ll(s,l,!zg(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=fe.get(p);u&&fe.set(c,u)}return c}finally{Hl(i)}}function Hd(){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 Yd=Symbol("limitMetricsSink");function Ol(e,t){let n=e[Yd];n&&(n.limitReached=!0,n.limitReachedApps.includes(t)||n.limitReachedApps.push(t))}function jd(e,t){return{[Yd]: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 Od=Symbol("searchAbortFailClosed");function Ll(e,t,n){return n&&e[Od]?e:{...e,...n?{[Od]:!0}:{},getRecords:async r=>{let i=await e.getRecords(r);if(i.searchAborted&&(t.aborted=!0,n))throw new tn;return i}}}function jg(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 zg(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(Wg),{...e,warnings:[...n]}}async function Ld(e,t,n){let r=await ni(e,t,n);return Vs(r),r}async function ni(e,t,n){return cd(e,{select:r=>zr(r,t,n),dml:r=>nf(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:(Mn(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&&!cA(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 ah(e,t,r),e.type==="IMPORT")return bf(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 qg(e,t,n,r);case"SELECT":return vt(dl(e),t,n,r,void 0,n.captureColumnMeta===!0,n.captureColumnMeta===!0);case"UNION":return Rf(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 iA(e,t,n,r);case"INSERT_SELECT":return Xl(e,t,n,r);case"UPSERT":return IA(e,t,n,r);case"UPSERT_SELECT":return eu(e,t,n,r);case"UPDATE":return Il(e,t,n,r);case"DELETE":return TA(e,t,n,r);case"REORDER":return OA(e,t,n,r);case"SHOW_APPS":return Lf(t);case"DESCRIBE":return _f(e,t,r);case"EXPLAIN":return kA(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",Ae):Ae,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 Zd(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 qd(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 qg(e,t,n,r){if(e.errorTable)throw new Error("ArgumentError: VALIDATE INTO requires a batch.");return Jd(e,t,n,r)}async function Jd(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 de(`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,k=0,N=O=>{if(D.add(O.id),k+=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 M=q[U];for(let $ of j){let be=M.value?.[$.field.code]?.value,V=Ne(be,$.field,R);if(!V.ok){let Te=no(F,U,M);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:k,constraintMetadata:d}};return fe.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])||!Jg(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 Jg(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 Xd(e,t,n={}){let r=Qd(e,n.enableImport===!0),i=ka(r);if(r.forEach(u=>Ti("phase15b",u)),n.allowApplyMutation!==!0&&r.some(u=>ha(u)||u.type==="UPSERT"&&Xg(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=Hd(),l=jd(t,s),d=Date.now(),p=n.timeoutMs!=null?d+n.timeoutMs:null,c=Nl(Wd(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:(k,N,_)=>I(k,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=jg(v),D=await eh(Qg(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:th(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 Xg(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 Qg(e,t,n,r,i,o,a){if(e.type==="SET_VARIABLE"){let l=$o(e,a);if($e(l),await Ld(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 ef(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,_d(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=_d(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 Ld(s,n,i),s.type==="VALIDATE"){let l=await Jd(s,n,{...r,onLimitReached:"error"},i);return s.errorTable&&rt(o,s.errorTable,l.columns,l.rows,r.tempTableMaxRows??Fe,fe.get(l)??qd(s.summary===!0)),{result:l}}if(s.type==="IMPORT")return{result:await bf(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 Zg(s.query,n,l,i,o);return o.set(s.name,{rows:d.rows,columns:d.columns,columnMeta:fe.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 Zd(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 Zg(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 eh(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 th(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:nh(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 nh(e){try{return JSON.stringify(e)??String(e)}catch{return String(e)}}function Qd(e,t=!1){let n=new Pt(e).tokenize();return new Nt(n,{import:t}).parseStatements()}function _d(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:_c(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=rh(i);if(o.type==="SELECT"&&ke(o.where,!0)&&(o.where=null),(o.type==="UPDATE"||o.type==="DELETE"||o.type==="REORDER")&&ke(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 ke(e,t){return e!==null&&typeof e=="object"&&e.type==="BOOLEAN"&&(t===void 0||e.value===t)}function rh(e){if(e.type==="NOT"&&ke(e.expr))return{type:"BOOLEAN",value:!e.expr.value};if(e.type==="GROUP"&&ke(e.expr))return e.expr;if(e.type==="LOGICAL"){let t=e.left,n=e.right;if(e.op==="AND"){if(ke(t,!1)||ke(n,!1))return{type:"BOOLEAN",value:!1};if(ke(t,!0))return n;if(ke(n,!0))return t}else if(e.op==="OR"){if(ke(t,!0)||ke(n,!0))return{type:"BOOLEAN",value:!0};if(ke(t,!1))return n;if(ke(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 Zd(e,t,n,r,i){let o=await Mo(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 Mo(e.low,t,n,r,i),d=await Mo(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 Mo(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 Mo(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 ef(e.query,t,n,r,i)}catch(o){throw o instanceof Qt?new Kn(o.message):o}}}async function ef(e,t,n,r,i){let{query:o,probed:a}=ih(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 ih(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(ge(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 tf(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 nf(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 nf(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),uh(e))return s=dh(e),o&&fe.set(s,await Yo(e,s.columns,t,r,i,a)),s;let l=await Ml(e,t,r,i);await Df(e,t,n,r,i);let d=Ph(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:ce(e.where)}):null;await Eh(e,R?.kind==="CANONICAL_LOCAL"?"FULL_SCAN":f,t,r);let m=kl(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 fh(e,y,m.effectiveOptions,r,R,E):s=await Oh(e,y,m.effectiveOptions,r,i,d.capability==="EXACT_PUSHDOWN"&&c===void 0,E,c,l)}catch(h){rf(m,h)}return o&&fe.set(s,await Yo(e,s.columns,t,r,i,a)),s}async function Ml(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=Bp(e,(d,p)=>o[p]),s=e.groupBy,l=$p(s,e.columns,a);return oh(e,s,l),l}function oh(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 ah(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 sh(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(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 sh(e,t,n,r),s=ac(e,a,oc);s&&qr.set(e,s)}function lh(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 kl(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 rf(e,t){throw e.reasons.size>0&&t instanceof Pe&&!t.completeInputWrapped?new Pe(lh(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){rf(e,n)}}function Rt(e){return e?.type==="BOOLEAN"&&e.value===!1}function uh(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 ch(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=>ch(t))}function ph(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 dh(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.");ph(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 fh(e,t,n,r,i,o){let a=i?.kind==="CANONICAL_REST_TOP_N"?uf(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&&!ce(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 xp({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 Eh(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 Dd(e){return e.cteName??`APP${e.appId}`}function Rh(e){return e.alias?[e.alias]:e.cteName!==null?[e.cteName]:[`APP${e.appId}`,`app${e.appId}`]}function mh(e,t){return Ns(t)||e.validCodes.has(t)}function nl(e,t){return e.table.cteName!==null?e.validCodes.has(t):mh(e,t)}function yh(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 gh(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:Dd(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:Dd(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 Rh(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=Wu(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 gh(e,t,n,r);for(let o of yh(e))await Fo(o,t,n,r,i)}}function of(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=Lp(e.where,r),o=_p(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,of(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([he(s,t,n),Uh(s,t,n)]),c=hh(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 hh(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 Ah(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 af(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=Ah(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=af(e,s.tableAlias);l&&l.cteName===null&&i.add(l.appId);continue}if(e.joins.length===0){e.from.cteName===null&&i.add(e.from.appId);continue}for(let l of o)i.add(l.appId)}let a=await Promise.all([...i].map(async s=>[s,await he(s,t,n)]));return new Map(a)}function 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 sf(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"){sf(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 Sh(e){let t=[];for(let n of e)n.type==="AGGREGATE"?sf(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 Th=new Set(["SINGLE_LINE_TEXT","MULTI_LINE_TEXT","RICH_TEXT","LINK","DROP_DOWN","RADIO_BUTTON","STATUS","DATE","TIME","DATETIME","CREATED_TIME","UPDATED_TIME"]);function Ih(e){return e.sortKind!==void 0?e.sortKind:e.fieldType==="NUMBER"||e.fieldType==="RECORD_NUMBER"?"number":Th.has(e.fieldType)?"string":void 0}async function lf(e,t,n,r){let i=Sh(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=af(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(ge(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(ge(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(ge(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 ge(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:Ih(e),fieldType:e.fieldType,semantics:t===void 0?n:Pn(n,t,e.code)}}function uf(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 cf(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 wh=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 wh.has(e.func)?z("number"):z("string")}function Bn(e,t){return e.type==="STRING"?z("string"):e.type==="ARRAY"?cf():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")?cf("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 bh(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;bh(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(ge(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(ge(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(ge(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=ge(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 pf(e,t){let n=fe.get(e),r=fe.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(ge(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(ge(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(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 df=new WeakSet,ff=new WeakMap;function dl(e){return df.add(e),e}function Ph(e,t){return ff.set(e,t),t}function Ef(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 Nh(e){return typeof e=="string"&&/^(?:0|[1-9]\d*)$/.test(e)}async function Ch(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(!Nh(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 Oh(e,t,n,r,i,o=!0,a,s,l){let d=ff.get(e);if(df.has(e)&&d!==void 0&&Ef(e,d)){let V=await Ch(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),lf(e,t,r,i)]),m=Gl(e,E),g=await $n(e,t,r,i,Ze(e.having)||Ul(e)),y=tf(e,g),h=xl.get(e);if(h&&!Mn(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&&Mn(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)??"",k=await Uf(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 Af(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:M,columns:$}=Fs({tables:F,stmt:e,scalarCache:k,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,M,$,t,r);return{type:"SELECT",rows:M,columns:be,rowCount:M.length,warnings:[...c]}}async function Rf(e,t,n,r,i=!1,o=!1){let a=kl(e,n,null);return cl(a,async()=>{let s=a.effectiveOptions,[l,d]=await Promise.all([e.left.type==="UNION"?Rf(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:mf(f,p),R={type:"SELECT",rows:E,columns:p,rowCount:E.length};return i&&fe.set(R,pf(l,d)),R})}function mf(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 Lf(t):s.query.type==="DESCRIBE"?l=await _f(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:fe.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:mf(E,c),m={type:"SELECT",rows:R,columns:c,rowCount:R.length};return o&&fe.set(m,pf(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 Lh(e,t,n,r,i);return o&&fe.set(l,await Yo(e,l.columns,t,i,r)),l}async function Lh(e,t,n,r,i){await Qo(e,t,i,r);let o=qr.get(e),a=await Ml(e,t,i,r),s=new Set,l=M=>{if(M.alias!==null||M.cteName===null)return M;let $=Oe(M);return s.add($),{...M,alias:$}};e={...e,from:l(e.from),joins:e.joins.map(M=>({...M,table:l(M.table)}))};let d=new Set;for(let M of[e.from,...e.joins.map($=>$.table)]){let $=Oe(M);if($!==null){if(d.has($))throw new Error(`ArgumentError: effective alias ${$} is used by multiple tables.`);d.add($)}}let p=M=>{let $=r.get(M);if(!$)throw new Error(`ArgumentError: materialized source ${M} is not available.`);return $};for(let M of[e.from,...e.joins.map($=>$.table)])M.cteName!==null&&p(M.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),Df(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:ce(e.where)}):null,g=kl(e,n,m),y=g.effectiveOptions,[h,S,w]=await Promise.all([ea(e,t,i),Bl(e,t,i),lf(e,t,i,r)]),I=Gl(e,S),L=await $n(e,t,i,r,Ze(e.having)||Ul(e)),b=tf(e,L),v=Zo(e,h)??Tn(e,h);Ca(v);let P=t,D=await Uf(e.columns,t,y,i,r),k=Promise.resolve(R);k.catch(()=>{});let N=new Map,_=new Map;if(e.from.cteName!=null){let M=p(e.from.cteName);N.set(e.from.alias,M.rows.map(vd)),_.set(e.from.alias,M.columns)}else{let M=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,M)}let A=e.joins.map(M=>cl(g,async()=>{if(M.table.cteName!=null){let $=p(M.table.cteName);N.set(M.table.alias,$.rows.map(vd)),_.set(M.table.alias,$.columns)}else{let $=M.table.alias?v.joinConditions.get(M.table.alias)??null:null,V=await Af(e,M,N,P,c,f,y.onLimitReached??"error",u,$,a)??await Wr(e,M.table,P,c,f,!1,y.onLimitReached??"error",u,$,!0,a);N.set(M.table.alias,V)}}));await Promise.all(A);let{optionOrders:C,sortKinds:x,semantics:O}=await k,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 Vp(o,e.from.subtableCode,()=>na(e.from.appId,r,i))}function vd(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),gp(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?Gu(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 rd(m,t.subtableCode)}var yf=50;function _h(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]?_h(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],yf)){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=>gf(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,Dh(y))}return d}function Dh(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 gf(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 hf=50,vh=6,Ud=hf*vh;async function Af(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=gf(v).trim();P.length>0&&g.add(P)}let y=[...g];if(y.length===0)return[];if(y.length>Ud)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 ${Ud} \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,hf),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),k=await Ge(r.getRecords,t.table.appId,D,h,{parallel:o,maxRecords:i,onLimit:a,onTruncate:S});for(let N of k.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 he(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 Uh(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 Md(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 Mh(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 kh(e,t,n,r){let i=Mh(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 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(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=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([Fh(e,t,n),xh(e,t,n),kh(e,t,n,r)]);return{optionOrders:o,sortKinds:a,semantics:s}}async function Fh(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 xh(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 Md(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 Md(a.appId,t,n);for(let[l,d]of s.entries())r.set(`${a.alias}.${l}`,d)}return r}function Sf(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 Kh=new Set(["CALC","RECORD_NUMBER","CREATOR","CREATED_TIME","MODIFIER","UPDATED_TIME","STATUS","STATUS_ASSIGNEE","CATEGORY","REFERENCE_TABLE"]);function Bh(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||Kh.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 Bh(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 $h(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",Ae),statementNumber:i,loadNumberPrecision:()=>ot(e.appId,t,r)});return yA(e,a,o)}async function Gh(e,t,n,r,i){let{fieldInfos:o,prepared:a}=await Tf(e,t,n,r,i);return hA(e,a,o)}async function Tf(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=Cf(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 pp({statement:e,matches:E,fieldInfos:o,dmlMaxRows:xe(n.dmlMaxRows,"dmlMaxRows",gt),dmlMaxSubtableRows:xe(n.dmlMaxSubtableRows,"dmlMaxSubtableRows",Ae),statementNumber:i,loadNumberPrecision:()=>ot(e.appId,t,r)});return{fieldInfos:o,prepared:R}}async function Vh(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",Ae),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 mp(o,t,a);return{...s,diagnostic:Ue(a,s)}}async function Wh(e,t,n,r){if(n.allowApplyMutation!==!0)throw new Error("UnsupportedError: APPLY mutation requires allowApplyMutation=true");let{prepared:i}=await Tf(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 yp(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 Hh(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=Hh(n?ko(n):[],r?ko(r):[]),a=Yh(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=ko(n),f=ko(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 ko(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 Yh(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 $h(e,t,n,r,o);if(e.type==="UPSERT"&&(e.onInsertApplyBlocks?.length||e.onUpdateApplyBlocks?.length))return Gh(e,t,n,r,o);if(e.type==="UPDATE"&&e.applyBlocks?.length){let a=await Nf(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=id(E),m=(await jh(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"?Jh:e.type.startsWith("UPSERT")?_=>Xh(_,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=od(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=ad({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}:{}},k=new Map;for(let _ of d){if(_==="$id"){k.set(_,{sortKind:"number",fieldType:"RECORD_NUMBER",semantics:X({fieldType:"RECORD_NUMBER"})});continue}let A=u.get(_);A&&k.set(_,nt(A,e.appId))}let N=new Set(["$err_statement","$err_row"]);for(let _ of On)k.set(_,z(N.has(_)?"number":"string"));return sn.set(D,k),{result:D,candidates:m,invalidRowNumbers:v,columnMeta:k}}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 jh(e,t,n,r,i,o,a,s){if(e.type==="UPDATE")return qh(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((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 de("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 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 kd(e,t){let n=new Set(t);for(let r of ql(e)){if(r.tableAlias!==null)throw de(`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 de(`CHECK \u306E\u30D5\u30A3\u30FC\u30EB\u30C9 ${r.field} \u306F\u8A55\u4FA1\u884C\u306B\u5B58\u5728\u3057\u307E\u305B\u3093`)}}var zh=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 Dc(e.checkGroups)){let r=n.tableAlias?`${n.tableAlias}.${n.field}`:n.field,i=t.get(r)??t.get(n.field);if(zh.has(i??""))throw de(`CHECK \u306E\u6BD4\u8F03\u3067\u306F ${i} \u30D5\u30A3\u30FC\u30EB\u30C9 ${r} \u3092\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093`)}}async function qh(e,t,n,r,i,o){if(e.from)return Zh(e,e.from,t,n,r,i,o);await vf(e.assignments,t,n,r);let a=await he(e.appId,t,r),s=If(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:Qh(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 Jh(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 Xh(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 If(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 de(`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 de(`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 Qh(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 Zh(e,t,n,r,i,o,a){let s=await $f(e,t,n,i,o);an(e,s.evaluationTypes);let l=await wf(e,t,n,r,i,o,a),d=await he(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:QA(c.get(f.id),e.appId,t.alias),evaluationFieldTypes:s.evaluationTypes}))}var eA=yf,tA=new Set(["CHECK_BOX","MULTI_SELECT","USER_SELECT","ORGANIZATION_SELECT","GROUP_SELECT","FILE"]);async function wf(e,t,n,r,i,o,a){let s=await nA(e,t,n,i),l=await $f(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 rA(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=Fd(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([...SA(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()],eA)){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=Fd(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 nA(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 rA(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 he(e.appId,r,o),l=e.joinKeyField==="$id"?"RECORD_NUMBER":s.get(e.joinKeyField);if(l===void 0)throw new Error(`ArgumentError: UPDATE ... FROM source column ${e.joinKeyField} does not exist.`);if(e.joinKeyField!=="$id"&&l!=="SINGLE_LINE_TEXT"&&l!=="NUMBER")throw new Error(`ArgumentError: UPDATE ... FROM does not support source join field type ${l} (${e.joinKeyField}).`);for(let 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(tA.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 Fd(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 iA(e,t,n,r){if(e.applyBlocks?.length)return Vh(e,t,n,r);if(e.checkGroups?.length)return oi(e,t,n,r);if(e.subtableCode)return wA(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 he(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 oA(){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 bf(e,t,n,r,i){if(!n.enableImport)throw new Error("UnsupportedError: IMPORT capability is disabled.");let o=pd(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(M=>M.kind==="SUBTABLE").map(M=>M.subtableCode));if(e.replaceSubtables.some(M=>!U.has(M)))throw new Error("ArgumentError: REPLACE SUBTABLES contains a table not declared in INTO.");for(let M of e.targets.filter($=>$.kind==="SUBTABLE"))if(!M.rowIdSourceHeader||!e.replaceSubtables.includes(M.subtableCode))throw new Error(`ArgumentError: CSV subtable ${M.subtableCode} requires ROW ID SOURCE and REPLACE SUBTABLES declaration.`)}if(e.validationErrorTable&&!i)throw new Error("ArgumentError: VALIDATE ONLY INTO requires a batch.");let 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"?md(e.source,R,c,n.maxRecords??1e4):yd(e.source,R,c,e.replaceSubtables??[],n.maxRecords??1e4,e.recordNumberSourceHeader),g=e.source.kind==="CSV"?"UPDATE":e.keyFields?"UPSERT":"INSERT",y=Sd(m,c,u,E,g);if(e.source.kind==="CSV")return aA(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(Id(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"),M=new Set,$=v.map(V=>e.keyFields.map(Te=>String(V.top[Te]?.value??"")));for(let V of $){let Te=rn(V,U);if(M.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");M.add(Te)}let be=await ii(e.appId,e.keyFields,$,t,n,P);$.forEach((V,Te)=>{D[Te]=ri(be,V)})}let k=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 M=await t.getRecords({app:e.appId,query:`$id in (${U.join(",")}) limit 500`,fields:["$id","$revision",...k]});for(let $ of M.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=wd(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(M=>M.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(([M,$])=>[M,$.value])),O=U=>Td(x(U.top),new Map([...U.subtables].map(([M,$])=>[M,$.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 M=await t.postRecords({app:e.appId,records:F.slice(U,U+100).map(O)});q.push(M.ids)}for(let U=0;U<j.length;U+=100)await t.putRecords({app:e.appId,records:j.slice(U,U+100).map(M=>({id:M.targetId,...M.revision===void 0?{}:{revision:M.revision},record:O(M)}))});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 sA(e,o,t,n,r,i);let a={appId:e.appId,fields:e.fields,select:oA(),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 aA(e,t,n,r,i,o,a){if(!e.recordNumberSourceHeader||!e.replaceSubtables?.length)throw new Error("InternalError: incomplete CSV subtable replacement AST.");bd(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=Pd(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 k=N=>new Map(Object.entries(N).map(([_,A])=>[_,A.value]));for(let N of S){let _=Qs(k(N.top),new Map([...N.subtables].map(([A,C])=>[A,C.map(x=>({...x.rowId?{rowId:x.rowId}:{},values:k(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 sA(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 k=D.$id?.value;typeof k=="string"&&k!==""&&u.add(k.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(k=>[k,b[k]??""])]),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 lA(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:fe.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=Nd(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:fe.get(E)}}var Jl={materialize:lA};function Pf(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(Pf(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 he(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:Sf(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 Nf(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 he(e.appId,t,r);return If(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),bA(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 AA(e,e.from,t,n,r,i);let l=n.maxRecords??1e4;await vf(e.assignments,t,n,r);let d=await he(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 Nf(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 uA(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=qc({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",Ae),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 uA(e,t,n,r,i){let o=xe(n.dmlMaxRows,"dmlMaxRows",gt),a=xe(n.dmlMaxSubtableRows,"dmlMaxSubtableRows",Ae),s=await ee(e.appId,t,r),l=pt(e,s),d;if(zo(e))d=await fA(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 gA(e,p,s);Lu("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 Rp(p,t,c);return{...u,diagnostic:Ue(c,u)}}function zo(e){return(e.applyBlocks?.length??0)>0&&!st(e.where)&&(At(e.where)||ce(e.where))}function cA(e){let t=e.type==="EXPLAIN"?e.query:e;return t.type==="UPDATE"&&zo(t)&&ce(t.where)}var pA=`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
|
|
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 y=e.slice(n,n+4);/^[0-9a-fA-F]{4}$/.test(y)||ft("has invalid unicode escape",n,r,i);for(let h=0;h<4;h++)o();let g=Number.parseInt(y,16);if(g>=55296&&g<=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+(g-55296<<10)+S-56320)}else g>=56320&&g<=57343?ft("has an unpaired low surrogate",n-4,r,Math.max(1,i-4)):u+=String.fromCharCode(g)}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 Uo(e){return e.kind==="eof"?"end of input":e.kind==="punct"?e.value:e.kind}function Mo(e){if(e.byteLength===0)throw new K("JSON source is empty.");let t=yd(md(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 ${Uo(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 ${Uo(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 ${Uo(d)}`,d)},s=a();t[n].kind!=="eof"&&r(`has trailing data; found ${Uo(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 kg=new Set(["CHECK_BOX","MULTI_SELECT"]),gd=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 xg(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)&&!(e instanceof Map)&&e.kind==="number"}function Fg(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."),xg(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."),!kg.has(t.fieldType)&&!gd.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."),gd.has(t.fieldType)?JSON.stringify(r.map(i=>({code:i}))):JSON.stringify(r)}function zs(e,t,n,r){if(t.encoding&&t.encoding!=="utf8")throw new K("JSON source is UTF-8 only.");let i=Mo(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]=Fg(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 qs(e,t,n,r,i,o){let a=vo(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((y,g)=>[y,g]));for(let y of r)if(!l.has(y))throw new K(`ERR_IMPORT_MISSING_COLUMN: required header "${y}" is missing.`);let d=new Map(i.map(y=>[y.code,y])),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=y=>a.rows.filter(g=>g[y]!=="").length,E=y=>y.fieldType==="FILE"?"FILE attachment is outside flat IMPORT scope":y.inSubtable||y.fieldType==="SUBTABLE"?"subtable field is not writable in Phase 3":y.writable===!1?`non-writable ${y.fieldType} field`:`known export-only ${y.fieldType} field`;for(let[y,g]of a.columns.entries()){if(p.has(g)||g===o)continue;let h=d.get(g);if(h)c.push({column:g,reason:E(h),nonEmptyCells:f(y)});else if(e.ignoreUnknownColumns)u.push({column:g,reason:"unknown column ignored by explicit policy",nonEmptyCells:f(y)});else throw new K(`ERR_IMPORT_UNKNOWN_COLUMN: unknown CSV header "${g}".`)}for(let y of r){let g=d.get(y);if(!g)throw new Error(`ArgumentError: DML target field ${y} does not exist.`);if(g.inSubtable||g.writable===!1||g.fieldType==="FILE"||g.fieldType==="SUBTABLE")throw new Error(`ArgumentError: DML target field ${y} is not writable (${g.fieldType}).`)}let R=[];return{rows:a.rows.map(y=>{let g=[],h={};for(let S of r){let w=y[l.get(S)];try{h[S]=Rd(w,d.get(S)?.fieldType,{cliKintone:!0})}catch(I){if(!(I instanceof Kr))throw I;h[S]=w,g.push({field:S,code:I.code,message:I.message})}}return R.push(g),h}),columns:[...r],columnMeta:new Map(r.map(y=>[y,{fieldType:d.get(y)?.fieldType??"SINGLE_LINE_TEXT"}])),importRowErrors:R,...o?{recordNumberSourceValues:a.rows.map(y=>y[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 hd(e,t,n,r,i=r){if(t.encoding&&t.encoding!=="utf8")throw new K("JSON source is UTF-8 only.");let o=Mo(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 y=new Set(E.children),g=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())y.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,g)}return{rowNumber:p,top:c,subtables:u,replacementTables:f}})}}function Ad(e,t,n,r,i,o){let a=vo(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 y=u[s.get(m.field)];if(y!==""&&y!==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 y=u[s.get(m.rowIdSourceHeader)],g=new Map(m.children.map(S=>[S,u[s.get(S)]]));if(y===""&&[...g.values()].every(S=>S===""))continue;let h=c.subtables.get(m.subtableCode);h.push({childRowNumber:h.length+1,sourceRowNumber:E,...y?{rowId:y}:{},values:g})}}),p.length===0)throw new K("CSV has no parent rows.");return{records:p}}var Kg=new Set(["USER_SELECT","ORGANIZATION_SELECT","GROUP_SELECT"]),Bg=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 wd(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)Sd(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)Sd(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=>$g(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 $g(e,t,n,r,i,o,a,s){let l=[],d={};for(let u of t)e.top.has(u.field)&&Xs(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)||Td(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,y={},g=i.get(u.subtableCode);for(let h of u.children){let S=g.get(h),w=Js(e,a,h,u.subtableCode,R.childRowNumber,R.sourceRowNumber??e.markerRowNumber);R.values.has(h)?Xs(R.values.get(h),S,o,y,h,l,w):Td(S,o,y,l,w)}l.length===m?(f.validChildRows++,E.push(y)):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 Sd(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&&Bg.has(t.fieldType))throw new Error(`ArgumentError: IMPORT ${n?`child ${n}.${e}`:`field ${e}`} is not writable (${t.fieldType}).`)}function Td(e,t,n,r,i){let o=Wt(e.defaultValue)?"":e.defaultValue;Xs(o,e,t,n,e.code,r,i,!Wt(e.defaultValue))}function Xs(e,t,n,r,i,o,a,s=!1){let l=Gg(e),d=Ne(l,t,n);d.ok?r[i]={value:Vg(l,t)?l:d.value}:o.push({...a,code:d.code,message:s?`\u65E2\u5B9A\u5024: ${d.message}`:d.message})}function Gg(e){return Id(e)?e.lexeme:Array.isArray(e)?e.map(t=>t instanceof Map?t:Id(t)?t.lexeme:t):e}function Id(e){return typeof e=="object"&&e!==null&&e.kind==="number"}function Vg(e,t){return Kg.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 Zs=["$err_statement","$err_operation","$err_row","$err_field","$err_subtable","$err_subrow","$err_source_row","$err_code","$err_message"];function el(e,t,n=1){return e.map(r=>{let i={};for(let o of t)i[o]=r.sourceValues.get(o)==null?"":Wg(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 Wg(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 tl(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 bd(e,t){return tl(e,t,"DROP")}function Pd(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 Nd(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 Hg(e,t){let n=e[t]?.value;return Array.isArray(n)?n:[]}function Cd(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 Od(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=Hg(d.record,f),R=new Set(E.map(I=>I.id).filter(I=>!!I)),m=s.subtables.get(f)??[],y=o.subtables.get(f)??[],g=0,h=0,S=0,w=m.map((I,L)=>{let b=y[L]??{};return I.rowId&&R.has(I.rowId)?(g++,{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:g,addRows:h,deleteRows:E.length-g,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 nl="#__import_source";function Ld(e){return{...e,from:{appId:0,alias:null,cteName:nl}}}function Yg(e){return/^[0-9]+$/.test(e)?e.replace(/^0+(?=\d)/,""):null}function rl(e,t){let n=e.map(Yg),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 jg="\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"}},fe=new WeakMap;function Yd(e){return fe.get(e)}var sn=new WeakMap,Zo=new WeakMap,_d=new WeakMap,zg=1,qg=1;function jd(e,t){if(t)return t;let n=_d.get(e);return n||(n=`client:${zg++}`,_d.set(e,n)),n}function Ll(e){return`${e}\0inv:${qg++}`}async function _l(e,t,n={}){let r=Date.now(),i=Ll(jd(t,n.cacheContext));try{let o=MA(e,n.enableImport===!0),a=zd(),s=Jd(t,a),l={aborted:!1},d=vl(s,l,!Xg(o)||Is(o)),p=await ul(o,d,n,i);a.elapsedMs=Date.now()-r;let c={...Xd(p,l),metrics:a};if(p.type==="SELECT"){let u=fe.get(p);u&&fe.set(c,u)}return c}finally{zl(i)}}function zd(){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 qd=Symbol("limitMetricsSink");function Dl(e,t){let n=e[qd];n&&(n.limitReached=!0,n.limitReachedApps.includes(t)||n.limitReachedApps.push(t))}function Jd(e,t){return{[qd]: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 Dd=Symbol("searchAbortFailClosed");function vl(e,t,n){return n&&e[Dd]?e:{...e,...n?{[Dd]:!0}:{},getRecords:async r=>{let i=await e.getRecords(r);if(i.searchAborted&&(t.aborted=!0,n))throw new tn;return i}}}function Jg(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 Xg(e){return e.type==="SELECT"||e.type==="UNION"||e.type==="WITH"}function Xd(e,t){if(!t.aborted||e.type!=="SELECT")return e;let n=new Set(e.warnings??[]);return n.add(jg),{...e,warnings:[...n]}}async function vd(e,t,n){let r=await ni(e,t,n);return Ys(r),r}async function ni(e,t,n){return fd(e,{select:r=>zr(r,t,n),dml:r=>af(r,t,n),prefilterDecomposition:async r=>{if(r.where===null)return null;let i=await $n(r,t,n);return js(r,i)},joinServerFunctionPlan:async r=>{let i=await na(r,t,n),o=ta(r,i);return o===null?null:(Mn(o.joinPlan)&&$l.set(r,o),o.joinPlan)}})}async function ul(e,t,n,r){let i=await ni(e,t,r);e.type!=="EXPLAIN"&&Ys(i);let o=pl(e);if(o!==null&&!fA(e))throw new Error(`ParseError: variable @${o} is not defined in a batch.`);if(mn("phase15b",e),Ii("phase15b",e),$e(e),e.type!=="EXPLAIN"&&await uh(e,t,r),e.type==="IMPORT")return Cf(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 Pl(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 Qg(e,t,n,r);case"SELECT":return vt(Rl(e),t,n,r,void 0,n.captureColumnMeta===!0,n.captureColumnMeta===!0);case"UNION":return gf(e,t,n,r,n.captureColumnMeta===!0,n.captureColumnMeta===!0);case"WITH":return Yl(e,t,n,r,void 0,n.captureColumnMeta===!0);case"INSERT":return sA(e,t,n,r);case"INSERT_SELECT":return eu(e,t,n,r);case"UPSERT":return PA(e,t,n,r);case"UPSERT_SELECT":return ru(e,t,n,r);case"UPDATE":return Pl(e,t,n,r);case"DELETE":return bA(e,t,n,r);case"REORDER":return DA(e,t,n,r);case"SHOW_APPS":return vf(t);case"DESCRIBE":return Uf(e,t,r);case"EXPLAIN":return KA(e,t,r,n.maxRecords??1e4,n.cursorMaxActive??2,e.query.type==="UPDATE"&&e.query.applyBlocks?.length?Fe(n.dmlMaxRows,"dmlMaxRows",gt):gt,e.query.type==="UPDATE"&&e.query.applyBlocks?.length?Fe(n.dmlMaxSubtableRows,"dmlMaxSubtableRows",Ae):Ae,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 nf(e,t,n,r)}}var Ul=["$id","$err_field","$err_code","$err_message","$err_value","$err_subtable","$err_subrow","$err_subrow_id","$err_count"],Ml=["$id","$err_subtable","$err_field","$err_code","$err_count"];function kl(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?Ml:Ul;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 Qg(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=ms(e,i),l=new Set(s.flatMap(O=>Es(O.field))),d={present:fs.filter(O=>l.has(O)),absent:fs.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 de(`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,x])=>[O,x.fieldType]));u.set("$id","RECORD_NUMBER"),an(e,u);let f=kl(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),y=Ce(e.where,m);if(y.capability==="UNSUPPORTED")throw new Error(`ArgumentError: WHERE predicate is unsupported (${Zt(y)}).`);let g=new Map([...o].map(([O,x])=>[O,x.fieldType])),h=new Map([...o.values()].flatMap(O=>O.optionOrder?[[O.code,new Set(Object.keys(O.optionOrder))]]:[])),S=e.where===null?null:y.capability==="EXACT_PUSHDOWN"?e.where:An(e.where,{allowUnqualifiedFields:!0,fieldTypes:g,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,x=>u.get(x.field))),b=[],v=new Map,P=new Map,D=new Set,k=0,N=O=>{if(D.add(O.id),k+=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 x=JSON.stringify([O.id,O.subtable??"",O.field,O.code,O.message]),j=v.get(x);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(x,{$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 x=A.get(O.subtableCode)??[];x.push(O),A.set(O.subtableCode,x)}for(let O of L){for(let x of _){let j=O.record[x.field.code]?.value,q=Ne(j,x.field,R);q.ok||N({id:O.id,field:x.field.code,code:q.code,message:q.message,value:Ar(j,x.field.fieldType)})}for(let[x,j]of A){let q=O.record[x]?.value;if(Array.isArray(q))for(let U=0;U<q.length;U++){let M=q[U];for(let $ of j){let be=M.value?.[$.field.code]?.value,V=Ne(be,$.field,R);if(!V.ok){let Te=ro(x,U,M);N({id:O.id,field:$.field.code,code:V.code,message:V.message,value:Ar(be,$.field.fieldType),...Te})}}}}for(let x of Hi(p,O.flat,j=>u.get(j.field)))N({id:O.id,field:"",code:"ERR_CHECK",message:x.message,value:""})}if(e.summary)b.push(...P.values());else for(let O of v.values()){let x=Number(O.$err_count);O.$err_subtable!==""&&x>=2&&(O.$err_message=`${O.$err_message}\uFF08${x}\u884C: ${O.$err_subrow}\uFF09`),b.push(O)}let F={type:"SELECT",columns:[...e.summary?Ml:Ul],rows:b,rowCount:b.length,validateStats:{errorRecords:D.size,errorCount:k,constraintMetadata:d}};return fe.set(F,Qd(e.summary===!0)),F}var xe=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])||!Zg(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 Zg(e,t){if(e===t)return!0;if(!e||!t||e.size!==t.size)return!1;for(let[n,r]of e){let i=t.get(n);if(!i||i.displayName!==r.displayName||i.sortKind!==r.sortKind||i.fieldType!==r.fieldType||!Ki(i.semantics,r.semantics))return!1}return!0}var xn=class extends Error{constructor(){super("TimeoutError: batch timeout exceeded.")}};async function ef(e,t,n={}){let r=tf(e,n.enableImport===!0),i=Ka(r);if(r.forEach(u=>Ii("phase15b",u)),n.allowApplyMutation!==!0&&r.some(u=>Ta(u)||u.type==="UPSERT"&&eh(u)))throw new Error("UnsupportedError: APPLY mutation requires allowApplyMutation=true");let o=Ts(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=zd(),l=Jd(t,s),d=Date.now(),p=n.timeoutMs!=null?d+n.timeoutMs:null,c=Ll(jd(t,n.cacheContext));try{let u=new Map,f=new Map,E=[],R=new Set,m=null;for(let y=0;y<r.length;y++){let g=i.statements[y],h={index:y,type:g.statementType};if(m){E.push({...h,status:"skipped",skippedReason:m}),R.add(y);continue}let S=g.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(y);continue}if(p!==null&&Date.now()>=p){E.push({...h,status:"skipped",skippedReason:"timeout"}),R.add(y),m="timeout";continue}try{let w=p!==null?p-Date.now():null,I=a.confirm,L=I?{...a,confirm:(k,N,_)=>I(k,N,{statementIndex:y,statementCount:r.length,statementType:g.statementType,targetAppId:g.targetAppId,..._?.importDetail?{importDetail:_.importDetail}:{},..._?.applyDetail?{applyDetail:_.applyDetail}:{},..._?.applyDiagnostic?{applyDiagnostic:_.applyDiagnostic}:{}})}:a,b={aborted:!1},v=vl(l,b,g.statementType!=="SELECT"&&g.statementType!=="UNION"&&g.statementType!=="WITH"||Is(r[y])),P=Jg(v),D=await rh(th(r[y],g,P.client,L,c,u,f),w,P.closeActive);D.result&&(D.result=Xd(D.result,b)),E.push({...h,status:"success",...D})}catch(w){E.push({...h,status:"error",error:ih(w),...w instanceof Xr?{result:w.diagnostic}:{}}),R.add(y),w instanceof xn?m="timeout":w instanceof Kn?m="assertion":g.statementType==="SET_VARIABLE"||g.statementType==="DECLARE_VARIABLE"?m="fail-fast":n.continueOnError||(m="fail-fast")}}return s.elapsedMs=Date.now()-d,{ok:E.every(y=>y.status==="success"),statementCount:r.length,statements:E,analysis:i,metrics:s}}finally{zl(c)}}function eh(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 th(e,t,n,r,i,o,a){if(e.type==="SET_VARIABLE"){let l=Vo(e,a);if($e(l),await vd(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 rf(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 zo(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,Ud(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=Ud(e.default);a.set(e.name,{type:"string",value:d.type==="number"?d.raw??String(d.value):d.value})}return{}}let s=Vo(e,a);if(mn("phase15b",s),Ii("phase15b",s),$e(s),await vd(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??xe,fe.get(l)??Qd(s.summary===!0)),{result:l}}if(s.type==="IMPORT")return{result:await Cf(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??xe,sn.get(l)??new Map),{result:l}}if("onErrorSkip"in s&&s.onErrorSkip===!0)return{result:await wl(s,n,{...r,onLimitReached:"error"},i,o,t.index+1)};if(s.type==="CREATE_TEMP_TABLE"){let l={...r,maxRecords:r.tempTableMaxRows??xe,onLimitReached:"error"},d=await nh(s.query,n,l,i,o);return o.set(s.name,{rows:d.rows,columns:d.columns,columnMeta:fe.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 ul(s,n,r,i)};if(s.type==="ASSERT")return await nf(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,r.captureColumnMeta===!0)};if(s.type==="WITH")return{result:await Yl(s,n,r,i,o)};if(s.type==="INSERT_SELECT")return{result:await eu(s,n,r,i,o)};if(s.type==="UPSERT_SELECT")return{result:await ru(s,n,r,i,o)};if(s.type==="UPDATE"&&s.from?.cteName!=null)return{result:await Pl(s,n,r,i,o)};throw new Error(`ArgumentError: temp table references in ${e.type} are not supported yet.`)}return{result:await ul(s,n,r,i)}}async function nh(e,t,n,r,i){return e.type==="WITH"?Yl(e,t,n,r,i,!0):mt(e,t,n,i,r,!0)}async function rh(e,t,n){if(t===null)return e;if(t<=0)throw n&&await n(),e.catch(()=>{}),new xn;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 xn)})()},t)})])}catch(a){throw a instanceof xn&&e.catch(()=>{}),a}finally{r!==void 0&&clearTimeout(r)}}function ih(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)??il(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:oh(e);t={code:typeof n.code=="string"&&n.code.length>0?n.code:il(r),message:r}}else{let n=String(e);t={code:il(n),message:n}}return Object.defineProperty(t,"cause",{value:e,enumerable:!1,configurable:!1,writable:!1}),t}function il(e){return e.match(/^([A-Za-z]+Error):/)?.[1]??"Error"}function oh(e){try{return JSON.stringify(e)??String(e)}catch{return String(e)}}function tf(e,t=!1){let n=new Pt(e).tokenize();return new Nt(n,{import:t}).parseStatements()}function Ud(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:Uc(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 Vo(e,t){return cl(e,t,!1)}function cl(e,t,n){if(Array.isArray(e))return e.map(r=>cl(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.`);let s=typeof r.aliasDisplay=="string"?{aliasDisplay:r.aliasDisplay}:{};return a.type==="number"?{type:"ARITH_COL",expr:{type:"NUMBER",value:a.value,raw:a.raw??String(a.value)},alias:r.alias,...s}:{type:"LITERAL_COL",value:a.value,alias:r.alias,...s}}if(r.type==="VARIABLE_IN_LIST")return r;let i=Object.fromEntries(Object.entries(r).map(([a,s])=>[a,cl(s,t,(r.type==="ARITH"||r.type==="SCALAR_ARITH"||r.type==="AGG_ARITH")&&(a==="left"||a==="right"))]));if(typeof r.aliasDisplay=="string"&&(i.aliasDisplay=r.aliasDisplay),i.type==="BINARY"){let a=i.right;if(a?.type==="VARIABLE_IN_LIST"&&typeof a.name=="string"){let s=t.get(a.name);if(s===void 0)throw new Error(`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=ah(i);if(o.type==="SELECT"&&ke(o.where,!0)&&(o.where=null),(o.type==="UPDATE"||o.type==="DELETE"||o.type==="REORDER")&&ke(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 ke(e,t){return e!==null&&typeof e=="object"&&e.type==="BOOLEAN"&&(t===void 0||e.value===t)}function ah(e){if(e.type==="NOT"&&ke(e.expr))return{type:"BOOLEAN",value:!e.expr.value};if(e.type==="GROUP"&&ke(e.expr))return e.expr;if(e.type==="LOGICAL"){let t=e.left,n=e.right;if(e.op==="AND"){if(ke(t,!1)||ke(n,!1))return{type:"BOOLEAN",value:!1};if(ke(t,!0))return n;if(ke(n,!0))return t}else if(e.op==="OR"){if(ke(t,!0)||ke(n,!0))return{type:"BOOLEAN",value:!0};if(ke(t,!1))return n;if(ke(n,!1))return t}}return e}function pl(e){if(Array.isArray(e)){for(let t of e){let n=pl(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=pl(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 nf(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(dl(e));case"SCALAR_SUBQUERY":try{return await rf(e.query,t,n,r,i)}catch(o){throw o instanceof Qt?new Kn(o.message):o}}}async function rf(e,t,n,r,i){let{query:o,probed:a}=sh(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 sh(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 dl(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=dl(e.left),n=dl(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 ql(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 m=R.semantics??X(R),y=R.fieldType==="STATUS"&&p.has(u.appId)?{...m,optionOrder:p.get(u.appId)}:m;return Pn(y,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 xl(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 of(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=Wl(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 Wo(e){return e.orderBy.length>0||e.columns.some(t=>t.type==="WINDOW_COL"&&t.orderBy.length>0)}async function af(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 Fn(e,t,n){if(e.subtableCode||e.type==="UPDATE"&&e.from!=null)return;let r=await af(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 ea(e,t,r,i),dh(e))return s=Rh(e),o&&fe.set(s,await zo(e,s.columns,t,r,i,a)),s;let l=await Fl(e,t,r,i);await Mf(e,t,n,r,i);let d=Oh(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=js(e,h);S.eligible&&Hs(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=Ni({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=Wo(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:ce(e.where)}):null;await yh(e,R?.kind==="CANONICAL_LOCAL"?"FULL_SCAN":f,t,r);let m=Kl(e,n,R),g=u!==void 0&&(p==="FULL_SCAN"||R?.kind==="CANONICAL_LOCAL")?vl(t,{aborted:!1},!0):t;try{f==="SIMPLE"?s=await mh(e,g,m.effectiveOptions,r,R,E):s=await Dh(e,g,m.effectiveOptions,r,i,d.capability==="EXACT_PUSHDOWN"&&c===void 0,E,c,l)}catch(h){sf(m,h)}return o&&fe.set(s,await zo(e,s.columns,t,r,i,a)),s}async function Fl(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=Vp(e,(d,p)=>o[p]),s=e.groupBy,l=Wp(s,e.columns,a);return lh(e,s,l),l}function lh(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 uh(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 ea(o,t,n);for(let s of Object.values(a))await i(s)};await i(e)}async function ch(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(y=>y.cteName===null&&s(y,u.field)!==null).length,R=i.some(y=>l(y,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 ea(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 ch(e,t,n,r),s=uc(e,a,lc);s&&qr.set(e,s)}function ph(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 Kl(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 sf(e,t){throw e.reasons.size>0&&t instanceof Pe&&!t.completeInputWrapped?new Pe(ph(e.reasons)+(e.truncateWasDisabled?"onLimit=truncate\u306F\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093\u3002":"")+t.message,!0):t}async function fl(e,t){try{return await t()}catch(n){sf(e,n)}}function Rt(e){return e?.type==="BOOLEAN"&&e.value===!1}function dh(e){return e.from.appId===0&&e.from.cteName===ze}function Ho(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"?Ho(e.left)||Ho(e.right):e.type==="STRING_FUNC"?Bl(e):!1}function fh(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"?Bl(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"?Ho(n):Gr(n))):!1}function Bl(e){return e.args.some(t=>fh(t))}function Eh(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(Ho(t.expr))throw new Error("ArgumentError: field reference is not allowed without FROM.");break;case"STRFUNC_COL":if(Bl(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 Rh(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.");Eh(e);let t=xs([{}],e.columns),{rows:n,columns:r}=vr(t,e.columns),i=bo(n,e.limit,e.offset);return{type:"SELECT",rows:i,columns:r,rowCount:i.length,warnings:[]}}async function mh(e,t,n,r,i,o){let a=i?.kind==="CANONICAL_REST_TOP_N"?df(e):e,s=bi(a),l=i?.kind==="CANONICAL_LOCAL"?Kt(e,e.from):s.fields,d=await Vl(e,t,r),p=Hl(e,d),c=e.columns.some(b=>b.type==="CASE_COL")?await $n(e,t,r,void 0,xl(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,y=e.limit===null?null:(e.offset??0)+e.limit,g=e.orderBy.length===0&&y!==null&&y<=u&&!ce(e.where)?y:void 0,h;if((i?.kind==="KORDER_NATIVE"||i?.kind==="KORDER_CURSOR")&&e.limit===0)h=[];else if(i?.kind==="KORDER_CURSOR"){let b=await $p({client:t,app:s.app,fields:s.fields,query:Os(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:g,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`),Dl(t,e.from.appId)}})}let S=h.map(b=>dt(b,null));m||(S=Ms(S,e.orderBy,o.optionOrders,o.sortKinds,o.semantics,ks(e.columns,void 0,p.row,c)),S=bo(S,e.limit,e.offset));let{rows:w,columns:I}=vr(S,e.columns,void 0,p.row,void 0,c),L=await jl(e,w,I,t,r);return{type:"SELECT",rows:w,columns:L,rowCount:w.length,warnings:[...f]}}async function yh(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=bi(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=>!Ls(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 Md(e){return e.cteName??`APP${e.appId}`}function gh(e){return e.alias?[e.alias]:e.cteName!==null?[e.cteName]:[`APP${e.appId}`,`app${e.appId}`]}function hh(e,t){return Ls(t)||e.validCodes.has(t)}function ol(e,t){return e.table.cteName!==null?e.validCodes.has(t):hh(e,t)}function Ah(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 Sh(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:Md(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:Md(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 gh(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&&!ol(u,c.field))throw new Error(`ArgumentError: JOIN key ${c.tableAlias}.${c.field} is not available in the materialized table.`)}let d=ju(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=>!ol(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=>ol(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 Sh(e,t,n,r);for(let o of Ah(e))await Fo(o,t,n,r,i)}}function lf(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 $l=new WeakMap;function ta(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=vp(e.where,r),o=Up(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 na(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,lf(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([he(s,t,n),xh(s,t,n)]),c=Th(l).filter(u=>d.get(u)==="STATUS");if(c.length>0){let u=await ia(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 Th(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"&&Yo(e.left.expr,t),e.right.type==="CASE_VALUE"&&Yo(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 Yo(e,t){for(let n of e.branches)Et(n.condition,t)}function Ih(e){let t=[];Et(e.where,t),Et(e.having,t);for(let n of e.columns)n.type==="CASE_COL"&&Yo(n.expr,t);return t}function Oe(e){return e.alias??e.cteName}function uf(e,t){return[e.from,...e.joins.map(n=>n.table)].find(n=>Oe(n)===t)}function Gl(e){return[e.from,...e.joins.map(t=>t.table)].filter(t=>t.cteName===null)}async function Vl(e,t,n){let r=Ih(e);if(r.length===0)return new Map;let i=new Set,o=Gl(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=uf(e,s.tableAlias);l&&l.cteName===null&&i.add(l.appId);continue}if(e.joins.length===0){e.from.cteName===null&&i.add(e.from.appId);continue}for(let l of o)i.add(l.appId)}let a=await Promise.all([...i].map(async s=>[s,await he(s,t,n)]));return new Map(a)}function 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 cf(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 jo(e,t){if(e.type==="AGG_REF"){cf(e.func,e.arg,t);return}e.type==="AGG_ARITH"&&(jo(e.left,t),jo(e.right,t))}function El(e,t){for(let n of e.args)n.type==="AGG_REF"||n.type==="AGG_ARITH"?jo(n,t):Vr(n,t)}function Vr(e,t){if(e.type==="STRING_FUNC"){El(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"?El(r,t):r.type!=="ARRAY"&&r.type!=="FIELD_REF"&&r.type!=="ARITH"&&Vr(r,t)}}function wh(e){let t=[];for(let n of e)n.type==="AGGREGATE"?cf(n.func,n.arg,t):n.type==="ARITH_AGG_COL"?jo(n.expr,t):n.type==="STRFUNC_COL"?El(n.expr,t):n.type==="SCALAR_VALUE_COL"&&Vr(n.expr,t);return t}var bh=new Set(["SINGLE_LINE_TEXT","MULTI_LINE_TEXT","RICH_TEXT","LINK","DROP_DOWN","RADIO_BUTTON","STATUS","DATE","TIME","DATETIME","CREATED_TIME","UPDATED_TIME"]);function Ph(e){return e.sortKind!==void 0?e.sortKind:e.fieldType==="NUMBER"||e.fieldType==="RECORD_NUMBER"?"number":bh.has(e.fieldType)?"string":void 0}async function pf(e,t,n,r){let i=wh(e.columns);if(i.length===0)return;let o=new Set,a=Gl(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=uf(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 ql(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(y=>Oe(y)===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(ge(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(ge(e.from,f.field))}else{let m=p.flatMap(y=>{if(y.cteName!==null){let h=r?.get(y.cteName);return h?.columns.includes(f.field)?[h.columnMeta?.get(f.field)?.semantics??B("string")]:[]}let g=s.get(y.appId)?.get(ge(y,f.field));return g?[c(g,y.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 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:Ph(e),fieldType:e.fieldType,semantics:t===void 0?n:Pn(n,t,e.code)}}function df(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 ff(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 Nh=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 Nh.has(e.func)?z("number"):z("string")}function Bn(e,t){return e.type==="STRING"?z("string"):e.type==="ARRAY"?ff():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 ra(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")?ff("KSQL_MIXED_UNSUPPORTED"):it()}function Wl(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)),ra(n)}function Bo(e,t){return{...e??{},displayName:t}}function Ch(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 zo(e,t,n,r,i,o=!1){let a=new Map;Ch(e)&&await Promise.all(Gl(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(y=>[y.code,y])))}));let s=[e.from,...e.joins.map(R=>R.table)],l=o&&i===void 0&&s.every(R=>R.cteName===null),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 y=s.find(h=>Oe(h)===R.tableAlias);if(!y)return;if(y.cteName!==null)return i?.get(y.cteName)?.columnMeta?.get(R.field);let g=a.get(y.appId)?.get(ge(y,R.field));return g?nt(g,y.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 y=a.get(e.from.appId)?.get(ge(e.from,R.field));return y?nt(y,e.from.appId):Jt(R.field)}let m=s.flatMap(y=>{if(y.cteName!==null){let S=i?.get(y.cteName);return S?.columns.includes(R.field)?[S.columnMeta?.get(R.field)]:[]}let g=a.get(y.appId)?.get(ge(y,R.field)),h=g?nt(g,y.appId):Jt(R.field);return h?[h]:[]});return m.length===1?m[0]:void 0},p=R=>{if(!l)return;let m=s.filter(y=>{if(R.tableAlias!==null&&Oe(y)!==R.tableAlias)return!1;let g=ge(y,R.field);return a.get(y.appId)?.has(g)===!0||Jt(R.field)!==void 0});return m.length===1?m[0].appId:void 0},c=(R,m)=>{let y=p(m);return R&&y!==void 0?{...R,publicSourceApp:y}: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),y=c(d(m),m);u.set(R,Bo(y,y?.displayName??R))}return u}if(f)for(let R of t){let m=Ye(R),y=c(d(m),m);u.set(R,Bo(y,y?.displayName??R))}return e.columns.filter(R=>R.type!=="WILDCARD"&&R.type!=="PARENT_WILDCARD").forEach((R,m)=>{let y=f?"alias"in R&&R.alias?R.alias:void 0:t[m];if(!y)return;let g;if(R.type==="FIELD"){let h=Ye(R.field);g=c(d(h),h)}else if(R.type==="AGGREGATE")R.func==="GROUP_CONCAT"?g=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"?g=z("number"):(R.func==="MIN"||R.func==="MAX"||R.func==="MODE")&&R.arg.type!=="WILDCARD"&&(g=Wl(R.arg,d));else if(R.type==="ARITH_AGG_COL"||R.type==="ARITH_COL")g=z("number");else if(R.type==="GROUPING_COL")g=z("number");else if(R.type==="LITERAL_COL")g=z("string");else if(R.type==="SCALAR_VALUE_COL"){let h=R.expr;h.type==="STRING_FUNC"?g=nn(h):h.type==="NUMBER"||h.type==="SCALAR_ARITH"?g=z("number"):h.type==="FIELD"?g=d(h):g=z("string")}else if(R.type==="STRFUNC_COL")g=nn(R.expr);else if(R.type==="WINDOW_COL")g=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)),g=ra(h)}else R.type==="SCALAR_SUBQUERY_COL"&&(g=it());u.set(y,Bo(g,R.aliasDisplay??y))}),u}function Ef(e,t){let n=fe.get(e),r=fe.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),p;if(s&&d){let c=ra([s,d]),u=s.publicSourceApp===d.publicSourceApp?s.publicSourceApp:void 0,{publicSourceApp:f,...E}=c;p=u===void 0?E:{...E,publicSourceApp:u}}else p=it();i.set(o,Bo(p,s?.displayName??o))}),i}function Hl(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 Rf=new WeakSet,mf=new WeakMap;function Rl(e){return Rf.add(e),e}function Oh(e,t){return mf.set(e,t),t}function yf(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 Lh(e){return typeof e=="string"&&/^(?:0|[1-9]\d*)$/.test(e)}async function _h(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(!Lh(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 Dh(e,t,n,r,i,o=!0,a,s,l){let d=mf.get(e);if(Rf.has(e)&&d!==void 0&&yf(e,d)){let V=await _h(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([na(e,t,r),Vl(e,t,r),pf(e,t,r,i)]),m=Hl(e,E),y=await $n(e,t,r,i,Ze(e.having)||xl(e)),g=of(e,y),h=$l.get(e);if(h&&!Mn(h.joinPlan))throw new Error("InternalError: JOIN server-function fetch binding changed before records API.");let S=h??ta(e,f)??Tn(e,f);_a(S);let w="joinPlan"in S?S:null,I=w&&Mn(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)??"",k=await xf(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)??"":"",Ri=I?null:V.table.alias?v.get(V.table.alias)??null:null;Ri!==null||Te!==""?A.push({join:V,promise:Wr(e,V.table,L,p,u,!1,n.onLimitReached??"error",c,Ri,!0,l,Te)}):C.push(V)}let F=a?Promise.resolve(a):Jr(e,t,r,i);F.catch(()=>{});let O=await _,x=new Map;x.set(e.from.alias,O);for(let{join:V,promise:Te}of A)x.set(V.table.alias,await Te);await Promise.all(C.map(async V=>{let Ri=await If(e,V,x,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,"");x.set(V.table.alias,Ri)}));let{optionOrders:j,sortKinds:q,semantics:U}=await F,{rows:M,columns:$}=Bs({tables:x,stmt:e,scalarCache:k,optionOrders:j,sortKinds:q,orderSemantics:U,fieldTypeResolver:m.row,fieldSemanticsResolver:y,havingFieldTypeResolver:m.having,havingFieldSemanticsResolver:g,aggregateSortKindResolver:R,appliedKlikes:s?.appliedKlikes??S.appliedKlikes,...s?{residualWhere:s.residualWhere}:I?{residualWhere:I.joinPlan.residualWhere}:{},resolvedGroupingSpec:qr.get(e),plainGroupByPlan:l}),be=await jl(e,M,$,t,r);return{type:"SELECT",rows:M,columns:be,rowCount:M.length,warnings:[...c]}}async function gf(e,t,n,r,i=!1,o=!1){let a=Kl(e,n,null);return fl(a,async()=>{let s=a.effectiveOptions,[l,d]=await Promise.all([e.left.type==="UNION"?gf(e.left,t,s,r,i,o):vt(Rl(e.left),t,s,r,void 0,i,o),vt(Rl(e.right),t,s,r,void 0,i,o)]),p=l.columns,c=d.columns,u=d.rows.map(m=>{let y={};return p.forEach((g,h)=>{y[g]=m[c[h]??g]??""}),y}),f=[...l.rows,...u],E=e.all?f:hf(f,p),R={type:"SELECT",rows:E,columns:p,rowCount:E.length};return i&&fe.set(R,Ef(l,d)),R})}function hf(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 Yl(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 vf(t):s.query.type==="DESCRIBE"?l=await Uf(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:fe.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(y=>{let g={};return c.forEach((h,S)=>{g[h]=y[u[S]??h]??""}),g}),E=[...d.rows,...f],R=e.all?E:hf(E,c),m={type:"SELECT",rows:R,columns:c,rowCount:R.length};return o&&fe.set(m,Ef(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 vh(e,t,n,r,i);return o&&fe.set(l,await zo(e,l.columns,t,i,r)),l}async function vh(e,t,n,r,i){await ea(e,t,i,r);let o=qr.get(e),a=await Fl(e,t,i,r),s=new Set,l=M=>{if(M.alias!==null||M.cteName===null)return M;let $=Oe(M);return s.add($),{...M,alias:$}};e={...e,from:l(e.from),joins:e.joins.map(M=>({...M,table:l(M.table)}))};let d=new Set;for(let M of[e.from,...e.joins.map($=>$.table)]){let $=Oe(M);if($!==null){if(d.has($))throw new Error(`ArgumentError: effective alias ${$} is used by multiple tables.`);d.add($)}}let p=M=>{let $=r.get(M);if(!$)throw new Error(`ArgumentError: materialized source ${M} is not available.`);return $};for(let M of[e.from,...e.joins.map($=>$.table)])M.cteName!==null&&p(M.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),Mf(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=Wo(e)?(e.orderMode==="KINTONE_NATIVE"?Dr:_r)({stmt:e,staticMode:"FULL_SCAN",whereCapability:E.capability,whereReasons:E.reasons,orderSemantics:R.semantics,maxRecords:c,hasKlike:ce(e.where)}):null,y=Kl(e,n,m),g=y.effectiveOptions,[h,S,w]=await Promise.all([na(e,t,i),Vl(e,t,i),pf(e,t,i,r)]),I=Hl(e,S),L=await $n(e,t,i,r,Ze(e.having)||xl(e)),b=of(e,L),v=ta(e,h)??Tn(e,h);_a(v);let P=t,D=await xf(e.columns,t,g,i,r),k=Promise.resolve(R);k.catch(()=>{});let N=new Map,_=new Map;if(e.from.cteName!=null){let M=p(e.from.cteName);N.set(e.from.alias,M.rows.map(kd)),_.set(e.from.alias,M.columns)}else{let M=await fl(y,()=>Wr(e,e.from,P,c,f,!0,g.onLimitReached??"error",u,v.mainCondition,E.capability==="EXACT_PUSHDOWN",a));N.set(e.from.alias,M)}let A=e.joins.map(M=>fl(y,async()=>{if(M.table.cteName!=null){let $=p(M.table.cteName);N.set(M.table.alias,$.rows.map(kd)),_.set(M.table.alias,$.columns)}else{let $=M.table.alias?v.joinConditions.get(M.table.alias)??null:null,V=await If(e,M,N,P,c,f,g.onLimitReached??"error",u,$,a)??await Wr(e,M.table,P,c,f,!1,g.onLimitReached??"error",u,$,!0,a);N.set(M.table.alias,V)}}));await Promise.all(A);let{optionOrders:C,sortKinds:F,semantics:O}=await k,x=e.joins.length===0&&e.from.cteName!=null?p(e.from.cteName).columns:void 0,{rows:j,columns:q}=Bs({tables:N,stmt:e,scalarCache:D,optionOrders:C,sortKinds:F,orderSemantics:O,fieldTypeResolver:I.row,fieldSemanticsResolver:L,havingFieldTypeResolver:I.having,havingFieldSemanticsResolver:b,aggregateSortKindResolver:w,appliedKlikes:v.appliedKlikes,sourceColumns:x,tableColumns:_,hiddenQualifiedAliases:s,resolvedGroupingSpec:o,plainGroupByPlan:a}),U=await jl(e,j,q,t,i);return{type:"SELECT",rows:j,columns:U,rowCount:j.length,warnings:[...u]}}async function jl(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 Yp(o,e.from.subtableCode,()=>ia(e.from.appId,r,i))}function kd(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=y=>{if(s.add(`\u53D6\u5F97\u4E0A\u9650\uFF08${y} \u4EF6\uFF09\u306B\u9054\u3057\u305F\u305F\u3081\u3001${y} \u4EF6\u3067\u6253\u3061\u5207\u3063\u3066\u8868\u793A\u3057\u3066\u3044\u307E\u3059\u3002`),Dl(n,t.appId),Sp(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${y} \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 y=o&&d?Hu(e,t.appId).query:"",g=[l!==null?G(l):"",c].filter(I=>I!==""),h=g.length>1?g.map(I=>`(${I})`).join(" and "):g[0]??"",S=y&&h?`(${y}) and (${h})`:y||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 ad(m,t.subtableCode)}var Af=50;function Uh(e){let t=Le(e);return t!==null?JSON.stringify(t):e}function ml(e){return JSON.stringify(e)}function rn(e,t){return JSON.stringify(e.map((n,r)=>t[r]?Uh(n):n))}function ri(e,t){let n=e.raw.get(ml(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,y,g)=>{let h=m.get(y);(h===void 0||g>h)&&m.set(y,g)},c=(m,y)=>{p(d.raw,ml(m),y),l.some(Boolean)&&p(d.normalized,rn(m,l),y)},u=new Set,f=[],E=new Set;for(let m of n){let y=ml(m);E.has(y)||(E.add(y),m.some(g=>g==="")?f.push(m):u.add(m[0]))}let R=["$id",...t];for(let m of Gn([...u],Af)){let y=`${t[0]} in (${m.map(qo).join(",")})`,g=await Ie(r.getRecords,e,y,R,{maxRecords:a,parallel:s});for(let h of g){let S=Number(h.$id?.value);Number.isFinite(S)&&c(t.map(w=>Sf(h[w]?.value)),S)}}for(let m of f){let y=t.map((h,S)=>`${h} = ${qo(m[S])}`).join(" and "),g=await Ie(r.getRecords,e,y,["$id"],{maxRecords:a,parallel:s});g.length!==0&&c(m,Mh(g))}return d}function Mh(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 Sf(e){return typeof e=="string"?e:e==null?"":String(e)}function qo(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 Tf=50,kh=6,xd=Tf*kh;async function If(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 y=new Set;for(let b of m){let v=b[E]?.value,P=Sf(v).trim();P.length>0&&y.add(P)}let g=[...y];if(g.length===0)return[];if(g.length>xd)return s.add(`JOIN\u30AD\u30FC\u304C ${g.length} \u4EF6\u306E\u305F\u3081 ON \u6700\u9069\u5316\u3092\u30B9\u30AD\u30C3\u30D7\u3057\u3001JOIN\u5148\u3092\u5168\u4EF6\u53D6\u5F97\u3057\u307E\u3059\uFF08\u4E0A\u9650 ${xd} \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`),Dl(r,t.table.appId)},w=Gn(g,Tf),I=[],L=new Set;for(let b of w){let v=`${R} in (${b.map(qo).join(",")})`,D=[l!==null?G(l):"",p].filter(N=>N!=="").reduce((N,_)=>`(${N}) and (${_})`,v),k=await Ge(r.getRecords,t.table.appId,D,h,{parallel:o,maxRecords:i,onLimit:a,onTruncate:S});for(let N of k.records){let _=`${N.$id?.value??""}:${JSON.stringify(N)}`;L.has(_)||(L.add(_),I.push(N))}}return I}var yl=new Map,gl=new Map,hl=new Map,Al=new Map,Sl=new Map,Tl=new Map;function zl(e){yl.delete(e),gl.delete(e),hl.delete(e),Al.delete(e),Sl.delete(e),Tl.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(Al,n,e);if(r)return r;let i=t.getFields(e);return Wn(Al,n,e,i),i}async function ot(e,t,n){let r=Vn(Tl,n,e);if(r)return r;let i=t.getNumberPrecision(e);return Wn(Tl,n,e,i),i}async function ia(e,t,n){let r=Vn(Sl,n,e);if(r)return r;let i=t.getProcessStatuses(e);return Wn(Sl,n,e,i),i}async function ql(e,t,n){let r=await ia(e,t,n);return r.enable&&r.states!==null?new Map(r.states.map(i=>[i.name,i.index])):void 0}async function he(e,t,n){let r=Vn(yl,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(yl,n,e,o),o}async function Il(e,t,n){let r=Vn(gl,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(gl,n,e,o),o}async function xh(e,t,n){let r=await Il(e,t,n);return new Map([...r.entries()].map(([i,o])=>[i,new Set(o.keys())]))}async function Fd(e,t,n){let r=Vn(hl,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(hl,n,e,o),o}function Fh(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 Kh(e,t,n,r){let i=Fh(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 m=r?.get(f.cteName),y=m?.columns.includes(c.field)?m.columnMeta?.get(c.field):void 0;return y?[y]:[]}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=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=ra(f)}else c.type==="AGGREGATE"&&(c.func==="MIN"||c.func==="MAX"||c.func==="MODE"?c.arg.type!=="WILDCARD"&&(u=Wl(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 ia(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([Bh(e,t,n),$h(e,t,n),Kh(e,t,n,r)]);return{optionOrders:o,sortKinds:a,semantics:s}}async function Bh(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 Il(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 Il(a.appId,t,n);for(let[l,d]of s.entries())r.set(`${a.alias}.${l}`,d)}return r}async function $h(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 Fd(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 Fd(a.appId,t,n);for(let[l,d]of s.entries())r.set(`${a.alias}.${l}`,d)}return r}function wf(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 Gh=new Set(["CALC","RECORD_NUMBER","CREATOR","CREATED_TIME","MODIFIER","UPDATED_TIME","STATUS","STATUS_ASSIGNEE","CATEGORY","REFERENCE_TABLE"]);function Vh(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||Gh.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 Vh(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 Wh(e,t,n,r,i){let o=await je(e.appId,e.fields,t,r),a=await Tr({statement:e,fieldInfos:o,dmlMaxRows:Fe(n.dmlMaxRows,"dmlMaxRows",gt),dmlMaxSubtableRows:Fe(n.dmlMaxSubtableRows,"dmlMaxSubtableRows",Ae),statementNumber:i,loadNumberPrecision:()=>ot(e.appId,t,r)});return AA(e,a,o)}async function Hh(e,t,n,r,i){let{fieldInfos:o,prepared:a}=await bf(e,t,n,r,i);return TA(e,a,o)}async function bf(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=_f(e),l=new Set;for(let m of s){let y=rn(m,e.keyFields.map(g=>a.get(g)==="NUMBER"));if(l.has(y))throw new Error("ERR_KEY_DUP_SOURCE: UPSERT \u30BD\u30FC\u30B9\u5185\u3067\u30AD\u30FC\u304C\u91CD\u8907\u3057\u3066\u3044\u307E\u3059");l.add(y)}let 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 y=await t.getRecords({app:e.appId,query:`$id in (${m.join(",")}) limit 500`,fields:[...new Set(f)]});for(let g of y.records){let h=Number(g.$id?.value);Number.isSafeInteger(h)&&h>0&&c.set(h,g)}}let E=p.map((m,y)=>({sourceRowIndex:y,...m===void 0?{}:{targetId:m,snapshot:c.get(m)}})),R=await Ep({statement:e,matches:E,fieldInfos:o,dmlMaxRows:Fe(n.dmlMaxRows,"dmlMaxRows",gt),dmlMaxSubtableRows:Fe(n.dmlMaxSubtableRows,"dmlMaxSubtableRows",Ae),statementNumber:i,loadNumberPrecision:()=>ot(e.appId,t,r)});return{fieldInfos:o,prepared:R}}async function Yh(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:Fe(n.dmlMaxRows,"dmlMaxRows",gt),dmlMaxSubtableRows:Fe(n.dmlMaxSubtableRows,"dmlMaxSubtableRows",Ae),loadNumberPrecision:()=>ot(e.appId,t,r)}),a=As(o);if(n.confirm&&!await n.confirm(o.guards.parentRows,"INSERT",{statementIndex:0,statementCount:1,statementType:"INSERT",targetAppId:e.appId,applyDetail:oa(a),applyDiagnostic:a}))throw new le("INSERT",o.guards.parentRows);let s=await hp(o,t,a);return{...s,diagnostic:Ue(a,s)}}async function jh(e,t,n,r){if(n.allowApplyMutation!==!0)throw new Error("UnsupportedError: APPLY mutation requires allowApplyMutation=true");let{prepared:i}=await bf(e,t,n,r,1),o=Ss(i);if(n.confirm){let s=oa(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 Ap(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 zh(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 oa(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=zh(n?xo(n):[],r?xo(r):[]),a=qh(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=xo(n),f=xo(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 xo(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 qh(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 Wh(e,t,n,r,o);if(e.type==="UPSERT"&&(e.onInsertApplyBlocks?.length||e.onUpdateApplyBlocks?.length))return Hh(e,t,n,r,o);if(e.type==="UPDATE"&&e.applyBlocks?.length){let a=await Lf(e,t,n,r,o);if(a.type!=="VALIDATION")throw new Error("InternalError: APPLY VALIDATE ONLY returned a mutation result.");return a}return(await Xl(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 Xl(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 Fn(e,t,r);let u=new Map(c.map(_=>[_.code,_])),f=await yt(e.appId,p,c,t,r),E=Je(c,d),R=sd(E),m=(await Jh(e,l,t,n,r,i,u,e.type==="UPDATE"?R:void 0)).sort((_,A)=>_.rowNumber-A.rowNumber),y=m.filter(_=>_.mode==="update"),g=e.type==="UPDATE"?Zh:e.type.startsWith("UPSERT")?_=>eA(_,t,n.maxRecords??1e4):void 0,h=n.loadUpdateModeSnapshots??g,S=y.length>0&&h!==void 0,w=new Map;if(S){ps(y,p,c);let _=await h({appId:e.appId,candidates:y,fields:R}),A=new Map;for(let C of y){if(C.targetId===void 0)throw new Error(`InternalError: update-mode validation candidate has no targetId (row=${C.rowNumber}).`);let F=_.get(C.targetId);if(!F)throw new Error(`InternalError: update-mode snapshot is missing for record ${C.targetId}.`);let O=ld(F,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 y){let F=A.get(C.rowNumber);if(!F)throw new Error(`InternalError: validation post-image is missing for row ${C.rowNumber}.`);w.set(C.rowNumber,Yt(F,E,f,o,C.rowNumber,l))}}let I=ds(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 x=[...C.preErrors,...C.builtInErrors,...C.checkErrors];L.push(...x),x.length>0&&v.add(A.rowNumber);continue}let F=w.get(A.rowNumber);if(!F)throw new Error(`InternalError: prepared post-image validation is missing for row ${A.rowNumber}.`);let O=ud({rowNumber:A.rowNumber,setFields:p,normalizedPostImage:F.normalizedRecord,preErrors:C.preErrors,postImageErrors:F.errors,checkErrors:C.checkErrors});A.record=O.writeRecord,L.push(...O.errors);for(let x of O.invalidRowNumbers)v.add(x)}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}:{}},k=new Map;for(let _ of d){if(_==="$id"){k.set(_,{sortKind:"number",fieldType:"RECORD_NUMBER",semantics:X({fieldType:"RECORD_NUMBER"})});continue}let A=u.get(_);A&&k.set(_,nt(A,e.appId))}let N=new Set(["$err_statement","$err_row"]);for(let _ of On)k.set(_,z(N.has(_)?"number":"string"));return sn.set(D,k),{result:D,candidates:m,invalidRowNumbers:v,columnMeta:k}}async function wl(e,t,n,r,i,o){let a=await Xl(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??xe,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(y=>y.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 Jh(e,t,n,r,i,o,a,s){if(e.type==="UPDATE")return Qh(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((w,I)=>w.type==="CASE_VALUE"?Lt(w.expr,{},a.get(e.fields[I])?.fieldType):w));else{let S=await Zl.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 de("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 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"),y=new Map;for(let S of R){let w=rn(S,m);y.set(w,(y.get(w)??0)+1)}let g=Zo.has(e);if(g&&[...y.values()].some(S=>S>1))throw new Error("ERR_KEY_DUP_SOURCE: UPSERT \u30BD\u30FC\u30B9\u5185\u3067\u30AD\u30FC\u304C\u91CD\u8907\u3057\u3066\u3044\u307E\u3059");let 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`})}),!g&&(y.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 Kd(e,t){let n=new Set(t);for(let r of Ql(e)){if(r.tableAlias!==null)throw de(`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 de(`CHECK \u306E\u30D5\u30A3\u30FC\u30EB\u30C9 ${r.field} \u306F\u8A55\u4FA1\u884C\u306B\u5B58\u5728\u3057\u307E\u305B\u3093`)}}var Xh=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 Mc(e.checkGroups)){let r=n.tableAlias?`${n.tableAlias}.${n.field}`:n.field,i=t.get(r)??t.get(n.field);if(Xh.has(i??""))throw de(`CHECK \u306E\u6BD4\u8F03\u3067\u306F ${i} \u30D5\u30A3\u30FC\u30EB\u30C9 ${r} \u3092\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093`)}}async function Qh(e,t,n,r,i,o){if(e.from)return nA(e,e.from,t,n,r,i,o);await kf(e.assignments,t,n,r);let a=await he(e.appId,t,r),s=Pf(e,a);an(e,bl(a,e.appId));let l,d=new Map,p=new Map;if(zi(e)){let c=qa(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=$o(f.records),d=p,l=Xa(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=$o(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=$o(u.records),l=Er(e,[...p.keys()],a).flatMap(f=>f.records)}else{let u=await uo(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:tA(d.get(c.id),e.appId),evaluationFieldTypes:bl(a,e.appId)}))}function $o(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 Zh(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 eA(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 Pf(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 de(`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 de(`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 tA(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 bl(e,t){return new Map([...e,...[...e].map(([n,r])=>[`APP${t}.${n}`,r]),["$id","RECORD_NUMBER"],[`APP${t}.$id`,"RECORD_NUMBER"]])}async function nA(e,t,n,r,i,o,a){let s=await Wf(e,t,n,i,o);an(e,s.evaluationTypes);let l=await Nf(e,t,n,r,i,o,a),d=await he(e.appId,n,i),p=Za(e,l,d).flatMap(f=>f.records),c=new Map(l.map(f=>[Number(f.target.$id?.value),f])),u=a?$o(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:tS(c.get(f.id),e.appId,t.alias),evaluationFieldTypes:s.evaluationTypes}))}var rA=Af,iA=new Set(["CHECK_BOX","MULTI_SELECT","USER_SELECT","ORGANIZATION_SELECT","GROUP_SELECT","FILE"]);async function Nf(e,t,n,r,i,o,a){let s=await oA(e,t,n,i),l=await Wf(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 aA(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=Bd(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([...wA(e),...l.targetFields,...a??[]])],m=t.targetFilter===null?"":fr({...e,from:null,where:t.targetFilter,checkGroups:void 0}).query,y=[],g=new Set,h=0;for(let w of Gn([...f.values()],rA)){let I=`${t.targetJoinField} in (${w.map(qo).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.");g.has(P)||(g.add(P),y.push(v))}}let S=[];for(let w of y){let I=w[t.targetJoinField]?.value,L=Bd(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 oA(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 aA(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 he(e.appId,r,o),l=e.joinKeyField==="$id"?"RECORD_NUMBER":s.get(e.joinKeyField);if(l===void 0)throw new Error(`ArgumentError: UPDATE ... FROM source column ${e.joinKeyField} does not exist.`);if(e.joinKeyField!=="$id"&&l!=="SINGLE_LINE_TEXT"&&l!=="NUMBER")throw new Error(`ArgumentError: UPDATE ... FROM does not support source join field type ${l} (${e.joinKeyField}).`);for(let 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(iA.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 Bd(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 Xl(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 sA(e,t,n,r){if(e.applyBlocks?.length)return Yh(e,t,n,r);if(e.checkGroups?.length)return oi(e,t,n,r);if(e.subtableCode)return NA(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 he(e.appId,t,r),s=ji(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 lA(){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 Cf(e,t,n,r,i){if(!n.enableImport)throw new Error("UnsupportedError: IMPORT capability is disabled.");let o=Ed(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(M=>M.kind==="SUBTABLE").map(M=>M.subtableCode));if(e.replaceSubtables.some(M=>!U.has(M)))throw new Error("ArgumentError: REPLACE SUBTABLES contains a table not declared in INTO.");for(let M of e.targets.filter($=>$.kind==="SUBTABLE"))if(!M.rowIdSourceHeader||!e.replaceSubtables.includes(M.subtableCode))throw new Error(`ArgumentError: CSV subtable ${M.subtableCode} requires ROW ID SOURCE and REPLACE SUBTABLES declaration.`)}if(e.validationErrorTable&&!i)throw new Error("ArgumentError: VALIDATE ONLY INTO requires a batch.");let 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 Do(o,new Map),m=e.source.kind==="JSON"?hd(e.source,R,c,n.maxRecords??1e4):Ad(e.source,R,c,e.replaceSubtables??[],n.maxRecords??1e4,e.recordNumberSourceHeader),y=e.source.kind==="CSV"?"UPDATE":e.keyFields?"UPSERT":"INSERT",g=wd(m,c,u,E,y);if(e.source.kind==="CSV")return uA(e,m,g,u,t,n,i);Qs(g,e.rejectLimit);let h=[...new Set(c.flatMap(U=>U.kind==="FIELD"?[U.field]:U.children))],S=el(g.errors,h),w=[...h,...Zs],I=g.invalidParentRows.size,L={preflight:"ACTUAL_DATA",parents:{total:g.parents.length,valid:g.parents.length-I,invalid:I,mutationCandidates:g.parents.filter(U=>U.valid).length},tables:Object.fromEntries(g.tableCounts),writesKintone:!1},b={type:"VALIDATION",operation:y,validatedRows:g.parents.length,validRows:g.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??xe,new Map),e.validateOnly)return b;if(Pd(m),g.errors.length>0&&!e.onErrorSkip){let U=g.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??xe,new Map)}let v=g.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"),M=new Set,$=v.map(V=>e.keyFields.map(Te=>String(V.top[Te]?.value??"")));for(let V of $){let Te=rn(V,U);if(M.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");M.add(Te)}let be=await ii(e.appId,e.keyFields,$,t,n,P);$.forEach((V,Te)=>{D[Te]=ri(be,V)})}let k=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 M=await t.getRecords({app:e.appId,query:`$id in (${U.join(",")}) limit 500`,fields:["$id","$revision",...k]});for(let $ of M.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=Nd(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(M=>M.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 F=U=>new Map(Object.entries(U).map(([M,$])=>[M,$.value])),O=U=>bd(F(U.top),new Map([...U.subtables].map(([M,$])=>[M,$.map(be=>({values:F(be)}))]))),x=A.filter(U=>U.mode==="INSERT"),j=A.filter(U=>U.mode==="UPDATE"),q=[];for(let U=0;U<x.length;U+=100){let M=await t.postRecords({app:e.appId,records:x.slice(U,U+100).map(O)});q.push(M.ids)}for(let U=0;U<j.length;U+=100)await t.putRecords({app:e.appId,records:j.slice(U,U+100).map(M=>({id:M.targetId,...M.revision===void 0?{}:{revision:M.revision},record:O(M)}))});return e.keyFields?{type:"UPSERT",insertedCount:q.flat().length,updatedCount:j.length,affectedRows:A.length,skippedRows:g.invalidParentRows.size,rejectLimit:e.rejectLimit,...e.errorTable?{errTable:e.errorTable}:{},importDetail:C}:{type:"INSERT",createdIds:q,insertedCount:q.flat().length,affectedRows:A.length,skippedRows:g.invalidParentRows.size,rejectLimit:e.rejectLimit,...e.errorTable?{errTable:e.errorTable}:{},importDetail:C}}if(e.writeMode==="UPDATE_RECORD_NUMBER")return cA(e,o,t,n,r,i);let a={appId:e.appId,fields:e.fields,select:lA(),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};Zo.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??xe,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",wl(s,t,n,r,i,1));return d(c)}let p=await(s.type==="UPSERT_SELECT"?ru(s,t,n,r,i):eu(s,t,n,r,i));return d(p)}async function uA(e,t,n,r,i,o,a){if(!e.recordNumberSourceHeader||!e.replaceSubtables?.length)throw new Error("InternalError: incomplete CSV subtable replacement AST.");Cd(t.records);let s=t.records.map(N=>N.recordNumberSourceValue??""),l=rl(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 F=N[C]?.value;if(Array.isArray(F)){for(let O of F)if(O.id){let x=f.get(O.id)??[];x.push({parentId:_,table:C}),f.set(O.id,x)}}}}}let E=l.normalized.map(N=>N===null?void 0:Number(N)),R=n.parents.map((N,_)=>{let A=[...N.errors];for(let F of l.errors[_])A.push({operation:"UPDATE",parentRow:N.parentRow,field:F.field,code:F.code,message:F.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=Od(t.records,R,E,u,f),y=m.flatMap(N=>[...N.errors]),g=new Set(m.filter(N=>!N.valid).map(N=>N.parentRow)),h={...n,parents:R,errors:y,invalidParentRows:g};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:g.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=el(y,v),D=[...v,...Zs];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??xe,new Map),{type:"VALIDATION",operation:"UPDATE",validatedRows:R.length,validRows:R.length-g.size,invalidRows:g.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:g.size,mutationCandidates:S.length},tables:L,rowIdPolicy:"PRESERVE_EXISTING",rowIdNotFound:b.rowIdNotFound,writesKintone:!1}}}if(y.length&&!e.onErrorSkip){let N=y[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??xe,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 k=N=>new Map(Object.entries(N).map(([_,A])=>[_,A.value]));for(let N of S){let _=tl(k(N.top),new Map([...N.subtables].map(([A,C])=>[A,C.map(F=>({...F.rowId?{rowId:F.rowId}:{},values:k(F.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:g.size,rejectLimit:e.rejectLimit,...e.errorTable?{errTable:e.errorTable}:{},importDetail:b}}async function cA(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 Do(t,new Map),d=qs(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=rl(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 k=D.$id?.value;typeof k=="string"&&k!==""&&u.add(k.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(k=>[k,b[k]??""])]),preErrors:D,record:{},evaluationRow:b,evaluationFieldTypes:R}}),y=[e.recordNumberSourceHeader,...e.fields],g=ds(m,"UPDATE",y,e.fields,a,1,s,e.checkGroups??[],!1),h=[...y,...On],S={type:"VALIDATION",operation:"UPDATE",validatedRows:m.length,validRows:m.length-g.invalidRows,invalidRows:g.invalidRows,errorCount:g.errors.length,columns:h,errors:g.errors,...e.validationErrorTable??e.errorTable?{errTable:e.validationErrorTable??e.errorTable}:{}};if(Object.assign(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,g.errors,r.tempTableMaxRows??xe,new Map),S}if(!e.onErrorSkip&&g.invalidRows>0){let b=g.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,g.errors,r.tempTableMaxRows??xe,new Map),e.rejectLimit!=null&&g.invalidRows>e.rejectLimit)throw new Xr(`rejected rows (${g.invalidRows}) exceed REJECT LIMIT (${e.rejectLimit}).`,S)}let w=m.filter(b=>!g.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:g.invalidRows,rejectLimit:e.rejectLimit??null,errTable:e.errorTable}:{}};return Object.assign(L,{insertedCount:0,importAudit:d.importAudit}),L}async function pA(e,t,n,r,i,o){let a=Zo.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:fe.get(R)}}let s=await Do(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"?zs(a.source,s,p,l):qs(a.source,s,l,e.fields,o);if(a.audit=c.importAudit,a.source.kind==="JSON"||!a.source.projection)return c;let u=Ld(a.source.projection),f=new Map(i??[]);f.set(nl,c);let E=await mt(u,t,{...n,onLimitReached:"error"},f,r,!0);return{rows:E.rows,columns:E.columns,columnMeta:fe.get(E)}}var Zl={materialize:pA};function Of(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 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 Zl.materialize(e,t,n,r,i,o),{rows:l,columns:d}=s;if(Of(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 he(e.appId,t,r),c=l.map((f,E)=>{let R={};return e.fields.forEach((m,y)=>{if(s.importPresence&&!s.importPresence[E]?.has(m))return;let g=f[d[y]]??"";R[m]={value:wf(g,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 Pl(e,t,n,r,i){if(e.applyBlocks?.length)return Lf(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 he(e.appId,t,r);return Pf(e,R),an(e,bl(R,e.appId)),await Fn(e,t,r),{type:"UPDATE",updatedCount:0}}if(e.checkGroups?.length)return oi(e,t,n,r,i);if(e.subtableCode)return await Fn(e,t,r),CA(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 Fn(e,t,r),Rt(e.where))return{type:"UPDATE",updatedCount:0};if(e.from!=null)return IA(e,e.from,t,n,r,i);let l=n.maxRecords??1e4;await kf(e.assignments,t,n,r);let d=await he(e.appId,t,r);if(zi(e)){let E=qa(e),m=(await Ge(t.getRecords,E.app,E.query,[...E.fields],{maxRecords:l,parallel:n.fetchParallel??1})).records,y=Xa(e,m,d);if(on(y.flatMap(g=>g.records.map(h=>h.record)),a,o,s),n.confirm&&!await n.confirm(m.length,"UPDATE"))throw new le("UPDATE",m.length);for(let g of y)await t.putRecords(g);return{type:"UPDATE",updatedCount:m.length}}let p=fr(e),u=(await uo(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 Lf(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 dA(e,t,n,r,i);let o=await ee(e.appId,t,r),a=pt(e,o),s=Ji(e,o),l=os(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}.`);eo(d.records[0]);let c=Qc({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=Fe(n.dmlMaxRows,"dmlMaxRows",gt),m=Fe(n.dmlMaxSubtableRows,"dmlMaxSubtableRows",Ae),y=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:y}}),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,aa(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 g=Qi(c,E.normalizedRecord),h=gr(g),S=wr({plans:[g],records:h.records,validations:[],guards:{revisionRequired:!0,parentRows:c.parentRows,dmlMaxRows:R,subtableRows:c.changedSubtableRows,dmlMaxSubtableRows:m,wouldExceed:y}});if(n.confirm){let w=oa(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 dA(e,t,n,r,i){let o=Fe(n.dmlMaxRows,"dmlMaxRows",gt),a=Fe(n.dmlMaxSubtableRows,"dmlMaxSubtableRows",Ae),s=await ee(e.appId,t,r),l=pt(e,s),d;if(Jo(e))d=await mA(e,t,n,s,r);else{let f=Ji(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 io({statement:e,snapshots:d,fieldInfos:s,metadata:l,dmlMaxRows:o,dmlMaxSubtableRows:a,statementNumber:i,loadNumberPrecision:()=>ot(e.appId,t,r)});if(e.validateOnly)return SA(e,p,s);vu("phase15b",e);let c=wr(p);if(n.confirm){let f=oa(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 gp(p,t,c);return{...u,diagnostic:Ue(c,u)}}function Jo(e){return(e.applyBlocks?.length??0)>0&&!st(e.where)&&(At(e.where)||ce(e.where))}function fA(e){let t=e.type==="EXPLAIN"?e.query:e;return t.type==="UPDATE"&&Jo(t)&&ce(t.where)}var EA=`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 dA(e){if(e.unappliedKlikes.length>0)throw new Error(`UnsupportedError: ${pA}`)}async function fA(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});dA(d);let p=d.prefilter===null?"":G(d.prefilter),c=new Set(qi(e,r));for(let E of EA(e.where))c.add(E);let u=await RA(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 EA(e){return vl(e)}async function RA(e,t,n,r,i){let s=[...mA(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 mA(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 yA(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 gA(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 hA(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,Ae=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 AA(e,t,n,r,i,o){let a=await wf(e,t,n,r,i,o),s=await he(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 SA(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 TA(e,t,n,r){if(await xn(e,t,r),Rt(e.where))return{type:"DELETE",deletedCount:0};if(e.subtableCode)return PA(e,t,n,r);let i=$c(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=Gc(e.appId,a);for(let l of s)await t.deleteRecords(l);return{type:"DELETE",deletedCount:a.length}}async function IA(e,t,n,r){if(e.onInsertApplyBlocks?.length||e.onUpdateApplyBlocks?.length)return Wh(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 he(e.appId,t,r),d=Cf(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 Cf(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 he(e,n,r);return o=>{if(o.tableAlias!==null&&o.tableAlias!=="_p")return;if(o.tableAlias==="_p")return i.get(o.field);let a=o.field.startsWith("_p.")?o.field.slice(3):o.field;return i.get(a)}}async function wA(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=xd(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:xd(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(Of(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 bA(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(NA(e.appId,u,si(E),i,m))}return{type:"UPDATE",updatedCount:d.length}}async function PA(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(Of(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 Of(e,t,n,r,i){return{app:e,records:[{id:Number(t),revision:n,record:{[r]:{value:i}}}]}}function NA(e,t,n,r,i){return{app:e,records:[{id:Number(t),revision:n,record:{[r]:{value:i}}}]}}function CA(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 xd(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 OA(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:LA(E,e.subtableCode,y,h)}));m.sort((y,h)=>_A(y.flat,h.flat,e.by,l));let g=m.map(y=>y.row.id??"");await t.putRecords(CA(e.appId,f,si(E),e.subtableCode,g))}return{type:"REORDER",reorderedParentCount:c.size}}function LA(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 _A(e,t,n,r){for(let i of n){let o=Kd(i.key,e),a=Kd(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 Kd(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(Pf(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 he(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:Sf(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 Lf(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 _f(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 DA(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 me||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 Df(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 vf(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 Uf(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 Mf=new WeakMap,kf=new WeakMap,Ff=new WeakMap;async function xf(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 Ml(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&&Mf.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:ce(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 de(`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])),k=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:k,allowKlike:!1}),_=I.some(A=>A.field.fieldType==="NUMBER");_&&(s.add(y.appId),await ot(y.appId,l,n)),kf.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))]]:[]))});Ff.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:ce(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 vA(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 Bd(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)} ${vA(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?UA(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=Bd(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)",` ${$d(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=Bd(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)}`,` ${$d(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 UA(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 $d(e){return e.every(t=>t.right.type==="KINTONE_FUNC"&&J(t.right.name))?"relative date client evaluations":"kintone function client evaluations"}async function Kf(e,t,n,r="batch-explain",i=1e4,o=2,a=!1,s=100,l=Ae){let d=Nl(r);try{let p=Qd(e,a),c=ka(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 xf(m,t,d,i,g),h=g.hasServerOnlyWhereFunction&&!g.allowed?Pl(g):[...Pl(g),...Bf(MA(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 MA(e,t,n,r,i=100,o=Ae){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 kA(e,t,n,r,i,o=100,a=Ae,s){let l=s??await ni(e.query,t,n),d=await xf(e.query,t,n,r,l),p=Pl(l),c=l.hasServerOnlyWhereFunction&&!l.allowed?[...bl(d),...p]:[...bl(d),...p,...Bf(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 Bf(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=Ae,a=1e4,s){if(e.type==="UNION")return xA(e,n,r,s);if(e.type==="WITH")return KA(e,n,r,s);if(e.type==="INSERT")return GA(e,t,i,o);if(e.type==="INSERT_SELECT")return VA(e,t,n,r,s);if(e.type==="UPSERT")return jA(e,t,i,o);if(e.type==="UPSERT_SELECT")return zA(e,t,n,r,s);if(e.type==="UPDATE")return WA(e,t,n,r,i,o,a);if(e.type==="DELETE")return YA(e,t);if(e.type==="REORDER")return qA(e,t);if(e.type==="VALIDATE")return FA(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 FA(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?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&&Ef(e,a),p=d?"COUNT_TOTAL_COUNT":s?.kind==="CANONICAL_LOCAL"||a&&a.capability!=="EXACT_PUSHDOWN"?"FULL_SCAN":_e(e),c=BA(e);a&&a.capability!=="EXACT_PUSHDOWN"&&c.push(...a.reasons.map(y=>y.code));let u=[],f=hp(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"?uf(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=Mf.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=of(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),k=y?.joinPlan.serverFunctionConsumptions.find(N=>N.targetAlias===e.from.alias);D||k?(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(M=>M.targetAlias===N.table.alias),U=y?.joinPlan.serverFunctionConsumptions.find(M=>M.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(...$A(e,n,r,i)),u}function xA(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 KA(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,Ae,1e4,r)),It(e)){i.push("");let o=wt(e);i.push(...He(o,"[effective: inlined CTE]",t,n,r,!1))}return i}function BA(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 $A(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 GA(e,t,n=gt,r=Ae){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 VA(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 WA(e,t,n,r,i=100,o=Ae,a=1e4){if(e.applyBlocks?.length)return HA(e,t,i,o,a);let s=Fc(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=XA(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(` ${ZA(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 HA(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=Ff.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 YA(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 jA(e,t,n=gt,r=Ae){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 zA(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 qA(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 XA(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 $f(e,t,n,r,i){let o=ql(e),a=await he(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 he(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 de(`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 de(`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 de(`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 de(`UPDATE FROM \u306E CHECK \u3067\u306F\u30BD\u30FC\u30B9\u5217 ${u.field} \u3092\u4FEE\u98FE\u3057\u3066\u304F\u3060\u3055\u3044`);if(E)throw de(`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 QA(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 ZA(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} = ${Gf(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 Gf(e){return`${Gd(e.left)} ${e.op} ${Gd(e.right)}`}function Gd(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"?`(${Gf(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 Se=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 Se("READ_ONLY_VIOLATION",e)}function Hn(e,t){return new Se("PARSE_ERROR",e,t)}function Vf(){let e=new tn;return new Se("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 eS(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 Se?e:e instanceof me||e instanceof T?new Se("PARSE_ERROR",li(e),e):e instanceof tn||e?.name==="SearchAbortedError"?new Se("SEARCH_ABORTED",li(e),e):e instanceof Pe||e?.name==="FetchAllLimitError"?new Se("FETCH_LIMIT_EXCEEDED",li(e),e):e instanceof Error&&e.name==="ClientOperationError"&&"cause"in e?new Se("CLIENT_ERROR",e.message,e.cause):eS(e)?new Se("CLIENT_ERROR",li(e),e):new Se("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 tS=2,la=5,nS=3e4,rS=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??tS;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??nS,this.quarantineMs=n.quarantineMs??rS}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 iS(e){let t=e;return t?.status===404&&t.code==="GAIA_CN01"}async function oS(e,t=r=>new Promise(i=>setTimeout(i,r)),n=iS){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 aS(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 Wf(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 aS(oS(t.delete,t.sleep,t.isAlreadyReleasedError),t.cleanupTimeoutMs??5e3),n=!0,t.onReleased?.()}catch(l){throw t.onReleaseUnknown?.(),l}}),o)}}function Hf(e){return Yf(e,lS(e))}function Yf(e,t,n=!1,r){let i=[];for(let o of Object.values(e)){let a=uS(o.options),s=cS(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)&&!sS.has(o.type)};l.semantics=X(l),i.push(l),o.fields&&i.push(...Yf(o.fields,t,!0,o.type==="SUBTABLE"?o.code:r))}return i}var sS=new Set(["CALC","RECORD_NUMBER","CREATOR","CREATED_TIME","MODIFIER","UPDATED_TIME","STATUS","STATUS_ASSIGNEE","CATEGORY","REFERENCE_TABLE","SUBTABLE"]);function lS(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 uS(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 cS(e,t){if(e==="NUMBER"||e==="RECORD_NUMBER")return"number";if(e==="CALC")return t==="NUMBER"||t==="NUMBER_DIGIT"?"number":"string"}function jf(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 pS="Filter aborted because of too many search results";function zf(e){return e?.includes(pS)===!0}var qf="/k/v1/records.json",pa="/k/v1/records/cursor.json",dS=4096,fS=2,ru=e=>kintone.api.url(e,!0);function ES(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<=dS?{url:r,init:{method:"GET",credentials:"include",headers:i}}:{url:ru(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
|
|
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=OS(e,n);if(!i){n++;continue}t.push(i),n=i.fullEnd}return t}function Xf(e){let t=9e8;for(;e.has(t);)t++;return e.add(t),t}function Zf(e,t="dev",n){let r=su(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=Xf(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=Xf(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 eE=new Set(["client","logicalApps","maxRecords","fetchParallel","cursorMaxActive"]),tE=new Set([...eE,"onLimitReached"]),LS=new Set([...tE,"variables","tempTableMaxRows"]);function nE(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 rE(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 _S(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 iE(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=au(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 oE(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 lu(e,t){nE(e);let n=t==="run"?tE:eE;rE(e.client);let r=oE(e,n,t==="run"?"runQuery":"explainQuery"),i=iE(e.logicalApps);return{client:e.client,...i===void 0?{}:{logicalApps:i},executeOptions:r}}function aE(e){nE(e),rE(e.client),e.variables!==void 0&&_S(e.variables),e.tempTableMaxRows!==void 0&&pi(e.tempTableMaxRows,"tempTableMaxRows");let t=oE(e,LS,"runBatch"),n=iE(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 DS(e,t,n){return e.slice(t,n)}function di(e,t,n){let r=su(e),i=r.find(d=>d.profile!==null);if(i!==void 0)throw new Error(`ArgumentError: browser engine library does not support @profile suffixes (${DS(e,i.start,i.fullEnd)}).`);if(!r.some(d=>d.source==="logical"))return{sql:e,client:t,logicalBindings:[]};let o=Zf(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 vS(e){return Object.fromEntries(Object.entries(e).map(([t,n])=>[t,String(n)]))}function US(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=Vd(e);return{type:"query",rows:e.rows.map(vS),columns:e.columns.map(r=>US(r,n)),rowCount:e.rowCount,warnings:[...e.warnings??[]],...e.validateStats?{validateStats:e.validateStats}:{},metrics:da(t)}}function sE(e,t={}){let n=new Pt(e).tokenize(),r=new Nt(n,t).parse();return $e(r),r}function lE(e,t={}){let n=new Pt(e).tokenize(),r=new Nt(n,t).parseStatements();return r.forEach($e),r}function uu(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 uE(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 MS(e){if(e.trim()==="")throw Hn("SQL statement is empty");try{return sE(e,{import:!0})}catch(t){let n=uE(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 cE(e){if(hi(e)==="UNKNOWN")throw Ke("Unclassifiable statement is not allowed");return e}function pE(e){if(e.trim()==="")throw Hn("SQL statement is empty");try{return lE(e,{import:!0})}catch(t){throw uE(t)}}function kS(e){let t=cE(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(uu(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 dE(e){let t=cE(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(uu(n))throw Ke("APPLY statements are not allowed in engine library batches");if(Mt(n.type))throw Ke("DML VALIDATE ONLY statements are not supported by runBatch")}function fE(e){let t=MS(e);return kS(t),t}function EE(e){let t=pE(e);return t.forEach(dE),t}function RE(e){let t=e.trim(),n=pE(t);n.forEach(dE);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 FS(e){let t=e.error,n=t?.cause!==void 0?ln(t.cause):new Se("EXECUTION_ERROR",t?.message??`Statement ${e.index} failed`);return nu(n,e.index,e.type)}async function xS(e,t){let n=[],r=[];try{let i=aE(t),o=di(e,i.client,i.logicalApps);r=o.logicalBindings,n=EE(o.sql);let a=await jn(o.client,p=>Xd(o.sql,Yn(p),{...i.executeOptions,captureColumnMeta:!0})),s=a.statements.find(p=>p.status==="error");if(s!==void 0)throw FS(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 mE(e){if(e===null||typeof e!="object"||e.type!=="SELECT")throw new Error("Engine returned a non-SELECT result")}async function KS(e,t){let n=[];try{let r=lu(t,"run"),i=di(e,r.client,r.logicalApps);n=i.logicalBindings;let a=fE(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 mE(s),fa(s)}catch(r){throw fi(ln(r),n)}}async function BS(e,t){let n=[],r=[];try{let i=lu(t,"explain"),o=di(e,i.client,i.logicalApps);r=o.logicalBindings;let a=RE(o.sql);if(n=a.statements,a.legacySql!==void 0){let d=await jn(o.client,c=>Cl(a.legacySql,Yn(c),i.executeOptions));mE(d);let p=d.rows.map(c=>String(c.plan??""));return{type:"explain",lines:p,text:p.join(`
|
|
14
|
-
`),metrics:
|
|
15
|
-
`),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 RA(e){if(e.unappliedKlikes.length>0)throw new Error(`UnsupportedError: ${EA}`)}async function mA(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=Cs(e.where,{fieldTypes:s,fieldOptions:l});RA(d);let p=d.prefilter===null?"":G(d.prefilter),c=new Set(Ji(e,r));for(let E of yA(e.where))c.add(E);let u=await gA(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 yA(e){return kl(e)}async function gA(e,t,n,r,i){let s=[...hA(t)].some(p=>n.get(p)?.fieldType==="STATUS")?await ql(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 hA(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 AA(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=As(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,aa(o,n,e.appId)),d}function SA(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,aa(a,n,e.appId)),l}function TA(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=Ss(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,y)=>m+y.deletedRows,0),0),parentRows:t.update.plans.filter(E=>E.tables.some(R=>R.deletedRows>0)).length},diagnostic:l};return sn.set(f,aa([...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,Ae=500;function Fe(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 aa(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 IA(e,t,n,r,i,o){let a=await Nf(e,t,n,r,i,o),s=await he(e.appId,n,i),l=Za(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 wA(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 bA(e,t,n,r){if(await Fn(e,t,r),Rt(e.where))return{type:"DELETE",deletedCount:0};if(e.subtableCode)return OA(e,t,n,r);let i=Wc(e),a=(await uo(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=Hc(e.appId,a);for(let l of s)await t.deleteRecords(l);return{type:"DELETE",deletedCount:a.length}}async function PA(e,t,n,r){if(e.onInsertApplyBlocks?.length||e.onUpdateApplyBlocks?.length)return jh(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 he(e.appId,t,r),d=_f(e),p=await ii(e.appId,e.keyFields,d,t,n,l);if(e.values.forEach((u,f)=>{let E={};e.fields.forEach((m,y)=>{let g=u[y];g.type==="CASE_VALUE"?E[m]={value:Lt(g.expr,{},l.get(m))}:E[m]={value:ct(g,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 _f(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 tu(e,t,n,r){if(t.length===0)return;let i=await he(e,n,r);return o=>{if(o.tableAlias!==null&&o.tableAlias!=="_p")return;if(o.tableAlias==="_p")return i.get(o.field);let a=o.field.startsWith("_p.")?o.field.slice(3):o.field;return i.get(a)}}async function NA(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=sa(a),l=new Map;for(let p of e.values){let c=$d(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:$d(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(Df(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 CA(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"&&Yo(u.value.expr,o);let a=await tu(e.appId,o,t,r),s=await Ie(t.getRecords,e.appId,"",[],{maxRecords:n.maxRecords??1e4,parallel:n.fetchParallel??1}),d=nu(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:qi(R.value,u.flat,a)}}f.set(u.rowId,E)}let c=sa(s);for(let[u,f]of p.entries()){let E=c.get(u);if(!E)continue;let m=ai(E,i).map(y=>{let g=y.id??"";if(!g)return y;let h=f.get(g);return h?{id:g,value:h}:{id:g}});await t.putRecords(LA(e.appId,u,si(E),i,m))}return{type:"UPDATE",updatedCount:d.length}}async function OA(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 tu(e.appId,o,t,r),s=await Ie(t.getRecords,e.appId,"",[],{maxRecords:n.maxRecords??1e4,parallel:n.fetchParallel??1}),d=nu(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=sa(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),y=R.filter((g,h)=>!m.has(h));await t.putRecords(Df(e.appId,u,si(E),i,y))}return{type:"DELETE",deletedCount:d.length}}function sa(e){let t=new Map;for(let n of e){let r=String(n.$id?.value??"");r&&t.set(r,n)}return t}function nu(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={...Xi(l,s),_pid:i};for(let[p,c]of Object.entries(r))p!==t&&(d[`_p.${p}`]=Nl(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 Df(e,t,n,r,i){return{app:e,records:[{id:Number(t),revision:n,record:{[r]:{value:i}}}]}}function LA(e,t,n,r,i){return{app:e,records:[{id:Number(t),revision:n,record:{[r]:{value:i}}}]}}function _A(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 $d(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 Nl(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 DA(e,t,n,r){let i=[];Et(e.where,i);let o=await tu(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=nu(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=sa(d);for(let f of c){let E=u.get(f);if(!E)continue;let m=ai(E,e.subtableCode).map((g,h)=>({row:g,i:h,flat:vA(E,e.subtableCode,g,h)}));m.sort((g,h)=>UA(g.flat,h.flat,e.by,l));let y=m.map(g=>g.row.id??"");await t.putRecords(_A(e.appId,f,si(E),e.subtableCode,y))}return{type:"REORDER",reorderedParentCount:c.size}}function vA(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}`]=Nl(a?.value));for(let[o,a]of Object.entries(n.value??{}))i[o]=Nl(a?.value);return i}function UA(e,t,n,r){for(let i of n){let o=Gd(i.key,e),a=Gd(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 Gd(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 ru(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 Zl.materialize(e,t,n,r,i,o),{rows:l,columns:d}=s;if(Of(s),d.length!==e.fields.length){let y=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${y}`)}for(let y of e.keyFields)if(!e.fields.includes(y))throw new Error(`ON DUPLICATE \u306E\u30AD\u30FC\u300C${y}\u300D\u304C UPSERT \u30D5\u30A3\u30FC\u30EB\u30C9\u306B\u542B\u307E\u308C\u3066\u3044\u307E\u305B\u3093`);let p=[],c=[],u=await he(e.appId,t,r),f=l.map((y,g)=>{let h={};return e.fields.forEach((S,w)=>{if(s.importPresence&&!s.importPresence[g]?.has(S))return;let I=y[d[w]]??"";h[S]={value:wf(I,u.get(S))}}),h});f.forEach(y=>on([y],e.fields.filter(g=>g in y),o,a));let E=f.map(y=>e.keyFields.map(g=>String(y[g]?.value??"")));if(Zo.has(e)){let y=e.keyFields.map(h=>u.get(h)==="NUMBER"),g=new Set;for(let h of E){let S=rn(h,y);if(g.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");g.add(S)}}let R=await ii(e.appId,e.keyFields,E,t,n,u);if(f.forEach((y,g)=>{let h=ri(R,E[g]);h!==void 0?c.push({id:h,record:y}):p.push(y)}),n.confirm&&p.length+c.length>0){let y=p.length+c.length;if(!await n.confirm(y,"UPDATE"))throw new le("UPDATE",y)}let m=[];for(let y=0;y<p.length;y+=100){let g=await t.postRecords({app:e.appId,records:p.slice(y,y+100)});m.push(g.ids)}for(let y=0;y<c.length;y+=100)await t.putRecords({app:e.appId,records:c.slice(y,y+100)});return{type:"UPSERT",insertedCount:m.flat().length,updatedCount:c.length}}async function vf(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 Uf(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 MA(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 me||n instanceof T,n}}async function ei(e,t,n,r,i){let o=[];Go(e,t,n,r,o,i),await Promise.all(o)}async function Mf(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 Go(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":Go(e.left,t,n,r,i,o),Go(e.right,t,n,r,i,o);break;case"NOT":case"GROUP":Go(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 kf(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 xf(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 Ff=new WeakMap,Kf=new WeakMap,Bf=new WeakMap;async function $f(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(y=>y.source===m||JSON.stringify(y.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 y=m;if(y.type==="SELECT"){let g=m;await ea(g,l,n);let h=[g.from,...g.joins.map(P=>P.table)].some(P=>P.cteName!==null);if(ne(g).type==="PLAIN"&&!h){let P=await Fl(g,l,n);P&&c.set(g,P)}let S=[g.from,...g.joins.map(P=>P.table)].filter(P=>P.cteName===null).map(P=>P.appId);(Ze(g.where)||g.orderBy.length>0||g.columns.some(P=>P.type==="WINDOW_COL"&&P.orderBy.length>0))&&S.forEach(P=>o.add(P));let I=await zr(g,l,n),L=E(g);if(I.capability==="UNSUPPORTED"&&!L)throw new Error(`ArgumentError: WHERE predicate is unsupported (${Zt(I)}).`);d.set(g,I);let v=$l.get(g)??ta(g,await na(g,l,n));if(v&&Ff.set(g,v),g.orderBy.length>0||g.columns.some(P=>P.type==="WINDOW_COL"&&P.orderBy.length>0)){let P=await Jr(g,l,n);if(g.orderMode!=="KINTONE_NATIVE")for(let D of P.semantics.values())D.fieldType==="STATUS"&&D.source&&a.add(D.source.appId);if(Wo(g)&&!h&&L?.allowed!==!1){let D=I.capability==="EXACT_PUSHDOWN"?_e(g):"FULL_SCAN";p.set(g,(g.orderMode==="KINTONE_NATIVE"?Dr:_r)({stmt:g,staticMode:D,whereCapability:I.capability,whereReasons:I.reasons,orderSemantics:P.semantics,maxRecords:r,hasKlike:ce(g.where)}))}}}else if(y.type==="VALIDATE"){let g=m;o.add(g.appId);let h=await ee(g.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=ms(g,h),L=Nn(g.checkGroups??[]),b=kl(g.where);for(let A of L){if(A.field!=="$id"&&!S.has(A.field)&&!w.has(A.field))throw de(`CHECK \u306E\u30D5\u30A3\u30FC\u30EB\u30C9 ${A.field} \u306F APP${g.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${g.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(g,v);let P=Ce(g.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])),k=new Map([...S.values()].flatMap(A=>A.optionOrder?[[A.code,new Set(Object.keys(A.optionOrder))]]:[])),N=g.where===null?null:P.capability==="EXACT_PUSHDOWN"?g.where:An(g.where,{allowUnqualifiedFields:!0,fieldTypes:D,fieldOptions:k,allowKlike:!1}),_=I.some(A=>A.field.fieldType==="NUMBER");_&&(s.add(g.appId),await ot(g.appId,l,n)),Kf.set(g,{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(y.type==="UPDATE"||y.type==="DELETE"){if(o.add(m.appId),y.type==="UPDATE"&&m.applyBlocks?.length){let h=m,S=await ee(h.appId,l,n);if(pt(h,S),Jo(h)){let w=S.filter(L=>!L.inSubtable),I=Cs(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))]]:[]))});Bf.set(h,I)}}let g=m;(g.type!=="UPDATE"||!Jo(g))&&E(g)?.allowed!==!1&&await Fn(g,l,n)}await Promise.all(Object.values(y).map(R))};if(await R(e),typeof e=="object"&&e!==null&&e.type==="WITH"&&It(e)){let m=wt(e),y=await zr(m,l,n),g=E(m);if(y.capability==="UNSUPPORTED"&&!g)throw new Error(`ArgumentError: WHERE predicate is unsupported (${Zt(y)}).`);if(d.set(m,y),Wo(m)&&g?.allowed!==!1){let h=await Jr(m,l,n);p.set(m,(m.orderMode==="KINTONE_NATIVE"?Dr:_r)({stmt:m,staticMode:y.capability==="EXACT_PUSHDOWN"?_e(m):"FULL_SCAN",whereCapability:y.capability,whereReasons:y.reasons,orderSemantics:h.semantics,maxRecords:r,hasKlike:ce(m.where)}))}}return{capabilities:d,orderPlans:p,plainGroupByPlans:c,fieldApps:o,processStatusApps:a,numberPrecisionApps:s,relativeDatePlan:f}}function Cl(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 kA(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 Vd(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)} ${kA(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 Ol(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?xA(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=sl(l),p=l.left.type==="FIELD"?l.left.field:"(unknown)";t.push(` ${al(d)}: ${d}`,` ${ll(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=sl(s),d=s.left.type==="FIELD"?s.left.field:void 0,p=Vd(s.op),c=n.capability?.reasons.find(u=>u.functionName===l&&(d===void 0||u.field===d)&&u.operator===p);t.push(` ${al(l)}: ${l}`,` ${ll(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)",` ${Wd(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=sl(s),d=s.left.type==="FIELD"?s.left.field:void 0,p=Vd(s.op),c=n.capability?.reasons.find(u=>u.functionName===l&&(d===void 0||u.field===d)&&u.operator===p);t.push(` ${al(l)}: ${l}`,` ${ll(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)}`,` ${Wd(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 xA(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 al(e){return J(e)?"relative date function":"kintone function"}function sl(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 ll(e){return J(e)?"relative date evaluation":"kintone function evaluation"}function Wd(e){return e.every(t=>t.right.type==="KINTONE_FUNC"&&J(t.right.name))?"relative date client evaluations":"kintone function client evaluations"}async function Gf(e,t,n,r="batch-explain",i=1e4,o=2,a=!1,s=100,l=Ae){let d=Ll(r);try{let p=tf(e,a),c=Ka(p);Ts(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:Vo(R.expr,u)}:R:Vo(R,u);$e(m);let y=await ni(m,t,d),g=await $f(m,t,d,i,y),h=y.hasServerOnlyWhereFunction&&!y.allowed?Ol(y):[...Ol(y),...Vf(FA(m,c.statements[E],g.capabilities,g.orderPlans,s,l),o)],S=Cl(g);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{zl(d)}}function FA(e,t,n,r,i=100,o=Ae){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 ${xe} \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=Xo(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=Xo(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?la(e,void 0,n,r,i,o):$r(e,t,n,r)}function Xo(e){if(Array.isArray(e))return e.some(Xo);if(e!==null&&typeof e=="object"){let t=e,n=t.cteName;return typeof n=="string"&&n.startsWith("#")?!0:Object.values(t).some(Xo)}return!1}function $r(e,t,n,r){if(t.tempTablesReferenced.length===0)return la(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 KA(e,t,n,r,i,o=100,a=Ae,s){let l=s??await ni(e.query,t,n),d=await $f(e.query,t,n,r,l),p=Ol(l),c=l.hasServerOnlyWhereFunction&&!l.allowed?[...Cl(d),...p]:[...Cl(d),...p,...Vf(la(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 Vf(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 la(e,t,n,r,i=100,o=Ae,a=1e4,s){if(e.type==="UNION")return $A(e,n,r,s);if(e.type==="WITH")return GA(e,n,r,s);if(e.type==="INSERT")return HA(e,t,i,o);if(e.type==="INSERT_SELECT")return YA(e,t,n,r,s);if(e.type==="UPSERT")return JA(e,t,i,o);if(e.type==="UPSERT_SELECT")return XA(e,t,n,r,s);if(e.type==="UPDATE")return jA(e,t,n,r,i,o,a);if(e.type==="DELETE")return qA(e,t);if(e.type==="REORDER")return QA(e,t);if(e.type==="VALIDATE")return BA(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 BA(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?Ml:Ul).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(([g])=>JSON.stringify(g)===JSON.stringify(e))?.[1]:void 0),s=r?.get(e)??(r?[...r].find(([g])=>JSON.stringify(g)===JSON.stringify(e))?.[1]:void 0),l=i?.get(e)??(i?[...i].find(([g])=>JSON.stringify(g)===JSON.stringify(e))?.[1]:void 0),d=o&&a!==void 0&&yf(e,a),p=d?"COUNT_TOTAL_COUNT":s?.kind==="CANONICAL_LOCAL"||a&&a.capability!=="EXACT_PUSHDOWN"?"FULL_SCAN":_e(e),c=VA(e);a&&a.capability!=="EXACT_PUSHDOWN"&&c.push(...a.reasons.map(g=>g.code));let u=[],f=Tp(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 g=E.allItems;if(l)l.items.forEach((h,S)=>{let w=g[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 g)h.type==="FIELD_NAME"&&u.push(` group key ${h.name}: DEFERRED (materialized schema unavailable)`)}if(d){let g=e.where===null?"":G(e.where);return u.push(` app: APP${e.from.appId} (${e.from.appId})`),u.push(` kintone query: ${g}${g?" ":""}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 y=Rt(e.where);if(m.size>0&&(!y||f!==null)&&(u.push(" complete input: required (onLimit=truncate disabled)"),u.push(` complete input reason: ${[...m].join(", ")}`),u.push(" onLimit=truncate: disabled")),y)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 g=bi(s?.kind==="CANONICAL_REST_TOP_N"?df(e):e);u.push(` app: APP${e.from.appId} (${e.from.appId})`);let h=s?.kind==="KORDER_CURSOR"?Os(e):g.query;u.push(` kintone query: ${h||"(\u306A\u3057)"}`),u.push(` fields: ${g.fields.length===0?"(\u5168\u30D5\u30A3\u30FC\u30EB\u30C9)":g.fields.join(", ")}`)}else{let g=Ff.get(e),h=g??Tn(e);if(e.joins.length>0)if(g){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)"),g.joinPlan.serverFunctionCandidate&&u.push(` allow form: JOIN_SERVER_FUNCTION_EXACT (${g.joinPlan.serverFunctionCandidate.variant==="WHOLE_WHERE_EXACT"?"whole-WHERE":"leaf"})`),u.push(` client residual: ${g.joinPlan.residualWhere===null?"(none)":Xt(g.joinPlan.residualWhere)}`),u.push(` KLIKE applied nodes: ${g.joinPlan.appliedKlikes.size}`),u.push(` KLIKE unapplied nodes: ${g.joinPlan.allKlikes.length-g.joinPlan.appliedKlikes.size}`),g.joinPlan.residualWhere!==null)for(let N of g.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=lf(e),b=e.joins.length===0&&a?.capability==="EXACT_PUSHDOWN"&&e.where!==null&&!Tt(e.where)?G(e.where):"",v=e.from.alias?g?.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=g?.joinPlan.items.find(N=>N.targetAlias===e.from.alias),k=g?.joinPlan.serverFunctionConsumptions.find(N=>N.targetAlias===e.from.alias);D||k?(u.push(` pushdown applied: ${v}`),u.push(` relation: ${D?.relation??"exact"}`)):!g&&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`,F=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,x=N.table.alias?g?.queriesByAlias.get(N.table.alias):void 0,j=x||(F!==null?G(F):"(\u5168\u4EF6\u53D6\u5F97)");u.push(` ${C}: APP${N.table.appId}${A} (${N.table.appId})`),u.push(` kintone query: ${j}`);let q=g?.joinPlan.items.find(M=>M.targetAlias===N.table.alias),U=g?.joinPlan.serverFunctionConsumptions.find(M=>M.targetAlias===N.table.alias);q||U?(u.push(` pushdown applied: ${x}`),u.push(` relation: ${q?.relation??"exact"}`)):!g&&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(...WA(e,n,r,i)),u}function $A(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 GA(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(...la(e.query,"[main]",t,n,100,Ae,1e4,r)),It(e)){i.push("");let o=wt(e);i.push(...He(o,"[effective: inlined CTE]",t,n,r,!1))}return i}function VA(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 WA(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 HA(e,t,n=gt,r=Ae){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,...iu(so(e,n,r))]:a}function YA(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 jA(e,t,n,r,i=100,o=Ae,a=1e4){if(e.applyBlocks?.length)return zA(e,t,i,o,a);let s=Bc(e),l=e.assignments.some(f=>f.value.type==="STRING_FUNC"),d=zi(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=eS(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(` ${nS(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 zA(e,t,n,r,i){let o=so(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=Bf.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",...iu(o)]}function qA(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 JA(e,t,n=gt,r=Ae){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,...iu(so(e,n,r))]:a}function iu(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 XA(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 QA(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(ZA).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 ZA(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 eS(e){let t=new Set;for(let{value:n}of e.assignments)n.type==="ARITH"&&Qo(n,t),n.type==="STRING_FUNC"&&Qo(n,t),(n.type==="SCALAR_ARITH"||n.type==="CONCAT_OP")&&jr(n,t);return[...t]}function Qo(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"&&(Qo(e.left,t),Qo(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 Wf(e,t,n,r,i){let o=Ql(e),a=await he(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 he(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 de(`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 de(`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 de(`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 de(`UPDATE FROM \u306E CHECK \u3067\u306F\u30BD\u30FC\u30B9\u5217 ${u.field} \u3092\u4FEE\u98FE\u3057\u3066\u304F\u3060\u3055\u3044`);if(E)throw de(`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 tS(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 nS(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} = ${Hf(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 Hf(e){return`${Hd(e.left)} ${e.op} ${Hd(e.right)}`}function Hd(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"?`(${Hf(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 Se=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 ou(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 Se("READ_ONLY_VIOLATION",e)}function Hn(e,t){return new Se("PARSE_ERROR",e,t)}function Yf(){let e=new tn;return new Se("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 rS(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 Se?e:e instanceof me||e instanceof T?new Se("PARSE_ERROR",li(e),e):e instanceof tn||e?.name==="SearchAbortedError"?new Se("SEARCH_ABORTED",li(e),e):e instanceof Pe||e?.name==="FetchAllLimitError"?new Se("FETCH_LIMIT_EXCEEDED",li(e),e):e instanceof Error&&e.name==="ClientOperationError"&&"cause"in e?new Se("CLIENT_ERROR",e.message,e.cause):rS(e)?new Se("CLIENT_ERROR",li(e),e):new Se("EXECUTION_ERROR",li(e),e)}function ua(e,t){let n=ln(e);if(e instanceof Z){let r=t[e.statementIndex];if(r!==void 0)return ou(n,e.statementIndex,r.type)}return n}var iS=2,ca=5,oS=3e4,aS=10*6e4+3e4,pa=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??iS;if(!Number.isSafeInteger(r)||r<1||r>ca)throw new Error(`ArgumentError: cursorMaxActive must be an integer from 1 to ${ca}.`);this.maxActive=r,this.waitTimeoutMs=n.waitTimeoutMs??oS,this.quarantineMs=n.quarantineMs??aS}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 ho(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>ca)throw new Error(`ArgumentError: cursorMaxActive must be an integer from 1 to ${ca}.`)}};function sS(e){let t=e;return t?.status===404&&t.code==="GAIA_CN01"}async function lS(e,t=r=>new Promise(i=>setTimeout(i,r)),n=sS){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 uS(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 jf(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 uS(lS(t.delete,t.sleep,t.isAlreadyReleasedError),t.cleanupTimeoutMs??5e3),n=!0,t.onReleased?.()}catch(l){throw t.onReleaseUnknown?.(),l}}),o)}}function zf(e){return qf(e,pS(e))}function qf(e,t,n=!1,r){let i=[];for(let o of Object.values(e)){let a=dS(o.options),s=fS(o.type,o.format),l={code:o.code,label:o.label,fieldType:o.type,optionOrder:a,sortKind:s,required:o.required,minValue:da(o.minValue),maxValue:da(o.maxValue),minLength:da(o.minLength),maxLength:da(o.maxLength),defaultValue:o.defaultValue,inSubtable:n,...r?{subtableCode:r}:{},writable:!t.has(o.code)&&!cS.has(o.type)};l.semantics=X(l),i.push(l),o.fields&&i.push(...qf(o.fields,t,!0,o.type==="SUBTABLE"?o.code:r))}return i}var cS=new Set(["CALC","RECORD_NUMBER","CREATOR","CREATED_TIME","MODIFIER","UPDATED_TIME","STATUS","STATUS_ASSIGNEE","CATEGORY","REFERENCE_TABLE","SUBTABLE"]);function pS(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 da(e){return e==null||e===""?void 0:e}function dS(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 fS(e,t){if(e==="NUMBER"||e==="RECORD_NUMBER")return"number";if(e==="CALC")return t==="NUMBER"||t==="NUMBER_DIGIT"?"number":"string"}function Jf(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 ES="Filter aborted because of too many search results";function Xf(e){return e?.includes(ES)===!0}var Qf="/k/v1/records.json",fa="/k/v1/records/cursor.json",RS=4096,mS=2,au=e=>kintone.api.url(e,!0);function yS(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<=RS?{url:r,init:{method:"GET",credentials:"include",headers:i}}:{url:au(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 gS(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 hS(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(au(e),t,n)}catch(r){throw ui(r)}}function AS(e){if(!Number.isSafeInteger(e)||e<1||e>5)throw new Error("ArgumentError: cursorMaxActive must be an integer from 1 to 5.")}function SS(e={}){let t=e.cursorMaxActive??mS;AS(t);let n=null,r=null,i=new Set;return{async getRecords(a){try{let s=yS(a),l=await fetch(s.url,s.init);if(!l.ok)throw await gS(l);let d=await l.json();return Xf(l.headers.get("X-Cybozu-Warning"))?{...d,searchAborted:!0}:d}catch(s){throw ui(s)}},async openCursor(a){let s=au(fa),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 pa(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(fa,"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 Ao(R))}let c=p.id,u=jf(Number(p.totalCount),{get:()=>un(fa,"GET",{id:c}),delete:()=>un(fa,"DELETE",{id:c}),isAlreadyReleasedError:hS,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 zf(s.properties)},async getNumberPrecision(a){let s=await un("/k/v1/app/settings.json","GET",{app:a});return op(s)},async getProcessStatuses(a){let s=await un("/k/v1/app/status.json","GET",{app:a,lang:"user"});return{enable:s.enable,states:Jf(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 TS(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 Yf();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)?TS(d):Reflect.get(l,d,p)},has(l,d){return Zf.has(d)?!1:Reflect.has(l,d)}})}function IS(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=IS(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 wS="A-Za-z",bS="\\u3040-\\u30FF\\u3400-\\u9FFF\\uF900-\\uFAFF\\uFF01-\\uFF60",lu=`${wS}${bS}`,tE=`${lu}0-9_`,PS=new RegExp(`^[${lu}]$`,"u"),NS=new RegExp(`^[${tE}]$`,"u"),CS=new RegExp(`^[${lu}][${tE}]{0,63}$`,"u");function OS(e){return PS.test(e)}function LS(e){return NS.test(e)}function uu(e){let t=e.normalize("NFC").toUpperCase();if(!CS.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 su(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 _S(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 DS(e,t){let n=t>0?e[t-1]:"";if(su(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,!OS(e[l]??""))return null;for(l++;l<e.length&&LS(e[l]);)l++;s=l;try{o=uu(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&&su(e[l]);)l++;if(l===f)return null}let d=l,p=null;if(e[l]==="@"){l++;let f=l;for(;l<e.length&&_S(e[l]);)l++;if(l===f)return null;p=e.slice(f,l)}let c=l<e.length?e[l]:"";if(su(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 cu(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=DS(e,n);if(!i){n++;continue}t.push(i),n=i.fullEnd}return t}function eE(e){let t=9e8;for(;e.has(t);)t++;return e.add(t),t}function nE(e,t="dev",n){let r=cu(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 y=a(m.profile),g=o.get(m.appId);g||(g=new Set,o.set(m.appId,g)),g.add(y.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 y=a(m.profile).toLowerCase(),g=`logical:${m.logicalName}@${y}`;if(l.has(g))continue;if(!n)throw new Error(`ArgumentError: logical app LAPP_${m.logicalName}@${y} requires logicalApps configuration.`);let h=n.resolveLogicalApp(m.logicalName,y);l.set(g,h),s.add(h)}let d=new Map,p=new Map;for(let[m,y]of o.entries()){let g=[...y].sort();if(!(g.length<=1))for(let h of g){let S=eE(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,y,g,h)=>{if(!m&&y===g)return;let S=f;c.push(m),f+=m.length,u.push({normalizedStart:S,normalizedEnd:f,sourceStart:y,sourceEnd:g,...h===void 0?{}:{bindingMappedAppId:h}})};for(let m of r){let y=a(m.profile).toLowerCase(),g;if(m.source==="physical")g={source:"physical",mappedAppId:d.get(`physical:${m.appId}@${y}`)??m.appId,appId:m.appId,profile:y};else{let w=`logical:${m.logicalName}@${y}`,I=d.get(w);I===void 0&&(I=eE(s),d.set(w,I)),g={source:"logical",logicalName:m.logicalName,mappedAppId:I,appId:l.get(w),profile:y}}p.set(g.mappedAppId,g),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)}${g.mappedAppId}${h}`:`APP${g.mappedAppId}${h}`;R(S,m.start,m.fullEnd,g.mappedAppId),E=m.fullEnd}return R(e.slice(E),E,e.length),{normalizedSql:c.join(""),hasProfileSyntax:i,appBindingByMappedApp:p,rewriteSegments:u}}var rE=new Set(["client","logicalApps","maxRecords","fetchParallel","cursorMaxActive"]),iE=new Set([...rE,"onLimitReached"]),vS=new Set([...iE,"variables","tempTableMaxRows"]);function oE(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 aE(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 US(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 sE(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=uu(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 lE(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 pu(e,t){oE(e);let n=t==="run"?iE:rE;aE(e.client);let r=lE(e,n,t==="run"?"runQuery":"explainQuery"),i=sE(e.logicalApps);return{client:e.client,...i===void 0?{}:{logicalApps:i},executeOptions:r}}function uE(e){oE(e),aE(e.client),e.variables!==void 0&&US(e.variables),e.tempTableMaxRows!==void 0&&pi(e.tempTableMaxRows,"tempTableMaxRows");let t=lE(e,vS,"runBatch"),n=sE(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 Ea(e,t,n={}){let r=n.logicalAppDisplay??"profile";if(typeof e=="string"){let i=e.match(/^(\s*target:\s*)APP(\d+) \((\d+)\)\s*$/);if(i&&i[2]===i[3]){let a=t.get(Number(i[2]));if(a){let s=a.source==="logical"?r==="physical"?`LAPP_${a.logicalName} -> APP${a.appId}`:`LAPP_${a.logicalName} -> APP${a.appId}@${a.profile}`:r==="physical"?`APP${a.appId}`:`APP${a.appId}@${a.profile}`;return`${i[1]}${s}`}}let o=e;for(let a of t.values()){let s=`APP${a.mappedAppId}`,l=a.source==="logical"?r==="physical"?`LAPP_${a.logicalName} -> APP${a.appId}`:`LAPP_${a.logicalName}@${a.profile}`:r==="physical"?`APP${a.appId}`:`APP${a.appId}@${a.profile}`;o=o.split(`${s} (${a.mappedAppId})`).join(l).split(s).join(l)}return o}return Array.isArray(e)?e.map(i=>Ea(i,t,n)):e!==null&&typeof e=="object"?Object.fromEntries(Object.entries(e).map(([i,o])=>[i,Ea(o,t,n)])):e}function MS(e,t,n){return e.slice(t,n)}function di(e,t,n){let r=cu(e),i=r.find(d=>d.profile!==null);if(i!==void 0)throw new Error(`ArgumentError: browser engine library does not support @profile suffixes (${MS(e,i.start,i.fullEnd)}).`);if(!r.some(d=>d.source==="logical"))return{sql:e,client:t,logicalBindings:[]};let o=nE(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 Ei(e,t){if(t.length===0)return e;let n=new Map(t.map(r=>[r.mappedAppId,r]));return Ea(e,n,{logicalAppDisplay:"physical"})}function Ra(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 xS(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,displayName:n?.displayName??e,valueType:"string",...r!==void 0?{fieldType:r}:{},...o!==void 0?{sortKind:o}:{},...a!==void 0?{sourceApp:a}:{}}}function ma(e,t=e.metrics){let n=Yd(e);return{type:"query",rows:e.rows.map(kS),columns:e.columns.map(r=>xS(r,n)),rowCount:e.rowCount,warnings:[...e.warnings??[]],...e.validateStats?{validateStats:e.validateStats}:{},metrics:Ra(t)}}function cE(e,t={}){let n=new Pt(e).tokenize(),r=new Nt(n,t).parse();return $e(r),r}function pE(e,t={}){let n=new Pt(e).tokenize(),r=new Nt(n,t).parseStatements();return r.forEach($e),r}function du(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 dE(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 FS(e){if(e.trim()==="")throw Hn("SQL statement is empty");try{return cE(e,{import:!0})}catch(t){let n=dE(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 fE(e){if(Ai(e)==="UNKNOWN")throw Ke("Unclassifiable statement is not allowed");return e}function EE(e){if(e.trim()==="")throw Hn("SQL statement is empty");try{return pE(e,{import:!0})}catch(t){throw dE(t)}}function KS(e){let t=fE(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(du(t))throw Ke("APPLY statements are not allowed in engine library queries");if(!Tu(t))throw Ke(`${n} does not return rows; use runBatch for batch-scoped or non-row-returning read-only statements`)}function RE(e){let t=fE(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(du(n))throw Ke("APPLY statements are not allowed in engine library batches");if(Mt(n.type))throw Ke("DML VALIDATE ONLY statements are not supported by runBatch")}function mE(e){let t=FS(e);return KS(t),t}function yE(e){let t=EE(e);return t.forEach(RE),t}function gE(e){let t=e.trim(),n=EE(t);n.forEach(RE);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 BS(e){let t=e.error,n=t?.cause!==void 0?ln(t.cause):new Se("EXECUTION_ERROR",t?.message??`Statement ${e.index} failed`);return ou(n,e.index,e.type)}async function $S(e,t){let n=[],r=[];try{let i=uE(t),o=di(e,i.client,i.logicalApps);r=o.logicalBindings,n=yE(o.sql);let a=await jn(o.client,p=>ef(o.sql,Yn(p),{...i.executeOptions,captureColumnMeta:!0})),s=a.statements.find(p=>p.status==="error");if(s!==void 0)throw BS(s);let l=[],d=a.statements.map(p=>{let c={index:p.index,type:p.type,status:p.status};if(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;let u=ma(p.result,a.metrics);l.push(n[p.index]?.type==="EXPLAIN"?Ei(u,r):u)}return c});return{type:"batch",batch:!0,statementCount:a.statementCount,statements:d,results:l,warnings:[]}}catch(i){throw fi(ua(i,n),r)}}function hE(e){if(e===null||typeof e!="object"||e.type!=="SELECT")throw new Error("Engine returned a non-SELECT result")}async function GS(e,t){let n=[];try{let r=pu(t,"run"),i=di(e,r.client,r.logicalApps);n=i.logicalBindings;let a=mE(i.sql).type==="VALIDATE"?{...r.executeOptions,onLimitReached:"error"}:r.executeOptions,s=await jn(i.client,l=>_l(i.sql,Yn(l),{...a,captureColumnMeta:!0}));return hE(s),ma(s)}catch(r){throw fi(ln(r),n)}}async function VS(e,t){let n=[],r=[];try{let i=pu(t,"explain"),o=di(e,i.client,i.logicalApps);r=o.logicalBindings;let a=gE(o.sql);if(n=a.statements,a.legacySql!==void 0){let d=await jn(o.client,c=>_l(a.legacySql,Yn(c),i.executeOptions));hE(d);let p=Ei(d.rows.map(c=>String(c.plan??"")),r);return{type:"explain",lines:p,text:p.join(`
|
|
14
|
+
`),metrics:Ra(d.metrics)}}let s=await jn(o.client,d=>Gf(o.sql,Yn(d),void 0,"batch-explain",i.executeOptions.maxRecords,i.executeOptions.cursorMaxActive)),l=Ei(s.statements.flatMap(d=>[...s.statementCount>1?[`[${d.index+1}] ${d.type}`]:[],...d.plan]),r);return{type:"explain",lines:l,text:l.join(`
|
|
15
|
+
`),metrics:Ra()}}catch(i){throw fi(ua(i,n),r)}}var zC="3.38.0";export{Se as KsqlEngineError,SS as createReadonlyKintoneClient,VS as explainQuery,$S as runBatch,GS as runQuery,zC as version};
|