@rex0220/kintone-sql-tools 3.56.1 → 3.56.2

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.
@@ -7,11 +7,11 @@
7
7
  `&&a++,l(),a++;continue}r+=d,a++}if(i)throw new B("unterminated quoted cell.");return(r.length>0||n.length>0||o)&&l(),t}function Ch(e){let t=new Set;e.forEach((n,r)=>{if(n==="")throw new B(`CSV column ${r+1} has an empty name.`);if(t.has(n))throw new B(`CSV column name "${n}" is duplicated.`);t.add(n)})}function Ho(e,t){let n=Nh(Ph(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}`)),Ch(r),i.length===0)throw new B("CSV has no data rows.");return i.forEach((o,a)=>{if(o.length!==r.length)throw new B(`CSV row ${a+(t.hasHeader?2:1)} has ${o.length} cells; expected ${r.length}.`)}),{columns:r,rows:i}}var Oh=new Set(["CHECK_BOX","MULTI_SELECT","USER_SELECT","ORGANIZATION_SELECT","GROUP_SELECT"]),Lh=new Set(["USER_SELECT","ORGANIZATION_SELECT","GROUP_SELECT"]),qr=class extends Error{constructor(){super("multiple-value CSV cell contains an empty LF-delimited item");this.code="ERR_IMPORT_MULTI_EMPTY_ITEM";this.name="ImportCsvValueError"}};function Yd(e,t,n){if(!Oh.has(t??""))return e;if(e==="")return[];let r=e.split(/\r\n|\n/);if(r.some(i=>i===""))throw new qr;return Lh.has(t??"")?r.map(i=>({code:i})):r}function gt(e,t,n,r){throw new B(`JSON ${e} (offset=${t}, line=${n}, column=${r}).`)}function jd(e){try{return new TextDecoder("utf-8",{fatal:!0}).decode(e)}catch{throw new B("JSON source is not valid UTF-8.")}}function zd(e){let t=[],n=0,r=1,i=1,o=()=>{let s=e[n++];return s===`
8
8
  `?(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===`
9
9
  `){o();continue}let l=a();if("{}[]:,".includes(s)){o(),t.push({kind:"punct",value:s,...l});continue}if(s==='"'){o();let p="",f=!1;for(;n<e.length;){let E=o();if(E==='"'){f=!0;break}if(E.charCodeAt(0)<32&&gt("string contains an unescaped control character",l.offset,l.line,l.column),E!=="\\"){p+=E;continue}n>=e.length&&gt("string has an unterminated escape",l.offset,l.line,l.column);let R=o(),g={'"':'"',"\\":"\\","/":"/",b:"\b",f:"\f",n:`
10
- `,r:"\r",t:" "};if(R in g){p+=g[R];continue}R!=="u"&&gt(`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)||gt("has invalid unicode escape",n,r,i);for(let h=0;h<4;h++)o();let m=Number.parseInt(y,16);if(m>=55296&&m<=56319){(e.slice(n,n+2)!=="\\u"||!/^[0-9a-fA-F]{4}$/.test(e.slice(n+2,n+6)))&&gt("has an unpaired high surrogate",n,r,i),o(),o();let h=e.slice(n,n+4);for(let I=0;I<4;I++)o();let S=Number.parseInt(h,16);(S<56320||S>57343)&&gt("has an invalid surrogate pair",n-4,r,Math.max(1,i-4)),p+=String.fromCodePoint(65536+(m-55296<<10)+S-56320)}else m>=56320&&m<=57343?gt("has an unpaired low surrogate",n-4,r,Math.max(1,i-4)):p+=String.fromCharCode(m)}f||gt("string is unterminated",l.offset,l.line,l.column),t.push({kind:"string",value:p,...l});continue}let d=e.slice(n),c=/^-?(?:0|[1-9]\d*)(?:\.\d+)?(?:[eE][+-]?\d+)?/.exec(d)?.[0];if(c){for(let p=0;p<c.length;p++)o();t.push({kind:"number",lexeme:c,...l});continue}let u=/^(true|false|null)/.exec(d)?.[0];if(u){for(let p=0;p<u.length;p++)o();t.push({kind:"literal",value:u==="true"?!0:u==="false"?!1:null,...l});continue}gt(`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 Yo(e){return e.kind==="eof"?"end of input":e.kind==="punct"?e.value:e.kind}function jo(e){if(e.byteLength===0)throw new B("JSON source is empty.");let t=zd(jd(e)),n=0,r=(d,c=t[n])=>{throw new B(`JSON ${d} (offset=${c.offset}, line=${c.line}, column=${c.column}).`)},i=(d,c)=>d.kind==="punct"&&d.value===c,o=d=>{let c=t[n];(c.kind!=="punct"||c.value!==d)&&r(`expected ${d}; found ${Yo(c)}`,c),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 c=new Map;if(i(t[n],"}"))return n++,c;for(;;){let u=t[n++];if(u.kind!=="string")return r(`object key must be a string; found ${Yo(u)}`,u);let p=u.value;c.has(p)&&r(`duplicate key ${JSON.stringify(p)}`,u),o(":"),c.set(p,a());let f=t[n];if(i(f,"}")){n++;break}o(",")}return c}if(d.kind==="punct"&&d.value==="["){let c=[];if(i(t[n],"]"))return n++,c;for(;;){c.push(a());let u=t[n];if(i(u,"]")){n++;break}o(",")}return c}return r(`expected a value; found ${Yo(d)}`,d)},s=a();t[n].kind!=="eof"&&r(`has trailing data; found ${Yo(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 B("JSON source contains no records.");return l.forEach((d,c)=>{if(!(d instanceof Map))throw new B(`JSON record ${c+1} must be an object.`)}),l}var _h=new Set(["CHECK_BOX","MULTI_SELECT"]),qd=new Set(["USER_SELECT","ORGANIZATION_SELECT","GROUP_SELECT"]);function it(e,t,n){throw new B(`JSON field validation failed (row=${e}, field=${t}): ${n}`)}function Dh(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)&&!(e instanceof Map)&&e.kind==="number"}function vh(e,t,n){if(e===null)return"";if(typeof e=="string")return e;if(typeof e=="boolean"&&it(n,t.code,"boolean is not accepted."),Dh(e)){t.fieldType==="NUMBER"&&it(n,t.code,"precision target requires a JSON string."),(!/^-?(?:0|[1-9]\d*)$/.test(e.lexeme)||e.lexeme==="-0")&&it(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)||it(n,t.code,`JSON number ${e.lexeme} is outside the safe integer range.`),String(i)}e instanceof Map&&it(n,t.code,"object is not accepted for a flat field."),Array.isArray(e)||it(n,t.code,"unsupported value type."),!_h.has(t.fieldType)&&!qd.has(t.fieldType)&&it(n,t.code,"array is accepted only for multi-value fields.");let r=e.map(i=>(typeof i!="string"&&it(n,t.code,"array elements must be strings."),i));return new Set(r).size!==r.length&&it(n,t.code,"array elements must not contain duplicates."),qd.has(t.fieldType)?JSON.stringify(r.map(i=>({code:i}))):JSON.stringify(r)}function ll(e,t,n,r){if(t.encoding&&t.encoding!=="utf8")throw new B("JSON source is UTF-8 only.");let i=jo(t.bytes);if(i.length>r)throw new B(`source rows (${i.length}) exceed maxRecords (${r}).`);let o=new Map(n.map(l=>[l.code,l]));if(o.size!==n.length)throw new B("JSON target fields contain duplicates.");let a=[],s=[];return i.forEach((l,d)=>{for(let p of l.keys())o.has(p)||it(d+1,p,"unknown key (not declared in INTO).");let c={},u=new Set;for(let p of n)l.has(p.code)&&(u.add(p.code),c[p.code]=vh(l.get(p.code),p,d+1));a.push(c),s.push(u)}),{rows:a,columns:n.map(l=>l.code),columnMeta:new Map(n.map(l=>[l.code,{fieldType:l.fieldType}])),importPresence:s}}function ul(e,t,n,r,i,o){let a=Ho(t.bytes,{encoding:e.encoding??t.encoding??"utf8",hasHeader:e.hasHeader,columns:e.columns});if(a.rows.length>n)throw new B(`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 B("ERR_IMPORT_HEADER_REUSED: a BY NAME header cannot be consumed more than once.");let l=new Map(a.columns.map((y,m)=>[y,m]));for(let y of r)if(!l.has(y))throw new B(`ERR_IMPORT_MISSING_COLUMN: required header "${y}" is missing.`);let d=new Map(i.map(y=>[y.code,y])),c=new Set(r);if(o&&c.has(o))throw new B("ERR_IMPORT_HEADER_REUSED: record-number source header is lookup-only and cannot be a write target.");if(o&&!l.has(o))throw new B(`ERR_IMPORT_MISSING_COLUMN: required header "${o}" is missing.`);let u=[],p=[],f=y=>a.rows.filter(m=>m[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,m]of a.columns.entries()){if(c.has(m)||m===o)continue;let h=d.get(m);if(h)u.push({column:m,reason:E(h),nonEmptyCells:f(y)});else if(e.ignoreUnknownColumns)p.push({column:m,reason:"unknown column ignored by explicit policy",nonEmptyCells:f(y)});else throw new B(`ERR_IMPORT_UNKNOWN_COLUMN: unknown CSV header "${m}".`)}for(let y of r){let m=d.get(y);if(!m)throw new Error(`ArgumentError: DML target field ${y} does not exist.`);if(m.inSubtable||m.writable===!1||m.fieldType==="FILE"||m.fieldType==="SUBTABLE")throw new Error(`ArgumentError: DML target field ${y} is not writable (${m.fieldType}).`)}let R=[];return{rows:a.rows.map(y=>{let m=[],h={};for(let S of r){let I=y[l.get(S)];try{h[S]=Yd(I,d.get(S)?.fieldType,{cliKintone:!0})}catch(w){if(!(w instanceof qr))throw w;h[S]=I,m.push({field:S,code:w.code,message:w.message})}}return R.push(m),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:u,ignoredUnknownColumns:p}}}return{rows:a.rows.map(l=>Object.fromEntries(a.columns.map((d,c)=>[d,l[c]]))),columns:a.columns,columnMeta:new Map(a.columns.map(l=>[l,{fieldType:"SINGLE_LINE_TEXT"}]))}}var Xr=(e,t,n)=>{throw new B(`JSON subtable validation failed (parentRow=${e}, field=${t}): ${n}`)};function Xd(e,t,n,r,i=r){if(t.encoding&&t.encoding!=="utf8")throw new B("JSON source is UTF-8 only.");let o=jo(t.bytes);if(o.length>r)throw new B(`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 B("IMPORT targets contain duplicates.");let s=0;return{records:o.map((l,d)=>{let c=d+1;for(let E of l.keys())a.has(E)||Xr(c,E,"unknown key (not declared in INTO).");let u=new Map,p=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 g=l.get(R);if(E.kind==="FIELD"){g instanceof Map&&Xr(c,R,"object is not accepted for a top-level field."),u.set(R,g);continue}Array.isArray(g)||Xr(c,R,"subtable value must be an array."),f.add(R);let y=new Set(E.children),m=g.map((h,S)=>{h instanceof Map||Xr(c,R,`childRow=${S+1} must be an object.`);let I=h;for(let w of I.keys())y.has(w)||Xr(c,w,`unknown child key in subtable ${R} at childRow=${S+1}.`);if(s++,s>i)throw new B(`source child rows (${s}) exceed limit (${i}).`);return{childRowNumber:S+1,values:I}});p.set(R,m)}return{rowNumber:c,top:u,subtables:p,replacementTables:f}})}}function Jd(e,t,n,r,i,o){let a=Ho(t.bytes,{encoding:e.encoding??t.encoding??"utf8",hasHeader:e.hasHeader,columns:e.columns});if(!e.hasHeader||a.columns[0]!=="*")throw new B('ERR_IMPORT_MARKER: first CSV header must be "*".');let s=new Map(a.columns.map((p,f)=>[p,f]));if(o&&!s.has(o))throw new B(`ERR_IMPORT_MISSING_COLUMN: required header "${o}" is missing.`);let l=n.filter(p=>p.kind==="FIELD"),d=n.filter(p=>p.kind==="SUBTABLE");for(let p of l)if(!s.has(p.field))throw new B(`ERR_IMPORT_MISSING_COLUMN: required header "${p.field}" is missing.`);for(let p of d){if(!p.rowIdSourceHeader||!s.has(p.rowIdSourceHeader))throw new B(`ERR_IMPORT_MISSING_COLUMN: row-ID header for ${p.subtableCode} is missing.`);for(let f of p.children)if(!s.has(f))throw new B(`ERR_IMPORT_MISSING_COLUMN: required child header "${f}" is missing.`)}let c=[],u;if(a.rows.forEach((p,f)=>{let E=f+2,R=p[0];if(R!==""&&R!=="*")throw new B(`ERR_IMPORT_MARKER: invalid marker ${JSON.stringify(R)} at source row ${E}.`);if(R==="*"){if(c.length>=i)throw new B(`source parent rows exceed maxRecords (${i}).`);u={rowNumber:c.length+1,markerRowNumber:E,top:new Map(l.map(g=>[g.field,p[s.get(g.field)]])),subtables:new Map(d.map(g=>[g.subtableCode,[]])),replacementTables:new Set(r),...o?{recordNumberSourceValue:p[s.get(o)]}:{}},c.push(u)}else if(u){for(let g of l){let y=p[s.get(g.field)];if(y!==""&&y!==u.top.get(g.field))throw new B(`ERR_IMPORT_PARENT_VALUE_ON_CONTINUATION: ${g.field} at source row ${E}.`)}if(o){let g=p[s.get(o)];if(g!==""&&g!==u.recordNumberSourceValue)throw new B(`ERR_IMPORT_PARENT_VALUE_ON_CONTINUATION: ${o} at source row ${E}.`)}}else throw new B(`ERR_IMPORT_MARKER: first data row must start a parent (source row ${E}).`);for(let g of d){let y=p[s.get(g.rowIdSourceHeader)],m=new Map(g.children.map(S=>[S,p[s.get(S)]]));if(y===""&&[...m.values()].every(S=>S===""))continue;let h=u.subtables.get(g.subtableCode);h.push({childRowNumber:h.length+1,sourceRowNumber:E,...y?{rowId:y}:{},values:m})}}),c.length===0)throw new B("CSV has no parent rows.");return{records:c}}var Uh=new Set(["USER_SELECT","ORGANIZATION_SELECT","GROUP_SELECT"]),kh=new Set(["SUBTABLE","FILE","CALC","RECORD_NUMBER","CREATOR","CREATED_TIME","MODIFIER","UPDATED_TIME","STATUS","STATUS_ASSIGNEE","CATEGORY","REFERENCE_TABLE"]);function dl(e,t){if(t!=null&&e.invalidParentRows.size>t)throw new Error(`RejectLimitExceededError: rejected parents (${e.invalidParentRows.size}) exceed REJECT LIMIT (${t}).`)}function tf(e,t,n,r,i){let o=new Map(n.filter(p=>!p.inSubtable).map(p=>[p.code,p])),a=new Map;for(let p of n)if(p.inSubtable&&p.subtableCode){let f=a.get(p.subtableCode);f||a.set(p.subtableCode,f=new Map),f.set(p.code,p)}let s=t.filter(p=>p.kind==="FIELD"),l=t.filter(p=>p.kind==="SUBTABLE");for(let p of s)Qd(p.field,o.get(p.field),void 0);for(let p of l){let f=o.get(p.subtableCode);if(!f||f.fieldType!=="SUBTABLE")throw new Error(`ArgumentError: IMPORT subtable ${p.subtableCode} does not exist.`);let E=a.get(p.subtableCode)??new Map;for(let R of p.children)Qd(R,E.get(R),p.subtableCode)}let d=new Map(l.map(p=>[p.subtableCode,{parentsPresent:0,childRows:0,validChildRows:0,invalidChildRows:0}])),c=e.records.map(p=>Mh(p,s,l,o,a,r,i,d)),u=c.flatMap(p=>[...p.errors]);return{parents:c,errors:u,invalidParentRows:new Set(c.filter(p=>!p.valid).map(p=>p.parentRow)),tableCounts:d}}function Mh(e,t,n,r,i,o,a,s){let l=[],d={};for(let p of t)e.top.has(p.field)&&pl(e.top.get(p.field),r.get(p.field),o,d,p.field,l,cl(e,a,p.field));let c={};if(a==="INSERT")for(let p of r.values())p.fieldType==="SUBTABLE"||p.writable===!1||e.top.has(p.code)||Zd(p,o,c,l,cl(e,a,p.code));let u=new Map;for(let p of n){if(!e.subtables.has(p.subtableCode))continue;let f=s.get(p.subtableCode);f.parentsPresent++;let E=[];for(let R of e.subtables.get(p.subtableCode)){f.childRows++;let g=l.length,y={},m=i.get(p.subtableCode);for(let h of p.children){let S=m.get(h),I=cl(e,a,h,p.subtableCode,R.childRowNumber,R.sourceRowNumber??e.markerRowNumber);R.values.has(h)?pl(R.values.get(h),S,o,y,h,l,I):Zd(S,o,y,l,I)}l.length===g?(f.validChildRows++,E.push(y)):f.invalidChildRows++}u.set(p.subtableCode,E)}return{parentRow:e.rowNumber,valid:l.length===0,top:d,subtables:u,replacementTables:e.replacementTables,errors:l}}function Qd(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&&kh.has(t.fieldType))throw new Error(`ArgumentError: IMPORT ${n?`child ${n}.${e}`:`field ${e}`} is not writable (${t.fieldType}).`)}function Zd(e,t,n,r,i){let o=Yt(e.defaultValue)?"":e.defaultValue;pl(o,e,t,n,e.code,r,i,!Yt(e.defaultValue))}function pl(e,t,n,r,i,o,a,s=!1){let l=Fh(e),d=Oe(l,t,n);d.ok?r[i]={value:xh(l,t)?l:d.value}:o.push({...a,code:d.code,message:s?`\u65E2\u5B9A\u5024: ${d.message}`:d.message})}function Fh(e){return ef(e)?e.lexeme:Array.isArray(e)?e.map(t=>t instanceof Map?t:ef(t)?t.lexeme:t):e}function ef(e){return typeof e=="object"&&e!==null&&e.kind==="number"}function xh(e,t){return Uh.has(t.fieldType)&&Array.isArray(e)&&e.every(n=>typeof n=="object"&&n!==null&&"code"in n)}function cl(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 fl=["$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?"":Kh(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 Kh(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 Rl(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 nf(e,t){return Rl(e,t,"DROP")}function rf(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 of(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 c=a?.record[l]?.value,u=Array.isArray(c)?c.length:0;return{table:l,existingRows:u,inputRows:d.length,addRows:d.length,deleteRows:u}});return{parentRow:r.parentRow,mode:o===void 0?"INSERT":"UPDATE",...o===void 0?{}:{targetId:o,revision:a?.revision},top:r.top,subtables:r.subtables,tables:s}})}function Bh(e,t){let n=e[t]?.value;return Array.isArray(n)?n:[]}function af(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 sf(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),c=[...o.errors];if(!d||l===void 0)return{parentRow:o.parentRow,targetId:l??0,valid:!1,top:o.top,subtables:new Map,tables:[],errors:c};let u=new Map,p=[];for(let f of o.replacementTables){let E=Bh(d.record,f),R=new Set(E.map(w=>w.id).filter(w=>!!w)),g=s.subtables.get(f)??[],y=o.subtables.get(f)??[],m=0,h=0,S=0,I=g.map((w,N)=>{let b=y[N]??{};return w.rowId&&R.has(w.rowId)?(m++,{rowId:w.rowId,record:b}):(w.rowId&&((i.get(w.rowId)??[]).some(C=>C.parentId!==l||C.table!==f)&&c.push({operation:"UPDATE",parentRow:o.parentRow,field:w.rowId,subtable:f,subrow:w.childRowNumber,sourceRow:w.sourceRowNumber,code:"ERR_IMPORT_FIELD_OWNERSHIP",message:`rowIdOwnedElsewhere: ${w.rowId}`,sourceValues:w.values}),S++),h++,{record:b})});u.set(f,I),p.push({table:f,existingRows:E.length,inputRows:g.length,updateRows:m,addRows:h,deleteRows:E.length-m,rowIdNotFound:S})}return{parentRow:o.parentRow,targetId:l,...d.revision===void 0?{}:{revision:d.revision},valid:c.length===0,top:o.top,subtables:u,tables:p,errors:c}})}var gl="#__import_source";function lf(e){return{...e,from:{appId:0,alias:null,cteName:gl}}}function Gh(e){return/^[0-9]+$/.test(e)?e.replace(/^0+(?=\d)/,""):null}function yl(e,t){let n=e.map(Gh),r=new Set;for(let i of n)if(i!==null){if(r.has(i))throw new Error("ERR_RECORD_NUMBER_DUP_SOURCE: source contains a duplicate record number");r.add(i)}return{normalized:n,errors:n.map(i=>i===null?[{field:t,code:"ERR_RECORD_NUMBER_INVALID",message:`${t} must be a non-empty ASCII decimal record number`}]:[])}}var $h="\u691C\u7D22\u304C 10 \u4E07\u4EF6\u3067\u6253\u3061\u5207\u3089\u308C\u3001\u7D50\u679C\u304C\u6B20\u843D\u3057\u305F\u53EF\u80FD\u6027\u304C\u3042\u308A\u307E\u3059\u3002",on=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"}},pe=new WeakMap;function Nf(e){return pe.get(e)}var pn=new WeakMap,fa=new WeakMap,uf=new WeakMap,Vh=1,Wh=1;function Cf(e,t){if(t)return t;let n=uf.get(e);return n||(n=`client:${Vh++}`,uf.set(e,n)),n}function Yl(e){return`${e}\0inv:${Wh++}`}async function jl(e,t,n={}){let r=Date.now(),i=Yl(Cf(t,n.cacheContext));try{let o=kS(e,n.enableImport===!0),a=Of(),s=_f(t,a),l={aborted:!1},d=ql(s,l,!Yh(o)||Ms(o)),c=await Il(o,d,n,i);a.elapsedMs=Date.now()-r;let u={...Df(c,l),metrics:a};if(c.type==="SELECT"){let p=pe.get(c);p&&pe.set(u,p)}return u}finally{fu(i)}}function Of(){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 Lf=Symbol("limitMetricsSink");function zl(e,t){let n=e[Lf];n&&(n.limitReached=!0,n.limitReachedApps.includes(t)||n.limitReachedApps.push(t))}function _f(e,t){return{[Lf]: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 cf=Symbol("searchAbortFailClosed");function ql(e,t,n){return n&&e[cf]?e:{...e,...n?{[cf]:!0}:{},getRecords:async r=>{let i=await e.getRecords(r);if(i.searchAborted&&(t.aborted=!0,n))throw new on;return i}}}function Hh(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 Yh(e){return e.type==="SELECT"||e.type==="UNION"||e.type==="WITH"}function Df(e,t){if(!t.aborted||e.type!=="SELECT")return e;let n=new Set(e.warnings??[]);return n.add($h),{...e,warnings:[...n]}}async function pf(e,t,n){let r=await pi(e,t,n);return al(r),r}async function pi(e,t,n){return Wd(e,{select:async r=>{let{resolver:i}=await tn(r,t,n);return he(r.where,i)},dml:r=>Vf(r,t,n),prefilterDecomposition:async r=>{if(r.where===null)return null;let{resolver:i}=await tn(r,t,n);return sl(r,i)},joinServerFunctionPlan:async r=>{await tn(r,t,n);let i=await ga(r,t,n),o=Ra(r,i);return o===null?null:(Bn(o.joinPlan)&&ou.set(r,o),o.joinPlan)}})}async function Il(e,t,n,r){let i=await pi(e,t,r);e.type!=="EXPLAIN"&&al(i);let o=bl(e);if(o!==null&&!pS(e))throw new Error(`ParseError: variable @${o} is not defined in a batch.`);if(Sn("phase15b",e),vi("phase15b",e),We(e),e.type!=="EXPLAIN"&&await aA(e,t,r),e.type==="IMPORT")return dE(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 Gl(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 Ru(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 jh(e,t,n,r);case"SELECT":return Ft(Ll(e),t,n,r,void 0,n.captureColumnMeta===!0,n.captureColumnMeta===!0);case"UNION":return nE(e,t,n,r,n.captureColumnMeta===!0,n.captureColumnMeta===!0);case"WITH":return pu(e,t,n,r,void 0,n.captureColumnMeta===!0);case"INSERT":return oS(e,t,n,r);case"INSERT_SELECT":return hu(e,t,n,r);case"UPSERT":return wS(e,t,n,r);case"UPSERT_SELECT":return Tu(e,t,n,r);case"UPDATE":return Gl(e,t,n,r);case"DELETE":return IS(e,t,n,r);case"REORDER":return LS(e,t,n,r);case"SHOW_APPS":return yE(t);case"DESCRIBE":return mE(e,t,r);case"EXPLAIN":return KS(e,t,r,n.maxRecords??1e4,n.cursorMaxActive??2,e.query.type==="UPDATE"&&e.query.applyBlocks?.length?Ge(n.dmlMaxRows,"dmlMaxRows",St):St,e.query.type==="UPDATE"&&e.query.applyBlocks?.length?Ge(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 Ff(e,t,n,r)}}var Xl=["$id","$err_field","$err_code","$err_message","$err_value","$err_subtable","$err_subrow","$err_subrow_id","$err_count"],Jl=["$id","$err_subtable","$err_field","$err_code","$err_count"];function Ql(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 vf(e=!1){let t=e?Jl:Xl;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:x(n==="$id"||n==="$err_count"?"number":"string")}]))}async function jh(e,t,n,r){if(e.errorTable)throw new Error("ArgumentError: VALIDATE INTO requires a batch.");return Uf(e,t,n,r)}async function Uf(e,t,n,r){let i=await te(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=Os(e,i),l=new Set(s.flatMap(O=>Ns(O.field))),d={present:Ps.filter(O=>l.has(O)),absent:Ps.filter(O=>!l.has(O))},c=e.checkGroups??[],u=Dn(c);for(let O of u){if(O.field!=="$id"&&!o.has(O.field)&&!a.has(O.field))throw me(`CHECK \u306E\u30D5\u30A3\u30FC\u30EB\u30C9 ${O.field} \u306F APP${e.appId} \u306B\u5B58\u5728\u3057\u307E\u305B\u3093`);if(O.field!=="$id"&&!o.has(O.field)&&a.has(O.field))throw new Error(`ArgumentError: VALIDATE \u306E CHECK \u3067\u306F\u30B5\u30D6\u30C6\u30FC\u30D6\u30EB\u5B50\u30D5\u30A3\u30FC\u30EB\u30C9 ${O.field} \u3092\u53C2\u7167\u3067\u304D\u307E\u305B\u3093\u3002`)}let p=new Map([...o].map(([O,K])=>[O,K.fieldType]));p.set("$id","RECORD_NUMBER"),cn(e,p);let f=Ql(e.where),E=[...new Set(["$id",...s.map(O=>O.subtableCode??O.field.code),...f,...u.map(O=>O.field)])];for(let O of f){if(O!=="$id"&&!o.has(O)&&!a.has(O))throw new Error(`ArgumentError: WHERE field ${O} does not exist in APP${e.appId}.`);if(O!=="$id"&&!o.has(O)&&a.has(O))throw new Error(`ArgumentError: VALIDATE \u306E WHERE \u3067\u306F\u30B5\u30D6\u30C6\u30FC\u30D6\u30EB\u5B50\u30D5\u30A3\u30FC\u30EB\u30C9 ${O} \u3092\u53C2\u7167\u3067\u304D\u307E\u305B\u3093\u3002`)}let R=s.some(O=>O.field.fieldType==="NUMBER")?await st(e.appId,t,r):void 0,g=O=>O.field==="$id"?Z({fieldType:"__ID__"}):o.get(O.field)?.semantics??(o.has(O.field)?Z(o.get(O.field)):void 0),y=he(e.where,g);if(y.capability==="UNSUPPORTED")throw new Error(`ArgumentError: WHERE predicate is unsupported (${nn(y)}).`);let m=new Map([...o].map(([O,K])=>[O,K.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:Pn(e.where,{allowUnqualifiedFields:!0,fieldTypes:m,fieldOptions:h,allowKlike:!1}),I=S===null?"":V(S),N=(await be(t.getRecords,e.appId,I,E,{maxRecords:n.maxRecords??1e4,parallel:n.fetchParallel??1,onLimit:"error"})).map(O=>({id:String(O.$id?.value??""),record:O,flat:Rt(O,null)})).filter(O=>e.where===null||ne(e.where,O.flat,K=>p.get(K.field))),b=[],D=new Map,C=new Map,_=new Set,U=0,L=O=>{if(_.add(O.id),U+=1,e.summary){let q=JSON.stringify([O.id,O.subtable??"",O.field,O.code]),k=C.get(q);k?k.$err_count=String(Number(k.$err_count)+1):C.set(q,{$id:O.id,$err_subtable:O.subtable??"",$err_field:O.field,$err_code:O.code,$err_count:"1"});return}let K=JSON.stringify([O.id,O.subtable??"",O.field,O.code,O.message]),j=D.get(K);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??""}`)):D.set(K,{$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"})},v=s.filter(O=>!O.subtableCode),A=new Map;for(let O of s){if(!O.subtableCode)continue;let K=A.get(O.subtableCode)??[];K.push(O),A.set(O.subtableCode,K)}for(let O of N){for(let K of v){let j=O.record[K.field.code]?.value,q=Oe(j,K.field,R);q.ok||L({id:O.id,field:K.field.code,code:q.code,message:q.message,value:Pr(j,K.field.fieldType)})}for(let[K,j]of A){let q=O.record[K]?.value;if(Array.isArray(q))for(let k=0;k<q.length;k++){let $=q[k];for(let X of j){let G=$.value?.[X.field.code]?.value,F=Oe(G,X.field,R);if(!F.ok){let de=yo(K,k,$);L({id:O.id,field:X.field.code,code:F.code,message:F.message,value:Pr(G,X.field.fieldType),...de})}}}}for(let K of ro(c,O.flat,j=>p.get(j.field)))L({id:O.id,field:"",code:"ERR_CHECK",message:K.message,value:""})}if(e.summary)b.push(...C.values());else for(let O of D.values()){let K=Number(O.$err_count);O.$err_subtable!==""&&K>=2&&(O.$err_message=`${O.$err_message}\uFF08${K}\u884C: ${O.$err_subrow}\uFF09`),b.push(O)}let M={type:"SELECT",columns:[...e.summary?Jl:Xl],rows:b,rowCount:b.length,validateStats:{errorRecords:_.size,errorCount:U,constraintMetadata:d}};return pe.set(M,vf(e.summary===!0)),M}var Ke=1e4;function at(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])||!zh(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 zh(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||!Ji(i.semantics,r.semantics))return!1}return!0}var $n=class extends Error{constructor(){super("TimeoutError: batch timeout exceeded.")}};async function kf(e,t,n={}){let r=Zl(e,n.enableImport===!0),i=Za(r);if(r.forEach(f=>vi("phase15b",f)),n.allowApplyMutation!==!0&&r.some(f=>xa(f)||f.type==="UPSERT"&&qh(f)))throw new Error("UnsupportedError: APPLY mutation requires allowApplyMutation=true");let o=ks(r,n.variables),a=Mf(r,o),s={...n,variables:o};if(n.continueOnError&&i.containsDml)throw new Error("ArgumentError: continueOnError is not allowed for batches containing DML.");for(let f of i.statements){if(!f.isDml||f.tempTablesReferenced.length===0||f.statementType==="INSERT_SELECT"||f.statementType==="UPSERT_SELECT")continue;let E=r[f.index];if(!(E?.type==="UPDATE"&&E.from?.cteName!=null))throw new Q(`ArgumentError: temp table references in ${f.statementType} are not supported yet.`,f.index)}let l=Of(),d=_f(t,l),c=Date.now(),u=n.timeoutMs!=null?c+n.timeoutMs:null,p=Yl(Cf(t,n.cacheContext));try{let f=new Map,E=new Map,R=[],g=new Set,y=null;for(let m=0;m<r.length;m++){let h=i.statements[m],S={index:m,type:h.statementType};if(y){R.push({...S,status:"skipped",skippedReason:y}),g.add(m);continue}let I=h.dependsOn.find(w=>g.has(w));if(I!==void 0){let w=i.statements[I].tempTablesCreated[0]??`statement ${I}`;R.push({...S,status:"skipped",skippedReason:`dependency: ${w}`}),g.add(m);continue}if(u!==null&&Date.now()>=u){R.push({...S,status:"skipped",skippedReason:"timeout"}),g.add(m),y="timeout";continue}try{let w=u!==null?u-Date.now():null,N=s.confirm,b=N?{...s,confirm:(L,v,A)=>N(L,v,{statementIndex:m,statementCount:r.length,statementType:h.statementType,targetAppId:h.targetAppId,...A?.importDetail?{importDetail:A.importDetail}:{},...A?.applyDetail?{applyDetail:A.applyDetail}:{},...A?.applyDiagnostic?{applyDiagnostic:A.applyDiagnostic}:{}})}:s,D={aborted:!1},C=ql(d,D,h.statementType!=="SELECT"&&h.statementType!=="UNION"&&h.statementType!=="WITH"||Ms(r[m])),_=Hh(C),U=await Qh(Xh(r[m],h,_.client,b,p,f,E,a),w,_.closeActive);U.result&&(U.result=Df(U.result,D)),R.push({...S,status:"success",...U})}catch(w){R.push({...S,status:"error",error:Zh(w),...w instanceof ai?{result:w.diagnostic}:{}}),g.add(m),w instanceof $n?y="timeout":w instanceof Wn?y="assertion":h.statementType==="SET_VARIABLE"||h.statementType==="DECLARE_VARIABLE"?y="fail-fast":n.continueOnError||(y="fail-fast")}}return l.elapsedMs=Date.now()-c,{ok:R.every(m=>m.status==="success"),statementCount:r.length,statements:R,analysis:i,metrics:l}}finally{fu(p)}}function qh(e){return e.type==="UPDATE"||e.type==="INSERT"?e.validateOnly!==!0&&!!e.applyBlocks?.length:e.type==="UPSERT"&&e.validateOnly!==!0&&!!(e.onInsertApplyBlocks?.length||e.onUpdateApplyBlocks?.length)}async function Xh(e,t,n,r,i,o,a,s){if(e.type==="SET_VARIABLE"){let d=ia(e,a);if(We(d),await pf(d,n,i),d.expr.type==="ARRAY")a.set(e.name,{type:"array",elements:d.expr.elements.map(c=>({type:"string",value:c.value}))});else if(d.expr.type==="SCALAR_SUBQUERY")try{let c=await xf(d.expr.query,n,r,i,o),u=d.expr.query.columns[0],p=u?.type==="ARITH_COL"||u?.type==="ARITH_AGG_COL"||u?.type==="WINDOW_COL"&&(u.windowKind===void 0||u.windowKind==="RANKING"||u.windowKind==="AGGREGATE"&&(u.aggFunc==="COUNT"||u.aggFunc==="SUM"||u.aggFunc==="AVG"))||u?.type==="AGGREGATE"&&(u.func==="COUNT"||u.func==="SUM"||u.func==="AVG"||u.func==="STDDEV_POP"||u.func==="STDDEV_SAMP"||u.func==="VAR_POP"||u.func==="VAR_SAMP"||u.func==="MEDIAN");if(u?.type==="AGGREGATE"&&u.func==="MODE"||u?.type==="WINDOW_COL"&&u.windowKind==="VALUE"||u?.type==="WINDOW_COL"&&u.windowKind==="AGGREGATE"&&(u.aggFunc==="MIN"||u.aggFunc==="MAX")){let E=(await la(d.expr.query,["__scalar__"],n,i,o)).get("__scalar__");p=E?.semantics?.compareMode==="number"||E?.sortKind==="number"}let f=p?Number(c):Number.NaN;a.set(e.name,p&&Number.isFinite(f)?{type:"number",value:f,raw:c}:{type:"string",value:c})}catch(c){throw c instanceof en?new Error(`ArgumentError: ${c.message}`):c}else a.set(e.name,df(d.expr));return{}}if(e.type==="DECLARE_VARIABLE"){if(e.annotation==="RELATIVE_DATE")return a.set(e.name,{type:"relative-date",value:s.get(e.name)}),{};let d=r.variables??{};if(Object.prototype.hasOwnProperty.call(d,e.name))a.set(e.name,{type:"string",value:d[e.name]});else{let c=df(e.default);a.set(e.name,{type:"string",value:c.type==="number"?c.raw??String(c.value):c.value})}return{}}let l=ia(e,a);if(Sn("phase15b",l),vi("phase15b",l),We(l),await pf(l,n,i),l.type==="VALIDATE"){let d=await Uf(l,n,{...r,onLimitReached:"error"},i);return l.errorTable&&at(o,l.errorTable,d.columns,d.rows,r.tempTableMaxRows??Ke,pe.get(d)??vf(l.summary===!0)),{result:d}}if(l.type==="IMPORT")return{result:await dE(l,n,r,i,o)};if("validateOnly"in l&&l.validateOnly===!0){let d=await Ru(l,n,{...r,onLimitReached:"error"},i,o,t.index+1);return l.validationErrorTable&&at(o,l.validationErrorTable,d.columns,d.errors,r.tempTableMaxRows??Ke,pn.get(d)??new Map),{result:d}}if("onErrorSkip"in l&&l.onErrorSkip===!0)return{result:await Kl(l,n,{...r,onLimitReached:"error"},i,o,t.index+1)};if(l.type==="CREATE_TEMP_TABLE"){let d={...r,maxRecords:r.tempTableMaxRows??Ke,onLimitReached:"error"},c=await Jh(l.query,n,d,i,o);return o.set(l.name,{rows:c.rows,columns:c.columns,columnMeta:pe.get(c)}),{tempTable:l.name,rowCount:c.rows.length}}if(e.type==="DROP_TEMP_TABLE")return o.delete(e.name),{tempTable:e.name};if(e.type==="EXPLAIN")return{result:await Il(l,n,r,i)};if(l.type==="ASSERT")return await Ff(l,n,r,i,o),{};if(t.tempTablesReferenced.length>0){if(l.type==="SELECT"||l.type==="UNION")return{result:await ht(l,n,r,o,i,r.captureColumnMeta===!0)};if(l.type==="WITH")return{result:await pu(l,n,r,i,o)};if(l.type==="INSERT_SELECT")return{result:await hu(l,n,r,i,o)};if(l.type==="UPSERT_SELECT")return{result:await Tu(l,n,r,i,o)};if(l.type==="UPDATE"&&l.from?.cteName!=null)return{result:await Gl(l,n,r,i,o)};throw new Error(`ArgumentError: temp table references in ${e.type} are not supported yet.`)}return{result:await Il(l,n,r,i)}}async function Jh(e,t,n,r,i){return e.type==="WITH"?pu(e,t,n,r,i,!0):ht(e,t,n,i,r,!0)}async function Qh(e,t,n){if(t===null)return e;if(t<=0)throw n&&await n(),e.catch(()=>{}),new $n;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 $n)})()},t)})])}catch(a){throw a instanceof $n&&e.catch(()=>{}),a}finally{r!==void 0&&clearTimeout(r)}}function Zh(e){let t;if(e instanceof tt)t={code:e.name,message:e.message,partialSuccess:e.partialSuccess};else if(e instanceof Error)t={code:(e.name!=="Error"?e.name:null)??ml(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:eA(e);t={code:typeof n.code=="string"&&n.code.length>0?n.code:ml(r),message:r}}else{let n=String(e);t={code:ml(n),message:n}}return Object.defineProperty(t,"cause",{value:e,enumerable:!1,configurable:!1,writable:!1}),t}function ml(e){return e.match(/^([A-Za-z]+Error):/)?.[1]??"Error"}function eA(e){try{return JSON.stringify(e)??String(e)}catch{return String(e)}}function Zl(e,t=!1){let n=new Lt(e).tokenize();return new _t(n,{import:t}).parseStatements()}function tA(e,t){try{let n=Zl(`DECLARE @__b111 RELATIVE_DATE = ${t}`),r=n[0];if(n.length!==1||r?.type!=="DECLARE_VARIABLE"||r.annotation!=="RELATIVE_DATE")throw new Error("token was not consumed as one RELATIVE_DATE declaration");return r.default}catch(n){let r=n instanceof Error?` ${n.message}`:"";throw new Error(`ArgumentError: RELATIVE_DATE variable @${e} requires one supported relative-date function token.${r}`)}}function Mf(e,t){let n=new Map;for(let r of e)r.type!=="DECLARE_VARIABLE"||r.annotation!=="RELATIVE_DATE"||n.set(r.name,Object.prototype.hasOwnProperty.call(t,r.name)?tA(r.name,t[r.name]):r.default);return n}function df(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:ap(e.name)};case"STRING_FUNC":return{type:"string",value:ue(e,{})};case"ARITH":{let t=le(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 ia(e,t){return wl(e,t,!1)}function wl(e,t,n){if(Array.isArray(e))return e.map(r=>wl(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(a.type==="relative-date")return a.value;if(n&&a.type!=="number"&&!(a.type==="string"&&a.placeholder===!0))throw new Error(`ArgumentError: variable @${r.name} is not numeric and cannot be used in arithmetic.`);return n&&a.type==="string"&&a.placeholder===!0?{type:"NUMBER",value:0,raw:n==="AGG_ARITH"?`@${r.name}`:a.value}:a.type==="number"?{type:"NUMBER",value:a.value,raw:n==="AGG_ARITH"?`@${r.name}`:a.raw??String(a.value)}:{type:"STRING",value:a.value}}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.`);if(a.type==="relative-date")throw new Error(`InternalError: RELATIVE_DATE variable @${r.name} reached a SELECT column.`);let s=typeof r.aliasDisplay=="string"?{aliasDisplay:r.aliasDisplay}:{};return a.type==="number"?{type:"ARITH_COL",expr:{type:"NUMBER",value:a.value,raw:a.raw??String(a.value)},alias:r.alias,...s}:{type:"LITERAL_COL",value:a.value,alias:r.alias,...s}}if(r.type==="VARIABLE_IN_LIST")return r;let i=Object.fromEntries(Object.entries(r).map(([a,s])=>[a,wl(s,t,a==="left"||a==="right"?r.type==="AGG_ARITH"?"AGG_ARITH":r.type==="ARITH"||r.type==="SCALAR_ARITH"?"ARITH":!1:!1)]));if(typeof r.aliasDisplay=="string"&&(i.aliasDisplay=r.aliasDisplay),i.type==="BINARY"){let a=i.right;if(a?.type==="VARIABLE_IN_LIST"&&typeof a.name=="string"){let s=t.get(a.name);if(s===void 0)throw new Error(`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=nA(i);if(o.type==="SELECT"&&Fe(o.where,!0)&&(o.where=null),(o.type==="UPDATE"||o.type==="DELETE"||o.type==="REORDER")&&Fe(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 Fe(e,t){return e!==null&&typeof e=="object"&&e.type==="BOOLEAN"&&(t===void 0||e.value===t)}function nA(e){if(e.type==="NOT"&&Fe(e.expr))return{type:"BOOLEAN",value:!e.expr.value};if(e.type==="GROUP"&&Fe(e.expr))return e.expr;if(e.type==="LOGICAL"){let t=e.left,n=e.right;if(e.op==="AND"){if(Fe(t,!1)||Fe(n,!1))return{type:"BOOLEAN",value:!1};if(Fe(t,!0))return n;if(Fe(n,!0))return t}else if(e.op==="OR"){if(Fe(t,!0)||Fe(n,!0))return{type:"BOOLEAN",value:!0};if(Fe(t,!1))return n;if(Fe(n,!1))return t}}return e}function bl(e){if(Array.isArray(e)){for(let t of e){let n=bl(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=bl(n);if(r!==null)return r}}return null}var Wn=class extends Error{constructor(t){super(`AssertError: ${t}`),this.name="AssertError"}},en=class extends Error{constructor(t){super(t),this.name="ScalarSubqueryError"}};async function Ff(e,t,n,r,i){let o=await zo(e.left,t,n,r,i),a=e.left.type==="NUMBER"||e.left.type==="ARITH"?x("number"):x("string");if(e.op==="BETWEEN"){if(e.low===null||e.high===null)throw new Error("ArgumentError: malformed ASSERT statement.");let l=await zo(e.low,t,n,r,i),d=await zo(e.high,t,n,r,i);if(!Wt(">=",o,l,a)||!Wt("<=",o,d,a))throw new Wn(`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 zo(e.right,t,n,r,i);if(!Wt(e.op,o,s,a))throw new Wn(`assertion failed: ${e.text} (actual: ${o}).`);return{type:"ASSERT",condition:e.text}}async function zo(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(Pl(e));case"SCALAR_SUBQUERY":try{return await xf(e.query,t,n,r,i)}catch(o){throw o instanceof en?new Wn(o.message):o}}}async function xf(e,t,n,r,i){let{query:o,probed:a}=rA(e),s=await ni(o,t,n,r,i);if(s.columns.length!==1)throw new en(`scalar subquery returned ${s.columns.length} columns (expected 1 column).`);if(s.rowCount===0)throw new en("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 en(`scalar subquery returned ${l} (expected 1 row).`)}return s.rows[0]?.[s.columns[0]]??""}function rA(e){return re(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 Pl(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=Pl(e.left),n=Pl(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 di(e,t,n,r,i=!1){let o=[e.from,...e.joins.map(p=>p.table)],a=i||nt(e.where)?[...new Set(o.filter(p=>p.cteName===null).map(p=>p.appId))]:[],s=new Map(await Promise.all(a.map(async p=>{let f=await te(p,t,n);return[p,new Map(f.map(E=>[E.code,E]))]}))),l=new Set,d=p=>{if(Array.isArray(p)){p.forEach(d);return}if(p===null||typeof p!="object")return;let f=p;if(f.type==="SELECT")return;let E=String(f.op),R=f.right,g=["=","!=","<>"].includes(E)&&R?.type==="STRING"&&R.value!=="";if(f.type==="BINARY"&&([">","<",">=","<="].includes(E)||g)){let y=f.left;y?.type==="FIELD"&&typeof y.field=="string"&&l.add(y.field)}Object.values(f).forEach(d)};d(e.where),d(e.having);for(let p of e.columns)p.type==="CASE_COL"&&d(p.expr);let c=new Map;await Promise.all([...s].map(async([p,f])=>{if(![...l].some(g=>f.get(g)?.fieldType==="STATUS"))return;let R=await Eu(p,t,n);R&&c.set(p,R)}));let u=(p,f,E)=>{if(f==="$id")return _n(Z({fieldType:"__ID__"}),p.appId,"$id");if(E&&p.subtableCode){if(f==="_rid")return x("string");if(f==="_idx"||f==="_pid")return x("number")}let R=s.get(p.appId)?.get(Ee(p,f));if(!R)return;let g=R.semantics??Z(R),y=R.fieldType==="STATUS"&&c.has(p.appId)?{...g,optionOrder:c.get(p.appId)}:g;return _n(y,p.appId,R.code)};return p=>{if(p.tableAlias!==null){if(p.tableAlias==="_p"&&e.from.subtableCode&&e.from.cteName===null)return u(e.from,p.field,!1);let E=o.find(R=>Le(R)===p.tableAlias);return E?E.cteName!==null?r?.get(E.cteName)?.columnMeta?.get(p.field)?.semantics??x("string"):u(E,p.field,!0):void 0}if(e.joins.length===0)return e.from.cteName!==null?r?.get(e.from.cteName)?.columnMeta?.get(p.field)?.semantics??x("string"):u(e.from,p.field,!0);let f=o.flatMap(E=>{let R=E.cteName!==null?r?.get(E.cteName)?.columnMeta?.get(p.field)?.semantics:u(E,p.field,!0);return R?[R]:[]});if(f.length===1)return f[0];if(!o.some(E=>Zo(E,p.field)!==void 0))return f.length>1?x("string"):void 0}}var Kf=new WeakMap;async function tn(e,t,n,r,i=!1){let o=await di(e,t,n,r,i);if(e.where===null)return{resolver:o,rewrites:[]};let a=Zp(e.where,o);return e.where=a.normalizedWhere,a.rewrites.length>0&&Kf.set(e,a.rewrites),{resolver:o,rewrites:a.rewrites}}function iA(e){return e.columns.some(t=>t.type==="WINDOW_COL"&&t.windowKind==="AGGREGATE"&&t.orderBy.length>0&&t.frame?.source==="DEFAULT")}function Bf(e){return iA(e)||e.columns.some(t=>t.type==="WINDOW_COL"&&t.windowKind==="VALUE")}function ff(e,t,n,r){return r!=="DIRECT"||e.joins.length>0||e.from.cteName!==null||e.from.subtableCode!=null?!1:t.some(i=>{if(i.key.type!=="FIELD_NAME")return!1;let o=Be(i.key.name);return o.field==="$id"||n(o)?.fieldType==="RECORD_NUMBER"})}function Ef(e,t){return e!=="DIRECT"?"\u305D\u306E\u8868\u306E\u4E2D\u3067\u4E00\u610F\u306B\u306A\u308B\u5217\uFF08\u5143\u306E\u96C6\u7D04\u306E\u30AD\u30FC\u306A\u3069\uFF09\u3092 ORDER BY \u306B\u542B\u3081\u3066\u304F\u3060\u3055\u3044\u3002\u96C6\u7D04\u7D50\u679C\u306E\u5217\u306F\u4E00\u610F\u3067\u3082\u8A3C\u660E\u3067\u304D\u306A\u3044\u305F\u3081\u3001\u3059\u3067\u306B\u4E00\u610F\u306A\u5834\u5408\u3082\u3053\u306E\u8B66\u544A\u304C\u51FA\u307E\u3059\u3002":t==="RANGE"?"ORDER BY \u306B\u30EC\u30B3\u30FC\u30C9\u756A\u53F7\u306A\u3069\u306E\u30BF\u30A4\u30D6\u30EC\u30FC\u30AF\u30AD\u30FC\u3092\u8DB3\u3057\u3066\u304F\u3060\u3055\u3044\u3002":"\u30EC\u30B3\u30FC\u30C9\u756A\u53F7\u7B49\u3092 ORDER BY \u306B\u8FFD\u52A0\u3057\u3066\u304F\u3060\u3055\u3044\u3002"}function Gf(e,t,n){let r=[];for(let i of e.columns)i.type!=="WINDOW_COL"||i.windowKind!=="AGGREGATE"||i.orderBy.length===0||i.frame?.source!=="DEFAULT"||ff(e,i.orderBy,t,n)||r.push(`${i.alias} \u306F\u65E2\u5B9A\u30D5\u30EC\u30FC\u30E0\uFF08RANGE\uFF09\u3067\u8A55\u4FA1\u3055\u308C\u307E\u3059\u3002ORDER BY \u306E\u5024\u304C\u540C\u3058\u884C\u306F\u3059\u3079\u3066\u540C\u3058\u5024\u306B\u306A\u308A\u307E\u3059\u3002\u884C\u3054\u3068\u306E\u5024\u304C\u5FC5\u8981\u306A\u3089 ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW \u3092\u660E\u793A\u3059\u308B\u304B\u3001`+Ef(n,"RANGE"));for(let i of e.columns)i.type!=="WINDOW_COL"||i.windowKind!=="VALUE"||ff(e,i.orderBy,t,n)||r.push(`${i.alias} \u306E ORDER BY \u306F\u5168\u9806\u5E8F\u3067\u306A\u3044\u305F\u3081\u3001\u540C\u9806\u5185\u306E\u524D\u5F8C\u95A2\u4FC2\u306F\u672A\u898F\u5B9A\u3067\u3059\u3002`+Ef(n,"VALUE"));return r}function eu(e,t){if(t.length===0)return e;let n={...e,warnings:[...new Set([...e.warnings??[],...t])]},r=pe.get(e);return r&&pe.set(n,r),n}function tu(e){let t=n=>{if(n===null||typeof n!="object")return!1;if(Array.isArray(n))return n.some(t);let r=n;return r.type==="CASE_WHEN"&&r.branches?.some(i=>nt(i.condition))?!0:Object.values(r).some(t)};return e.columns.some(t)}function $f(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(Be(r.field)):r.type==="ARITH_COL"||r.type==="ARITH_AGG_COL"?i=x("number"):r.type==="WINDOW_COL"?r.windowKind===void 0||r.windowKind==="RANKING"||r.windowKind==="AGGREGATE"&&(r.aggFunc==="COUNT"||r.aggFunc==="SUM"||r.aggFunc==="AVG")?i=x("number"):(r.windowKind==="AGGREGATE"||r.windowKind==="VALUE")&&r.arg.type!=="WILDCARD"&&(i=sn(r.arg,o=>{let a=t(o);return a?{sortKind:a.compareMode==="number"||a.compareMode==="recordNumber"?"number":"string",fieldType:a.fieldType,semantics:a}:void 0}).semantics):r.type==="AGGREGATE"?r.func==="MIN"||r.func==="MAX"||r.func==="MODE"?r.arg.type!=="WILDCARD"&&(i=sn(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"?x("string"):x("number"):r.type==="STRFUNC_COL"?i=an(r.expr).semantics:(r.type==="LITERAL_COL"||r.type==="SCALAR_SUBQUERY_COL"||r.type==="CASE_COL"||r.type==="SCALAR_VALUE_COL")&&(i=x("string")),i&&n.set(r.alias,i)}return r=>r.tableAlias===null&&n.has(r.field)?n.get(r.field):t(r)}function nn(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 oa(e){return e.orderBy.length>0||e.columns.some(t=>t.type==="WINDOW_COL"&&t.orderBy.length>0)}async function Vf(e,t,n){if(e.subtableCode||e.type==="UPDATE"&&e.from!=null)return{capability:"LOCAL_ONLY",reasons:[{code:"WHERE_EXPRESSION_LOCAL_ONLY"}]};let r=nt(e.where)?await te(e.appId,t,n):[],i=new Map(r.map(o=>[o.code,o]));return e.where.type==="BOOLEAN"&&e.where.value===!1?he(null,()=>{}):he(e.where,o=>{if(o.field==="$id")return Z({fieldType:"__ID__"});let a=i.get(o.field);return a?.semantics??(a?Z(a):void 0)})}async function Vn(e,t,n){if(e.subtableCode||e.type==="UPDATE"&&e.from!=null)return;let r=await Vf(e,t,n);if(r.capability!=="EXACT_PUSHDOWN")throw new ee(`WHERE predicate cannot be represented by kintone REST (${nn(r)})`)}async function Ft(e,t,n,r,i,o=!1,a=!1,s="DIRECT"){let l;if(await Ea(e,t,r,i),uA(e))return l=dA(e),o&&pe.set(l,await la(e,l.columns,t,r,i,a)),l;let{resolver:d}=await tn(e,t,r,i,Bf(e)),c=Gf(e,d,s),u=await nu(e,t,r,i);await hE(e,t,n,r,i);let p=NA(e,he(e.where,d));if(p.capability==="UNSUPPORTED")throw new Error(`ArgumentError: WHERE predicate is unsupported (${nn(p)}).`);let f=Ue(e),E,R;if(p.capability==="SUPERSET_PREFILTER"){let N=await di(e,t,r,i),b=sl(e,N);b.eligible&&ol(e,b)&&(E=b.plan)}if(E===void 0&&p.capability==="EXACT_PUSHDOWN"&&e.where!==null){let N=null;try{N=V(e.where)}catch{N=null}R=Vi({select:e,selectMode:f,capability:p,context:{allowFullScanExact:!0},serializedWholeWhere:N,relativeFunctionNames:fe(e.where)})??void 0,R&&(E=R.prefilterPlan)}let g=p.capability==="EXACT_PUSHDOWN"?f:"FULL_SCAN",y=await oi(e,t,r,i),m=oa(e)?(e.orderMode==="KINTONE_NATIVE"?xr:Fr)({stmt:e,staticMode:g,whereCapability:p.capability,whereReasons:p.reasons,orderSemantics:y.semantics,maxRecords:n.maxRecords??1e4,hasKlike:ge(e.where)}):null,h=await EA(e,m?.kind==="CANONICAL_LOCAL"?"FULL_SCAN":g,t,r),S=ru(e,n,m),w=R!==void 0&&(f==="FULL_SCAN"||m?.kind==="CANONICAL_LOCAL")?ql(t,{aborted:!1},!0):t;try{g==="SIMPLE"?l=await fA(e,w,S.effectiveOptions,r,m,y):l=await LA(e,w,S.effectiveOptions,r,i,p.capability==="EXACT_PUSHDOWN"&&E===void 0,y,E,u)}catch(N){Hf(S,N)}return o&&pe.set(l,await la(e,l.columns,t,r,i,a)),eu(l,[...c,...h])}function Nl(e,t){if(t.length===1){let{appId:r,owner:i}=t[0];return`ArgumentError: ${e} \u306F\u30B5\u30D6\u30C6\u30FC\u30D6\u30EB\u300C${i}\u300D\uFF08APP${r}\uFF09\u306E\u4E2D\u306E\u9805\u76EE\u3067\u3059\u3002\u89AA\u30C6\u30FC\u30D6\u30EB\u306E GROUP BY \u306B\u306F\u6307\u5B9A\u3067\u304D\u307E\u305B\u3093\u3002APP${r}$${i} \u304B\u3089\u96C6\u8A08\u3057\u3066\u304F\u3060\u3055\u3044\uFF08\u89AA\u306E\u30EC\u30B3\u30FC\u30C9 ID \u306F _pid\u3001\u89AA\u9805\u76EE\u306F _p.<\u30D5\u30A3\u30FC\u30EB\u30C9\u30B3\u30FC\u30C9> \u306B\u306A\u308A\u307E\u3059\uFF09\u3002`}let n=t.map(({appId:r,owner:i})=>`APP${r}$${i}`).join(" / ");return`ArgumentError: ${e} \u306F\u30B5\u30D6\u30C6\u30FC\u30D6\u30EB\u306E\u4E2D\u306E\u9805\u76EE\u3067\u3059\uFF08${n}\uFF09\u3002\u89AA\u30C6\u30FC\u30D6\u30EB\u306E GROUP BY \u306B\u306F\u6307\u5B9A\u3067\u304D\u307E\u305B\u3093\u3002\u3069\u306E\u30B5\u30D6\u30C6\u30FC\u30D6\u30EB\u304B\u3089\u96C6\u8A08\u3059\u308B\u304B\u3092 FROM \u3067\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044\u3002`}function Wf(e){let t=new Set,n=[];for(let r of e){let i=`${r.appId}\0${r.owner}`;t.has(i)||(t.add(i),n.push(r))}return n}async function nu(e,t,n,r){if(e.groupBy.length===0)return;let i=[e.from,...e.joins.map(c=>c.table)],o=new Map,a=await Promise.all(i.map(async c=>{if(c.cteName!==null){let E=r?.get(c.cteName);if(!E)throw new Error(`InternalError: materialized schema ${c.cteName} is not available for GROUP BY planning.`);return{kind:"MATERIALIZED",columns:E.columns}}let u=await te(c.appId,t,n);if(!c.subtableCode){for(let E of u){if(E.inSubtable!==!0||!E.subtableCode)continue;let R=o.get(E.code)??[];R.push({appId:c.appId,owner:E.subtableCode}),o.set(E.code,Wf(R))}return{kind:"APP",fieldCodes:u.filter(E=>!E.inSubtable).map(E=>E.code)}}let p=u.filter(E=>E.inSubtable&&E.subtableCode===c.subtableCode);return{kind:"SUBTABLE",childFieldCodes:(p.length>0?p:u.filter(E=>E.inSubtable&&E.subtableCode===void 0)).map(E=>E.code),parentFieldCodes:u.filter(E=>!E.inSubtable).map(E=>E.code)}})),s=gd(e,(c,u)=>a[u]),l=e.groupBy,d=yd(l,e.columns,s);return oA(e,l,d,o),d}function oA(e,t,n,r){let i=[e.from,...e.joins.map(s=>s.table)].flatMap(s=>s.cteName===null?[s.appId]:[]),o=[...new Set(i)],a=o.length===1?o[0]:e.from.cteName===null?e.from.appId:null;n.items.forEach((s,l)=>{if(s.kind==="EXPRESSION"||s.kind==="PHYSICAL"||s.kind==="ALIAS_SAFE")return;let d=t[l],c=d?.type==="FIELD_NAME"?d.name:"(expression)";if(s.kind==="UNKNOWN"){let u=a===null?"":` (APP${a})`,p=s.name.indexOf("."),f=p>=0?s.name.slice(p+1):s.name,E=r.get(s.name)??r.get(f)??[];throw E.length>0?new Error(Nl(s.name,E)):new Error(`ArgumentError: unknown field code(s): ${s.name}${u}`)}throw s.kind==="ALIAS_REJECT"?s.reason==="DUPLICATE"?new Error(`ArgumentError: GROUP BY alias ${c} is ambiguous across multiple SELECT columns (reason=GROUP_BY_ALIAS_AMBIGUOUS).`):s.reason==="POST_GROUP_ONLY"?new Error(`ArgumentError: GROUP BY alias ${c} requires post-group evaluation (reason=GROUP_BY_ALIAS_POST_GROUP_ONLY).`):new Error(`ArgumentError: GROUP BY alias ${c} depends on aggregate evaluation (reason=GROUP_BY_ALIAS_AGGREGATE).`):new Error(`InternalError: deferred GROUP BY field ${s.name} reached runtime planning.`)})}var ii=new WeakMap;async function aA(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 sA(e,t,n,r){let i=[e.from,...e.joins.map(u=>u.table)],o=i.filter(u=>u.cteName===null),a=new Map(await Promise.all([...new Set(o.map(u=>u.appId))].map(async u=>{let p=await te(u,t,n);return[u,new Map(p.map(f=>[f.code,f]))]}))),s=(u,p)=>{if(u.subtableCode)return null;let f=a.get(u.appId)?.get(p);return f?.inSubtable===!0?f.subtableCode??"":null},l=(u,p)=>{if(p==="$id")return"$id";let f=Ee(u,p);return s(u,f)!==null?null:a.get(u.appId)?.has(f)?f:null},d=(u,p)=>{if(u.cteName===null)return!1;let f=r?.get(u.cteName);return f?f.columns.includes(p):!0},c=(u,p,f,E)=>{let R=i.filter(m=>m.cteName===null&&l(m,f.field)!==null).length,g=i.some(m=>d(m,f.field)),y=Le(u);return{canonicalId:`source:${p}:APP${u.appId}:${E}`,directKey:f.tableAlias&&y?`${f.tableAlias}.${f.field}`:f.field,unqualifiedBridgeKey:R===1&&!g?f.field:null,physical:!0}};return u=>{if(u.tableAlias!==null){let g=i.findIndex(h=>Le(h)===u.tableAlias);if(g<0)throw new Error(`ArgumentError: B65 field ${u.tableAlias}.${u.field} has an unknown table alias.`);let y=i[g];if(y.cteName!==null)throw new Error(`ArgumentError: B65 field ${u.tableAlias}.${u.field} resolves to materialized source ${y.cteName}; physical APP fields are required.`);let m=l(y,u.field);if(m===null){let h=s(y,Ee(y,u.field));throw h!==null&&h!==""?new Error(Nl(u.field,[{appId:y.appId,owner:h}])):new Error(`ArgumentError: B65 field ${u.tableAlias}.${u.field} does not exist in APP${y.appId}.`)}return c(y,g,u,m)}let p=i.flatMap((g,y)=>{if(g.cteName!==null)return[];let m=l(g,u.field);return m===null?[]:[{table:g,tableIndex:y,code:m}]}),f=i.filter(g=>d(g,u.field));if(p.length+f.length>1)throw new Error(`ArgumentError: B65 field ${u.field} is ambiguous across multiple sources.`);if(p.length===1&&f.length===0){let g=p[0];return c(g.table,g.tableIndex,u,g.code)}if(f.length===1)throw new Error(`ArgumentError: B65 field ${u.field} resolves to a materialized CTE/temp column; physical APP fields are required.`);let E=i.flatMap(g=>{if(g.cteName!==null)return[];let y=s(g,Ee(g,u.field));return y===null||y===""?[]:[{appId:g.appId,owner:y}]}),R=Wf(E);throw R.length>0?new Error(Nl(u.field,R)):new Error(`ArgumentError: B65 field ${u.field} does not exist in a physical APP source.`)}}async function Ea(e,t,n,r){ii.delete(e);let i=re(e),o=JSON.stringify(e.columns).includes('"GROUPING_')||JSON.stringify(e.orderBy).includes('"GROUPING_');if(i.type==="NONE"&&!o)return;let a=await sA(e,t,n,r),s=Ac(e,a,hc);s&&ii.set(e,s)}function lA(e){let t=[...e].join(", "),n=[["AGGREGATE_WINDOW","\u96C6\u8A08\u30A6\u30A3\u30F3\u30C9\u30A6\u306E\u6B63\u3057\u3044\u7D50\u679C"],["GROUPING_SETS","\u5C0F\u8A08\u30FB\u7DCF\u8A08\u306E\u6B63\u3057\u3044\u7D50\u679C"],["STATISTICAL_AGGREGATE","\u7D71\u8A08\u96C6\u7D04\u306E\u6B63\u3057\u3044\u7D50\u679C"],["AGGREGATE","\u96C6\u8A08\u306E\u6B63\u3057\u3044\u7D50\u679C"],["GROUP_BY","\u30B0\u30EB\u30FC\u30D7\u96C6\u8A08\u306E\u6B63\u3057\u3044\u7D50\u679C"],["DISTINCT","DISTINCT \u306E\u6B63\u3057\u3044\u7D50\u679C"]],r=n.some(([s])=>e.has(s)),i=e.has("LOCAL_ORDER")||e.has("WINDOW_ORDER"),o=e.size===1&&e.has("STATISTICAL_AGGREGATE")?"\u7D71\u8A08\u96C6\u7D04\u306E\u6B63\u3057\u3044\u7D50\u679C":e.size===1&&e.has("GROUPING_SETS")?"\u5C0F\u8A08\u30FB\u7DCF\u8A08\u306E\u6B63\u3057\u3044\u7D50\u679C":e.size===1&&e.has("AGGREGATE")?"\u96C6\u8A08\u306E\u6B63\u3057\u3044\u7D50\u679C":e.size===1&&e.has("GROUP_BY")?"\u30B0\u30EB\u30FC\u30D7\u96C6\u8A08\u306E\u6B63\u3057\u3044\u7D50\u679C":e.size===1&&e.has("DISTINCT")?"DISTINCT \u306E\u6B63\u3057\u3044\u7D50\u679C":e.has("GROUPING_SETS")?"\u30AF\u30A8\u30EA\u306E\u6B63\u3057\u3044\u7D50\u679C":"ORDER BY\u306E\u6B63\u3057\u3044\u7D50\u679C";return`${e.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 ru(e,t,n){let r=e.type==="SELECT"&&(n?.kind==="CANONICAL_REST_TOP_N"||n?.kind==="KORDER_NATIVE"||n?.kind==="KORDER_CURSOR")?Tt({...e,orderBy:[]}):Tt(e),i=r.size>0&&t.onLimitReached==="truncate";return{reasons:r,effectiveOptions:i?{...t,onLimitReached:"error"}:t,truncateWasDisabled:i}}function Hf(e,t){throw e.reasons.size>0&&t instanceof Pe&&!t.completeInputWrapped?new Pe(lA(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){Hf(e,n)}}function mt(e){return e?.type==="BOOLEAN"&&e.value===!1}function uA(e){return e.from.appId===0&&e.from.cteName===Xe}function aa(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"?aa(e.left)||aa(e.right):e.type==="STRING_FUNC"?iu(e):!1}function cA(e){return e.type==="AGG_GROUP_KEY"?!0:e.type==="VARIABLE"?!1:e.type==="AGG_REF"||e.type==="AGG_ARITH"?!0:Qr(e)}function Qr(e){return e.type==="FIELD"?!0:e.type==="STRING_FUNC"?iu(e):e.type==="SCALAR_ARITH"||e.type==="CONCAT_OP"?Qr(e.left)||Qr(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"?aa(n):n.type==="AGG_REF"||n.type==="AGG_ARITH"?!0:Qr(n))):!1}function iu(e){return e.args.some(t=>cA(t))}function pA(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(aa(t.expr))throw new Error("ArgumentError: field reference is not allowed without FROM.");break;case"STRFUNC_COL":if(iu(t.expr))throw new Error("ArgumentError: field reference is not allowed without FROM.");break;case"SCALAR_VALUE_COL":if(Qr(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 dA(e){if(e.joins.length>0||e.where||re(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.");pA(e);let t=Js([{}],e.columns),{rows:n,columns:r}=Vr(t,e.columns),i=Fo(n,e.limit,e.offset);return{type:"SELECT",rows:i,columns:r,rowCount:i.length,warnings:[]}}async function fA(e,t,n,r,i,o){let a=i?.kind==="CANONICAL_REST_TOP_N"?qf(e):e,s=Bi(a),l=i?.kind==="CANONICAL_LOCAL"?$t(e,e.from):s.fields,d=await su(e,t,r),c=uu(e,d),u=e.columns.some(b=>b.type==="CASE_COL")?await di(e,t,r,void 0,tu(e)):void 0,p=n.maxRecords??1e4,f=new Set,E=n.onLimitReached??"error",R=n.fetchParallel??1,g=e.orderBy.length>0?i?.kind==="CANONICAL_REST_TOP_N"||i?.kind==="KORDER_NATIVE"||i?.kind==="KORDER_CURSOR":e.limit!==null&&e.limit<=500,y=e.limit===null?null:(e.offset??0)+e.limit,m=e.orderBy.length===0&&y!==null&&y<=p&&!ge(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 Ed({client:t,app:s.app,fields:s.fields,query:Vs(e),offset:e.offset??0,limit:e.limit});h=b.records,b.cleanupWarning&&f.add(b.cleanupWarning)}else if(g)h=(await t.getRecords({app:s.app,query:s.query,fields:s.fields})).records;else{let b=e.where?V(e.where):"";h=await be(t.getRecords,s.app,b,l,{parallel:R,maxRecords:p,stopAfter:m,onLimit:E,onTruncate:D=>{f.add(`\u53D6\u5F97\u4E0A\u9650\uFF08${D} \u4EF6\uFF09\u306B\u9054\u3057\u305F\u305F\u3081\u3001${D} \u4EF6\u3067\u6253\u3061\u5207\u3063\u3066\u8868\u793A\u3057\u3066\u3044\u307E\u3059\u3002`),zl(t,e.from.appId)}})}let S=h.map(b=>Rt(b,null));g||(S=qs(S,e.orderBy,o.optionOrders,o.sortKinds,o.semantics,Xs(e.columns,void 0,c.row,u)),S=Fo(S,e.limit,e.offset));let{rows:I,columns:w}=Vr(S,e.columns,void 0,c.row,void 0,u),N=await du(e,I,w,t,r);return{type:"SELECT",rows:I,columns:N,rowCount:I.length,warnings:[...f]}}async function EA(e,t,n,r){let i=[],o=new Map,a=(d,c)=>{if(c.length===0)return;let u=o.get(d);u||(u=new Set,o.set(d,u));for(let p of c)u.add(p)},s=new Map,l=(d,c)=>{let u=s.get(d);u||(u=new Set,s.set(d,u));for(let p of c)u.add(p)};if(t==="SIMPLE"){let d=Bi(e);a(d.app,d.fields),e.from.subtableCode||l(d.app,d.fields)}else{let d=[e.from,...e.joins.map(c=>c.table)].filter(c=>c.cteName===null);for(let c of d){let u=$t(e,c);a(c.appId,u),c.subtableCode||l(c.appId,u)}}for(let[d,c]of o.entries()){let u=[...c].filter(g=>!Ws(g));if(u.length===0)continue;let p=await te(d,n,r);if(p.length===0)continue;let f=new Set(p.map(g=>g.code)),E=u.filter(g=>!f.has(g));if(E.length>0)throw new Error(`ArgumentError: unknown field code(s): ${E.join(", ")} (APP${d})`);let R=s.get(d);if(R){let g=p.filter(y=>y.inSubtable===!0&&R.has(y.code));for(let y of g){let m=y.subtableCode??"",h=m?`\u30B5\u30D6\u30C6\u30FC\u30D6\u30EB\u300C${m}\u300D`:"\u30B5\u30D6\u30C6\u30FC\u30D6\u30EB";i.push(`${y.code} \u306F${h}\u306E\u4E2D\u306E\u9805\u76EE\u3067\u3059\u3002APP${d} \u304B\u3089\u9078\u3076\u3068\u3001\u30A8\u30E9\u30FC\u306B\u306A\u3089\u305A\u5168\u884C\u304C\u7A7A\u306B\u306A\u308A\u307E\u3059\u3002`+(m?`APP${d}$${m} \u304B\u3089\u9078\u3093\u3067\u304F\u3060\u3055\u3044\uFF08\u89AA\u306E\u30EC\u30B3\u30FC\u30C9 ID \u306F _pid\u3001\u89AA\u9805\u76EE\u306F _p.<\u30D5\u30A3\u30FC\u30EB\u30C9\u30B3\u30FC\u30C9> \u306B\u306A\u308A\u307E\u3059\uFF09\u3002`:""))}}}return i}function Rf(e){return e.cteName??`APP${e.appId}`}function RA(e){return e.alias?[e.alias]:e.cteName!==null?[e.cteName]:[`APP${e.appId}`,`app${e.appId}`]}function gA(e,t){return Ws(t)||e.validCodes.has(t)}function hl(e,t){return e.table.cteName!==null?e.validCodes.has(t):gA(e,t)}function yA(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 mA(e,t,n,r){let i=[e.from,...e.joins.map(c=>c.table)],o=new Map,a=new Set;for(let c of i){let u=Le(c);if(u!==null){if(a.has(u))throw new Error(`ArgumentError: effective alias ${u} is used by multiple tables.`);a.add(u)}}for(let c of i){if(c.cteName===null||c.cteName===Xe)continue;let u=n.get(c.cteName);if(!u)throw new Error(`ArgumentError: materialized source ${c.cteName} is not available.`);if(u.rows.length>0&&u.columns.length===0)throw new Error(`InternalError: materialized source ${c.cteName} has rows but no column schema.`);if(e.joins.length>0&&u.rows.length===0&&u.columns.length===0)throw new Error(`ArgumentError: column schema is unavailable for materialized JOIN source ${c.cteName}.`);o.set(c,u)}let s=new Map;await Promise.all(i.map(async c=>{let u=o.get(c);if(u){s.set(c,{table:c,label:Rf(c),validCodes:new Set(u.columns),authoritative:!0,schemaUnavailable:u.rows.length===0&&u.columns.length===0});return}if(c.cteName===Xe)return;let p=await te(c.appId,t,r);s.set(c,{table:c,label:Rf(c),validCodes:new Set(p.map(f=>f.code)),authoritative:p.length>0,schemaUnavailable:!1})}));let l=new Map;for(let c of s.values())for(let u of RA(c.table))l.set(u,c);for(let c of e.joins)for(let u of[c.on.left,c.on.right]){if(!u.tableAlias)continue;let p=l.get(u.tableAlias);if(p&&p.table.cteName!==null&&!p.schemaUnavailable&&!hl(p,u.field))throw new Error(`ArgumentError: JOIN key ${u.tableAlias}.${u.field} is not available in the materialized table.`)}let d=Pc(e);for(let[c,u]of d.bySource){let p=s.get(c);if(!p||p.schemaUnavailable||!p.authoritative)continue;let f=[...u].filter(E=>!hl(p,E));if(f.length>0)throw new Error(`ArgumentError: unknown field code(s): ${f.join(", ")} (${p.label})`)}for(let c of d.unqualified){let u=[...s.values()].filter(f=>!f.schemaUnavailable);if(u.some(f=>hl(f,c))||[...s.values()].some(f=>f.schemaUnavailable)||u.some(f=>f.table.cteName===null&&!f.authoritative))continue;let p=u.map(f=>f.label).join(", ");throw new Error(`ArgumentError: unknown field code(s): ${c} (${p})`)}}async function Qo(e,t,n,r,i=new Set){if(!i.has(e)){if(i.add(e),e.type==="UNION"){await Qo(e.left,t,n,r,i),await Qo(e.right,t,n,r,i);return}await mA(e,t,n,r);for(let o of yA(e))await Qo(o,t,n,r,i)}}function Yf(e){return e.where===null||e.from.subtableCode||e.from.cteName!==null?null:e.joins.length===0?ur(e.where,{tableAlias:e.from.alias??void 0,allowUnqualifiedFields:!0}):e.from.alias?ur(e.where,{tableAlias:e.from.alias}):null}var ou=new WeakMap;function Ra(e,t){if(e.joins.length===0||e.where===null||e.joins.some(u=>u.type!=="INNER"))return null;let n=[e.from,...e.joins.map(u=>u.table)];if(n.some(u=>u.alias===null||u.cteName!==null||!!u.subtableCode))return null;let r=n.map(u=>({alias:u.alias,appId:u.appId,sourceKind:"APP",fieldTypes:new Map([...t.fieldTypesByApp.get(u.appId)??new Map,["$id","__ID__"]]),fieldOptions:t.fieldOptionsByApp.get(u.appId)})),i=ad(e.where,r),o=sd(i,r),a=new Map,s=new Map;for(let[u,p]of o.fetchQueriesByAlias)s.set(u,p);for(let u of o.items)s.has(u.targetAlias)||s.set(u.targetAlias,Kn(u,r)),a.set(u.targetAlias,u.predicate);let l=e.from.alias,d=a.get(l)??null,c=new Map(a);return c.delete(l),{joinPlan:o,queriesByAlias:s,mainCondition:d,joinConditions:c,appliedKlikes:o.appliedKlikes,allKlikes:o.allKlikes}}async function ga(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,Yf(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=ur(e.where,{tableAlias:s.table.alias});i(s.table.appId,l)}let a=await Promise.all([...r.entries()].map(async([s,l])=>{let[d,c]=await Promise.all([we(s,t,n),kA(s,t,n)]),u=hA(l).filter(p=>d.get(p)==="STATUS");if(u.length>0){let p=await ma(s,t,n);if(p.enable&&p.states&&p.states.length>0){let f=new Set(p.states.map(E=>E.name));for(let E of u)c.set(E,f)}}return[s,d,c]}));return{fieldTypesByApp:new Map(a.map(([s,l])=>[s,l])),fieldOptionsByApp:new Map(a.map(([s,,l])=>[s,l]))}}function hA(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 yt(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"&&sa(e.left.expr,t),e.right.type==="CASE_VALUE"&&sa(e.right.expr,t);return;case"LOGICAL":yt(e.left,t),yt(e.right,t);return;case"NOT":case"GROUP":yt(e.expr,t);return;case"NULL_CHECK":case"EXISTS":case"BOOLEAN":return}}function sa(e,t){for(let n of e.branches)yt(n.condition,t)}function AA(e){let t=[];yt(e.where,t),yt(e.having,t);for(let n of e.columns)n.type==="CASE_COL"&&sa(n.expr,t);return t}function Le(e){return e.alias??e.cteName}function jf(e,t){return[e.from,...e.joins.map(n=>n.table)].find(n=>Le(n)===t)}function au(e){return[e.from,...e.joins.map(t=>t.table)].filter(t=>t.cteName===null)}async function su(e,t,n){let r=AA(e);if(r.length===0)return new Map;let i=new Set,o=au(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=jf(e,s.tableAlias);l&&l.cteName===null&&i.add(l.appId);continue}if(e.joins.length===0){e.from.cteName===null&&i.add(e.from.appId);continue}for(let l of o)i.add(l.appId)}let a=await Promise.all([...i].map(async s=>[s,await we(s,t,n)]));return new Map(a)}function Be(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 lu(e,t,n){e!=="MIN"&&e!=="MAX"&&e!=="MODE"||t.type==="WILDCARD"||Jt(t,n)}function Jt(e,t){if(e.type==="FIELD_REF"){t.push(Be(e.field));return}if(e.type==="FIELD"){t.push(e);return}if(e.type==="ARITH"){Jt(e.left,t),Jt(e.right,t);return}if(e.type==="SCALAR_ARITH"||e.type==="CONCAT_OP"){Jt(e.left,t),Jt(e.right,t);return}if(e.type==="STRING_FUNC"){for(let n of e.args)n.type==="AGG_GROUP_KEY"?t.push({type:"FIELD",tableAlias:n.tableAlias??null,field:n.field}):n.type!=="AGG_REF"&&n.type!=="AGG_ARITH"&&n.type!=="VARIABLE"&&Jt(n,t);return}if(e.type==="CASE_WHEN")for(let n of[...e.branches.map(r=>r.result),...e.elseResult?[e.elseResult]:[]])n.type==="AGG_REF"||n.type==="AGG_ARITH"?Hn(n,t):n.type!=="ARRAY"&&Jt(n,t)}function Hn(e,t){if(e.type==="AGG_REF"){lu(e.func,e.arg,t);return}e.type==="AGG_ARITH"&&(Hn(e.left,t),Hn(e.right,t)),e.type==="AGG_GROUP_KEY"&&t.push({type:"FIELD",tableAlias:e.tableAlias??null,field:e.field})}function Ol(e,t){for(let n of e.args)if(n.type==="AGG_REF"||n.type==="AGG_ARITH")Hn(n,t);else if(n.type==="AGG_GROUP_KEY")t.push({type:"FIELD",tableAlias:n.tableAlias??null,field:n.field});else{if(n.type==="VARIABLE")continue;Zr(n,t)}}function Zr(e,t){if(e.type==="STRING_FUNC"){Ol(e,t);return}if(e.type==="SCALAR_ARITH"||e.type==="CONCAT_OP"){Zr(e.left,t),Zr(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"?Ol(r,t):r.type==="AGG_REF"||r.type==="AGG_ARITH"?Hn(r,t):r.type!=="ARRAY"&&r.type!=="FIELD_REF"&&r.type!=="ARITH"&&Zr(r,t)}}function SA(e,t){let n=r=>{if(r===null||typeof r!="object")return;if(Array.isArray(r)){r.forEach(n);return}let i=r;if(i.type==="AGG_REF"){let o=i;lu(o.func,o.arg,t);return}i.type==="SELECT"||i.type==="SCALAR_SUBQUERY"||Object.values(i).forEach(n)};n(e)}function TA(e){let t=[];for(let n of e)n.type==="AGGREGATE"?lu(n.func,n.arg,t):n.type==="ARITH_AGG_COL"?Hn(n.expr,t):n.type==="STRFUNC_COL"?Ol(n.expr,t):n.type==="SCALAR_VALUE_COL"?Zr(n.expr,t):n.type==="CASE_COL"&&SA(n.expr,t);return t}var IA=new Set(["SINGLE_LINE_TEXT","MULTI_LINE_TEXT","RICH_TEXT","LINK","DROP_DOWN","RADIO_BUTTON","STATUS","DATE","TIME","DATETIME","CREATED_TIME","UPDATED_TIME"]);function wA(e){return e.sortKind!==void 0?e.sortKind:e.fieldType==="NUMBER"||e.fieldType==="RECORD_NUMBER"?"number":IA.has(e.fieldType)?"string":void 0}async function zf(e,t,n,r){let i=TA(e.columns);if(i.length===0)return;let o=new Set,a=au(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=jf(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 te(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(g=>E.get(g)?.fieldType==="STATUS"))return;let R=await Eu(f,t,n);R&&l.set(f,R)}));let c=[e.from,...e.joins.map(f=>f.table)],u=(f,E)=>{let R=f.semantics??Z(f);return f.fieldType==="STATUS"&&l.has(E)?{...R,optionOrder:l.get(E)}:R};return f=>{let E;if(f.tableAlias!==null)if(f.tableAlias==="_p"&&e.from.subtableCode&&e.from.cteName===null)E=s.get(e.from.appId)?.get(f.field);else{let g=c.find(y=>Le(y)===f.tableAlias);if(!g)return;if(g.cteName!==null)return r?.get(g.cteName)?.columnMeta?.get(f.field)?.semantics??x("string");E=s.get(g.appId)?.get(Ee(g,f.field))}else if(e.joins.length===0){if(e.from.cteName!==null)return r?.get(e.from.cteName)?.columnMeta?.get(f.field)?.semantics??x("string");E=s.get(e.from.appId)?.get(Ee(e.from,f.field))}else{let g=c.flatMap(y=>{if(y.cteName!==null){let h=r?.get(y.cteName);return h?.columns.includes(f.field)?[h.columnMeta?.get(f.field)?.semantics??x("string")]:[]}let m=s.get(y.appId)?.get(Ee(y,f.field));return m?[u(m,y.appId)]:[]});return g.length!==1?void 0:g[0]}if(!E)return;let R=f.tableAlias!==null?c.find(g=>Le(g)===f.tableAlias):e.joins.length===0?e.from:void 0;return u(E,R?.appId??e.from.appId)}}function Ee(e,t){return e.subtableCode&&t.startsWith("_p.")?t.slice(3):t}function Zo(e,t){if(e.subtableCode){if(t==="_rid")return"SINGLE_LINE_TEXT";if(t==="_idx"||t==="_pid")return"NUMBER"}}function ot(e,t){let n=e.semantics??Z(e);return{sortKind:wA(e),fieldType:e.fieldType,semantics:t===void 0?n:_n(n,t,e.code)}}function qf(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:x(e)}}function xe(){return{semantics:x("string","KSQL_UNKNOWN")}}function Xf(e="KSQL_ARRAY"){return{semantics:{fieldType:e,compareMode:"unsupported",inSubtable:!1,requiresCollectionOperators:!1}}}function Qt(e){if(e==="$id")return{sortKind:"number",fieldType:"__ID__",semantics:Z({fieldType:"__ID__"})};if(e==="_rid")return z("string");if(e==="_pid"||e==="_idx"||e==="$revision")return z("number")}var bA=new Set(["LENGTH","LENGTH_CHAR","INSTR","ROUND","FLOOR","CEIL","TRUNCATE","YEAR","MONTH","DAY","DATEDIFF","ABS","MOD","POWER","SQRT","DAYOFWEEK","QUARTER","WEEK"]);function an(e){if(e.func==="CAST"){let t=e.args[1];return t?.type==="STRING"&&t.value==="NUMBER"?z("number"):z("string")}return bA.has(e.func)?z("number"):z("string")}function Yn(e,t){return e.type==="STRING"?z("string"):e.type==="ARRAY"?Xf():e.type==="AGG_REF"?e.func==="MIN"||e.func==="MAX"||e.func==="MODE"?e.arg.type==="WILDCARD"?xe():sn(e.arg,t):e.func==="GROUP_CONCAT"?z("string"):z("number"):e.type==="AGG_ARITH"||e.type==="NUMBER"||e.type==="ARITH"||e.type==="SCALAR_ARITH"?z("number"):e.type==="STRING_FUNC"?an(e):e.type==="FIELD_REF"?t(Be(e.field))??xe():e.type==="FIELD"?t(e)??xe():xe()}function ya(e){if(e.length===0)return xe();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&&Ji(n(r.semantics),n(t.semantics)))?e.every(i=>Ji(i.semantics,t.semantics))?t:{...t,semantics:n(t.semantics)}:e.some(r=>r.semantics?.compareMode==="unsupported")?Xf("KSQL_MIXED_UNSUPPORTED"):xe()}function sn(e,t){if(e.type==="FIELD_REF")return t(Be(e.field))??xe();if(e.type==="FIELD")return t(e)??xe();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 an(e);let n=e.branches.map(r=>Yn(r.result,t));return e.elseResult&&n.push(Yn(e.elseResult,t)),ya(n)}function Jf(e,t){return e.windowKind==="VALUE"?sn(e.arg,t):e.windowKind==="AGGREGATE"?e.aggFunc==="COUNT"||e.aggFunc==="SUM"||e.aggFunc==="AVG"?z("number"):e.arg.type==="WILDCARD"?xe():sn(e.arg,t):z("number")}function ea(e,t){return{...e??{},displayName:t}}function PA(e){return e.columns.some(t=>t.type==="FIELD"||t.type==="WILDCARD"||t.type==="PARENT_WILDCARD"||t.type==="CASE_COL"||t.type==="AGGREGATE"&&(t.func==="MIN"||t.func==="MAX"||t.func==="MODE")||t.type==="WINDOW_COL"&&(t.windowKind==="VALUE"||t.windowKind==="AGGREGATE"&&(t.aggFunc==="MIN"||t.aggFunc==="MAX")))}async function la(e,t,n,r,i,o=!1){let a=new Map;PA(e)&&await Promise.all(au(e).map(async R=>{if(a.has(R.appId))return;let g=await te(R.appId,n,r);a.set(R.appId,new Map(g.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?ot(h,e.from.appId):void 0}let y=s.find(h=>Le(h)===R.tableAlias);if(!y)return;if(y.cteName!==null)return i?.get(y.cteName)?.columnMeta?.get(R.field);let m=a.get(y.appId)?.get(Ee(y,R.field));return m?ot(m,y.appId):Qt(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(Ee(e.from,R.field));return y?ot(y,e.from.appId):Qt(R.field)}let g=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 m=a.get(y.appId)?.get(Ee(y,R.field)),h=m?ot(m,y.appId):Qt(R.field);return h?[h]:[]});return g.length===1?g[0]:void 0},c=R=>{if(!l)return;let g=s.filter(y=>{if(R.tableAlias!==null&&Le(y)!==R.tableAlias)return!1;let m=Ee(y,R.field);return a.get(y.appId)?.has(m)===!0||Qt(R.field)!==void 0});return g.length===1?g[0].appId:void 0},u=(R,g)=>{let y=c(g);return R&&y!==void 0?{...R,publicSourceApp:y}:R},p=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 g=Be(R),y=u(d(g),g);p.set(R,ea(y,y?.displayName??R))}return p}if(f)for(let R of t){let g=Be(R),y=u(d(g),g);p.set(R,ea(y,y?.displayName??R))}return e.columns.filter(R=>R.type!=="WILDCARD"&&R.type!=="PARENT_WILDCARD").forEach((R,g)=>{let y=f?"alias"in R&&R.alias?R.alias:void 0:t[g];if(!y)return;let m;if(R.type==="FIELD"){let h=Be(R.field);m=u(d(h),h)}else if(R.type==="AGGREGATE")R.func==="GROUP_CONCAT"?m=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"?m=z("number"):(R.func==="MIN"||R.func==="MAX"||R.func==="MODE")&&R.arg.type!=="WILDCARD"&&(m=sn(R.arg,d));else if(R.type==="ARITH_AGG_COL"||R.type==="ARITH_COL")m=z("number");else if(R.type==="GROUPING_COL")m=z("number");else if(R.type==="LITERAL_COL")m=z("string");else if(R.type==="SCALAR_VALUE_COL"){let h=R.expr;h.type==="STRING_FUNC"?m=an(h):h.type==="NUMBER"||h.type==="SCALAR_ARITH"?m=z("number"):h.type==="FIELD"?m=d(h):m=z("string")}else if(R.type==="STRFUNC_COL")m=an(R.expr);else if(R.type==="WINDOW_COL")m=Jf(R,d);else if(R.type==="CASE_COL"){let h=R.expr.branches.map(S=>Yn(S.result,d));R.expr.elseResult&&h.push(Yn(R.expr.elseResult,d)),m=ya(h)}else R.type==="SCALAR_SUBQUERY_COL"&&(m=xe());p.set(y,ea(m,R.aliasDisplay??y))}),p}function Qf(e,t){let n=pe.get(e),r=pe.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),c;if(s&&d){let u=ya([s,d]),p=s.publicSourceApp===d.publicSourceApp?s.publicSourceApp:void 0,{publicSourceApp:f,...E}=u;c=p===void 0?E:{...E,publicSourceApp:p}}else c=xe();i.set(o,ea(c,s?.displayName??o))}),i}function uu(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(c=>Le(c)===s.tableAlias);return!d||d.cteName!==null?void 0:Zo(d,s.field)??t.get(d.appId)?.get(Ee(d,s.field))}if(e.joins.length===0)return e.from.cteName!==null?void 0:Zo(e.from,s.field)??t.get(e.from.appId)?.get(Ee(e.from,s.field));if(n.some(d=>d.cteName!==null))return;let l=r.flatMap(d=>{let c=Zo(d,s.field)??t.get(d.appId)?.get(Ee(d,s.field));return c?[c]:[]});return l.length===1?l[0]:void 0};return{row:o,having:s=>{if(!(s.tableAlias===null&&i.has(s.field)))return o(s)}}}var Zf=new WeakSet,cu=new WeakMap;function Ll(e){return Zf.add(e),e}function NA(e,t){return cu.set(e,t),t}function eE(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&&re(e).type==="NONE"&&e.having===null&&e.joins.length===0&&e.from.cteName===null&&!e.from.subtableCode&&e.limit===null&&e.offset===null}function CA(e){return typeof e=="string"&&/^(?:0|[1-9]\d*)$/.test(e)}async function OA(e,t){let n=e.columns.find(s=>s.type==="AGGREGATE");if(n?.type!=="AGGREGATE")return null;let r=e.where===null?"":V(e.where),i=await t.getRecords({app:e.from.appId,query:`${r}${r?" ":""}limit 1`,fields:["$id"],totalCount:!0});if(i.searchAborted)throw new on;if(!CA(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 LA(e,t,n,r,i,o=!0,a,s,l){let d=cu.get(e);if(Zf.has(e)&&d!==void 0&&eE(e,d)){let F=await OA(e,t);if(F!==null)return F}let c=n.maxRecords??1e4,u=new Set,p=n.fetchParallel??1;await Promise.all([ui(e.where,t,n,r,i),ui(e.having,t,n,r,i)]);let[f,E,R]=await Promise.all([ga(e,t,r),su(e,t,r),zf(e,t,r,i)]),g=uu(e,E),y=await di(e,t,r,i,nt(e.having)||tu(e)),m=$f(e,y),h=ou.get(e);if(h&&!Bn(h.joinPlan))throw new Error("InternalError: JOIN server-function fetch binding changed before records API.");let S=h??Ra(e,f)??Cn(e,f);za(S);let I="joinPlan"in S?S:null,w=I&&Bn(I.joinPlan)?I:null,N=t,b=S.mainCondition,D=S.joinConditions;if(s&&o)throw new Error("internal error: relative-date prefilter must disable original WHERE pushdown.");let C=s?s.prefilterWhere:w?null:b,_=w?.queriesByAlias.get(e.from.alias)??"",U=await SE(e.columns,t,n,r,i),L=mt(e.where),v=L?Promise.resolve([]):ei(e,e.from,N,c,p,!0,n.onLimitReached??"error",u,C,w?!1:o,l,_),A=[],P=[];for(let F of e.joins){if(L){A.push({join:F,promise:Promise.resolve([])});continue}let de=F.table.alias?w?.queriesByAlias.get(F.table.alias)??"":"",En=w?null:F.table.alias?D.get(F.table.alias)??null:null;En!==null||de!==""?A.push({join:F,promise:ei(e,F.table,N,c,p,!1,n.onLimitReached??"error",u,En,!0,l,de)}):P.push(F)}let M=a?Promise.resolve(a):oi(e,t,r,i);M.catch(()=>{});let O=await v,K=new Map;K.set(e.from.alias,O);for(let{join:F,promise:de}of A)K.set(F.table.alias,await de);await Promise.all(P.map(async F=>{let En=await sE(e,F,K,N,c,p,n.onLimitReached??"error",u,null,l,"")??await ei(e,F.table,N,c,p,!1,n.onLimitReached??"error",u,null,!0,l,"");K.set(F.table.alias,En)}));let{optionOrders:j,sortKinds:q,semantics:k}=await M,{rows:$,columns:X}=el({tables:K,stmt:e,scalarCache:U,optionOrders:j,sortKinds:q,orderSemantics:k,fieldTypeResolver:g.row,fieldSemanticsResolver:y,havingFieldTypeResolver:g.having,havingFieldSemanticsResolver:m,aggregateSortKindResolver:R,appliedKlikes:s?.appliedKlikes??S.appliedKlikes,...s?{residualWhere:s.residualWhere}:w?{residualWhere:w.joinPlan.residualWhere}:{},resolvedGroupingSpec:ii.get(e),plainGroupByPlan:l}),G=await du(e,$,X,t,r);return{type:"SELECT",rows:$,columns:G,rowCount:$.length,warnings:[...u]}}function tE(e,t){if(e.length!==t.length)throw new Error(`ArgumentError: UNION \u306E\u5DE6\u53F3\u3067\u5217\u6570\u304C\u4E00\u81F4\u3057\u307E\u305B\u3093\uFF08\u5DE6 ${e.length} \u5217 / \u53F3 ${t.length} \u5217\uFF09\u3002
10
+ `,r:"\r",t:" "};if(R in g){p+=g[R];continue}R!=="u"&&gt(`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)||gt("has invalid unicode escape",n,r,i);for(let h=0;h<4;h++)o();let m=Number.parseInt(y,16);if(m>=55296&&m<=56319){(e.slice(n,n+2)!=="\\u"||!/^[0-9a-fA-F]{4}$/.test(e.slice(n+2,n+6)))&&gt("has an unpaired high surrogate",n,r,i),o(),o();let h=e.slice(n,n+4);for(let I=0;I<4;I++)o();let S=Number.parseInt(h,16);(S<56320||S>57343)&&gt("has an invalid surrogate pair",n-4,r,Math.max(1,i-4)),p+=String.fromCodePoint(65536+(m-55296<<10)+S-56320)}else m>=56320&&m<=57343?gt("has an unpaired low surrogate",n-4,r,Math.max(1,i-4)):p+=String.fromCharCode(m)}f||gt("string is unterminated",l.offset,l.line,l.column),t.push({kind:"string",value:p,...l});continue}let d=e.slice(n),c=/^-?(?:0|[1-9]\d*)(?:\.\d+)?(?:[eE][+-]?\d+)?/.exec(d)?.[0];if(c){for(let p=0;p<c.length;p++)o();t.push({kind:"number",lexeme:c,...l});continue}let u=/^(true|false|null)/.exec(d)?.[0];if(u){for(let p=0;p<u.length;p++)o();t.push({kind:"literal",value:u==="true"?!0:u==="false"?!1:null,...l});continue}gt(`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 Yo(e){return e.kind==="eof"?"end of input":e.kind==="punct"?e.value:e.kind}function jo(e){if(e.byteLength===0)throw new B("JSON source is empty.");let t=zd(jd(e)),n=0,r=(d,c=t[n])=>{throw new B(`JSON ${d} (offset=${c.offset}, line=${c.line}, column=${c.column}).`)},i=(d,c)=>d.kind==="punct"&&d.value===c,o=d=>{let c=t[n];(c.kind!=="punct"||c.value!==d)&&r(`expected ${d}; found ${Yo(c)}`,c),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 c=new Map;if(i(t[n],"}"))return n++,c;for(;;){let u=t[n++];if(u.kind!=="string")return r(`object key must be a string; found ${Yo(u)}`,u);let p=u.value;c.has(p)&&r(`duplicate key ${JSON.stringify(p)}`,u),o(":"),c.set(p,a());let f=t[n];if(i(f,"}")){n++;break}o(",")}return c}if(d.kind==="punct"&&d.value==="["){let c=[];if(i(t[n],"]"))return n++,c;for(;;){c.push(a());let u=t[n];if(i(u,"]")){n++;break}o(",")}return c}return r(`expected a value; found ${Yo(d)}`,d)},s=a();t[n].kind!=="eof"&&r(`has trailing data; found ${Yo(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 B("JSON source contains no records.");return l.forEach((d,c)=>{if(!(d instanceof Map))throw new B(`JSON record ${c+1} must be an object.`)}),l}var _h=new Set(["CHECK_BOX","MULTI_SELECT"]),qd=new Set(["USER_SELECT","ORGANIZATION_SELECT","GROUP_SELECT"]);function it(e,t,n){throw new B(`JSON field validation failed (row=${e}, field=${t}): ${n}`)}function Dh(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)&&!(e instanceof Map)&&e.kind==="number"}function vh(e,t,n){if(e===null)return"";if(typeof e=="string")return e;if(typeof e=="boolean"&&it(n,t.code,"boolean is not accepted."),Dh(e)){t.fieldType==="NUMBER"&&it(n,t.code,"precision target requires a JSON string."),(!/^-?(?:0|[1-9]\d*)$/.test(e.lexeme)||e.lexeme==="-0")&&it(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)||it(n,t.code,`JSON number ${e.lexeme} is outside the safe integer range.`),String(i)}e instanceof Map&&it(n,t.code,"object is not accepted for a flat field."),Array.isArray(e)||it(n,t.code,"unsupported value type."),!_h.has(t.fieldType)&&!qd.has(t.fieldType)&&it(n,t.code,"array is accepted only for multi-value fields.");let r=e.map(i=>(typeof i!="string"&&it(n,t.code,"array elements must be strings."),i));return new Set(r).size!==r.length&&it(n,t.code,"array elements must not contain duplicates."),qd.has(t.fieldType)?JSON.stringify(r.map(i=>({code:i}))):JSON.stringify(r)}function ll(e,t,n,r){if(t.encoding&&t.encoding!=="utf8")throw new B("JSON source is UTF-8 only.");let i=jo(t.bytes);if(i.length>r)throw new B(`source rows (${i.length}) exceed maxRecords (${r}).`);let o=new Map(n.map(l=>[l.code,l]));if(o.size!==n.length)throw new B("JSON target fields contain duplicates.");let a=[],s=[];return i.forEach((l,d)=>{for(let p of l.keys())o.has(p)||it(d+1,p,"unknown key (not declared in INTO).");let c={},u=new Set;for(let p of n)l.has(p.code)&&(u.add(p.code),c[p.code]=vh(l.get(p.code),p,d+1));a.push(c),s.push(u)}),{rows:a,columns:n.map(l=>l.code),columnMeta:new Map(n.map(l=>[l.code,{fieldType:l.fieldType}])),importPresence:s}}function ul(e,t,n,r,i,o){let a=Ho(t.bytes,{encoding:e.encoding??t.encoding??"utf8",hasHeader:e.hasHeader,columns:e.columns});if(a.rows.length>n)throw new B(`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 B("ERR_IMPORT_HEADER_REUSED: a BY NAME header cannot be consumed more than once.");let l=new Map(a.columns.map((y,m)=>[y,m]));for(let y of r)if(!l.has(y))throw new B(`ERR_IMPORT_MISSING_COLUMN: required header "${y}" is missing.`);let d=new Map(i.map(y=>[y.code,y])),c=new Set(r);if(o&&c.has(o))throw new B("ERR_IMPORT_HEADER_REUSED: record-number source header is lookup-only and cannot be a write target.");if(o&&!l.has(o))throw new B(`ERR_IMPORT_MISSING_COLUMN: required header "${o}" is missing.`);let u=[],p=[],f=y=>a.rows.filter(m=>m[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,m]of a.columns.entries()){if(c.has(m)||m===o)continue;let h=d.get(m);if(h)u.push({column:m,reason:E(h),nonEmptyCells:f(y)});else if(e.ignoreUnknownColumns)p.push({column:m,reason:"unknown column ignored by explicit policy",nonEmptyCells:f(y)});else throw new B(`ERR_IMPORT_UNKNOWN_COLUMN: unknown CSV header "${m}".`)}for(let y of r){let m=d.get(y);if(!m)throw new Error(`ArgumentError: DML target field ${y} does not exist.`);if(m.inSubtable||m.writable===!1||m.fieldType==="FILE"||m.fieldType==="SUBTABLE")throw new Error(`ArgumentError: DML target field ${y} is not writable (${m.fieldType}).`)}let R=[];return{rows:a.rows.map(y=>{let m=[],h={};for(let S of r){let I=y[l.get(S)];try{h[S]=Yd(I,d.get(S)?.fieldType,{cliKintone:!0})}catch(w){if(!(w instanceof qr))throw w;h[S]=I,m.push({field:S,code:w.code,message:w.message})}}return R.push(m),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:u,ignoredUnknownColumns:p}}}return{rows:a.rows.map(l=>Object.fromEntries(a.columns.map((d,c)=>[d,l[c]]))),columns:a.columns,columnMeta:new Map(a.columns.map(l=>[l,{fieldType:"SINGLE_LINE_TEXT"}]))}}var Xr=(e,t,n)=>{throw new B(`JSON subtable validation failed (parentRow=${e}, field=${t}): ${n}`)};function Xd(e,t,n,r,i=r){if(t.encoding&&t.encoding!=="utf8")throw new B("JSON source is UTF-8 only.");let o=jo(t.bytes);if(o.length>r)throw new B(`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 B("IMPORT targets contain duplicates.");let s=0;return{records:o.map((l,d)=>{let c=d+1;for(let E of l.keys())a.has(E)||Xr(c,E,"unknown key (not declared in INTO).");let u=new Map,p=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 g=l.get(R);if(E.kind==="FIELD"){g instanceof Map&&Xr(c,R,"object is not accepted for a top-level field."),u.set(R,g);continue}Array.isArray(g)||Xr(c,R,"subtable value must be an array."),f.add(R);let y=new Set(E.children),m=g.map((h,S)=>{h instanceof Map||Xr(c,R,`childRow=${S+1} must be an object.`);let I=h;for(let w of I.keys())y.has(w)||Xr(c,w,`unknown child key in subtable ${R} at childRow=${S+1}.`);if(s++,s>i)throw new B(`source child rows (${s}) exceed limit (${i}).`);return{childRowNumber:S+1,values:I}});p.set(R,m)}return{rowNumber:c,top:u,subtables:p,replacementTables:f}})}}function Jd(e,t,n,r,i,o){let a=Ho(t.bytes,{encoding:e.encoding??t.encoding??"utf8",hasHeader:e.hasHeader,columns:e.columns});if(!e.hasHeader||a.columns[0]!=="*")throw new B('ERR_IMPORT_MARKER: first CSV header must be "*".');let s=new Map(a.columns.map((p,f)=>[p,f]));if(o&&!s.has(o))throw new B(`ERR_IMPORT_MISSING_COLUMN: required header "${o}" is missing.`);let l=n.filter(p=>p.kind==="FIELD"),d=n.filter(p=>p.kind==="SUBTABLE");for(let p of l)if(!s.has(p.field))throw new B(`ERR_IMPORT_MISSING_COLUMN: required header "${p.field}" is missing.`);for(let p of d){if(!p.rowIdSourceHeader||!s.has(p.rowIdSourceHeader))throw new B(`ERR_IMPORT_MISSING_COLUMN: row-ID header for ${p.subtableCode} is missing.`);for(let f of p.children)if(!s.has(f))throw new B(`ERR_IMPORT_MISSING_COLUMN: required child header "${f}" is missing.`)}let c=[],u;if(a.rows.forEach((p,f)=>{let E=f+2,R=p[0];if(R!==""&&R!=="*")throw new B(`ERR_IMPORT_MARKER: invalid marker ${JSON.stringify(R)} at source row ${E}.`);if(R==="*"){if(c.length>=i)throw new B(`source parent rows exceed maxRecords (${i}).`);u={rowNumber:c.length+1,markerRowNumber:E,top:new Map(l.map(g=>[g.field,p[s.get(g.field)]])),subtables:new Map(d.map(g=>[g.subtableCode,[]])),replacementTables:new Set(r),...o?{recordNumberSourceValue:p[s.get(o)]}:{}},c.push(u)}else if(u){for(let g of l){let y=p[s.get(g.field)];if(y!==""&&y!==u.top.get(g.field))throw new B(`ERR_IMPORT_PARENT_VALUE_ON_CONTINUATION: ${g.field} at source row ${E}.`)}if(o){let g=p[s.get(o)];if(g!==""&&g!==u.recordNumberSourceValue)throw new B(`ERR_IMPORT_PARENT_VALUE_ON_CONTINUATION: ${o} at source row ${E}.`)}}else throw new B(`ERR_IMPORT_MARKER: first data row must start a parent (source row ${E}).`);for(let g of d){let y=p[s.get(g.rowIdSourceHeader)],m=new Map(g.children.map(S=>[S,p[s.get(S)]]));if(y===""&&[...m.values()].every(S=>S===""))continue;let h=u.subtables.get(g.subtableCode);h.push({childRowNumber:h.length+1,sourceRowNumber:E,...y?{rowId:y}:{},values:m})}}),c.length===0)throw new B("CSV has no parent rows.");return{records:c}}var Uh=new Set(["USER_SELECT","ORGANIZATION_SELECT","GROUP_SELECT"]),kh=new Set(["SUBTABLE","FILE","CALC","RECORD_NUMBER","CREATOR","CREATED_TIME","MODIFIER","UPDATED_TIME","STATUS","STATUS_ASSIGNEE","CATEGORY","REFERENCE_TABLE"]);function dl(e,t){if(t!=null&&e.invalidParentRows.size>t)throw new Error(`RejectLimitExceededError: rejected parents (${e.invalidParentRows.size}) exceed REJECT LIMIT (${t}).`)}function tf(e,t,n,r,i){let o=new Map(n.filter(p=>!p.inSubtable).map(p=>[p.code,p])),a=new Map;for(let p of n)if(p.inSubtable&&p.subtableCode){let f=a.get(p.subtableCode);f||a.set(p.subtableCode,f=new Map),f.set(p.code,p)}let s=t.filter(p=>p.kind==="FIELD"),l=t.filter(p=>p.kind==="SUBTABLE");for(let p of s)Qd(p.field,o.get(p.field),void 0);for(let p of l){let f=o.get(p.subtableCode);if(!f||f.fieldType!=="SUBTABLE")throw new Error(`ArgumentError: IMPORT subtable ${p.subtableCode} does not exist.`);let E=a.get(p.subtableCode)??new Map;for(let R of p.children)Qd(R,E.get(R),p.subtableCode)}let d=new Map(l.map(p=>[p.subtableCode,{parentsPresent:0,childRows:0,validChildRows:0,invalidChildRows:0}])),c=e.records.map(p=>Mh(p,s,l,o,a,r,i,d)),u=c.flatMap(p=>[...p.errors]);return{parents:c,errors:u,invalidParentRows:new Set(c.filter(p=>!p.valid).map(p=>p.parentRow)),tableCounts:d}}function Mh(e,t,n,r,i,o,a,s){let l=[],d={};for(let p of t)e.top.has(p.field)&&pl(e.top.get(p.field),r.get(p.field),o,d,p.field,l,cl(e,a,p.field));let c={};if(a==="INSERT")for(let p of r.values())p.fieldType==="SUBTABLE"||p.writable===!1||e.top.has(p.code)||Zd(p,o,c,l,cl(e,a,p.code));let u=new Map;for(let p of n){if(!e.subtables.has(p.subtableCode))continue;let f=s.get(p.subtableCode);f.parentsPresent++;let E=[];for(let R of e.subtables.get(p.subtableCode)){f.childRows++;let g=l.length,y={},m=i.get(p.subtableCode);for(let h of p.children){let S=m.get(h),I=cl(e,a,h,p.subtableCode,R.childRowNumber,R.sourceRowNumber??e.markerRowNumber);R.values.has(h)?pl(R.values.get(h),S,o,y,h,l,I):Zd(S,o,y,l,I)}l.length===g?(f.validChildRows++,E.push(y)):f.invalidChildRows++}u.set(p.subtableCode,E)}return{parentRow:e.rowNumber,valid:l.length===0,top:d,subtables:u,replacementTables:e.replacementTables,errors:l}}function Qd(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&&kh.has(t.fieldType))throw new Error(`ArgumentError: IMPORT ${n?`child ${n}.${e}`:`field ${e}`} is not writable (${t.fieldType}).`)}function Zd(e,t,n,r,i){let o=Yt(e.defaultValue)?"":e.defaultValue;pl(o,e,t,n,e.code,r,i,!Yt(e.defaultValue))}function pl(e,t,n,r,i,o,a,s=!1){let l=Fh(e),d=Oe(l,t,n);d.ok?r[i]={value:xh(l,t)?l:d.value}:o.push({...a,code:d.code,message:s?`\u65E2\u5B9A\u5024: ${d.message}`:d.message})}function Fh(e){return ef(e)?e.lexeme:Array.isArray(e)?e.map(t=>t instanceof Map?t:ef(t)?t.lexeme:t):e}function ef(e){return typeof e=="object"&&e!==null&&e.kind==="number"}function xh(e,t){return Uh.has(t.fieldType)&&Array.isArray(e)&&e.every(n=>typeof n=="object"&&n!==null&&"code"in n)}function cl(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 fl=["$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?"":Kh(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 Kh(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 Rl(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 nf(e,t){return Rl(e,t,"DROP")}function rf(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 of(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 c=a?.record[l]?.value,u=Array.isArray(c)?c.length:0;return{table:l,existingRows:u,inputRows:d.length,addRows:d.length,deleteRows:u}});return{parentRow:r.parentRow,mode:o===void 0?"INSERT":"UPDATE",...o===void 0?{}:{targetId:o,revision:a?.revision},top:r.top,subtables:r.subtables,tables:s}})}function Bh(e,t){let n=e[t]?.value;return Array.isArray(n)?n:[]}function af(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 sf(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),c=[...o.errors];if(!d||l===void 0)return{parentRow:o.parentRow,targetId:l??0,valid:!1,top:o.top,subtables:new Map,tables:[],errors:c};let u=new Map,p=[];for(let f of o.replacementTables){let E=Bh(d.record,f),R=new Set(E.map(w=>w.id).filter(w=>!!w)),g=s.subtables.get(f)??[],y=o.subtables.get(f)??[],m=0,h=0,S=0,I=g.map((w,N)=>{let b=y[N]??{};return w.rowId&&R.has(w.rowId)?(m++,{rowId:w.rowId,record:b}):(w.rowId&&((i.get(w.rowId)??[]).some(C=>C.parentId!==l||C.table!==f)&&c.push({operation:"UPDATE",parentRow:o.parentRow,field:w.rowId,subtable:f,subrow:w.childRowNumber,sourceRow:w.sourceRowNumber,code:"ERR_IMPORT_FIELD_OWNERSHIP",message:`rowIdOwnedElsewhere: ${w.rowId}`,sourceValues:w.values}),S++),h++,{record:b})});u.set(f,I),p.push({table:f,existingRows:E.length,inputRows:g.length,updateRows:m,addRows:h,deleteRows:E.length-m,rowIdNotFound:S})}return{parentRow:o.parentRow,targetId:l,...d.revision===void 0?{}:{revision:d.revision},valid:c.length===0,top:o.top,subtables:u,tables:p,errors:c}})}var gl="#__import_source";function lf(e){return{...e,from:{appId:0,alias:null,cteName:gl}}}function Gh(e){return/^[0-9]+$/.test(e)?e.replace(/^0+(?=\d)/,""):null}function yl(e,t){let n=e.map(Gh),r=new Set;for(let i of n)if(i!==null){if(r.has(i))throw new Error("ERR_RECORD_NUMBER_DUP_SOURCE: source contains a duplicate record number");r.add(i)}return{normalized:n,errors:n.map(i=>i===null?[{field:t,code:"ERR_RECORD_NUMBER_INVALID",message:`${t} must be a non-empty ASCII decimal record number`}]:[])}}var $h="\u691C\u7D22\u304C 10 \u4E07\u4EF6\u3067\u6253\u3061\u5207\u3089\u308C\u3001\u7D50\u679C\u304C\u6B20\u843D\u3057\u305F\u53EF\u80FD\u6027\u304C\u3042\u308A\u307E\u3059\u3002",on=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"}},pe=new WeakMap;function Nf(e){return pe.get(e)}var pn=new WeakMap,fa=new WeakMap,uf=new WeakMap,Vh=1,Wh=1;function Cf(e,t){if(t)return t;let n=uf.get(e);return n||(n=`client:${Vh++}`,uf.set(e,n)),n}function Yl(e){return`${e}\0inv:${Wh++}`}async function jl(e,t,n={}){let r=Date.now(),i=Yl(Cf(t,n.cacheContext));try{let o=kS(e,n.enableImport===!0),a=Of(),s=_f(t,a),l={aborted:!1},d=ql(s,l,!Yh(o)||Ms(o)),c=await Il(o,d,n,i);a.elapsedMs=Date.now()-r;let u={...Df(c,l),metrics:a};if(c.type==="SELECT"){let p=pe.get(c);p&&pe.set(u,p)}return u}finally{fu(i)}}function Of(){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 Lf=Symbol("limitMetricsSink");function zl(e,t){let n=e[Lf];n&&(n.limitReached=!0,n.limitReachedApps.includes(t)||n.limitReachedApps.push(t))}function _f(e,t){return{[Lf]: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 cf=Symbol("searchAbortFailClosed");function ql(e,t,n){return n&&e[cf]?e:{...e,...n?{[cf]:!0}:{},getRecords:async r=>{let i=await e.getRecords(r);if(i.searchAborted&&(t.aborted=!0,n))throw new on;return i}}}function Hh(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 Yh(e){return e.type==="SELECT"||e.type==="UNION"||e.type==="WITH"}function Df(e,t){if(!t.aborted||e.type!=="SELECT")return e;let n=new Set(e.warnings??[]);return n.add($h),{...e,warnings:[...n]}}async function pf(e,t,n){let r=await pi(e,t,n);return al(r),r}async function pi(e,t,n){return Wd(e,{select:async r=>{let{resolver:i}=await tn(r,t,n);return he(r.where,i)},dml:r=>Vf(r,t,n),prefilterDecomposition:async r=>{if(r.where===null)return null;let{resolver:i}=await tn(r,t,n);return sl(r,i)},joinServerFunctionPlan:async r=>{await tn(r,t,n);let i=await ga(r,t,n),o=Ra(r,i);return o===null?null:(Bn(o.joinPlan)&&ou.set(r,o),o.joinPlan)}})}async function Il(e,t,n,r){let i=await pi(e,t,r);e.type!=="EXPLAIN"&&al(i);let o=bl(e);if(o!==null&&!pS(e))throw new Error(`ParseError: variable @${o} is not defined in a batch.`);if(Sn("phase15b",e),vi("phase15b",e),We(e),e.type!=="EXPLAIN"&&await aA(e,t,r),e.type==="IMPORT")return dE(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 Gl(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 Ru(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 jh(e,t,n,r);case"SELECT":return Ft(Ll(e),t,n,r,void 0,n.captureColumnMeta===!0,n.captureColumnMeta===!0);case"UNION":return nE(e,t,n,r,n.captureColumnMeta===!0,n.captureColumnMeta===!0);case"WITH":return pu(e,t,n,r,void 0,n.captureColumnMeta===!0);case"INSERT":return oS(e,t,n,r);case"INSERT_SELECT":return hu(e,t,n,r);case"UPSERT":return wS(e,t,n,r);case"UPSERT_SELECT":return Tu(e,t,n,r);case"UPDATE":return Gl(e,t,n,r);case"DELETE":return IS(e,t,n,r);case"REORDER":return LS(e,t,n,r);case"SHOW_APPS":return yE(t);case"DESCRIBE":return mE(e,t,r);case"EXPLAIN":return KS(e,t,r,n.maxRecords??1e4,n.cursorMaxActive??2,e.query.type==="UPDATE"&&e.query.applyBlocks?.length?Ge(n.dmlMaxRows,"dmlMaxRows",St):St,e.query.type==="UPDATE"&&e.query.applyBlocks?.length?Ge(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 Ff(e,t,n,r)}}var Xl=["$id","$err_field","$err_code","$err_message","$err_value","$err_subtable","$err_subrow","$err_subrow_id","$err_count"],Jl=["$id","$err_subtable","$err_field","$err_code","$err_count"];function Ql(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 vf(e=!1){let t=e?Jl:Xl;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:x(n==="$id"||n==="$err_count"?"number":"string")}]))}async function jh(e,t,n,r){if(e.errorTable)throw new Error("ArgumentError: VALIDATE INTO requires a batch.");return Uf(e,t,n,r)}async function Uf(e,t,n,r){let i=await te(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=Os(e,i),l=new Set(s.flatMap(O=>Ns(O.field))),d={present:Ps.filter(O=>l.has(O)),absent:Ps.filter(O=>!l.has(O))},c=e.checkGroups??[],u=Dn(c);for(let O of u){if(O.field!=="$id"&&!o.has(O.field)&&!a.has(O.field))throw me(`CHECK \u306E\u30D5\u30A3\u30FC\u30EB\u30C9 ${O.field} \u306F APP${e.appId} \u306B\u5B58\u5728\u3057\u307E\u305B\u3093`);if(O.field!=="$id"&&!o.has(O.field)&&a.has(O.field))throw new Error(`ArgumentError: VALIDATE \u306E CHECK \u3067\u306F\u30B5\u30D6\u30C6\u30FC\u30D6\u30EB\u5B50\u30D5\u30A3\u30FC\u30EB\u30C9 ${O.field} \u3092\u53C2\u7167\u3067\u304D\u307E\u305B\u3093\u3002`)}let p=new Map([...o].map(([O,K])=>[O,K.fieldType]));p.set("$id","RECORD_NUMBER"),cn(e,p);let f=Ql(e.where),E=[...new Set(["$id",...s.map(O=>O.subtableCode??O.field.code),...f,...u.map(O=>O.field)])];for(let O of f){if(O!=="$id"&&!o.has(O)&&!a.has(O))throw new Error(`ArgumentError: WHERE field ${O} does not exist in APP${e.appId}.`);if(O!=="$id"&&!o.has(O)&&a.has(O))throw new Error(`ArgumentError: VALIDATE \u306E WHERE \u3067\u306F\u30B5\u30D6\u30C6\u30FC\u30D6\u30EB\u5B50\u30D5\u30A3\u30FC\u30EB\u30C9 ${O} \u3092\u53C2\u7167\u3067\u304D\u307E\u305B\u3093\u3002`)}let R=s.some(O=>O.field.fieldType==="NUMBER")?await st(e.appId,t,r):void 0,g=O=>O.field==="$id"?Z({fieldType:"__ID__"}):o.get(O.field)?.semantics??(o.has(O.field)?Z(o.get(O.field)):void 0),y=he(e.where,g);if(y.capability==="UNSUPPORTED")throw new Error(`ArgumentError: WHERE predicate is unsupported (${nn(y)}).`);let m=new Map([...o].map(([O,K])=>[O,K.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:Pn(e.where,{allowUnqualifiedFields:!0,fieldTypes:m,fieldOptions:h,allowKlike:!1}),I=S===null?"":V(S),N=(await be(t.getRecords,e.appId,I,E,{maxRecords:n.maxRecords??1e4,parallel:n.fetchParallel??1,onLimit:"error"})).map(O=>({id:String(O.$id?.value??""),record:O,flat:Rt(O,null)})).filter(O=>e.where===null||ne(e.where,O.flat,K=>p.get(K.field))),b=[],D=new Map,C=new Map,_=new Set,U=0,L=O=>{if(_.add(O.id),U+=1,e.summary){let q=JSON.stringify([O.id,O.subtable??"",O.field,O.code]),k=C.get(q);k?k.$err_count=String(Number(k.$err_count)+1):C.set(q,{$id:O.id,$err_subtable:O.subtable??"",$err_field:O.field,$err_code:O.code,$err_count:"1"});return}let K=JSON.stringify([O.id,O.subtable??"",O.field,O.code,O.message]),j=D.get(K);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??""}`)):D.set(K,{$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"})},v=s.filter(O=>!O.subtableCode),A=new Map;for(let O of s){if(!O.subtableCode)continue;let K=A.get(O.subtableCode)??[];K.push(O),A.set(O.subtableCode,K)}for(let O of N){for(let K of v){let j=O.record[K.field.code]?.value,q=Oe(j,K.field,R);q.ok||L({id:O.id,field:K.field.code,code:q.code,message:q.message,value:Pr(j,K.field.fieldType)})}for(let[K,j]of A){let q=O.record[K]?.value;if(Array.isArray(q))for(let k=0;k<q.length;k++){let $=q[k];for(let X of j){let G=$.value?.[X.field.code]?.value,F=Oe(G,X.field,R);if(!F.ok){let de=yo(K,k,$);L({id:O.id,field:X.field.code,code:F.code,message:F.message,value:Pr(G,X.field.fieldType),...de})}}}}for(let K of ro(c,O.flat,j=>p.get(j.field)))L({id:O.id,field:"",code:"ERR_CHECK",message:K.message,value:""})}if(e.summary)b.push(...C.values());else for(let O of D.values()){let K=Number(O.$err_count);O.$err_subtable!==""&&K>=2&&(O.$err_message=`${O.$err_message}\uFF08${K}\u884C: ${O.$err_subrow}\uFF09`),b.push(O)}let M={type:"SELECT",columns:[...e.summary?Jl:Xl],rows:b,rowCount:b.length,validateStats:{errorRecords:_.size,errorCount:U,constraintMetadata:d}};return pe.set(M,vf(e.summary===!0)),M}var Ke=1e4;function at(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])||!zh(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 zh(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||!Ji(i.semantics,r.semantics))return!1}return!0}var $n=class extends Error{constructor(){super("TimeoutError: batch timeout exceeded.")}};async function kf(e,t,n={}){let r=Zl(e,n.enableImport===!0),i=Za(r);if(r.forEach(f=>vi("phase15b",f)),n.allowApplyMutation!==!0&&r.some(f=>xa(f)||f.type==="UPSERT"&&qh(f)))throw new Error("UnsupportedError: APPLY mutation requires allowApplyMutation=true");let o=ks(r,n.variables),a=Mf(r,o),s={...n,variables:o};if(n.continueOnError&&i.containsDml)throw new Error("ArgumentError: continueOnError is not allowed for batches containing DML.");for(let f of i.statements){if(!f.isDml||f.tempTablesReferenced.length===0||f.statementType==="INSERT_SELECT"||f.statementType==="UPSERT_SELECT")continue;let E=r[f.index];if(!(E?.type==="UPDATE"&&E.from?.cteName!=null))throw new Q(`ArgumentError: temp table references in ${f.statementType} are not supported yet.`,f.index)}let l=Of(),d=_f(t,l),c=Date.now(),u=n.timeoutMs!=null?c+n.timeoutMs:null,p=Yl(Cf(t,n.cacheContext));try{let f=new Map,E=new Map,R=[],g=new Set,y=null;for(let m=0;m<r.length;m++){let h=i.statements[m],S={index:m,type:h.statementType};if(y){R.push({...S,status:"skipped",skippedReason:y}),g.add(m);continue}let I=h.dependsOn.find(w=>g.has(w));if(I!==void 0){let w=i.statements[I].tempTablesCreated[0]??`statement ${I}`;R.push({...S,status:"skipped",skippedReason:`dependency: ${w}`}),g.add(m);continue}if(u!==null&&Date.now()>=u){R.push({...S,status:"skipped",skippedReason:"timeout"}),g.add(m),y="timeout";continue}try{let w=u!==null?u-Date.now():null,N=s.confirm,b=N?{...s,confirm:(L,v,A)=>N(L,v,{statementIndex:m,statementCount:r.length,statementType:h.statementType,targetAppId:h.targetAppId,...A?.importDetail?{importDetail:A.importDetail}:{},...A?.applyDetail?{applyDetail:A.applyDetail}:{},...A?.applyDiagnostic?{applyDiagnostic:A.applyDiagnostic}:{}})}:s,D={aborted:!1},C=ql(d,D,h.statementType!=="SELECT"&&h.statementType!=="UNION"&&h.statementType!=="WITH"||Ms(r[m])),_=Hh(C),U=await Qh(Xh(r[m],h,_.client,b,p,f,E,a),w,_.closeActive);U.result&&(U.result=Df(U.result,D)),R.push({...S,status:"success",...U})}catch(w){R.push({...S,status:"error",error:Zh(w),...w instanceof ai?{result:w.diagnostic}:{}}),g.add(m),w instanceof $n?y="timeout":w instanceof Wn?y="assertion":h.statementType==="SET_VARIABLE"||h.statementType==="DECLARE_VARIABLE"?y="fail-fast":n.continueOnError||(y="fail-fast")}}return l.elapsedMs=Date.now()-c,{ok:R.every(m=>m.status==="success"),statementCount:r.length,statements:R,analysis:i,metrics:l}}finally{fu(p)}}function qh(e){return e.type==="UPDATE"||e.type==="INSERT"?e.validateOnly!==!0&&!!e.applyBlocks?.length:e.type==="UPSERT"&&e.validateOnly!==!0&&!!(e.onInsertApplyBlocks?.length||e.onUpdateApplyBlocks?.length)}async function Xh(e,t,n,r,i,o,a,s){if(e.type==="SET_VARIABLE"){let d=ia(e,a);if(We(d),await pf(d,n,i),d.expr.type==="ARRAY")a.set(e.name,{type:"array",elements:d.expr.elements.map(c=>({type:"string",value:c.value}))});else if(d.expr.type==="SCALAR_SUBQUERY")try{let c=await xf(d.expr.query,n,r,i,o),u=d.expr.query.columns[0],p=u?.type==="ARITH_COL"||u?.type==="ARITH_AGG_COL"||u?.type==="WINDOW_COL"&&(u.windowKind===void 0||u.windowKind==="RANKING"||u.windowKind==="AGGREGATE"&&(u.aggFunc==="COUNT"||u.aggFunc==="SUM"||u.aggFunc==="AVG"))||u?.type==="AGGREGATE"&&(u.func==="COUNT"||u.func==="SUM"||u.func==="AVG"||u.func==="STDDEV_POP"||u.func==="STDDEV_SAMP"||u.func==="VAR_POP"||u.func==="VAR_SAMP"||u.func==="MEDIAN");if(u?.type==="AGGREGATE"&&u.func==="MODE"||u?.type==="WINDOW_COL"&&u.windowKind==="VALUE"||u?.type==="WINDOW_COL"&&u.windowKind==="AGGREGATE"&&(u.aggFunc==="MIN"||u.aggFunc==="MAX")){let E=(await la(d.expr.query,["__scalar__"],n,i,o)).get("__scalar__");p=E?.semantics?.compareMode==="number"||E?.sortKind==="number"}let f=p?Number(c):Number.NaN;a.set(e.name,p&&Number.isFinite(f)?{type:"number",value:f,raw:c}:{type:"string",value:c})}catch(c){throw c instanceof en?new Error(`ArgumentError: ${c.message}`):c}else a.set(e.name,df(d.expr));return{}}if(e.type==="DECLARE_VARIABLE"){if(e.annotation==="RELATIVE_DATE")return a.set(e.name,{type:"relative-date",value:s.get(e.name)}),{};let d=r.variables??{};if(Object.prototype.hasOwnProperty.call(d,e.name))a.set(e.name,{type:"string",value:d[e.name]});else{let c=df(e.default);a.set(e.name,{type:"string",value:c.type==="number"?c.raw??String(c.value):c.value})}return{}}let l=ia(e,a);if(Sn("phase15b",l),vi("phase15b",l),We(l),await pf(l,n,i),l.type==="VALIDATE"){let d=await Uf(l,n,{...r,onLimitReached:"error"},i);return l.errorTable&&at(o,l.errorTable,d.columns,d.rows,r.tempTableMaxRows??Ke,pe.get(d)??vf(l.summary===!0)),{result:d}}if(l.type==="IMPORT")return{result:await dE(l,n,r,i,o)};if("validateOnly"in l&&l.validateOnly===!0){let d=await Ru(l,n,{...r,onLimitReached:"error"},i,o,t.index+1);return l.validationErrorTable&&at(o,l.validationErrorTable,d.columns,d.errors,r.tempTableMaxRows??Ke,pn.get(d)??new Map),{result:d}}if("onErrorSkip"in l&&l.onErrorSkip===!0)return{result:await Kl(l,n,{...r,onLimitReached:"error"},i,o,t.index+1)};if(l.type==="CREATE_TEMP_TABLE"){let d={...r,maxRecords:r.tempTableMaxRows??Ke,onLimitReached:"error"},c=await Jh(l.query,n,d,i,o);return o.set(l.name,{rows:c.rows,columns:c.columns,columnMeta:pe.get(c)}),{tempTable:l.name,rowCount:c.rows.length}}if(e.type==="DROP_TEMP_TABLE")return o.delete(e.name),{tempTable:e.name};if(e.type==="EXPLAIN")return{result:await Il(l,n,r,i)};if(l.type==="ASSERT")return await Ff(l,n,r,i,o),{};if(t.tempTablesReferenced.length>0){if(l.type==="SELECT"||l.type==="UNION")return{result:await ht(l,n,r,o,i,r.captureColumnMeta===!0)};if(l.type==="WITH")return{result:await pu(l,n,r,i,o)};if(l.type==="INSERT_SELECT")return{result:await hu(l,n,r,i,o)};if(l.type==="UPSERT_SELECT")return{result:await Tu(l,n,r,i,o)};if(l.type==="UPDATE"&&l.from?.cteName!=null)return{result:await Gl(l,n,r,i,o)};throw new Error(`ArgumentError: temp table references in ${e.type} are not supported yet.`)}return{result:await Il(l,n,r,i)}}async function Jh(e,t,n,r,i){return e.type==="WITH"?pu(e,t,n,r,i,!0):ht(e,t,n,i,r,!0)}async function Qh(e,t,n){if(t===null)return e;if(t<=0)throw n&&await n(),e.catch(()=>{}),new $n;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 $n)})()},t)})])}catch(a){throw a instanceof $n&&e.catch(()=>{}),a}finally{r!==void 0&&clearTimeout(r)}}function Zh(e){let t;if(e instanceof tt)t={code:e.name,message:e.message,partialSuccess:e.partialSuccess};else if(e instanceof Error)t={code:(e.name!=="Error"?e.name:null)??ml(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:eA(e);t={code:typeof n.code=="string"&&n.code.length>0?n.code:ml(r),message:r}}else{let n=String(e);t={code:ml(n),message:n}}return Object.defineProperty(t,"cause",{value:e,enumerable:!1,configurable:!1,writable:!1}),t}function ml(e){return e.match(/^([A-Za-z]+Error):/)?.[1]??"Error"}function eA(e){try{return JSON.stringify(e)??String(e)}catch{return String(e)}}function Zl(e,t=!1){let n=new Lt(e).tokenize();return new _t(n,{import:t}).parseStatements()}function tA(e,t){try{let n=Zl(`DECLARE @__b111 RELATIVE_DATE = ${t}`),r=n[0];if(n.length!==1||r?.type!=="DECLARE_VARIABLE"||r.annotation!=="RELATIVE_DATE")throw new Error("token was not consumed as one RELATIVE_DATE declaration");return r.default}catch(n){let r=n instanceof Error?` ${n.message}`:"";throw new Error(`ArgumentError: RELATIVE_DATE variable @${e} requires one supported relative-date function token.${r}`)}}function Mf(e,t){let n=new Map;for(let r of e)r.type!=="DECLARE_VARIABLE"||r.annotation!=="RELATIVE_DATE"||n.set(r.name,Object.prototype.hasOwnProperty.call(t,r.name)?tA(r.name,t[r.name]):r.default);return n}function df(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:ap(e.name)};case"STRING_FUNC":return{type:"string",value:ue(e,{})};case"ARITH":{let t=le(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 ia(e,t){return wl(e,t,!1)}function wl(e,t,n){if(Array.isArray(e))return e.map(r=>wl(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(a.type==="relative-date")return a.value;if(n&&a.type!=="number"&&!(a.type==="string"&&a.placeholder===!0))throw new Error(`ArgumentError: variable @${r.name} is not numeric and cannot be used in arithmetic.`);return n&&a.type==="string"&&a.placeholder===!0?{type:"NUMBER",value:0,raw:n==="AGG_ARITH"?`@${r.name}`:a.value}:a.type==="number"?{type:"NUMBER",value:a.value,raw:n==="AGG_ARITH"?`@${r.name}`:a.raw??String(a.value)}:{type:"STRING",value:a.value}}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.`);if(a.type==="relative-date")throw new Error(`InternalError: RELATIVE_DATE variable @${r.name} reached a SELECT column.`);let s=typeof r.aliasDisplay=="string"?{aliasDisplay:r.aliasDisplay}:{};return a.type==="number"?{type:"ARITH_COL",expr:{type:"NUMBER",value:a.value,raw:a.raw??String(a.value)},alias:r.alias,...s}:{type:"LITERAL_COL",value:a.value,alias:r.alias,...s}}if(r.type==="VARIABLE_IN_LIST")return r;let i=Object.fromEntries(Object.entries(r).map(([a,s])=>[a,wl(s,t,a==="left"||a==="right"?r.type==="AGG_ARITH"?"AGG_ARITH":r.type==="ARITH"||r.type==="SCALAR_ARITH"?"ARITH":!1:!1)]));if(typeof r.aliasDisplay=="string"&&(i.aliasDisplay=r.aliasDisplay),i.type==="BINARY"){let a=i.right;if(a?.type==="VARIABLE_IN_LIST"&&typeof a.name=="string"){let s=t.get(a.name);if(s===void 0)throw new Error(`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=nA(i);if(o.type==="SELECT"&&Fe(o.where,!0)&&(o.where=null),(o.type==="UPDATE"||o.type==="DELETE"||o.type==="REORDER")&&Fe(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 Fe(e,t){return e!==null&&typeof e=="object"&&e.type==="BOOLEAN"&&(t===void 0||e.value===t)}function nA(e){if(e.type==="NOT"&&Fe(e.expr))return{type:"BOOLEAN",value:!e.expr.value};if(e.type==="GROUP"&&Fe(e.expr))return e.expr;if(e.type==="LOGICAL"){let t=e.left,n=e.right;if(e.op==="AND"){if(Fe(t,!1)||Fe(n,!1))return{type:"BOOLEAN",value:!1};if(Fe(t,!0))return n;if(Fe(n,!0))return t}else if(e.op==="OR"){if(Fe(t,!0)||Fe(n,!0))return{type:"BOOLEAN",value:!0};if(Fe(t,!1))return n;if(Fe(n,!1))return t}}return e}function bl(e){if(Array.isArray(e)){for(let t of e){let n=bl(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=bl(n);if(r!==null)return r}}return null}var Wn=class extends Error{constructor(t){super(`AssertError: ${t}`),this.name="AssertError"}},en=class extends Error{constructor(t){super(t),this.name="ScalarSubqueryError"}};async function Ff(e,t,n,r,i){let o=await zo(e.left,t,n,r,i),a=e.left.type==="NUMBER"||e.left.type==="ARITH"?x("number"):x("string");if(e.op==="BETWEEN"){if(e.low===null||e.high===null)throw new Error("ArgumentError: malformed ASSERT statement.");let l=await zo(e.low,t,n,r,i),d=await zo(e.high,t,n,r,i);if(!Wt(">=",o,l,a)||!Wt("<=",o,d,a))throw new Wn(`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 zo(e.right,t,n,r,i);if(!Wt(e.op,o,s,a))throw new Wn(`assertion failed: ${e.text} (actual: ${o}).`);return{type:"ASSERT",condition:e.text}}async function zo(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(Pl(e));case"SCALAR_SUBQUERY":try{return await xf(e.query,t,n,r,i)}catch(o){throw o instanceof en?new Wn(o.message):o}}}async function xf(e,t,n,r,i){let{query:o,probed:a}=rA(e),s=await ni(o,t,n,r,i);if(s.columns.length!==1)throw new en(`scalar subquery returned ${s.columns.length} columns (expected 1 column).`);if(s.rowCount===0)throw new en("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 en(`scalar subquery returned ${l} (expected 1 row).`)}return s.rows[0]?.[s.columns[0]]??""}function rA(e){return re(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 Pl(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=Pl(e.left),n=Pl(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 di(e,t,n,r,i=!1){let o=[e.from,...e.joins.map(p=>p.table)],a=i||nt(e.where)?[...new Set(o.filter(p=>p.cteName===null).map(p=>p.appId))]:[],s=new Map(await Promise.all(a.map(async p=>{let f=await te(p,t,n);return[p,new Map(f.map(E=>[E.code,E]))]}))),l=new Set,d=p=>{if(Array.isArray(p)){p.forEach(d);return}if(p===null||typeof p!="object")return;let f=p;if(f.type==="SELECT")return;let E=String(f.op),R=f.right,g=["=","!=","<>"].includes(E)&&R?.type==="STRING"&&R.value!=="";if(f.type==="BINARY"&&([">","<",">=","<="].includes(E)||g)){let y=f.left;y?.type==="FIELD"&&typeof y.field=="string"&&l.add(y.field)}Object.values(f).forEach(d)};d(e.where),d(e.having);for(let p of e.columns)p.type==="CASE_COL"&&d(p.expr);let c=new Map;await Promise.all([...s].map(async([p,f])=>{if(![...l].some(g=>f.get(g)?.fieldType==="STATUS"))return;let R=await Eu(p,t,n);R&&c.set(p,R)}));let u=(p,f,E)=>{if(f==="$id")return _n(Z({fieldType:"__ID__"}),p.appId,"$id");if(E&&p.subtableCode){if(f==="_rid")return x("string");if(f==="_idx"||f==="_pid")return x("number")}let R=s.get(p.appId)?.get(Ee(p,f));if(!R)return;let g=R.semantics??Z(R),y=R.fieldType==="STATUS"&&c.has(p.appId)?{...g,optionOrder:c.get(p.appId)}:g;return _n(y,p.appId,R.code)};return p=>{if(p.tableAlias!==null){if(p.tableAlias==="_p"&&e.from.subtableCode&&e.from.cteName===null)return u(e.from,p.field,!1);let E=o.find(R=>Le(R)===p.tableAlias);return E?E.cteName!==null?r?.get(E.cteName)?.columnMeta?.get(p.field)?.semantics??x("string"):u(E,p.field,!0):void 0}if(e.joins.length===0)return e.from.cteName!==null?r?.get(e.from.cteName)?.columnMeta?.get(p.field)?.semantics??x("string"):u(e.from,p.field,!0);let f=o.flatMap(E=>{let R=E.cteName!==null?r?.get(E.cteName)?.columnMeta?.get(p.field)?.semantics:u(E,p.field,!0);return R?[R]:[]});if(f.length===1)return f[0];if(!o.some(E=>Zo(E,p.field)!==void 0))return f.length>1?x("string"):void 0}}var Kf=new WeakMap;async function tn(e,t,n,r,i=!1){let o=await di(e,t,n,r,i);if(e.where===null)return{resolver:o,rewrites:[]};let a=Zp(e.where,o);return e.where=a.normalizedWhere,a.rewrites.length>0&&Kf.set(e,a.rewrites),{resolver:o,rewrites:a.rewrites}}function iA(e){return e.columns.some(t=>t.type==="WINDOW_COL"&&t.windowKind==="AGGREGATE"&&t.orderBy.length>0&&t.frame?.source==="DEFAULT")}function Bf(e){return iA(e)||e.columns.some(t=>t.type==="WINDOW_COL"&&t.windowKind==="VALUE")}function ff(e,t,n,r){return r!=="DIRECT"||e.joins.length>0||e.from.cteName!==null||e.from.subtableCode!=null?!1:t.some(i=>{if(i.key.type!=="FIELD_NAME")return!1;let o=Be(i.key.name);return o.field==="$id"||n(o)?.fieldType==="RECORD_NUMBER"})}function Ef(e,t){return e!=="DIRECT"?"\u305D\u306E\u8868\u306E\u4E2D\u3067\u4E00\u610F\u306B\u306A\u308B\u5217\uFF08\u5143\u306E\u96C6\u7D04\u306E\u30AD\u30FC\u306A\u3069\uFF09\u3092 ORDER BY \u306B\u542B\u3081\u3066\u304F\u3060\u3055\u3044\u3002\u96C6\u7D04\u7D50\u679C\u306E\u5217\u306F\u4E00\u610F\u3067\u3082\u8A3C\u660E\u3067\u304D\u306A\u3044\u305F\u3081\u3001\u3059\u3067\u306B\u4E00\u610F\u306A\u5834\u5408\u3082\u3053\u306E\u8B66\u544A\u304C\u51FA\u307E\u3059\u3002":t==="RANGE"?"ORDER BY \u306B\u30EC\u30B3\u30FC\u30C9\u756A\u53F7\u306A\u3069\u306E\u30BF\u30A4\u30D6\u30EC\u30FC\u30AF\u30AD\u30FC\u3092\u8DB3\u3057\u3066\u304F\u3060\u3055\u3044\u3002":"\u30EC\u30B3\u30FC\u30C9\u756A\u53F7\u7B49\u3092 ORDER BY \u306B\u8FFD\u52A0\u3057\u3066\u304F\u3060\u3055\u3044\u3002"}function Gf(e,t,n){let r=[];for(let i of e.columns)i.type!=="WINDOW_COL"||i.windowKind!=="AGGREGATE"||i.orderBy.length===0||i.frame?.source!=="DEFAULT"||ff(e,i.orderBy,t,n)||r.push(`${i.alias} \u306F\u65E2\u5B9A\u30D5\u30EC\u30FC\u30E0\uFF08RANGE\uFF09\u3067\u8A55\u4FA1\u3055\u308C\u307E\u3059\u3002ORDER BY \u306E\u5024\u304C\u540C\u3058\u884C\u306F\u3059\u3079\u3066\u540C\u3058\u5024\u306B\u306A\u308A\u307E\u3059\u3002\u884C\u3054\u3068\u306E\u5024\u304C\u5FC5\u8981\u306A\u3089 ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW \u3092\u660E\u793A\u3059\u308B\u304B\u3001`+Ef(n,"RANGE"));for(let i of e.columns)i.type!=="WINDOW_COL"||i.windowKind!=="VALUE"||ff(e,i.orderBy,t,n)||r.push(`${i.alias} \u306E ORDER BY \u306F\u5168\u9806\u5E8F\u3067\u306A\u3044\u305F\u3081\u3001\u540C\u9806\u5185\u306E\u524D\u5F8C\u95A2\u4FC2\u306F\u672A\u898F\u5B9A\u3067\u3059\u3002`+Ef(n,"VALUE"));return r}function eu(e,t){if(t.length===0)return e;let n={...e,warnings:[...new Set([...e.warnings??[],...t])]},r=pe.get(e);return r&&pe.set(n,r),n}function tu(e){let t=n=>{if(n===null||typeof n!="object")return!1;if(Array.isArray(n))return n.some(t);let r=n;return r.type==="CASE_WHEN"&&r.branches?.some(i=>nt(i.condition))?!0:Object.values(r).some(t)};return e.columns.some(t)}function $f(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(Be(r.field)):r.type==="ARITH_COL"||r.type==="ARITH_AGG_COL"?i=x("number"):r.type==="WINDOW_COL"?r.windowKind===void 0||r.windowKind==="RANKING"||r.windowKind==="AGGREGATE"&&(r.aggFunc==="COUNT"||r.aggFunc==="SUM"||r.aggFunc==="AVG")?i=x("number"):(r.windowKind==="AGGREGATE"||r.windowKind==="VALUE")&&r.arg.type!=="WILDCARD"&&(i=sn(r.arg,o=>{let a=t(o);return a?{sortKind:a.compareMode==="number"||a.compareMode==="recordNumber"?"number":"string",fieldType:a.fieldType,semantics:a}:void 0}).semantics):r.type==="AGGREGATE"?r.func==="MIN"||r.func==="MAX"||r.func==="MODE"?r.arg.type!=="WILDCARD"&&(i=sn(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"?x("string"):x("number"):r.type==="STRFUNC_COL"?i=an(r.expr).semantics:(r.type==="LITERAL_COL"||r.type==="SCALAR_SUBQUERY_COL"||r.type==="CASE_COL"||r.type==="SCALAR_VALUE_COL")&&(i=x("string")),i&&n.set(r.alias,i)}return r=>r.tableAlias===null&&n.has(r.field)?n.get(r.field):t(r)}function nn(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 oa(e){return e.orderBy.length>0||e.columns.some(t=>t.type==="WINDOW_COL"&&t.orderBy.length>0)}async function Vf(e,t,n){if(e.subtableCode||e.type==="UPDATE"&&e.from!=null)return{capability:"LOCAL_ONLY",reasons:[{code:"WHERE_EXPRESSION_LOCAL_ONLY"}]};let r=nt(e.where)?await te(e.appId,t,n):[],i=new Map(r.map(o=>[o.code,o]));return e.where.type==="BOOLEAN"&&e.where.value===!1?he(null,()=>{}):he(e.where,o=>{if(o.field==="$id")return Z({fieldType:"__ID__"});let a=i.get(o.field);return a?.semantics??(a?Z(a):void 0)})}async function Vn(e,t,n){if(e.subtableCode||e.type==="UPDATE"&&e.from!=null)return;let r=await Vf(e,t,n);if(r.capability!=="EXACT_PUSHDOWN")throw new ee(`WHERE predicate cannot be represented by kintone REST (${nn(r)})`)}async function Ft(e,t,n,r,i,o=!1,a=!1,s="DIRECT"){let l;if(await Ea(e,t,r,i),uA(e))return l=dA(e),o&&pe.set(l,await la(e,l.columns,t,r,i,a)),l;let{resolver:d}=await tn(e,t,r,i,Bf(e)),c=Gf(e,d,s),u=await nu(e,t,r,i);await hE(e,t,n,r,i);let p=NA(e,he(e.where,d));if(p.capability==="UNSUPPORTED")throw new Error(`ArgumentError: WHERE predicate is unsupported (${nn(p)}).`);let f=Ue(e),E,R;if(p.capability==="SUPERSET_PREFILTER"){let N=await di(e,t,r,i),b=sl(e,N);b.eligible&&ol(e,b)&&(E=b.plan)}if(E===void 0&&p.capability==="EXACT_PUSHDOWN"&&e.where!==null){let N=null;try{N=V(e.where)}catch{N=null}R=Vi({select:e,selectMode:f,capability:p,context:{allowFullScanExact:!0},serializedWholeWhere:N,relativeFunctionNames:fe(e.where)})??void 0,R&&(E=R.prefilterPlan)}let g=p.capability==="EXACT_PUSHDOWN"?f:"FULL_SCAN",y=await oi(e,t,r,i),m=oa(e)?(e.orderMode==="KINTONE_NATIVE"?xr:Fr)({stmt:e,staticMode:g,whereCapability:p.capability,whereReasons:p.reasons,orderSemantics:y.semantics,maxRecords:n.maxRecords??1e4,hasKlike:ge(e.where)}):null,h=await EA(e,m?.kind==="CANONICAL_LOCAL"?"FULL_SCAN":g,t,r),S=ru(e,n,m),w=R!==void 0&&(f==="FULL_SCAN"||m?.kind==="CANONICAL_LOCAL")?ql(t,{aborted:!1},!0):t;try{g==="SIMPLE"?l=await fA(e,w,S.effectiveOptions,r,m,y):l=await LA(e,w,S.effectiveOptions,r,i,p.capability==="EXACT_PUSHDOWN"&&E===void 0,y,E,u)}catch(N){Hf(S,N)}return o&&pe.set(l,await la(e,l.columns,t,r,i,a)),eu(l,[...c,...h])}function Nl(e,t){if(t.length===1){let{appId:r,owner:i}=t[0];return`ArgumentError: ${e} \u306F\u30B5\u30D6\u30C6\u30FC\u30D6\u30EB\u300C${i}\u300D\uFF08APP${r}\uFF09\u306E\u4E2D\u306E\u9805\u76EE\u3067\u3059\u3002\u89AA\u30C6\u30FC\u30D6\u30EB\u306E GROUP BY \u306B\u306F\u6307\u5B9A\u3067\u304D\u307E\u305B\u3093\u3002APP${r}$${i} \u304B\u3089\u96C6\u8A08\u3057\u3066\u304F\u3060\u3055\u3044\uFF08\u89AA\u306E\u30EC\u30B3\u30FC\u30C9 ID \u306F _pid\u3001\u89AA\u9805\u76EE\u306F _p.<\u30D5\u30A3\u30FC\u30EB\u30C9\u30B3\u30FC\u30C9> \u306B\u306A\u308A\u307E\u3059\uFF09\u3002`}let n=t.map(({appId:r,owner:i})=>`APP${r}$${i}`).join(" / ");return`ArgumentError: ${e} \u306F\u30B5\u30D6\u30C6\u30FC\u30D6\u30EB\u306E\u4E2D\u306E\u9805\u76EE\u3067\u3059\uFF08${n}\uFF09\u3002\u89AA\u30C6\u30FC\u30D6\u30EB\u306E GROUP BY \u306B\u306F\u6307\u5B9A\u3067\u304D\u307E\u305B\u3093\u3002\u3069\u306E\u30B5\u30D6\u30C6\u30FC\u30D6\u30EB\u304B\u3089\u96C6\u8A08\u3059\u308B\u304B\u3092 FROM \u3067\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044\u3002`}function Wf(e){let t=new Set,n=[];for(let r of e){let i=`${r.appId}\0${r.owner}`;t.has(i)||(t.add(i),n.push(r))}return n}async function nu(e,t,n,r){if(e.groupBy.length===0)return;let i=[e.from,...e.joins.map(c=>c.table)],o=new Map,a=await Promise.all(i.map(async c=>{if(c.cteName!==null){let E=r?.get(c.cteName);if(!E)throw new Error(`InternalError: materialized schema ${c.cteName} is not available for GROUP BY planning.`);return{kind:"MATERIALIZED",columns:E.columns}}let u=await te(c.appId,t,n);if(!c.subtableCode){for(let E of u){if(E.inSubtable!==!0||!E.subtableCode)continue;let R=o.get(E.code)??[];R.push({appId:c.appId,owner:E.subtableCode}),o.set(E.code,Wf(R))}return{kind:"APP",fieldCodes:u.filter(E=>!E.inSubtable).map(E=>E.code)}}let p=u.filter(E=>E.inSubtable&&E.subtableCode===c.subtableCode);return{kind:"SUBTABLE",childFieldCodes:(p.length>0?p:u.filter(E=>E.inSubtable&&E.subtableCode===void 0)).map(E=>E.code),parentFieldCodes:u.filter(E=>!E.inSubtable).map(E=>E.code)}})),s=gd(e,(c,u)=>a[u]),l=e.groupBy,d=yd(l,e.columns,s);return oA(e,l,d,o),d}function oA(e,t,n,r){let i=[e.from,...e.joins.map(s=>s.table)].flatMap(s=>s.cteName===null?[s.appId]:[]),o=[...new Set(i)],a=o.length===1?o[0]:e.from.cteName===null?e.from.appId:null;n.items.forEach((s,l)=>{if(s.kind==="EXPRESSION"||s.kind==="PHYSICAL"||s.kind==="ALIAS_SAFE")return;let d=t[l],c=d?.type==="FIELD_NAME"?d.name:"(expression)";if(s.kind==="UNKNOWN"){let u=a===null?"":` (APP${a})`,p=s.name.indexOf("."),f=p>=0?s.name.slice(p+1):s.name,E=r.get(s.name)??r.get(f)??[];throw E.length>0?new Error(Nl(s.name,E)):new Error(`ArgumentError: unknown field code(s): ${s.name}${u}`)}throw s.kind==="ALIAS_REJECT"?s.reason==="DUPLICATE"?new Error(`ArgumentError: GROUP BY alias ${c} is ambiguous across multiple SELECT columns (reason=GROUP_BY_ALIAS_AMBIGUOUS).`):s.reason==="POST_GROUP_ONLY"?new Error(`ArgumentError: GROUP BY alias ${c} requires post-group evaluation (reason=GROUP_BY_ALIAS_POST_GROUP_ONLY).`):new Error(`ArgumentError: GROUP BY alias ${c} depends on aggregate evaluation (reason=GROUP_BY_ALIAS_AGGREGATE).`):new Error(`InternalError: deferred GROUP BY field ${s.name} reached runtime planning.`)})}var ii=new WeakMap;async function aA(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 sA(e,t,n,r){let i=[e.from,...e.joins.map(u=>u.table)],o=i.filter(u=>u.cteName===null),a=new Map(await Promise.all([...new Set(o.map(u=>u.appId))].map(async u=>{let p=await te(u,t,n);return[u,new Map(p.map(f=>[f.code,f]))]}))),s=(u,p)=>{if(u.subtableCode)return null;let f=a.get(u.appId)?.get(p);return f?.inSubtable===!0?f.subtableCode??"":null},l=(u,p)=>{if(p==="$id")return"$id";let f=Ee(u,p);return s(u,f)!==null?null:a.get(u.appId)?.has(f)?f:null},d=(u,p)=>{if(u.cteName===null)return!1;let f=r?.get(u.cteName);return f?f.columns.includes(p):!0},c=(u,p,f,E)=>{let R=i.filter(m=>m.cteName===null&&l(m,f.field)!==null).length,g=i.some(m=>d(m,f.field)),y=Le(u);return{canonicalId:`source:${p}:APP${u.appId}:${E}`,directKey:f.tableAlias&&y?`${f.tableAlias}.${f.field}`:f.field,unqualifiedBridgeKey:R===1&&!g?f.field:null,physical:!0}};return u=>{if(u.tableAlias!==null){let g=i.findIndex(h=>Le(h)===u.tableAlias);if(g<0)throw new Error(`ArgumentError: B65 field ${u.tableAlias}.${u.field} has an unknown table alias.`);let y=i[g];if(y.cteName!==null)throw new Error(`ArgumentError: B65 field ${u.tableAlias}.${u.field} resolves to materialized source ${y.cteName}; physical APP fields are required.`);let m=l(y,u.field);if(m===null){let h=s(y,Ee(y,u.field));throw h!==null&&h!==""?new Error(Nl(u.field,[{appId:y.appId,owner:h}])):new Error(`ArgumentError: B65 field ${u.tableAlias}.${u.field} does not exist in APP${y.appId}.`)}return c(y,g,u,m)}let p=i.flatMap((g,y)=>{if(g.cteName!==null)return[];let m=l(g,u.field);return m===null?[]:[{table:g,tableIndex:y,code:m}]}),f=i.filter(g=>d(g,u.field));if(p.length+f.length>1)throw new Error(`ArgumentError: B65 field ${u.field} is ambiguous across multiple sources.`);if(p.length===1&&f.length===0){let g=p[0];return c(g.table,g.tableIndex,u,g.code)}if(f.length===1)throw new Error(`ArgumentError: B65 field ${u.field} resolves to a materialized CTE/temp column; physical APP fields are required.`);let E=i.flatMap(g=>{if(g.cteName!==null)return[];let y=s(g,Ee(g,u.field));return y===null||y===""?[]:[{appId:g.appId,owner:y}]}),R=Wf(E);throw R.length>0?new Error(Nl(u.field,R)):new Error(`ArgumentError: B65 field ${u.field} does not exist in a physical APP source.`)}}async function Ea(e,t,n,r){ii.delete(e);let i=re(e),o=JSON.stringify(e.columns).includes('"GROUPING_')||JSON.stringify(e.orderBy).includes('"GROUPING_');if(i.type==="NONE"&&!o)return;let a=await sA(e,t,n,r),s=Ac(e,a,hc);s&&ii.set(e,s)}function lA(e){let t=[...e].join(", "),n=[["AGGREGATE_WINDOW","\u96C6\u8A08\u30A6\u30A3\u30F3\u30C9\u30A6\u306E\u6B63\u3057\u3044\u7D50\u679C"],["GROUPING_SETS","\u5C0F\u8A08\u30FB\u7DCF\u8A08\u306E\u6B63\u3057\u3044\u7D50\u679C"],["STATISTICAL_AGGREGATE","\u7D71\u8A08\u96C6\u7D04\u306E\u6B63\u3057\u3044\u7D50\u679C"],["AGGREGATE","\u96C6\u8A08\u306E\u6B63\u3057\u3044\u7D50\u679C"],["GROUP_BY","\u30B0\u30EB\u30FC\u30D7\u96C6\u8A08\u306E\u6B63\u3057\u3044\u7D50\u679C"],["DISTINCT","DISTINCT \u306E\u6B63\u3057\u3044\u7D50\u679C"]],r=n.some(([s])=>e.has(s)),i=e.has("LOCAL_ORDER")||e.has("WINDOW_ORDER"),o=e.size===1&&e.has("STATISTICAL_AGGREGATE")?"\u7D71\u8A08\u96C6\u7D04\u306E\u6B63\u3057\u3044\u7D50\u679C":e.size===1&&e.has("GROUPING_SETS")?"\u5C0F\u8A08\u30FB\u7DCF\u8A08\u306E\u6B63\u3057\u3044\u7D50\u679C":e.size===1&&e.has("AGGREGATE")?"\u96C6\u8A08\u306E\u6B63\u3057\u3044\u7D50\u679C":e.size===1&&e.has("GROUP_BY")?"\u30B0\u30EB\u30FC\u30D7\u96C6\u8A08\u306E\u6B63\u3057\u3044\u7D50\u679C":e.size===1&&e.has("DISTINCT")?"DISTINCT \u306E\u6B63\u3057\u3044\u7D50\u679C":e.has("GROUPING_SETS")?"\u30AF\u30A8\u30EA\u306E\u6B63\u3057\u3044\u7D50\u679C":"ORDER BY\u306E\u6B63\u3057\u3044\u7D50\u679C";return`${e.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 ru(e,t,n){let r=e.type==="SELECT"&&(n?.kind==="CANONICAL_REST_TOP_N"||n?.kind==="KORDER_NATIVE"||n?.kind==="KORDER_CURSOR")?Tt({...e,orderBy:[]}):Tt(e),i=r.size>0&&t.onLimitReached==="truncate";return{reasons:r,effectiveOptions:i?{...t,onLimitReached:"error"}:t,truncateWasDisabled:i}}function Hf(e,t){throw e.reasons.size>0&&t instanceof Pe&&!t.completeInputWrapped?new Pe(lA(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){Hf(e,n)}}function mt(e){return e?.type==="BOOLEAN"&&e.value===!1}function uA(e){return e.from.appId===0&&e.from.cteName===Xe}function aa(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"?aa(e.left)||aa(e.right):e.type==="STRING_FUNC"?iu(e):!1}function cA(e){return e.type==="AGG_GROUP_KEY"?!0:e.type==="VARIABLE"?!1:e.type==="AGG_REF"||e.type==="AGG_ARITH"?!0:Qr(e)}function Qr(e){return e.type==="FIELD"?!0:e.type==="STRING_FUNC"?iu(e):e.type==="SCALAR_ARITH"||e.type==="CONCAT_OP"?Qr(e.left)||Qr(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"?aa(n):n.type==="AGG_REF"||n.type==="AGG_ARITH"?!0:Qr(n))):!1}function iu(e){return e.args.some(t=>cA(t))}function pA(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(aa(t.expr))throw new Error("ArgumentError: field reference is not allowed without FROM.");break;case"STRFUNC_COL":if(iu(t.expr))throw new Error("ArgumentError: field reference is not allowed without FROM.");break;case"SCALAR_VALUE_COL":if(Qr(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 dA(e){if(e.joins.length>0||e.where||re(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.");pA(e);let t=Js([{}],e.columns),{rows:n,columns:r}=Vr(t,e.columns),i=Fo(n,e.limit,e.offset);return{type:"SELECT",rows:i,columns:r,rowCount:i.length,warnings:[]}}async function fA(e,t,n,r,i,o){let a=i?.kind==="CANONICAL_REST_TOP_N"?qf(e):e,s=Bi(a),l=i?.kind==="CANONICAL_LOCAL"?$t(e,e.from):s.fields,d=await su(e,t,r),c=uu(e,d),u=e.columns.some(b=>b.type==="CASE_COL")?await di(e,t,r,void 0,tu(e)):void 0,p=n.maxRecords??1e4,f=new Set,E=n.onLimitReached??"error",R=n.fetchParallel??1,g=e.orderBy.length>0?i?.kind==="CANONICAL_REST_TOP_N"||i?.kind==="KORDER_NATIVE"||i?.kind==="KORDER_CURSOR":e.limit!==null&&e.limit<=500,y=e.limit===null?null:(e.offset??0)+e.limit,m=e.orderBy.length===0&&y!==null&&y<=p&&!ge(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 Ed({client:t,app:s.app,fields:s.fields,query:Vs(e),offset:e.offset??0,limit:e.limit});h=b.records,b.cleanupWarning&&f.add(b.cleanupWarning)}else if(g)h=(await t.getRecords({app:s.app,query:s.query,fields:s.fields})).records;else{let b=e.where?V(e.where):"";h=await be(t.getRecords,s.app,b,l,{parallel:R,maxRecords:p,stopAfter:m,onLimit:E,onTruncate:D=>{f.add(`\u53D6\u5F97\u4E0A\u9650\uFF08${D} \u4EF6\uFF09\u306B\u9054\u3057\u305F\u305F\u3081\u3001${D} \u4EF6\u3067\u6253\u3061\u5207\u3063\u3066\u8868\u793A\u3057\u3066\u3044\u307E\u3059\u3002`),zl(t,e.from.appId)}})}let S=h.map(b=>Rt(b,null));g||(S=qs(S,e.orderBy,o.optionOrders,o.sortKinds,o.semantics,Xs(e.columns,void 0,c.row,u)),S=Fo(S,e.limit,e.offset));let{rows:I,columns:w}=Vr(S,e.columns,void 0,c.row,void 0,u),N=await du(e,I,w,t,r);return{type:"SELECT",rows:I,columns:N,rowCount:I.length,warnings:[...f]}}async function EA(e,t,n,r){let i=[],o=new Map,a=(d,c)=>{if(c.length===0)return;let u=o.get(d);u||(u=new Set,o.set(d,u));for(let p of c)u.add(p)},s=new Map,l=(d,c)=>{let u=s.get(d);u||(u=new Set,s.set(d,u));for(let p of c)u.add(p)};if(t==="SIMPLE"){let d=Bi(e);a(d.app,d.fields),e.from.subtableCode||l(d.app,d.fields)}else{let d=[e.from,...e.joins.map(c=>c.table)].filter(c=>c.cteName===null);for(let c of d){let u=$t(e,c);a(c.appId,u),c.subtableCode||l(c.appId,u)}}for(let[d,c]of o.entries()){let u=[...c].filter(g=>!Ws(g));if(u.length===0)continue;let p=await te(d,n,r);if(p.length===0)continue;let f=new Set(p.map(g=>g.code)),E=u.filter(g=>!f.has(g));if(E.length>0)throw new Error(`ArgumentError: unknown field code(s): ${E.join(", ")} (APP${d})`);let R=s.get(d);if(R){let g=p.filter(y=>y.inSubtable===!0&&R.has(y.code));for(let y of g){let m=y.subtableCode??"",h=m?`\u30B5\u30D6\u30C6\u30FC\u30D6\u30EB\u300C${m}\u300D`:"\u30B5\u30D6\u30C6\u30FC\u30D6\u30EB";i.push(`${y.code} \u306F${h}\u306E\u4E2D\u306E\u9805\u76EE\u3067\u3059\u3002APP${d} \u304B\u3089\u306F\u5024\u304C\u53D6\u308C\u305A\u3001\u30A8\u30E9\u30FC\u306B\u306A\u3089\u306A\u3044\u307E\u307E\u5E38\u306B\u7A7A\u306B\u306A\u308A\u307E\u3059\uFF08\u5217\u306F\u7A7A\u3001\u96C6\u8A08\u306F\u7A7A\u3001\`HAVING\` \u306A\u3069\u306E\u6761\u4EF6\u306F\u7A7A\u3068\u306E\u6BD4\u8F03\u306B\u306A\u308A\u307E\u3059\uFF09\u3002`+(m?`APP${d}$${m} \u304B\u3089\u9078\u3093\u3067\u304F\u3060\u3055\u3044\uFF08\u89AA\u306E\u30EC\u30B3\u30FC\u30C9 ID \u306F _pid\u3001\u89AA\u9805\u76EE\u306F _p.<\u30D5\u30A3\u30FC\u30EB\u30C9\u30B3\u30FC\u30C9> \u306B\u306A\u308A\u307E\u3059\uFF09\u3002`:""))}}}return i}function Rf(e){return e.cteName??`APP${e.appId}`}function RA(e){return e.alias?[e.alias]:e.cteName!==null?[e.cteName]:[`APP${e.appId}`,`app${e.appId}`]}function gA(e,t){return Ws(t)||e.validCodes.has(t)}function hl(e,t){return e.table.cteName!==null?e.validCodes.has(t):gA(e,t)}function yA(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 mA(e,t,n,r){let i=[e.from,...e.joins.map(c=>c.table)],o=new Map,a=new Set;for(let c of i){let u=Le(c);if(u!==null){if(a.has(u))throw new Error(`ArgumentError: effective alias ${u} is used by multiple tables.`);a.add(u)}}for(let c of i){if(c.cteName===null||c.cteName===Xe)continue;let u=n.get(c.cteName);if(!u)throw new Error(`ArgumentError: materialized source ${c.cteName} is not available.`);if(u.rows.length>0&&u.columns.length===0)throw new Error(`InternalError: materialized source ${c.cteName} has rows but no column schema.`);if(e.joins.length>0&&u.rows.length===0&&u.columns.length===0)throw new Error(`ArgumentError: column schema is unavailable for materialized JOIN source ${c.cteName}.`);o.set(c,u)}let s=new Map;await Promise.all(i.map(async c=>{let u=o.get(c);if(u){s.set(c,{table:c,label:Rf(c),validCodes:new Set(u.columns),authoritative:!0,schemaUnavailable:u.rows.length===0&&u.columns.length===0});return}if(c.cteName===Xe)return;let p=await te(c.appId,t,r);s.set(c,{table:c,label:Rf(c),validCodes:new Set(p.map(f=>f.code)),authoritative:p.length>0,schemaUnavailable:!1})}));let l=new Map;for(let c of s.values())for(let u of RA(c.table))l.set(u,c);for(let c of e.joins)for(let u of[c.on.left,c.on.right]){if(!u.tableAlias)continue;let p=l.get(u.tableAlias);if(p&&p.table.cteName!==null&&!p.schemaUnavailable&&!hl(p,u.field))throw new Error(`ArgumentError: JOIN key ${u.tableAlias}.${u.field} is not available in the materialized table.`)}let d=Pc(e);for(let[c,u]of d.bySource){let p=s.get(c);if(!p||p.schemaUnavailable||!p.authoritative)continue;let f=[...u].filter(E=>!hl(p,E));if(f.length>0)throw new Error(`ArgumentError: unknown field code(s): ${f.join(", ")} (${p.label})`)}for(let c of d.unqualified){let u=[...s.values()].filter(f=>!f.schemaUnavailable);if(u.some(f=>hl(f,c))||[...s.values()].some(f=>f.schemaUnavailable)||u.some(f=>f.table.cteName===null&&!f.authoritative))continue;let p=u.map(f=>f.label).join(", ");throw new Error(`ArgumentError: unknown field code(s): ${c} (${p})`)}}async function Qo(e,t,n,r,i=new Set){if(!i.has(e)){if(i.add(e),e.type==="UNION"){await Qo(e.left,t,n,r,i),await Qo(e.right,t,n,r,i);return}await mA(e,t,n,r);for(let o of yA(e))await Qo(o,t,n,r,i)}}function Yf(e){return e.where===null||e.from.subtableCode||e.from.cteName!==null?null:e.joins.length===0?ur(e.where,{tableAlias:e.from.alias??void 0,allowUnqualifiedFields:!0}):e.from.alias?ur(e.where,{tableAlias:e.from.alias}):null}var ou=new WeakMap;function Ra(e,t){if(e.joins.length===0||e.where===null||e.joins.some(u=>u.type!=="INNER"))return null;let n=[e.from,...e.joins.map(u=>u.table)];if(n.some(u=>u.alias===null||u.cteName!==null||!!u.subtableCode))return null;let r=n.map(u=>({alias:u.alias,appId:u.appId,sourceKind:"APP",fieldTypes:new Map([...t.fieldTypesByApp.get(u.appId)??new Map,["$id","__ID__"]]),fieldOptions:t.fieldOptionsByApp.get(u.appId)})),i=ad(e.where,r),o=sd(i,r),a=new Map,s=new Map;for(let[u,p]of o.fetchQueriesByAlias)s.set(u,p);for(let u of o.items)s.has(u.targetAlias)||s.set(u.targetAlias,Kn(u,r)),a.set(u.targetAlias,u.predicate);let l=e.from.alias,d=a.get(l)??null,c=new Map(a);return c.delete(l),{joinPlan:o,queriesByAlias:s,mainCondition:d,joinConditions:c,appliedKlikes:o.appliedKlikes,allKlikes:o.allKlikes}}async function ga(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,Yf(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=ur(e.where,{tableAlias:s.table.alias});i(s.table.appId,l)}let a=await Promise.all([...r.entries()].map(async([s,l])=>{let[d,c]=await Promise.all([we(s,t,n),kA(s,t,n)]),u=hA(l).filter(p=>d.get(p)==="STATUS");if(u.length>0){let p=await ma(s,t,n);if(p.enable&&p.states&&p.states.length>0){let f=new Set(p.states.map(E=>E.name));for(let E of u)c.set(E,f)}}return[s,d,c]}));return{fieldTypesByApp:new Map(a.map(([s,l])=>[s,l])),fieldOptionsByApp:new Map(a.map(([s,,l])=>[s,l]))}}function hA(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 yt(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"&&sa(e.left.expr,t),e.right.type==="CASE_VALUE"&&sa(e.right.expr,t);return;case"LOGICAL":yt(e.left,t),yt(e.right,t);return;case"NOT":case"GROUP":yt(e.expr,t);return;case"NULL_CHECK":case"EXISTS":case"BOOLEAN":return}}function sa(e,t){for(let n of e.branches)yt(n.condition,t)}function AA(e){let t=[];yt(e.where,t),yt(e.having,t);for(let n of e.columns)n.type==="CASE_COL"&&sa(n.expr,t);return t}function Le(e){return e.alias??e.cteName}function jf(e,t){return[e.from,...e.joins.map(n=>n.table)].find(n=>Le(n)===t)}function au(e){return[e.from,...e.joins.map(t=>t.table)].filter(t=>t.cteName===null)}async function su(e,t,n){let r=AA(e);if(r.length===0)return new Map;let i=new Set,o=au(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=jf(e,s.tableAlias);l&&l.cteName===null&&i.add(l.appId);continue}if(e.joins.length===0){e.from.cteName===null&&i.add(e.from.appId);continue}for(let l of o)i.add(l.appId)}let a=await Promise.all([...i].map(async s=>[s,await we(s,t,n)]));return new Map(a)}function Be(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 lu(e,t,n){e!=="MIN"&&e!=="MAX"&&e!=="MODE"||t.type==="WILDCARD"||Jt(t,n)}function Jt(e,t){if(e.type==="FIELD_REF"){t.push(Be(e.field));return}if(e.type==="FIELD"){t.push(e);return}if(e.type==="ARITH"){Jt(e.left,t),Jt(e.right,t);return}if(e.type==="SCALAR_ARITH"||e.type==="CONCAT_OP"){Jt(e.left,t),Jt(e.right,t);return}if(e.type==="STRING_FUNC"){for(let n of e.args)n.type==="AGG_GROUP_KEY"?t.push({type:"FIELD",tableAlias:n.tableAlias??null,field:n.field}):n.type!=="AGG_REF"&&n.type!=="AGG_ARITH"&&n.type!=="VARIABLE"&&Jt(n,t);return}if(e.type==="CASE_WHEN")for(let n of[...e.branches.map(r=>r.result),...e.elseResult?[e.elseResult]:[]])n.type==="AGG_REF"||n.type==="AGG_ARITH"?Hn(n,t):n.type!=="ARRAY"&&Jt(n,t)}function Hn(e,t){if(e.type==="AGG_REF"){lu(e.func,e.arg,t);return}e.type==="AGG_ARITH"&&(Hn(e.left,t),Hn(e.right,t)),e.type==="AGG_GROUP_KEY"&&t.push({type:"FIELD",tableAlias:e.tableAlias??null,field:e.field})}function Ol(e,t){for(let n of e.args)if(n.type==="AGG_REF"||n.type==="AGG_ARITH")Hn(n,t);else if(n.type==="AGG_GROUP_KEY")t.push({type:"FIELD",tableAlias:n.tableAlias??null,field:n.field});else{if(n.type==="VARIABLE")continue;Zr(n,t)}}function Zr(e,t){if(e.type==="STRING_FUNC"){Ol(e,t);return}if(e.type==="SCALAR_ARITH"||e.type==="CONCAT_OP"){Zr(e.left,t),Zr(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"?Ol(r,t):r.type==="AGG_REF"||r.type==="AGG_ARITH"?Hn(r,t):r.type!=="ARRAY"&&r.type!=="FIELD_REF"&&r.type!=="ARITH"&&Zr(r,t)}}function SA(e,t){let n=r=>{if(r===null||typeof r!="object")return;if(Array.isArray(r)){r.forEach(n);return}let i=r;if(i.type==="AGG_REF"){let o=i;lu(o.func,o.arg,t);return}i.type==="SELECT"||i.type==="SCALAR_SUBQUERY"||Object.values(i).forEach(n)};n(e)}function TA(e){let t=[];for(let n of e)n.type==="AGGREGATE"?lu(n.func,n.arg,t):n.type==="ARITH_AGG_COL"?Hn(n.expr,t):n.type==="STRFUNC_COL"?Ol(n.expr,t):n.type==="SCALAR_VALUE_COL"?Zr(n.expr,t):n.type==="CASE_COL"&&SA(n.expr,t);return t}var IA=new Set(["SINGLE_LINE_TEXT","MULTI_LINE_TEXT","RICH_TEXT","LINK","DROP_DOWN","RADIO_BUTTON","STATUS","DATE","TIME","DATETIME","CREATED_TIME","UPDATED_TIME"]);function wA(e){return e.sortKind!==void 0?e.sortKind:e.fieldType==="NUMBER"||e.fieldType==="RECORD_NUMBER"?"number":IA.has(e.fieldType)?"string":void 0}async function zf(e,t,n,r){let i=TA(e.columns);if(i.length===0)return;let o=new Set,a=au(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=jf(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 te(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(g=>E.get(g)?.fieldType==="STATUS"))return;let R=await Eu(f,t,n);R&&l.set(f,R)}));let c=[e.from,...e.joins.map(f=>f.table)],u=(f,E)=>{let R=f.semantics??Z(f);return f.fieldType==="STATUS"&&l.has(E)?{...R,optionOrder:l.get(E)}:R};return f=>{let E;if(f.tableAlias!==null)if(f.tableAlias==="_p"&&e.from.subtableCode&&e.from.cteName===null)E=s.get(e.from.appId)?.get(f.field);else{let g=c.find(y=>Le(y)===f.tableAlias);if(!g)return;if(g.cteName!==null)return r?.get(g.cteName)?.columnMeta?.get(f.field)?.semantics??x("string");E=s.get(g.appId)?.get(Ee(g,f.field))}else if(e.joins.length===0){if(e.from.cteName!==null)return r?.get(e.from.cteName)?.columnMeta?.get(f.field)?.semantics??x("string");E=s.get(e.from.appId)?.get(Ee(e.from,f.field))}else{let g=c.flatMap(y=>{if(y.cteName!==null){let h=r?.get(y.cteName);return h?.columns.includes(f.field)?[h.columnMeta?.get(f.field)?.semantics??x("string")]:[]}let m=s.get(y.appId)?.get(Ee(y,f.field));return m?[u(m,y.appId)]:[]});return g.length!==1?void 0:g[0]}if(!E)return;let R=f.tableAlias!==null?c.find(g=>Le(g)===f.tableAlias):e.joins.length===0?e.from:void 0;return u(E,R?.appId??e.from.appId)}}function Ee(e,t){return e.subtableCode&&t.startsWith("_p.")?t.slice(3):t}function Zo(e,t){if(e.subtableCode){if(t==="_rid")return"SINGLE_LINE_TEXT";if(t==="_idx"||t==="_pid")return"NUMBER"}}function ot(e,t){let n=e.semantics??Z(e);return{sortKind:wA(e),fieldType:e.fieldType,semantics:t===void 0?n:_n(n,t,e.code)}}function qf(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:x(e)}}function xe(){return{semantics:x("string","KSQL_UNKNOWN")}}function Xf(e="KSQL_ARRAY"){return{semantics:{fieldType:e,compareMode:"unsupported",inSubtable:!1,requiresCollectionOperators:!1}}}function Qt(e){if(e==="$id")return{sortKind:"number",fieldType:"__ID__",semantics:Z({fieldType:"__ID__"})};if(e==="_rid")return z("string");if(e==="_pid"||e==="_idx"||e==="$revision")return z("number")}var bA=new Set(["LENGTH","LENGTH_CHAR","INSTR","ROUND","FLOOR","CEIL","TRUNCATE","YEAR","MONTH","DAY","DATEDIFF","ABS","MOD","POWER","SQRT","DAYOFWEEK","QUARTER","WEEK"]);function an(e){if(e.func==="CAST"){let t=e.args[1];return t?.type==="STRING"&&t.value==="NUMBER"?z("number"):z("string")}return bA.has(e.func)?z("number"):z("string")}function Yn(e,t){return e.type==="STRING"?z("string"):e.type==="ARRAY"?Xf():e.type==="AGG_REF"?e.func==="MIN"||e.func==="MAX"||e.func==="MODE"?e.arg.type==="WILDCARD"?xe():sn(e.arg,t):e.func==="GROUP_CONCAT"?z("string"):z("number"):e.type==="AGG_ARITH"||e.type==="NUMBER"||e.type==="ARITH"||e.type==="SCALAR_ARITH"?z("number"):e.type==="STRING_FUNC"?an(e):e.type==="FIELD_REF"?t(Be(e.field))??xe():e.type==="FIELD"?t(e)??xe():xe()}function ya(e){if(e.length===0)return xe();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&&Ji(n(r.semantics),n(t.semantics)))?e.every(i=>Ji(i.semantics,t.semantics))?t:{...t,semantics:n(t.semantics)}:e.some(r=>r.semantics?.compareMode==="unsupported")?Xf("KSQL_MIXED_UNSUPPORTED"):xe()}function sn(e,t){if(e.type==="FIELD_REF")return t(Be(e.field))??xe();if(e.type==="FIELD")return t(e)??xe();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 an(e);let n=e.branches.map(r=>Yn(r.result,t));return e.elseResult&&n.push(Yn(e.elseResult,t)),ya(n)}function Jf(e,t){return e.windowKind==="VALUE"?sn(e.arg,t):e.windowKind==="AGGREGATE"?e.aggFunc==="COUNT"||e.aggFunc==="SUM"||e.aggFunc==="AVG"?z("number"):e.arg.type==="WILDCARD"?xe():sn(e.arg,t):z("number")}function ea(e,t){return{...e??{},displayName:t}}function PA(e){return e.columns.some(t=>t.type==="FIELD"||t.type==="WILDCARD"||t.type==="PARENT_WILDCARD"||t.type==="CASE_COL"||t.type==="AGGREGATE"&&(t.func==="MIN"||t.func==="MAX"||t.func==="MODE")||t.type==="WINDOW_COL"&&(t.windowKind==="VALUE"||t.windowKind==="AGGREGATE"&&(t.aggFunc==="MIN"||t.aggFunc==="MAX")))}async function la(e,t,n,r,i,o=!1){let a=new Map;PA(e)&&await Promise.all(au(e).map(async R=>{if(a.has(R.appId))return;let g=await te(R.appId,n,r);a.set(R.appId,new Map(g.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?ot(h,e.from.appId):void 0}let y=s.find(h=>Le(h)===R.tableAlias);if(!y)return;if(y.cteName!==null)return i?.get(y.cteName)?.columnMeta?.get(R.field);let m=a.get(y.appId)?.get(Ee(y,R.field));return m?ot(m,y.appId):Qt(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(Ee(e.from,R.field));return y?ot(y,e.from.appId):Qt(R.field)}let g=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 m=a.get(y.appId)?.get(Ee(y,R.field)),h=m?ot(m,y.appId):Qt(R.field);return h?[h]:[]});return g.length===1?g[0]:void 0},c=R=>{if(!l)return;let g=s.filter(y=>{if(R.tableAlias!==null&&Le(y)!==R.tableAlias)return!1;let m=Ee(y,R.field);return a.get(y.appId)?.has(m)===!0||Qt(R.field)!==void 0});return g.length===1?g[0].appId:void 0},u=(R,g)=>{let y=c(g);return R&&y!==void 0?{...R,publicSourceApp:y}:R},p=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 g=Be(R),y=u(d(g),g);p.set(R,ea(y,y?.displayName??R))}return p}if(f)for(let R of t){let g=Be(R),y=u(d(g),g);p.set(R,ea(y,y?.displayName??R))}return e.columns.filter(R=>R.type!=="WILDCARD"&&R.type!=="PARENT_WILDCARD").forEach((R,g)=>{let y=f?"alias"in R&&R.alias?R.alias:void 0:t[g];if(!y)return;let m;if(R.type==="FIELD"){let h=Be(R.field);m=u(d(h),h)}else if(R.type==="AGGREGATE")R.func==="GROUP_CONCAT"?m=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"?m=z("number"):(R.func==="MIN"||R.func==="MAX"||R.func==="MODE")&&R.arg.type!=="WILDCARD"&&(m=sn(R.arg,d));else if(R.type==="ARITH_AGG_COL"||R.type==="ARITH_COL")m=z("number");else if(R.type==="GROUPING_COL")m=z("number");else if(R.type==="LITERAL_COL")m=z("string");else if(R.type==="SCALAR_VALUE_COL"){let h=R.expr;h.type==="STRING_FUNC"?m=an(h):h.type==="NUMBER"||h.type==="SCALAR_ARITH"?m=z("number"):h.type==="FIELD"?m=d(h):m=z("string")}else if(R.type==="STRFUNC_COL")m=an(R.expr);else if(R.type==="WINDOW_COL")m=Jf(R,d);else if(R.type==="CASE_COL"){let h=R.expr.branches.map(S=>Yn(S.result,d));R.expr.elseResult&&h.push(Yn(R.expr.elseResult,d)),m=ya(h)}else R.type==="SCALAR_SUBQUERY_COL"&&(m=xe());p.set(y,ea(m,R.aliasDisplay??y))}),p}function Qf(e,t){let n=pe.get(e),r=pe.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),c;if(s&&d){let u=ya([s,d]),p=s.publicSourceApp===d.publicSourceApp?s.publicSourceApp:void 0,{publicSourceApp:f,...E}=u;c=p===void 0?E:{...E,publicSourceApp:p}}else c=xe();i.set(o,ea(c,s?.displayName??o))}),i}function uu(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(c=>Le(c)===s.tableAlias);return!d||d.cteName!==null?void 0:Zo(d,s.field)??t.get(d.appId)?.get(Ee(d,s.field))}if(e.joins.length===0)return e.from.cteName!==null?void 0:Zo(e.from,s.field)??t.get(e.from.appId)?.get(Ee(e.from,s.field));if(n.some(d=>d.cteName!==null))return;let l=r.flatMap(d=>{let c=Zo(d,s.field)??t.get(d.appId)?.get(Ee(d,s.field));return c?[c]:[]});return l.length===1?l[0]:void 0};return{row:o,having:s=>{if(!(s.tableAlias===null&&i.has(s.field)))return o(s)}}}var Zf=new WeakSet,cu=new WeakMap;function Ll(e){return Zf.add(e),e}function NA(e,t){return cu.set(e,t),t}function eE(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&&re(e).type==="NONE"&&e.having===null&&e.joins.length===0&&e.from.cteName===null&&!e.from.subtableCode&&e.limit===null&&e.offset===null}function CA(e){return typeof e=="string"&&/^(?:0|[1-9]\d*)$/.test(e)}async function OA(e,t){let n=e.columns.find(s=>s.type==="AGGREGATE");if(n?.type!=="AGGREGATE")return null;let r=e.where===null?"":V(e.where),i=await t.getRecords({app:e.from.appId,query:`${r}${r?" ":""}limit 1`,fields:["$id"],totalCount:!0});if(i.searchAborted)throw new on;if(!CA(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 LA(e,t,n,r,i,o=!0,a,s,l){let d=cu.get(e);if(Zf.has(e)&&d!==void 0&&eE(e,d)){let F=await OA(e,t);if(F!==null)return F}let c=n.maxRecords??1e4,u=new Set,p=n.fetchParallel??1;await Promise.all([ui(e.where,t,n,r,i),ui(e.having,t,n,r,i)]);let[f,E,R]=await Promise.all([ga(e,t,r),su(e,t,r),zf(e,t,r,i)]),g=uu(e,E),y=await di(e,t,r,i,nt(e.having)||tu(e)),m=$f(e,y),h=ou.get(e);if(h&&!Bn(h.joinPlan))throw new Error("InternalError: JOIN server-function fetch binding changed before records API.");let S=h??Ra(e,f)??Cn(e,f);za(S);let I="joinPlan"in S?S:null,w=I&&Bn(I.joinPlan)?I:null,N=t,b=S.mainCondition,D=S.joinConditions;if(s&&o)throw new Error("internal error: relative-date prefilter must disable original WHERE pushdown.");let C=s?s.prefilterWhere:w?null:b,_=w?.queriesByAlias.get(e.from.alias)??"",U=await SE(e.columns,t,n,r,i),L=mt(e.where),v=L?Promise.resolve([]):ei(e,e.from,N,c,p,!0,n.onLimitReached??"error",u,C,w?!1:o,l,_),A=[],P=[];for(let F of e.joins){if(L){A.push({join:F,promise:Promise.resolve([])});continue}let de=F.table.alias?w?.queriesByAlias.get(F.table.alias)??"":"",En=w?null:F.table.alias?D.get(F.table.alias)??null:null;En!==null||de!==""?A.push({join:F,promise:ei(e,F.table,N,c,p,!1,n.onLimitReached??"error",u,En,!0,l,de)}):P.push(F)}let M=a?Promise.resolve(a):oi(e,t,r,i);M.catch(()=>{});let O=await v,K=new Map;K.set(e.from.alias,O);for(let{join:F,promise:de}of A)K.set(F.table.alias,await de);await Promise.all(P.map(async F=>{let En=await sE(e,F,K,N,c,p,n.onLimitReached??"error",u,null,l,"")??await ei(e,F.table,N,c,p,!1,n.onLimitReached??"error",u,null,!0,l,"");K.set(F.table.alias,En)}));let{optionOrders:j,sortKinds:q,semantics:k}=await M,{rows:$,columns:X}=el({tables:K,stmt:e,scalarCache:U,optionOrders:j,sortKinds:q,orderSemantics:k,fieldTypeResolver:g.row,fieldSemanticsResolver:y,havingFieldTypeResolver:g.having,havingFieldSemanticsResolver:m,aggregateSortKindResolver:R,appliedKlikes:s?.appliedKlikes??S.appliedKlikes,...s?{residualWhere:s.residualWhere}:w?{residualWhere:w.joinPlan.residualWhere}:{},resolvedGroupingSpec:ii.get(e),plainGroupByPlan:l}),G=await du(e,$,X,t,r);return{type:"SELECT",rows:$,columns:G,rowCount:$.length,warnings:[...u]}}function tE(e,t){if(e.length!==t.length)throw new Error(`ArgumentError: UNION \u306E\u5DE6\u53F3\u3067\u5217\u6570\u304C\u4E00\u81F4\u3057\u307E\u305B\u3093\uFF08\u5DE6 ${e.length} \u5217 / \u53F3 ${t.length} \u5217\uFF09\u3002
11
11
  UNION \u306F\u5217\u3092\u4F4D\u7F6E\u3067\u5BFE\u5FDC\u3055\u305B\u308B\u305F\u3081\u3001\u4E21\u8FBA\u306E\u5217\u6570\u3092\u63C3\u3048\u3066\u304F\u3060\u3055\u3044`)}async function nE(e,t,n,r,i=!1,o=!1){let a=ru(e,n,null);return Cl(a,async()=>{let s=a.effectiveOptions,[l,d]=await Promise.all([e.left.type==="UNION"?nE(e.left,t,s,r,i,o):Ft(Ll(e.left),t,s,r,void 0,i,o,"DERIVED"),Ft(Ll(e.right),t,s,r,void 0,i,o,"DERIVED")]),c=l.columns,u=d.columns;tE(c,u);let p=d.rows.map(y=>{let m={};return c.forEach((h,S)=>{m[h]=y[u[S]??h]??""}),m}),f=[...l.rows,...p],E=e.all?f:rE(f,c),R=[...new Set([...l.warnings??[],...d.warnings??[]])],g={type:"SELECT",rows:E,columns:c,rowCount:E.length,warnings:R};return i&&pe.set(g,Qf(l,d)),g})}function rE(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 pu(e,t,n,r,i,o=!1){if((i==null||i.size===0)&&Pt(e))return Ft(Nt(e),t,n,r,void 0,o,!1,"DERIVED");let a=new Map(i??[]),s=new Set;for(let d of e.ctes){let c;d.query.type==="SHOW_APPS"?c=await yE(t):d.query.type==="DESCRIBE"?c=await mE(d.query,t,r):c=await ht(d.query,t,n,a,r,!0);for(let u of c.warnings??[])s.add(u);a.set(d.name,{rows:c.rows,columns:c.columns,columnMeta:pe.get(c)})}let l=await ht(e.query,t,n,a,r,o);return eu(l,[...s])}async function ht(e,t,n,r,i,o=!1,a=!1){if(a||await Qo(e,t,r,i),e.type==="UNION"){let[d,c]=await Promise.all([ht(e.left,t,n,r,i,o,!0),ht(e.right,t,n,r,i,o,!0)]),u=d.columns,p=c.columns;tE(u,p);let f=c.rows.map(m=>{let h={};return u.forEach((S,I)=>{h[S]=m[p[I]??S]??""}),h}),E=[...d.rows,...f],R=e.all?E:rE(E,u),g=[...new Set([...d.warnings??[],...c.warnings??[]])],y={type:"SELECT",rows:R,columns:u,rowCount:R.length,warnings:g};return o&&pe.set(y,Qf(d,c)),y}if(!(e.from.cteName!=null&&e.from.cteName!==Xe||e.joins.some(d=>d.table.cteName!=null)))return Ft(e,t,n,i,r,o,!1,"DERIVED");let l=await _A(e,t,n,r,i);return o&&pe.set(l,await la(e,l.columns,t,i,r)),l}async function _A(e,t,n,r,i){await Ea(e,t,i,r);let o=ii.get(e),a=await nu(e,t,i,r),s=new Set,l=G=>{if(G.alias!==null||G.cteName===null)return G;let F=Le(G);return s.add(F),{...G,alias:F}};e={...e,from:l(e.from),joins:e.joins.map(G=>({...G,table:l(G.table)}))};let d=new Set;for(let G of[e.from,...e.joins.map(F=>F.table)]){let F=Le(G);if(F!==null){if(d.has(F))throw new Error(`ArgumentError: effective alias ${F} is used by multiple tables.`);d.add(F)}}let c=G=>{let F=r.get(G);if(!F)throw new Error(`ArgumentError: materialized source ${G} is not available.`);return F};for(let G of[e.from,...e.joins.map(F=>F.table)])G.cteName!==null&&c(G.cteName);let{resolver:u}=await tn(e,t,i,r,Bf(e)),p=Gf(e,u,"DERIVED"),f=n.maxRecords??1e4,E=new Set,R=n.fetchParallel??1;await Promise.all([ui(e.where,t,n,i,r),ui(e.having,t,n,i,r),hE(e,t,n,i,r)]);let g=he(e.where,u);if(g.capability==="UNSUPPORTED")throw new Error(`ArgumentError: WHERE predicate is unsupported (${nn(g)}).`);let y=await oi(e,t,i,r),m=oa(e)?(e.orderMode==="KINTONE_NATIVE"?xr:Fr)({stmt:e,staticMode:"FULL_SCAN",whereCapability:g.capability,whereReasons:g.reasons,orderSemantics:y.semantics,maxRecords:f,hasKlike:ge(e.where)}):null,h=ru(e,n,m),S=h.effectiveOptions,[I,w,N]=await Promise.all([ga(e,t,i),su(e,t,i),zf(e,t,i,r)]),b=uu(e,w),D=await di(e,t,i,r,nt(e.having)||tu(e)),C=$f(e,D),_=Ra(e,I)??Cn(e,I);za(_);let U=t,L=await SE(e.columns,t,S,i,r),v=Promise.resolve(y);v.catch(()=>{});let A=new Map,P=new Map;if(e.from.cteName!=null){let G=c(e.from.cteName);A.set(e.from.alias,G.rows.map(gf)),P.set(e.from.alias,G.columns)}else{let G=await Cl(h,()=>ei(e,e.from,U,f,R,!0,S.onLimitReached??"error",E,_.mainCondition,g.capability==="EXACT_PUSHDOWN",a));A.set(e.from.alias,G)}let M=e.joins.map(G=>Cl(h,async()=>{if(G.table.cteName!=null){let F=c(G.table.cteName);A.set(G.table.alias,F.rows.map(gf)),P.set(G.table.alias,F.columns)}else{let F=G.table.alias?_.joinConditions.get(G.table.alias)??null:null,En=await sE(e,G,A,U,f,R,S.onLimitReached??"error",E,F,a)??await ei(e,G.table,U,f,R,!1,S.onLimitReached??"error",E,F,!0,a);A.set(G.table.alias,En)}}));await Promise.all(M);let{optionOrders:O,sortKinds:K,semantics:j}=await v,q=e.joins.length===0&&e.from.cteName!=null?c(e.from.cteName).columns:void 0,{rows:k,columns:$}=el({tables:A,stmt:e,scalarCache:L,optionOrders:O,sortKinds:K,orderSemantics:j,fieldTypeResolver:b.row,fieldSemanticsResolver:D,havingFieldTypeResolver:b.having,havingFieldSemanticsResolver:C,aggregateSortKindResolver:N,appliedKlikes:_.appliedKlikes,sourceColumns:q,tableColumns:P,hiddenQualifiedAliases:s,resolvedGroupingSpec:o,plainGroupByPlan:a}),X=await du(e,k,$,t,i);return eu({type:"SELECT",rows:k,columns:X,rowCount:k.length,warnings:[...E]},p)}async function du(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 te(e.from.appId,r,i);return hd(o,e.from.subtableCode,()=>ma(e.from.appId,r,i))}function gf(e){return Object.fromEntries(Object.entries(e).map(([t,n])=>[t,{value:n??""}]))}async function ei(e,t,n,r,i,o,a,s,l=null,d=!0,c,u=""){let p=$t(e,t,c),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`),zl(n,t.appId),jp(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?wc(e,t.appId).query:"",m=[l!==null?V(l):"",u].filter(w=>w!==""),h=m.length>1?m.map(w=>`(${w})`).join(" and "):m[0]??"",S=y&&h?`(${y}) and (${h})`:y||h;return(await He(n.getRecords,t.appId,S,p,{parallel:i,maxRecords:r,onLimit:a,onTruncate:f})).records}let E=o&&d&&e.joins.length===0&&e.where!==null&&cu.get(e)?.capability==="EXACT_PUSHDOWN"&&!ct(e.where)?V(e.where):"",g=(await He(n.getRecords,t.appId,E,p,{parallel:i,maxRecords:r,onLimit:a,onTruncate:f})).records;return Fd(g,t.subtableCode)}var iE=50;function DA(e){let t=_e(e);return t!==null?JSON.stringify(t):e}function _l(e){return JSON.stringify(e)}function ln(e,t){return JSON.stringify(e.map((n,r)=>t[r]?DA(n):n))}function fi(e,t){let n=e.raw.get(_l(t));if(n!==void 0)return n;if(e.numericKey.some(Boolean))return e.normalized.get(ln(t,e.numericKey))}async function Ei(e,t,n,r,i,o){let a=i.maxRecords??1e4,s=i.fetchParallel??1,l=t.map(g=>o.get(g)==="NUMBER"),d={raw:new Map,normalized:new Map,numericKey:l},c=(g,y,m)=>{let h=g.get(y);(h===void 0||m>h)&&g.set(y,m)},u=(g,y)=>{c(d.raw,_l(g),y),l.some(Boolean)&&c(d.normalized,ln(g,l),y)},p=new Set,f=[],E=new Set;for(let g of n){let y=_l(g);E.has(y)||(E.add(y),g.some(m=>m==="")?f.push(g):p.add(g[0]))}let R=["$id",...t];for(let g of jn([...p],iE)){let y=`${t[0]} in (${g.map(ua).join(",")})`,m=await be(r.getRecords,e,y,R,{maxRecords:a,parallel:s});for(let h of m){let S=Number(h.$id?.value);Number.isFinite(S)&&u(t.map(I=>oE(h[I]?.value)),S)}}for(let g of f){let y=t.map((h,S)=>`${h} = ${ua(g[S])}`).join(" and "),m=await be(r.getRecords,e,y,["$id"],{maxRecords:a,parallel:s});m.length!==0&&u(g,vA(m))}return d}function vA(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 oE(e){return typeof e=="string"?e:e==null?"":String(e)}function ua(e){return`"${e.replace(/\\/g,"\\\\").replace(/"/g,'\\"')}"`}function jn(e,t){let n=[];for(let r=0;r<e.length;r+=t)n.push(e.slice(r,r+t));return n}var aE=50,UA=6,yf=aE*UA;async function sE(e,t,n,r,i,o,a,s,l=null,d,c=""){if(t.type!=="INNER"||!t.table.alias||t.table.subtableCode)return null;let u=t.on.left.tableAlias,p=t.on.right.tableAlias;if(!u||!p)return null;let f,E,R;if(u===t.table.alias&&p!==t.table.alias)f=p,E=t.on.right.field,R=t.on.left.field;else if(p===t.table.alias&&u!==t.table.alias)f=u,E=t.on.left.field,R=t.on.right.field;else return null;let g=n.get(f);if(!g)return null;let y=new Set;for(let b of g){let D=b[E]?.value,C=oE(D).trim();C.length>0&&y.add(C)}let m=[...y];if(m.length===0)return[];if(m.length>yf)return s.add(`JOIN\u30AD\u30FC\u304C ${m.length} \u4EF6\u306E\u305F\u3081 ON \u6700\u9069\u5316\u3092\u30B9\u30AD\u30C3\u30D7\u3057\u3001JOIN\u5148\u3092\u5168\u4EF6\u53D6\u5F97\u3057\u307E\u3059\uFF08\u4E0A\u9650 ${yf} \u4EF6\uFF09\u3002`),null;let h=$t(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`),zl(r,t.table.appId)},I=jn(m,aE),w=[],N=new Set;for(let b of I){let D=`${R} in (${b.map(ua).join(",")})`,_=[l!==null?V(l):"",c].filter(L=>L!=="").reduce((L,v)=>`(${L}) and (${v})`,D),U=await He(r.getRecords,t.table.appId,_,h,{parallel:o,maxRecords:i,onLimit:a,onTruncate:S});for(let L of U.records){let v=`${L.$id?.value??""}:${JSON.stringify(L)}`;N.has(v)||(N.add(v),w.push(L))}}return w}var Dl=new Map,vl=new Map,Ul=new Map,kl=new Map,Ml=new Map,Fl=new Map;function fu(e){Dl.delete(e),vl.delete(e),Ul.delete(e),kl.delete(e),Ml.delete(e),Fl.delete(e)}function zn(e,t,n){return e.get(t)?.get(n)}function qn(e,t,n,r){let i=e.get(t);i||(i=new Map,e.set(t,i)),i.set(n,r)}async function te(e,t,n){let r=zn(kl,n,e);if(r)return r;let i=t.getFields(e);return qn(kl,n,e,i),i}async function st(e,t,n){let r=zn(Fl,n,e);if(r)return r;let i=t.getNumberPrecision(e);return qn(Fl,n,e,i),i}async function ma(e,t,n){let r=zn(Ml,n,e);if(r)return r;let i=t.getProcessStatuses(e);return qn(Ml,n,e,i),i}async function Eu(e,t,n){let r=await ma(e,t,n);return r.enable&&r.states!==null?new Map(r.states.map(i=>[i.name,i.index])):void 0}async function we(e,t,n){let r=zn(Dl,n,e);if(r)return r;let i=await te(e,t,n),o=new Map(i.map(a=>[a.code,a.fieldType]));return qn(Dl,n,e,o),o}async function xl(e,t,n){let r=zn(vl,n,e);if(r)return r;let i=await te(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 qn(vl,n,e,o),o}async function kA(e,t,n){let r=await xl(e,t,n);return new Map([...r.entries()].map(([i,o])=>[i,new Set(o.keys())]))}async function mf(e,t,n){let r=zn(Ul,n,e);if(r)return r;let i=await te(e,t,n),o=new Map;for(let a of i)a.sortKind&&o.set(a.code,a.sortKind);return qn(Ul,n,e,o),o}function MA(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 FA(e,t,n,r){let i=MA(e);if(i.length===0)return new Map;let o=[e.from,...e.joins.map(u=>u.table)],a=new Set,s=new Map(await Promise.all([...new Set(o.filter(u=>u.cteName===null).map(u=>u.appId))].map(async u=>{let p=await te(u,t,n);return[u,new Map(p.map(f=>[f.code,f]))]}))),l=u=>{if(u.tableAlias!==null){if(u.tableAlias==="_p"&&e.from.subtableCode&&e.from.cteName===null){let R=s.get(e.from.appId)?.get(u.field);return R?ot(R,e.from.appId):void 0}let f=o.find(R=>Le(R)===u.tableAlias);if(!f)return;if(f.cteName!==null)return r?.get(f.cteName)?.columnMeta?.get(u.field);let E=s.get(f.appId)?.get(Ee(f,u.field));return E?ot(E,f.appId):Qt(u.field)}if(e.joins.length===0){if(e.from.cteName!==null)return r?.get(e.from.cteName)?.columnMeta?.get(u.field);let f=s.get(e.from.appId)?.get(Ee(e.from,u.field));return f?ot(f,e.from.appId):Qt(u.field)}let p=o.flatMap(f=>{if(f.cteName!==null){let g=r?.get(f.cteName),y=g?.columns.includes(u.field)?g.columnMeta?.get(u.field):void 0;return y?[y]:[]}let E=s.get(f.appId)?.get(Ee(f,u.field)),R=E?ot(E,f.appId):Qt(u.field);return R?[R]:[]});return p.length>1&&a.add(u.field),p.length===1?p[0]:void 0},d=new Map;for(let u of e.columns){if(!("alias"in u)||!u.alias)continue;let p;if(u.type==="FIELD")p=l(Be(u.field));else if(u.type==="ARITH_COL"||u.type==="ARITH_AGG_COL")p=z("number");else if(u.type==="WINDOW_COL")p=Jf(u,l);else if(u.type==="GROUPING_COL")p=z("number");else if(u.type==="LITERAL_COL"||u.type==="SCALAR_VALUE_COL")p=z("string");else if(u.type==="STRFUNC_COL")p=an(u.expr);else if(u.type==="SCALAR_SUBQUERY_COL")p=xe();else if(u.type==="CASE_COL"){let f=u.expr.branches.map(E=>Yn(E.result,l));u.expr.elseResult&&f.push(Yn(u.expr.elseResult,l)),p=ya(f)}else u.type==="AGGREGATE"&&(u.func==="MIN"||u.func==="MAX"||u.func==="MODE"?u.arg.type!=="WILDCARD"&&(p=sn(u.arg,l)):p=u.func==="GROUP_CONCAT"?z("string"):z("number"));p?.semantics&&d.set(u.alias,p.semantics)}let c=new Map;for(let u of i){let p=d.get(u)??l(Be(u))?.semantics;if(!p){let E=Be(u);E.tableAlias===null&&a.has(E.field)&&c.set(u,Z({fieldType:"KSQL_AMBIGUOUS"}));continue}let f=p;if(p.fieldType==="STATUS"&&p.source&&e.orderMode!=="KINTONE_NATIVE"){let E=await ma(p.source.appId,t,n);E.enable&&E.states!==null&&(f={...p,optionOrder:new Map(E.states.map(R=>[R.name,R.index]))})}c.set(u,f)}return c}async function oi(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([xA(e,t,n),KA(e,t,n),FA(e,t,n,r)]);return{optionOrders:o,sortKinds:a,semantics:s}}async function xA(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 xl(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 xl(a.appId,t,n);for(let[l,d]of s.entries())r.set(`${a.alias}.${l}`,d)}return r}async function KA(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 mf(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 mf(a.appId,t,n);for(let[l,d]of s.entries())r.set(`${a.alias}.${l}`,d)}return r}function lE(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 BA=new Set(["CALC","RECORD_NUMBER","CREATOR","CREATED_TIME","MODIFIER","UPDATED_TIME","STATUS","STATUS_ASSIGNEE","CATEGORY","REFERENCE_TABLE"]);function GA(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||BA.has(o.fieldType))throw new Error(`ArgumentError: DML target field ${i} is not writable (${o.fieldType}).`)}}async function qe(e,t,n,r){let i=await te(e,n,r);return GA(e,t,i),i}async function At(e,t,n,r,i){let o=new Map(n.map(a=>[a.code,a]));return t.some(a=>o.get(a)?.fieldType==="NUMBER")?st(e,r,i):void 0}function un(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??"",c=Oe(d,l,r);if(!c.ok)throw new Error(`DmlValidationError: ${c.code} ${c.message} (row=${a+1}, field=${s})`);let u=["USER_SELECT","ORGANIZATION_SELECT","GROUP_SELECT"].includes(l.fieldType)&&Array.isArray(d)&&d.every(p=>typeof p=="object"&&p!==null&&"code"in p);o[s]={value:u?d:c.value}}})}async function $A(e,t,n,r,i){let o=await qe(e.appId,e.fields,t,r),a=await Cr({statement:e,fieldInfos:o,dmlMaxRows:Ge(n.dmlMaxRows,"dmlMaxRows",St),dmlMaxSubtableRows:Ge(n.dmlMaxSubtableRows,"dmlMaxSubtableRows",Ae),statementNumber:i,loadNumberPrecision:()=>st(e.appId,t,r)});return mS(e,a,o)}async function VA(e,t,n,r,i){let{fieldInfos:o,prepared:a}=await uE(e,t,n,r,i);return AS(e,a,o)}async function uE(e,t,n,r,i){let o=await qe(e.appId,e.fields,t,r),a=new Map(o.map(g=>[g.code,g.fieldType])),s=RE(e),l=new Set;for(let g of s){let y=ln(g,e.keyFields.map(m=>a.get(m)==="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 Ei(e.appId,e.keyFields,s,t,n,a),c=s.map(g=>fi(d,g)),u=new Map,p=[...new Set(c.filter(g=>g!==void 0))],f=["$id","$revision",...o.filter(g=>!g.inSubtable&&g.fieldType!=="FILE").map(g=>g.code)];for(let g of jn(p,100)){let y=await t.getRecords({app:e.appId,query:`$id in (${g.join(",")}) limit 500`,fields:[...new Set(f)]});for(let m of y.records){let h=Number(m.$id?.value);Number.isSafeInteger(h)&&h>0&&u.set(h,m)}}let E=c.map((g,y)=>({sourceRowIndex:y,...g===void 0?{}:{targetId:g,snapshot:u.get(g)}})),R=await Bp({statement:e,matches:E,fieldInfos:o,dmlMaxRows:Ge(n.dmlMaxRows,"dmlMaxRows",St),dmlMaxSubtableRows:Ge(n.dmlMaxSubtableRows,"dmlMaxSubtableRows",Ae),statementNumber:i,loadNumberPrecision:()=>st(e.appId,t,r)});return{fieldInfos:o,prepared:R}}async function WA(e,t,n,r){if(n.allowApplyMutation!==!0)throw new Error("UnsupportedError: APPLY mutation requires allowApplyMutation=true");let i=await qe(e.appId,e.fields,t,r),o=await Cr({statement:e,fieldInfos:i,dmlMaxRows:Ge(n.dmlMaxRows,"dmlMaxRows",St),dmlMaxSubtableRows:Ge(n.dmlMaxSubtableRows,"dmlMaxSubtableRows",Ae),loadNumberPrecision:()=>st(e.appId,t,r)}),a=vs(o);if(n.confirm&&!await n.confirm(o.guards.parentRows,"INSERT",{statementIndex:0,statementCount:1,statementType:"INSERT",targetAppId:e.appId,applyDetail:ha(a),applyDiagnostic:a}))throw new ce("INSERT",o.guards.parentRows);let s=await Hp(o,t,a);return{...s,diagnostic:ke(a,s)}}async function HA(e,t,n,r){if(n.allowApplyMutation!==!0)throw new Error("UnsupportedError: APPLY mutation requires allowApplyMutation=true");let{prepared:i}=await uE(e,t,n,r,1),o=Us(i);if(n.confirm){let s=ha(o);if(!await n.confirm(i.guards.parentRows,"UPDATE",{statementIndex:0,statementCount:1,statementType:"UPSERT",targetAppId:e.appId,applyDetail:s,applyDiagnostic:o}))throw new ce("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:ke(o,a)}}function YA(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 ha(e,t=!0){let n=e.branches.find(p=>p.branch==="insert"),r=e.branches.find(p=>p.branch==="update"),i=e.branches.flatMap(p=>p.targets),o=YA(n?qo(n):[],r?qo(r):[]),a=jA(i),s=e.branches.reduce((p,f)=>p+(f.parentRows??0),0),l=i.filter(p=>p.targetKind==="SUBTABLE").reduce((p,f)=>p+(f.changedCount??0),0),d=o.reduce((p,f)=>p+f.appendRows,0),c=o.reduce((p,f)=>p+f.removeRows,0),u={kind:e.statementKind==="UPDATE"?"APPLY_PATCH":e.statementKind==="INSERT"?"APPLY_INSERT":"APPLY_UPSERT",parentRows:s,changedSubtableRows:l,addedSubtableRows:d,tables:o,...a.length>0?{multiValues:a}:{},deletedRows:c,deletedParentRows:e.branches.reduce((p,f)=>p+(f.deletedParentRows??0),0),revisionRequired:e.branches.some(p=>p.guards.revisionRequired),irreversible:!0,retryOnRevisionConflict:!1,...t?{nonTransactional:!0,partialSuccessPossible:!0}:{}};if(e.statementKind==="INSERT"&&n)return{...u,insertedParentRows:n.parentRows??0,initialSubtableRows:n.targets.filter(p=>p.targetKind==="SUBTABLE").reduce((p,f)=>p+(f.changedCount??0),0)};if(e.statementKind==="UPSERT"&&n&&r){let p=qo(n),f=qo(r);return{...u,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:p.reduce((E,R)=>E+R.appendRows,0),tables:p},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 u}function qo(e){return e.targets.filter(t=>t.targetKind==="SUBTABLE").map(t=>{let n=rn(t,"APPEND"),r=rn(t,"REMOVE");return{table:t.field,patchRows:(t.changedCount??0)-n-r,appendRows:n,removeRows:r}})}function rn(e,t){return e.operations.filter(n=>n.kind===t).reduce((n,r)=>n+(r.count??0),0)}function jA(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:rn(n,"ADD"),removedValues:rn(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 Ru(e,t,n,r,i,o){if(e.type==="INSERT"&&e.applyBlocks?.length)return $A(e,t,n,r,o);if(e.type==="UPSERT"&&(e.onInsertApplyBlocks?.length||e.onUpdateApplyBlocks?.length))return VA(e,t,n,r,o);if(e.type==="UPDATE"&&e.applyBlocks?.length){let a=await EE(e,t,n,r,o);if(a.type!=="VALIDATION")throw new Error("InternalError: APPLY VALIDATE ONLY returned a mutation result.");return a}return(await gu(e,t,n,r,i,o)).result}var ai=class extends Error{constructor(n,r){super(`RejectLimitExceededError: ${n}`);this.diagnostic=r;this.name="RejectLimitExceededError"}};async function gu(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(v=>v.field)]:[...e.fields];if(new Set(d).size!==d.length)throw new Error("ArgumentError: DML target fields contain duplicates.");let c=e.type==="UPDATE"?e.assignments.map(v=>v.field):e.fields,u=await qe(e.appId,c,t,r);e.type==="UPDATE"&&await Vn(e,t,r);let p=new Map(u.map(v=>[v.code,v])),f=await At(e.appId,c,u,t,r),E=Ze(u,d),R=xd(E),g=(await zA(e,l,t,n,r,i,p,e.type==="UPDATE"?R:void 0)).sort((v,A)=>v.rowNumber-A.rowNumber),y=g.filter(v=>v.mode==="update"),m=e.type==="UPDATE"?JA:e.type.startsWith("UPSERT")?v=>QA(v,t,n.maxRecords??1e4):void 0,h=n.loadUpdateModeSnapshots??m,S=y.length>0&&h!==void 0,I=new Map;if(S){ws(y,c,u);let v=await h({appId:e.appId,candidates:y,fields:R}),A=new Map;for(let P of y){if(P.targetId===void 0)throw new Error(`InternalError: update-mode validation candidate has no targetId (row=${P.rowNumber}).`);let M=v.get(P.targetId);if(!M)throw new Error(`InternalError: update-mode snapshot is missing for record ${P.targetId}.`);let O=Kd(M,P.record??{});A.set(P.rowNumber,O)}f===void 0&&[...A.values()].some(P=>jt(P,E))&&(f=await st(e.appId,t,r));for(let P of y){let M=A.get(P.rowNumber);if(!M)throw new Error(`InternalError: validation post-image is missing for row ${P.rowNumber}.`);I.set(P.rowNumber,zt(M,E,f,o,P.rowNumber,l))}}let w=bs(g,l,d,c,u,o,f,e.checkGroups??[],a,s,{validateUpdateBuiltIns:!S}),{errors:N,invalidRows:b,invalidRowNumbers:D}=w;if(S){let v=new Map(w.candidateResults.map(A=>[A.rowNumber,A]));N=[],D=new Set;for(let A of g){let P=v.get(A.rowNumber);if(!P)throw new Error(`InternalError: validation detail is missing for row ${A.rowNumber}.`);if(A.mode==="create"){let K=[...P.preErrors,...P.builtInErrors,...P.checkErrors];N.push(...K),K.length>0&&D.add(A.rowNumber);continue}let M=I.get(A.rowNumber);if(!M)throw new Error(`InternalError: prepared post-image validation is missing for row ${A.rowNumber}.`);let O=Bd({rowNumber:A.rowNumber,setFields:c,normalizedPostImage:M.normalizedRecord,preErrors:P.preErrors,postImageErrors:M.errors,checkErrors:P.checkErrors});A.record=O.writeRecord,N.push(...O.errors);for(let K of O.invalidRowNumbers)D.add(K)}b=D.size}let C=[...d,...Un],_={type:"VALIDATION",operation:l,validatedRows:g.length,validRows:g.length-b,invalidRows:b,errorCount:N.length,columns:C,errors:N,...e.validationErrorTable?{errTable:e.validationErrorTable}:e.onErrorSkip&&e.errorTable?{errTable:e.errorTable}:{}},U=new Map;for(let v of d){if(v==="$id"){U.set(v,{sortKind:"number",fieldType:"RECORD_NUMBER",semantics:Z({fieldType:"RECORD_NUMBER"})});continue}let A=p.get(v);A&&U.set(v,ot(A,e.appId))}let L=new Set(["$err_statement","$err_row"]);for(let v of Un)U.set(v,z(L.has(v)?"number":"string"));return pn.set(_,U),{result:_,candidates:g,invalidRowNumbers:D,columnMeta:U}}async function Kl(e,t,n,r,i,o){let a=await gu(e,t,n,r,i,o),s=e.errorTable;if(!s)throw new Error("ArgumentError: ON ERROR SKIP requires INTO #error_table.");at(i,s,a.result.columns,a.result.errors,n.tempTableMaxRows??Ke,a.columnMeta);let l=e.rejectLimit??null;if(l!==null&&a.result.invalidRows>l)throw new ai(`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 ce(E,d.length)}let c={affectedRows:d.length,skippedRows:a.result.invalidRows,rejectLimit:l,errTable:s};if(e.type==="INSERT"||e.type==="INSERT_SELECT"){let E=[];for(let R=0;R<d.length;R+=100){let g=await t.postRecords({app:e.appId,records:d.slice(R,R+100).map(y=>y.record)});E.push(g.ids)}return{type:"INSERT",createdIds:E,insertedCount:E.flat().length,...c}}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,...c}}let u=d.filter(E=>E.mode==="create"),p=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<u.length;E+=100){let R=await t.postRecords({app:e.appId,records:u.slice(E,E+100).map(g=>g.record)});f+=R.ids.length}for(let E=0;E<p.length;E+=100)await t.putRecords({app:e.appId,records:p.slice(E,E+100)});return{type:"UPSERT",insertedCount:f,updatedCount:p.length,...c}}async function zA(e,t,n,r,i,o,a,s){if(e.type==="UPDATE")return XA(e,n,r,i,o,s);let l,d,c,u,p;if(e.type==="INSERT"||e.type==="UPSERT")hf(e,e.fields),p=new Map(e.fields.map(S=>[S,a.get(S)?.fieldType??""])),cn(e,p),l=e.values.map(S=>S.map((I,w)=>I.type==="CASE_VALUE"?Ut(I.expr,{},a.get(e.fields[w])?.fieldType):I));else{let S=await mu.materialize(e,n,r,i,o,[...a.values()]),I=(e.checkGroups?.length??0)>0;if(S.columns.length<e.fields.length||!I&&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(I&&new Set(S.columns).size!==S.columns.length)throw me("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");hf(e,S.columns),d=S.rows,c=S.importPresence,u=S.importRowErrors;let w=S.columnMeta;p=new Map(S.columns.map(N=>{let b=w?.get(N),D=b?.fieldType??(b?.semantics?.compareMode==="number"||b?.sortKind==="number"?"NUMBER":"SINGLE_LINE_TEXT");return[N,D]})),cn(e,p),l=S.rows.map(N=>S.columns.map(b=>N[b]??""))}let f=l.map((S,I)=>({rowNumber:I+1,operation:t,mode:"create",payload:new Map(e.fields.flatMap((w,N)=>c&&!c[I]?.has(w)?[]:[[w,S[N]]])),preErrors:[...u?.[I]??[]],record:{},evaluationRow:d?.[I]??Object.fromEntries(e.fields.map((w,N)=>[w,Qe(S[N])])),evaluationFieldTypes:p}));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,I])=>[S,I.fieldType])),R=f.map(S=>e.keyFields.map(I=>Qe(S.payload.get(I)))),g=e.keyFields.map(S=>E.get(S)==="NUMBER"),y=new Map;for(let S of R){let I=ln(S,g);y.set(I,(y.get(I)??0)+1)}let m=fa.has(e);if(m&&[...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 Ei(e.appId,e.keyFields,R,n,r,E);return f.forEach((S,I)=>{let w=R[I],N=fi(h,w);S.mode=N===void 0?"create":"update",N!==void 0&&(S.targetId=N),e.keyFields.forEach((b,D)=>{w[D]===""&&S.preErrors.push({field:b,code:"ERR_KEY_EMPTY",message:`UPSERT \u30AD\u30FC ${b} \u306F\u7A7A\u306B\u3067\u304D\u307E\u305B\u3093`})}),!m&&(y.get(ln(w,g))??0)>1&&S.preErrors.push({field:e.keyFields[0],code:"ERR_KEY_DUP_SOURCE",message:"UPSERT \u30BD\u30FC\u30B9\u5185\u3067\u30AD\u30FC\u304C\u91CD\u8907\u3057\u3066\u3044\u307E\u3059"})}),f}function yu(e){return e.checkGroups?Dn(e.checkGroups):[]}function hf(e,t){let n=new Set(t);for(let r of yu(e)){if(r.tableAlias!==null)throw me(`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 me(`CHECK \u306E\u30D5\u30A3\u30FC\u30EB\u30C9 ${r.field} \u306F\u8A55\u4FA1\u884C\u306B\u5B58\u5728\u3057\u307E\u305B\u3093`)}}var qA=new Set(["CHECK_BOX","MULTI_SELECT","USER_SELECT","ORGANIZATION_SELECT","GROUP_SELECT","FILE","KSQL_ARRAY"]);function cn(e,t){if(e.checkGroups)for(let n of sp(e.checkGroups)){let r=n.tableAlias?`${n.tableAlias}.${n.field}`:n.field,i=t.get(r)??t.get(n.field);if(qA.has(i??""))throw me(`CHECK \u306E\u6BD4\u8F03\u3067\u306F ${i} \u30D5\u30A3\u30FC\u30EB\u30C9 ${r} \u3092\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093`)}}async function XA(e,t,n,r,i,o){if(e.from)return eS(e,e.from,t,n,r,i,o);await AE(e.assignments,t,n,r);let a=await we(e.appId,t,r),s=cE(e,a);cn(e,Bl(a,e.appId));let l,d=new Map,c=new Map;if(so(e)){let u=ls(e),p=[...new Set([...u.fields,...s,...o??[]])],f=await He(t.getRecords,u.app,u.query,p,{maxRecords:n.maxRecords??1e4,parallel:n.fetchParallel??1,onLimit:"error"});c=ta(f.records),d=c,l=cs(e,f.records,a).flatMap(E=>E.records)}else{let u=hr(e);if(s.length>0){let p=[...new Set(["$id",...s,...o??[]])],f=await He(t.getRecords,u.app,u.query,p,{maxRecords:n.maxRecords??1e4,parallel:n.fetchParallel??1,onLimit:"error"});c=ta(f.records),d=c,l=Ar(e,[...d.keys()],a).flatMap(E=>E.records)}else if(o){let p=await He(t.getRecords,u.app,u.query,[...o],{maxRecords:n.maxRecords??1e4,parallel:n.fetchParallel??1,onLimit:"error"});c=ta(p.records),l=Ar(e,[...c.keys()],a).flatMap(f=>f.records)}else{let p=await Io(t.getRecords,u.app,u.query,{maxRecords:n.maxRecords??1e4,parallel:n.fetchParallel??1});l=Ar(e,p.ids,a).flatMap(f=>f.records)}}return l.sort((u,p)=>u.id-p.id).map((u,p)=>({rowNumber:p+1,operation:"UPDATE",mode:"update",payload:new Map([["$id",String(u.id)],...e.assignments.map(f=>[f.field,u.record[f.field]?.value??""])]),preErrors:[],record:u.record,targetId:u.id,validationSnapshot:c.get(u.id),evaluationRow:ZA(d.get(u.id),e.appId),evaluationFieldTypes:Bl(a,e.appId)}))}function ta(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 JA(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 QA(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 jn(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,c=Number(d);if(!Number.isSafeInteger(c)||c<=0)throw new Error(`InternalError: invalid $id in UPSERT validation snapshot: ${String(d)}.`);if(!i.has(c))throw new Error(`InternalError: unexpected $id in UPSERT validation snapshot: ${c}.`);if(o.has(c))throw new Error(`InternalError: duplicate $id in UPSERT validation snapshot: ${c}.`);o.set(c,l)}}for(let a of r)if(!o.has(a))throw new Error(`InternalError: update-mode snapshot is missing for record ${a}.`);return o}function cE(e,t){if(e.from)return[];let n=new Set;for(let r of yu(e)){if(r.tableAlias!==null&&r.tableAlias.toLowerCase()!==`app${e.appId}`.toLowerCase())throw me(`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 me(`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 ZA(e,t){if(!e)return{};let n=Rt(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 eS(e,t,n,r,i,o,a){let s=await _E(e,t,n,i,o);cn(e,s.evaluationTypes);let l=await pE(e,t,n,r,i,o,a),d=await we(e.appId,n,i),c=ds(e,l,d).flatMap(f=>f.records),u=new Map(l.map(f=>[Number(f.target.$id?.value),f])),p=a?ta(l.map(f=>f.target)):new Map;return c.sort((f,E)=>f.id-E.id).map((f,E)=>({rowNumber:E+1,operation:"UPDATE",mode:"update",payload:new Map([["$id",String(f.id)],...e.assignments.map(R=>[R.field,f.record[R.field]?.value??""])]),preErrors:[],record:f.record,targetId:f.id,validationSnapshot:p.get(f.id),evaluationRow:rT(u.get(f.id),e.appId,t.alias),evaluationFieldTypes:s.evaluationTypes}))}var tS=iE,nS=new Set(["CHECK_BOX","MULTI_SELECT","USER_SELECT","ORGANIZATION_SELECT","GROUP_SELECT","FILE"]);async function pE(e,t,n,r,i,o,a){let s=await rS(e,t,n,i),l=await _E(e,t,n,i,o),d=[...new Set(e.assignments.filter(I=>I.value.type==="SOURCE_FIELD").map(I=>I.value.type==="SOURCE_FIELD"?I.value.field:"").concat(l.sourceFields))],c=[...new Set([t.joinKeyField,...d])],u=await iS(t,c,d,n,r,i,o),p=new Map,f=new Map;for(let I of u){if(!Object.prototype.hasOwnProperty.call(I,t.joinKeyField))throw new Error(`ArgumentError: UPDATE ... FROM source column ${t.joinKeyField} does not exist.`);let w=Af(I[t.joinKeyField],s,"source");if(p.has(w))throw new Error(`ArgumentError: UPDATE ... FROM source has multiple rows for normalized key ${w}.`);p.set(w,I),f.set(w,String(I[t.joinKeyField]).trim())}if(p.size===0)return[];let E=r.maxRecords??1e4,R=[...new Set([...TS(e),...l.targetFields,...a??[]])],g=t.targetFilter===null?"":hr({...e,from:null,where:t.targetFilter,checkGroups:void 0}).query,y=[],m=new Set,h=0;for(let I of jn([...f.values()],tS)){let w=`${t.targetJoinField} in (${I.map(ua).join(",")})`,N=g?`(${w}) and (${g})`:w,b=await He(n.getRecords,e.appId,N,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 D of b.records){let C=D.$id?.value;if(typeof C!="string"||C==="")throw new Error("ArgumentError: UPDATE ... FROM target record does not contain a valid $id.");m.has(C)||(m.add(C),y.push(D))}}let S=[];for(let I of y){let w=I[t.targetJoinField]?.value,N=Af(w,s,"target");if(N===null)continue;let b=p.get(N);b!==void 0&&S.push({target:I,source:b})}return S}async function rS(e,t,n,r){if(t.targetJoinField==="$id")return"id";let i=(await te(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 iS(e,t,n,r,i,o,a){if(e.cteName!==null){let c=a?.get(e.cteName);if(!c)throw new Error(`ArgumentError: temp table ${e.cteName} is not available.`);for(let u of t)if(!c.columns.includes(u))throw new Error(`ArgumentError: UPDATE ... FROM source column ${u} does not exist.`);return c.rows}let s=await we(e.appId,r,o),l=e.joinKeyField==="$id"?"RECORD_NUMBER":s.get(e.joinKeyField);if(l===void 0)throw new Error(`ArgumentError: UPDATE ... FROM source column ${e.joinKeyField} does not exist.`);if(e.joinKeyField!=="$id"&&l!=="SINGLE_LINE_TEXT"&&l!=="NUMBER")throw new Error(`ArgumentError: UPDATE ... FROM does not support source join field type ${l} (${e.joinKeyField}).`);for(let c of n){if(c!=="$id"&&!s.has(c))throw new Error(`ArgumentError: UPDATE ... FROM source column ${c} does not exist.`);let u=c==="$id"?"RECORD_NUMBER":s.get(c);if(nS.has(u??""))throw new Error(`ArgumentError: UPDATE ... FROM does not support source field type ${u} (${c}).`)}return(await He(r.getRecords,e.appId,"",t,{maxRecords:i.maxRecords??1e4,parallel:i.fetchParallel??1,onLimit:"error"})).records.map(c=>Rt(c,null))}function Af(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=_e(e);if(r===null)throw new Error(`ArgumentError: UPDATE ... FROM ${n} key must be a finite decimal: ${e}`);return JSON.stringify(r)}async function Ri(e,t,n,r,i){let o=await gu(e,t,n,r,i,1,!1,!1);if(o.result.errors.length>0){let u=o.result.errors[0];throw new Error(`DmlValidationError: ${u.$err_code} ${u.$err_message} (row=${u.$err_row}, field=${u.$err_field})`)}let a=o.candidates,s=e.type.startsWith("INSERT")?"INSERT":"UPDATE";if(n.confirm&&a.length>0&&!await n.confirm(a.length,s))throw new ce(s,a.length);if(e.type==="INSERT"||e.type==="INSERT_SELECT"){let u=[];for(let p=0;p<a.length;p+=100){let f=await t.postRecords({app:e.appId,records:a.slice(p,p+100).map(E=>E.record)});u.push(f.ids)}return{type:"INSERT",createdIds:u,insertedCount:u.flat().length}}if(e.type==="UPDATE"){let u=a.map(p=>({id:p.targetId,record:p.record}));for(let p=0;p<u.length;p+=100)await t.putRecords({app:e.appId,records:u.slice(p,p+100)});return{type:"UPDATE",updatedCount:u.length}}let l=a.filter(u=>u.mode==="create"),d=a.filter(u=>u.mode==="update").map(u=>({id:u.targetId,record:u.record})),c=0;for(let u=0;u<l.length;u+=100){let p=await t.postRecords({app:e.appId,records:l.slice(u,u+100).map(f=>f.record)});c+=p.ids.length}for(let u=0;u<d.length;u+=100)await t.putRecords({app:e.appId,records:d.slice(u,u+100)});return{type:"UPSERT",insertedCount:c,updatedCount:d.length}}async function oS(e,t,n,r){if(e.applyBlocks?.length)return WA(e,t,n,r);if(e.checkGroups?.length)return Ri(e,t,n,r);if(e.subtableCode)return bS(e,t,n,r);let i=await qe(e.appId,e.fields,t,r),o=await At(e.appId,e.fields,i,t,r),a=await we(e.appId,t,r),s=ao(e,a);un(s.flatMap(d=>d.records),e.fields,i,o);let l=[];for(let d of s){let c=await t.postRecords(d);l.push(c.ids)}return{type:"INSERT",createdIds:l,insertedCount:l.flat().length}}function aS(){return{type:"SELECT",distinct:!1,columns:[],from:{appId:0,alias:null,cteName:Xe},joins:[],where:null,groupBy:[],having:null,orderMode:"CANONICAL",orderBy:[],limit:null,offset:null}}async function dE(e,t,n,r,i){if(!n.enableImport)throw new Error("UnsupportedError: IMPORT capability is disabled.");let o=Hd(e.source.sourceName,n.importSource);if(e.targets?.some(u=>u.kind==="SUBTABLE")){if(!e.validateOnly&&!n.supportsImportConfirmDetail)throw new Error("UnsupportedError: IMPORT subtable mutation requires a surface that displays parent/table replacement and deletion detail; use VALIDATE ONLY/EXPLAIN.");if(e.source.kind==="CSV"){if(e.writeMode!=="UPDATE_RECORD_NUMBER"||!e.recordNumberSourceHeader)throw new Error("ArgumentError: CSV subtable replacement requires IMPORT UPDATE and MATCH RECORD NUMBER SOURCE.");if(!e.replaceSubtables?.length)throw new Error("ArgumentError: CSV subtable replacement requires REPLACE SUBTABLES (...).");let k=new Set(e.targets.filter($=>$.kind==="SUBTABLE").map($=>$.subtableCode));if(e.replaceSubtables.some($=>!k.has($)))throw new Error("ArgumentError: REPLACE SUBTABLES contains a table not declared in INTO.");for(let $ of e.targets.filter(X=>X.kind==="SUBTABLE"))if(!$.rowIdSourceHeader||!e.replaceSubtables.includes($.subtableCode))throw new Error(`ArgumentError: CSV subtable ${$.subtableCode} requires ROW ID SOURCE and REPLACE SUBTABLES declaration.`)}if(e.validationErrorTable&&!i)throw new Error("ArgumentError: VALIDATE ONLY INTO requires a batch.");let u=e.targets,p=await te(e.appId,t,r),f=u.flatMap(k=>k.kind==="FIELD"?[k.field]:k.children),E=p.some(k=>f.includes(k.code)&&k.fieldType==="NUMBER")?await st(e.appId,t,r):void 0,R=await Wo(o,new Map),g=e.source.kind==="JSON"?Xd(e.source,R,u,n.maxRecords??1e4):Jd(e.source,R,u,e.replaceSubtables??[],n.maxRecords??1e4,e.recordNumberSourceHeader),y=e.source.kind==="CSV"?"UPDATE":e.keyFields?"UPSERT":"INSERT",m=tf(g,u,p,E,y);if(e.source.kind==="CSV")return sS(e,g,m,p,t,n,i);dl(m,e.rejectLimit);let h=[...new Set(u.flatMap(k=>k.kind==="FIELD"?[k.field]:k.children))],S=El(m.errors,h),I=[...h,...fl],w=m.invalidParentRows.size,N={preflight:"ACTUAL_DATA",parents:{total:m.parents.length,valid:m.parents.length-w,invalid:w,mutationCandidates:m.parents.filter(k=>k.valid).length},tables:Object.fromEntries(m.tableCounts),writesKintone:!1},b={type:"VALIDATION",operation:y,validatedRows:m.parents.length,validRows:m.parents.length-w,invalidRows:w,errorCount:S.length,columns:I,errors:S,importDetail:N,...e.validationErrorTable?{errTable:e.validationErrorTable}:{}};if(e.validationErrorTable&&i&&at(i,e.validationErrorTable,I,S,n.tempTableMaxRows??Ke,new Map),e.validateOnly)return b;if(rf(g),m.errors.length>0&&!e.onErrorSkip){let k=m.errors[0];throw new Error(`DmlValidationError: ${k.code} ${k.message} (row=${k.parentRow}, field=${k.field})`)}if(e.onErrorSkip){if(!i||!e.errorTable)throw new Error("ArgumentError: ON ERROR SKIP requires a batch and INTO error table.");at(i,e.errorTable,I,S,n.tempTableMaxRows??Ke,new Map)}let D=m.parents.filter(k=>k.valid),C=new Map(p.map(k=>[k.code,k.fieldType])),_=D.map(()=>{});if(e.keyFields){for(let F of e.keyFields)if(!e.fields.includes(F))throw new Error(`ON DUPLICATE \u306E\u30AD\u30FC\u300C${F}\u300D\u304C UPSERT \u30D5\u30A3\u30FC\u30EB\u30C9\u306B\u542B\u307E\u308C\u3066\u3044\u307E\u305B\u3093`);let k=e.keyFields.map(F=>C.get(F)==="NUMBER"),$=new Set,X=D.map(F=>e.keyFields.map(de=>String(F.top[de]?.value??"")));for(let F of X){let de=ln(F,k);if($.has(de))throw new Error("ERR_KEY_DUP_SOURCE: UPSERT \u30BD\u30FC\u30B9\u5185\u3067\u30AD\u30FC\u304C\u91CD\u8907\u3057\u3066\u3044\u307E\u3059");$.add(de)}let G=await Ei(e.appId,e.keyFields,X,t,n,C);X.forEach((F,de)=>{_[de]=fi(G,F)})}let U=u.filter(k=>k.kind==="SUBTABLE").map(k=>k.subtableCode),L=new Map,v=_.filter(k=>k!==void 0);for(let k of jn([...new Set(v)],100)){let $=await t.getRecords({app:e.appId,query:`$id in (${k.join(",")}) limit 500`,fields:["$id","$revision",...U]});for(let X of $.records){let G=Number(X.$id?.value),F=Number(X.$revision?.value);Number.isFinite(G)&&L.set(G,{id:G,...Number.isFinite(F)?{revision:F}:{},record:X})}}let A=of(D,_,L),P={kind:"IMPORT_JSON_SUBTABLE",rowIdPolicy:"DROP_AND_RENUMBER_ALL",parentsToWrite:A.length,insertedParents:A.filter(k=>k.mode==="INSERT").length,updatedParents:A.filter(k=>k.mode==="UPDATE").length,hasDeletes:A.some(k=>k.tables.some($=>$.deleteRows>0)),parents:A.map(k=>({parentRow:k.parentRow,mode:k.mode,...k.targetId===void 0?{}:{targetId:k.targetId},tables:k.tables}))};if(A.length>0){if(!n.confirm)throw new Error("UnsupportedError: JSON IMPORT subtable mutation requires explicit confirmation detail approval.");if(!await n.confirm(A.length,e.keyFields?"UPDATE":"INSERT",{statementIndex:0,statementCount:1,statementType:"IMPORT",targetAppId:e.appId,importDetail:P}))throw new ce(e.keyFields?"UPDATE":"INSERT",A.length)}let M=k=>new Map(Object.entries(k).map(([$,X])=>[$,X.value])),O=k=>nf(M(k.top),new Map([...k.subtables].map(([$,X])=>[$,X.map(G=>({values:M(G)}))]))),K=A.filter(k=>k.mode==="INSERT"),j=A.filter(k=>k.mode==="UPDATE"),q=[];for(let k=0;k<K.length;k+=100){let $=await t.postRecords({app:e.appId,records:K.slice(k,k+100).map(O)});q.push($.ids)}for(let k=0;k<j.length;k+=100)await t.putRecords({app:e.appId,records:j.slice(k,k+100).map($=>({id:$.targetId,...$.revision===void 0?{}:{revision:$.revision},record:O($)}))});return e.keyFields?{type:"UPSERT",insertedCount:q.flat().length,updatedCount:j.length,affectedRows:A.length,skippedRows:m.invalidParentRows.size,rejectLimit:e.rejectLimit,...e.errorTable?{errTable:e.errorTable}:{},importDetail:P}:{type:"INSERT",createdIds:q,insertedCount:q.flat().length,affectedRows:A.length,skippedRows:m.invalidParentRows.size,rejectLimit:e.rejectLimit,...e.errorTable?{errTable:e.errorTable}:{},importDetail:P}}if(e.writeMode==="UPDATE_RECORD_NUMBER")return lS(e,o,t,n,r,i);let a={appId:e.appId,fields:e.fields,select:aS(),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};fa.set(s,l);let d=u=>(l.audit&&Object.assign(u,{importAudit:l.audit}),u);if(s.validateOnly){if(s.validationErrorTable&&!i)throw new Error("ArgumentError: VALIDATE ONLY INTO requires a batch.");let u=await Ru(s,t,{...n,onLimitReached:"error"},r,i,1);return s.validationErrorTable&&i&&at(i,s.validationErrorTable,u.columns,u.errors,n.tempTableMaxRows??Ke,pn.get(u)??new Map),d(u)}if(s.onErrorSkip){if(!i)throw new Error("ArgumentError: ON ERROR SKIP requires a batch.");let u=await(s.type==="UPSERT_SELECT",Kl(s,t,n,r,i,1));return d(u)}let c=await(s.type==="UPSERT_SELECT"?Tu(s,t,n,r,i):hu(s,t,n,r,i));return d(c)}async function sS(e,t,n,r,i,o,a){if(!e.recordNumberSourceHeader||!e.replaceSubtables?.length)throw new Error("InternalError: incomplete CSV subtable replacement AST.");af(t.records);let s=t.records.map(L=>L.recordNumberSourceValue??""),l=yl(s,e.recordNumberSourceHeader),d=[...e.replaceSubtables],c=[...new Set(r.filter(L=>!L.inSubtable&&L.fieldType==="SUBTABLE").map(L=>L.code))],u=await be(i.getRecords,e.appId,"",["$id","$revision",...c],{maxRecords:o.maxRecords??1e4,parallel:o.fetchParallel??1,onLimit:"error"}),p=new Map,f=new Map;for(let L of u){let v=Number(L.$id?.value),A=Number(L.$revision?.value);if(Number.isFinite(v)){p.set(v,{id:v,...Number.isFinite(A)?{revision:A}:{},record:L});for(let P of c){let M=L[P]?.value;if(Array.isArray(M)){for(let O of M)if(O.id){let K=f.get(O.id)??[];K.push({parentId:v,table:P}),f.set(O.id,K)}}}}}let E=l.normalized.map(L=>L===null?void 0:Number(L)),R=n.parents.map((L,v)=>{let A=[...L.errors];for(let M of l.errors[v])A.push({operation:"UPDATE",parentRow:L.parentRow,field:M.field,code:M.code,message:M.message,sourceValues:t.records[v].top});let P=E[v];return P!==void 0&&!p.has(P)&&A.push({operation:"UPDATE",parentRow:L.parentRow,field:e.recordNumberSourceHeader,code:"ERR_RECORD_NUMBER_NOT_FOUND",message:`record number ${P} does not exist in APP${e.appId}`,sourceValues:t.records[v].top}),{...L,valid:A.length===0,errors:A}}),g=sf(t.records,R,E,p,f),y=g.flatMap(L=>[...L.errors]),m=new Set(g.filter(L=>!L.valid).map(L=>L.parentRow)),h={...n,parents:R,errors:y,invalidParentRows:m};dl(h,e.rejectLimit);let S=g.filter(L=>L.valid),I=g.flatMap(L=>L.tables),w=(L,v)=>I.filter(A=>A.table===L).reduce((A,P)=>A+Number(P[v]),0),N=Object.fromEntries(d.map(L=>[L,{existingRows:w(L,"existingRows"),inputRows:w(L,"inputRows"),updateRows:w(L,"updateRows"),addRows:w(L,"addRows"),deleteRows:w(L,"deleteRows"),rowIdNotFound:w(L,"rowIdNotFound")}])),b={kind:"IMPORT_CSV_SUBTABLE_REPLACE",rowIdPolicy:"PRESERVE_EXISTING",parentsToWrite:S.length,insertedParents:0,updatedParents:S.length,hasDeletes:S.some(L=>L.tables.some(v=>v.deleteRows>0)),totalDeleteRows:S.flatMap(L=>L.tables).reduce((L,v)=>L+v.deleteRows,0),rowIdNotFound:S.flatMap(L=>L.tables).reduce((L,v)=>L+v.rowIdNotFound,0),invalidParents:m.size,parents:S.map(L=>({parentRow:L.parentRow,mode:"UPDATE",targetId:L.targetId,tables:L.tables}))},D=[...new Set(e.targets.flatMap(L=>L.kind==="FIELD"?[L.field]:L.children))],C=El(y,D),_=[...D,...fl];if(e.validateOnly){if(e.validationErrorTable&&!a)throw new Error("ArgumentError: VALIDATE ONLY INTO requires a batch.");return e.validationErrorTable&&a&&at(a,e.validationErrorTable,_,C,o.tempTableMaxRows??Ke,new Map),{type:"VALIDATION",operation:"UPDATE",validatedRows:R.length,validRows:R.length-m.size,invalidRows:m.size,errorCount:C.length,columns:_,errors:C,...e.validationErrorTable?{errTable:e.validationErrorTable}:{},importDetail:{preflight:"ACTUAL_DATA",parents:{total:R.length,valid:S.length,invalid:m.size,mutationCandidates:S.length},tables:N,rowIdPolicy:"PRESERVE_EXISTING",rowIdNotFound:b.rowIdNotFound,writesKintone:!1}}}if(y.length&&!e.onErrorSkip){let L=y[0];throw new Error(`DmlValidationError: ${L.code} ${L.message} (row=${L.parentRow}, field=${L.field})`)}if(e.onErrorSkip){if(!a||!e.errorTable)throw new Error("ArgumentError: ON ERROR SKIP requires a batch and INTO error table.");at(a,e.errorTable,_,C,o.tempTableMaxRows??Ke,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 ce("UPDATE",S.length)}let U=L=>new Map(Object.entries(L).map(([v,A])=>[v,A.value]));for(let L of S){let v=Rl(U(L.top),new Map([...L.subtables].map(([A,P])=>[A,P.map(M=>({...M.rowId?{rowId:M.rowId}:{},values:U(M.record)}))])),"PRESERVE");await i.putRecords({app:e.appId,records:[{id:L.targetId,...L.revision===void 0?{}:{revision:L.revision},record:v}]})}return{type:"UPDATE",updatedCount:S.length,affectedRows:S.length,skippedRows:m.size,rejectLimit:e.rejectLimit,...e.errorTable?{errTable:e.errorTable}:{},importDetail:b}}async function lS(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 qe(e.appId,e.fields,n,i),s=await At(e.appId,e.fields,a,n,i),l=await Wo(t,new Map),d=ul(e.source,l,r.maxRecords??1e4,e.fields,a,e.recordNumberSourceHeader),c=d.recordNumberSourceValues;if(!c)throw new Error("InternalError: record-number source values were not materialized.");let u=yl(c,e.recordNumberSourceHeader),p=new Set,f=[...new Set(u.normalized.filter(b=>b!==null))];for(let b=0;b<f.length;b+=100){let D=f.slice(b,b+100),C=await n.getRecords({app:e.appId,query:`$id in (${D.join(",")}) limit 500`,fields:["$id"]});for(let _ of C.records){let U=_.$id?.value;typeof U=="string"&&U!==""&&p.add(U.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"])),g=d.rows.map((b,D)=>{let C=u.normalized[D],_=[...d.importRowErrors?.[D]??[],...u.errors[D]];return C!==null&&!p.has(C)&&_.push({field:e.recordNumberSourceHeader,code:"ERR_RECORD_NUMBER_NOT_FOUND",message:`record number ${C} does not exist in APP${e.appId}`}),{rowNumber:D+1,operation:"UPDATE",mode:"update",...C!==null&&p.has(C)?{targetId:Number(C)}:{},payload:new Map([[e.recordNumberSourceHeader,c[D]],...e.fields.map(U=>[U,b[U]??""])]),preErrors:_,record:{},evaluationRow:b,evaluationFieldTypes:R}}),y=[e.recordNumberSourceHeader,...e.fields],m=bs(g,"UPDATE",y,e.fields,a,1,s,e.checkGroups??[],!1),h=[...y,...Un],S={type:"VALIDATION",operation:"UPDATE",validatedRows:g.length,validRows:g.length-m.invalidRows,invalidRows:m.invalidRows,errorCount:m.errors.length,columns:h,errors:m.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&&at(o,e.validationErrorTable,h,m.errors,r.tempTableMaxRows??Ke,new Map),S}if(!e.onErrorSkip&&m.invalidRows>0){let b=m.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(at(o,e.errorTable,h,m.errors,r.tempTableMaxRows??Ke,new Map),e.rejectLimit!=null&&m.invalidRows>e.rejectLimit)throw new ai(`rejected rows (${m.invalidRows}) exceed REJECT LIMIT (${e.rejectLimit}).`,S)}let I=g.filter(b=>!m.invalidRowNumbers.has(b.rowNumber));if(r.confirm&&!await r.confirm(I.length,"UPDATE"))throw new ce("UPDATE",I.length);let w=I.map(b=>({id:b.targetId,record:b.record}));for(let b=0;b<w.length;b+=100)await n.putRecords({app:e.appId,records:w.slice(b,b+100)});let N={type:"UPDATE",updatedCount:w.length,...e.onErrorSkip?{affectedRows:w.length,skippedRows:m.invalidRows,rejectLimit:e.rejectLimit??null,errTable:e.errorTable}:{}};return Object.assign(N,{insertedCount:0,importAudit:d.importAudit}),N}async function uS(e,t,n,r,i,o){let a=fa.get(e);if(!a){let R=i&&i.size>0?await ht(e.select,t,n,i,r,!0):await Ft(e.select,t,n,r,void 0,!0);return{rows:R.rows,columns:R.columns,columnMeta:pe.get(R)}}let s=await Wo(a.handle,a.cache),l=n.maxRecords??1e4,d=new Map((o??[]).map(R=>[R.code,R])),c=e.fields.map(R=>({code:R,fieldType:d.get(R)?.fieldType??"SINGLE_LINE_TEXT"})),u=a.source.kind==="JSON"?ll(a.source,s,c,l):ul(a.source,s,l,e.fields,o);if(a.audit=u.importAudit,a.source.kind==="JSON"||!a.source.projection)return u;let p=lf(a.source.projection),f=new Map(i??[]);f.set(gl,u);let E=await ht(p,t,{...n,onLimitReached:"error"},f,r,!0);return{rows:E.rows,columns:E.columns,columnMeta:pe.get(E)}}var mu={materialize:uS};function fE(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 hu(e,t,n,r,i){if(e.checkGroups?.length)return Ri(e,t,n,r,i);let o=await qe(e.appId,e.fields,t,r),a=await At(e.appId,e.fields,o,t,r),s=await mu.materialize(e,t,n,r,i,o),{rows:l,columns:d}=s;if(fE(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 ce("INSERT",l.length);let c=await we(e.appId,t,r),u=l.map((f,E)=>{let R={};return e.fields.forEach((g,y)=>{if(s.importPresence&&!s.importPresence[E]?.has(g))return;let m=f[d[y]]??"";R[g]={value:lE(m,c.get(g))}}),R});u.forEach(f=>un([f],e.fields.filter(E=>E in f),o,a));let p=[];for(let f=0;f<u.length;f+=100){let E=u.slice(f,f+100),R=await t.postRecords({app:e.appId,records:E});p.push(R.ids)}return{type:"INSERT",createdIds:p,insertedCount:p.flat().length}}async function Gl(e,t,n,r,i){if(e.applyBlocks?.length)return EE(e,t,n,r);if(e.checkGroups?.length&&mt(e.where)){let E=await qe(e.appId,e.assignments.map(g=>g.field),t,r);await At(e.appId,e.assignments.map(g=>g.field),E,t,r);let R=await we(e.appId,t,r);return cE(e,R),cn(e,Bl(R,e.appId)),await Vn(e,t,r),{type:"UPDATE",updatedCount:0}}if(e.checkGroups?.length)return Ri(e,t,n,r,i);if(e.subtableCode)return await Vn(e,t,r),PS(e,t,n,r);let o=await qe(e.appId,e.assignments.map(E=>E.field),t,r),a=e.assignments.map(E=>E.field),s=await At(e.appId,a,o,t,r);if(await Vn(e,t,r),mt(e.where))return{type:"UPDATE",updatedCount:0};if(e.from!=null)return SS(e,e.from,t,n,r,i);let l=n.maxRecords??1e4;await AE(e.assignments,t,n,r);let d=await we(e.appId,t,r);if(so(e)){let E=ls(e),g=(await He(t.getRecords,E.app,E.query,[...E.fields],{maxRecords:l,parallel:n.fetchParallel??1})).records,y=cs(e,g,d);if(un(y.flatMap(m=>m.records.map(h=>h.record)),a,o,s),n.confirm&&!await n.confirm(g.length,"UPDATE"))throw new ce("UPDATE",g.length);for(let m of y)await t.putRecords(m);return{type:"UPDATE",updatedCount:g.length}}let c=hr(e),p=(await Io(t.getRecords,c.app,c.query,{maxRecords:l,parallel:n.fetchParallel??1})).ids,f=Ar(e,p,d);if(un(f.flatMap(E=>E.records.map(R=>R.record)),a,o,s),n.confirm&&!await n.confirm(p.length,"UPDATE"))throw new ce("UPDATE",p.length);for(let E of f)await t.putRecords(E);return{type:"UPDATE",updatedCount:p.length}}async function EE(e,t,n,r,i=1){if(!e.validateOnly&&n.allowApplyMutation!==!0)throw new Error("UnsupportedError: APPLY mutation requires allowApplyMutation=true");if(!ut(e.where))return cS(e,t,n,r,i);let o=await te(e.appId,t,r),a=Et(e,o),s=uo(e,o),l=ms(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 c=Number(d.records[0].$id?.value);if(c!==l)throw new Error(`ArgumentError: APPLY snapshot $id ${c} does not match requested $id ${l}.`);Eo(d.records[0]);let u=wp({statement:e,snapshot:d.records[0],fieldInfos:o,metadata:a}),p=Ze(o,e.assignments.map(I=>I.field)),f=jt(u.postImage,p)?await st(e.appId,t,r):void 0,E=zt(u.postImage,p,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=Ge(n.dmlMaxRows,"dmlMaxRows",St),g=Ge(n.dmlMaxSubtableRows,"dmlMaxSubtableRows",Ae),y=u.parentRows>R||u.changedSubtableRows>g;if(e.validateOnly){let I=Lr({plans:[u],records:wr(u).records,validations:[],guards:{revisionRequired:!0,parentRows:u.parentRows,dmlMaxRows:R,subtableRows:u.changedSubtableRows,dmlMaxSubtableRows:g,wouldExceed:y}}),w={type:"VALIDATION",operation:"UPDATE",validatedRows:1,validRows:E.invalidRows===0?1:0,invalidRows:E.invalidRows===0?0:1,errorCount:E.errorCount,columns:[...E.columns],errors:E.errors,...e.validationErrorTable?{errTable:e.validationErrorTable}:{},apply:si(I.branches[0]),guards:li(I.branches[0]),deletedRows:{total:u.tables.reduce((N,b)=>N+b.deletedRows,0),parentRows:u.tables.some(N=>N.deletedRows>0)?1:0},diagnostic:I};return pn.set(w,Aa(E.columns,o,e.appId)),w}if(u.parentRows>R)throw new Error(`ArgumentError: APPLY parent rows (${u.parentRows}) exceed dmlMaxRows (${R}).`);if(u.changedSubtableRows>g)throw new Error(`ArgumentError: APPLY changed subtable rows (${u.changedSubtableRows}) exceed dmlMaxSubtableRows (${g}).`);let m=po(u,E.normalizedRecord),h=wr(m),S=Lr({plans:[m],records:h.records,validations:[],guards:{revisionRequired:!0,parentRows:u.parentRows,dmlMaxRows:R,subtableRows:u.changedSubtableRows,dmlMaxSubtableRows:g,wouldExceed:y}});if(n.confirm){let I=ha(S,!1);if(!await n.confirm(u.parentRows,"UPDATE",{statementIndex:0,statementCount:1,statementType:"UPDATE",targetAppId:e.appId,applyDetail:I,applyDiagnostic:S}))throw new ce("UPDATE",u.parentRows)}return await t.putRecords(h),{type:"UPDATE",updatedCount:u.parentRows,diagnostic:ke(S,{successfulChunks:1,successfulParents:u.parentRows})}}async function cS(e,t,n,r,i){let o=Ge(n.dmlMaxRows,"dmlMaxRows",St),a=Ge(n.dmlMaxSubtableRows,"dmlMaxSubtableRows",Ae),s=await te(e.appId,t,r),l=Et(e,s),d;if(ca(e))d=await ES(e,t,n,s,r);else{let f=uo(e,s),E=hr(e).query,R=o+1;d=await be(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 c=await mo({statement:e,snapshots:d,fieldInfos:s,metadata:l,dmlMaxRows:o,dmlMaxSubtableRows:a,statementNumber:i,loadNumberPrecision:()=>st(e.appId,t,r)});if(e.validateOnly)return hS(e,c,s);oc("phase15b",e);let u=Lr(c);if(n.confirm){let f=ha(u);if(!await n.confirm(c.guards.parentRows,"UPDATE",{statementIndex:0,statementCount:1,statementType:"UPDATE",targetAppId:e.appId,applyDetail:f,applyDiagnostic:u}))throw new ce("UPDATE",c.guards.parentRows)}let p=await Wp(c,t,u);return{...p,diagnostic:ke(u,p)}}function ca(e){return(e.applyBlocks?.length??0)>0&&!ut(e.where)&&(wt(e.where)||ge(e.where))}function pS(e){let t=e.type==="EXPLAIN"?e.query:e;return t.type==="UPDATE"&&ca(t)&&ge(t.where)}var dS=`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
12
12
  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
13
13
  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 fS(e){if(e.unappliedKlikes.length>0)throw new Error(`UnsupportedError: ${dS}`)}async function ES(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=$s(e.where,{fieldTypes:s,fieldOptions:l});fS(d);let c=d.prefilter===null?"":V(d.prefilter),u=new Set(uo(e,r));for(let E of RS(e.where))u.add(E);let p=await gS(e.appId,e.where,a,t,i);return(await be(t.getRecords,e.appId,c,[...u],{maxRecords:n.maxRecords??1e4,parallel:n.fetchParallel??1,onLimit:"error"})).map(E=>({snapshot:E,row:Rt(E,null)})).filter(({row:E})=>ne(e.where,E,p.fieldTypeResolver,d.appliedKlikes,p.fieldSemanticsResolver)).map(({snapshot:E})=>E)}function RS(e){return Ql(e)}async function gS(e,t,n,r,i){let s=[...yS(t)].some(c=>n.get(c)?.fieldType==="STATUS")?await Eu(e,r,i):void 0;return{fieldTypeResolver:c=>c.field==="$id"?"NUMBER":n.get(c.field)?.fieldType,fieldSemanticsResolver:c=>{if(c.field==="$id")return _n(Z({fieldType:"__ID__"}),e,"$id");let u=n.get(c.field);if(!u)return;let p=u.semantics??Z(u),f=u.fieldType==="STATUS"&&s?{...p,optionOrder:s}:p;return _n(f,e,u.code)}}}function yS(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 mS(e,t,n){let r=t.validations.flatMap(c=>c.errors),i=t.validations.reduce((c,u)=>c+(u.invalidRows>0?1:0),0),o=t.validations[0]?.columns?[...t.validations[0].columns]:[...Ze(n,e.fields).payloadFields,...Nr],a=t.guards.parentRows,s=vs(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:si(l),guards:li(l),deletedRows:{total:0,parentRows:0},diagnostic:s};return pn.set(d,Aa(o,n,e.appId)),d}function hS(e,t,n){let r=t.validations,i=r.flatMap(d=>d.errors),o=r.reduce((d,c)=>d+(c.invalidRows>0?1:0),0),a=r[0]?.columns?[...r[0].columns]:[...Ze(n,e.assignments.map(d=>d.field)).payloadFields,...Nr],s=Lr(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:si(s.branches[0]),guards:li(s.branches[0]),deletedRows:{total:t.plans.reduce((d,c)=>d+c.tables.reduce((u,p)=>u+p.deletedRows,0),0),parentRows:t.plans.filter(d=>d.tables.some(c=>c.deletedRows>0)).length},diagnostic:s};return pn.set(l,Aa(a,n,e.appId)),l}function AS(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??[...Ze(n,e.fields).payloadFields,...Nr],l=Us(t),d=l.branches.find(E=>E.branch==="insert"),c=l.branches.find(E=>E.branch==="update"),u=si(d),p=si(c),f={type:"VALIDATION",operation:"UPSERT",validatedRows:t.guards.parentRows,validRows:t.guards.parentRows-a,invalidRows:a,errorCount:o.length,columns:[...s],errors:o,...e.validationErrorTable?{errTable:e.validationErrorTable}:{},apply:[...u,...p],guards:{revisionRequired:t.guards.revisionRequired,parentRows:t.guards.parentRows,dmlMaxRows:t.guards.dmlMaxRows,subtableRows:t.guards.subtableRows,dmlMaxSubtableRows:t.guards.dmlMaxSubtableRows,wouldExceed:t.guards.wouldExceed},applyBranches:{create:{apply:u,guards:li(d)},update:{apply:p,guards:li(c)}},deletedRows:{total:t.update.plans.reduce((E,R)=>E+R.tables.reduce((g,y)=>g+y.deletedRows,0),0),parentRows:t.update.plans.filter(E=>E.tables.some(R=>R.deletedRows>0)).length},diagnostic:l};return pn.set(f,Aa([...s],n,e.appId)),f}function si(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:rn(t,"REMOVE")}:{field:t.field,operations:n,changedSubtableRows:0,deletedRows:0,multiValue:{fieldType:t.fieldType??"UNKNOWN",addedValues:rn(t,"ADD"),removedValues:rn(t,"REMOVE_VALUE"),changedValues:t.changedCount??0,postImages:t.postImages??[]}}})}function li(e){if(e.guards.parentRows===null||e.guards.subtableRows===null||e.guards.wouldExceed===null)throw new Error("InternalError: runtime APPLY diagnostic guard contains unknown counts.");return{revisionRequired:e.guards.revisionRequired,parentRows:e.guards.parentRows,dmlMaxRows:e.guards.dmlMaxRows,subtableRows:e.guards.subtableRows,dmlMaxSubtableRows:e.guards.dmlMaxSubtableRows,wouldExceed:e.guards.wouldExceed}}var St=100,Ae=500;function Ge(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:Z({fieldType:"RECORD_NUMBER"})});continue}let s=r.get(a);if(s){o.set(a,ot(s,n));continue}o.set(a,z(i.has(a)?"number":"string"))}return o}async function SS(e,t,n,r,i,o){let a=await pE(e,t,n,r,i,o),s=await we(e.appId,n,i),l=ds(e,a,s),d=e.assignments.map(p=>p.field),c=await te(e.appId,n,i),u=await At(e.appId,d,c,n,i);if(un(l.flatMap(p=>p.records.map(f=>f.record)),d,c,u),r.confirm&&!await r.confirm(a.length,"UPDATE"))throw new ce("UPDATE",a.length);for(let p of l)await n.putRecords(p);return{type:"UPDATE",updatedCount:a.length}}function TS(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 IS(e,t,n,r){if(await Vn(e,t,r),mt(e.where))return{type:"DELETE",deletedCount:0};if(e.subtableCode)return NS(e,t,n,r);let i=gp(e),a=(await Io(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 ce("DELETE",a.length);let s=yp(e.appId,a);for(let l of s)await t.deleteRecords(l);return{type:"DELETE",deletedCount:a.length}}async function wS(e,t,n,r){if(e.onInsertApplyBlocks?.length||e.onUpdateApplyBlocks?.length)return HA(e,t,n,r);if(e.checkGroups?.length)return Ri(e,t,n,r);let i=await qe(e.appId,e.fields,t,r),o=await At(e.appId,e.fields,i,t,r),a=[],s=[],l=await we(e.appId,t,r),d=RE(e),c=await Ei(e.appId,e.keyFields,d,t,n,l);if(e.values.forEach((p,f)=>{let E={};e.fields.forEach((g,y)=>{let m=p[y];m.type==="CASE_VALUE"?E[g]={value:Ut(m.expr,{},l.get(g))}:E[g]={value:ft(m,l.get(g))}});let R=fi(c,d[f]);R!==void 0?s.push({id:R,record:E}):a.push(E)}),un([...a,...s.map(p=>p.record)],e.fields,i,o),n.confirm&&a.length+s.length>0){let p=a.length+s.length;if(!await n.confirm(p,"UPDATE"))throw new ce("UPDATE",p)}let u=[];for(let p=0;p<a.length;p+=100){let f=await t.postRecords({app:e.appId,records:a.slice(p,p+100)});u.push(f.ids)}for(let p=0;p<s.length;p+=100)await t.putRecords({app:e.appId,records:s.slice(p,p+100)});return{type:"UPSERT",insertedCount:u.flat().length,updatedCount:s.length}}function RE(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"?Ce(i.expr,{}):i.elements.map(o=>o.value).join(",")}))}async function Au(e,t,n,r){if(t.length===0)return;let i=await we(e,n,r);return o=>{if(o.tableAlias!==null&&o.tableAlias!=="_p")return;if(o.tableAlias==="_p")return i.get(o.field);let a=o.field.startsWith("_p.")?o.field.slice(3):o.field;return i.get(a)}}async function bS(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 be(t.getRecords,e.appId,"",[],{maxRecords:n.maxRecords??1e4,parallel:n.fetchParallel??1}),s=Sa(a),l=new Map;for(let c of e.values){let u=Sf(c[o]);if(!s.get(u))throw new Error(`_pid=${u} \u306E\u89AA\u30EC\u30B3\u30FC\u30C9\u304C\u898B\u3064\u304B\u308A\u307E\u305B\u3093`);let f={value:{}};e.fields.forEach((R,g)=>{if(R!=="_pid"){if(R.startsWith("_"))throw new Error(`\u30B5\u30D6\u30C6\u30FC\u30D6\u30EB INSERT \u3067\u30B7\u30B9\u30C6\u30E0\u5217\u300C${R}\u300D\u306F\u6307\u5B9A\u3067\u304D\u307E\u305B\u3093`);f.value[R]={value:Sf(c[g])}}});let E=l.get(u);E?E.push(f):l.set(u,[f])}let d=[];for(let[c,u]of l.entries()){let p=s.get(c),E=[...gi(p,i),...u];d.push(gE(e.appId,c,yi(p),i,E))}for(let c of d)await t.putRecords(c);return{type:"INSERT",createdIds:[],insertedCount:e.values.length}}async function PS(e,t,n,r){let i=e.subtableCode;if(!ti(e.where))throw new Error("\u30B5\u30D6\u30C6\u30FC\u30D6\u30EB UPDATE \u306B\u306F _rid \u6761\u4EF6\u304C\u5FC5\u9808\u3067\u3059");let o=[];yt(e.where,o);for(let p of e.assignments)p.value.type==="CASE_VALUE"&&sa(p.value.expr,o);let a=await Au(e.appId,o,t,r),s=await be(t.getRecords,e.appId,"",[],{maxRecords:n.maxRecords??1e4,parallel:n.fetchParallel??1}),d=Su(s,i).filter(p=>ne(e.where,p.flat,a));if(n.confirm&&!await n.confirm(d.length,"UPDATE"))throw new ce("UPDATE",d.length);let c=new Map;for(let p of d){if(!p.rowId)throw new Error("\u30B5\u30D6\u30C6\u30FC\u30D6\u30EB UPDATE \u5BFE\u8C61\u306B id \u672A\u63A1\u756A\u306E\u884C\u304C\u542B\u307E\u308C\u3066\u3044\u307E\u3059");let f=c.get(p.parentId);f||(f=new Map,c.set(p.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:lo(R.value,p.flat,a)}}f.set(p.rowId,E)}let u=Sa(s);for(let[p,f]of c.entries()){let E=u.get(p);if(!E)continue;let g=gi(E,i).map(y=>{let m=y.id??"";if(!m)return y;let h=f.get(m);return h?{id:m,value:h}:{id:m}});await t.putRecords(CS(e.appId,p,yi(E),i,g))}return{type:"UPDATE",updatedCount:d.length}}async function NS(e,t,n,r){let i=e.subtableCode;if(!ti(e.where))throw new Error("\u30B5\u30D6\u30C6\u30FC\u30D6\u30EB DELETE \u306B\u306F _rid \u6761\u4EF6\u304C\u5FC5\u9808\u3067\u3059");let o=[];yt(e.where,o);let a=await Au(e.appId,o,t,r),s=await be(t.getRecords,e.appId,"",[],{maxRecords:n.maxRecords??1e4,parallel:n.fetchParallel??1}),d=Su(s,i).filter(p=>ne(e.where,p.flat,a));if(n.confirm&&!await n.confirm(d.length,"DELETE"))throw new ce("DELETE",d.length);let c=new Map;for(let p of d){let f=c.get(p.parentId);f?f.push(p.rowIndex):c.set(p.parentId,[p.rowIndex])}let u=Sa(s);for(let[p,f]of c.entries()){let E=u.get(p);if(!E)continue;let R=gi(E,i),g=new Set(f),y=R.filter((m,h)=>!g.has(h));await t.putRecords(gE(e.appId,p,yi(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 Su(e,t){let n=[];for(let r of e){let i=String(r.$id?.value??""),o=yi(r),a=gi(r,t);for(let s=0;s<a.length;s++){let l=a[s],d={...co(l,s),_pid:i};for(let[c,u]of Object.entries(r))c!==t&&(d[`_p.${c}`]=$l(u?.value));n.push({parent:r,parentId:i,parentRevision:o,rowIndex:s,rowId:l.id??"",row:l,flat:d})}}return n}function gi(e,t){let n=e[t]?.value;return Array.isArray(n)?n:[]}function yi(e){let t=Number(e.$revision?.value??0);return Number.isFinite(t)?t:0}function gE(e,t,n,r,i){return{app:e,records:[{id:Number(t),revision:n,record:{[r]:{value:i}}}]}}function CS(e,t,n,r,i){return{app:e,records:[{id:Number(t),revision:n,record:{[r]:{value:i}}}]}}function OS(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 Sf(e){return e.type==="STRING"?e.value:e.type==="NUMBER"?H(e):e.type==="CASE_VALUE"?Ce(e.expr,{}):e.elements.map(t=>t.value).join(",")}function $l(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 ti(e){switch(e.type){case"BINARY":return e.left.type==="FIELD"&&e.left.tableAlias===null&&e.left.field==="_rid";case"LOGICAL":return ti(e.left)||ti(e.right);case"NOT":case"GROUP":return ti(e.expr);default:return!1}}async function LS(e,t,n,r){let i=[];yt(e.where,i);let o=await Au(e.appId,i,t,r),a=await te(e.appId,t,r);if(mt(e.where))return{type:"REORDER",reorderedParentCount:0};let s=new Map(a.map(f=>[f.code,f.semantics??Z(f)])),l=f=>{if(f.field==="_idx"||f.field==="_pid"||f.field==="_rid")return x("number");let E=f.field.startsWith("_p.")?f.field.slice(3):f.field;return s.get(E)??x("string")},d=await be(t.getRecords,e.appId,"",[],{maxRecords:n.maxRecords??1e4,parallel:n.fetchParallel??1}),c=Su(d,e.subtableCode),u=e.all?new Set(d.map(f=>String(f.$id?.value??"")).filter(f=>f!=="")):new Set(c.filter(f=>e.where&&ne(e.where,f.flat,o,void 0,l)).map(f=>f.parentId));if(n.confirm&&!await n.confirm(u.size,"UPDATE"))throw new ce("UPDATE",u.size);let p=Sa(d);for(let f of u){let E=p.get(f);if(!E)continue;let g=gi(E,e.subtableCode).map((m,h)=>({row:m,i:h,flat:_S(E,e.subtableCode,m,h)}));g.sort((m,h)=>DS(m.flat,h.flat,e.by,l));let y=g.map(m=>m.row.id??"");await t.putRecords(OS(e.appId,f,yi(E),e.subtableCode,y))}return{type:"REORDER",reorderedParentCount:u.size}}function _S(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}`]=$l(a?.value));for(let[o,a]of Object.entries(n.value??{}))i[o]=$l(a?.value);return i}function DS(e,t,n,r){for(let i of n){let o=Tf(i.key,e),a=Tf(i.key,t),s=i.key.type==="FIELD_NAME"?r(Be(i.key.name)):i.key.type==="ARITH_KEY"?x("number"):i.key.type==="FUNC_KEY"?an(i.key.expr).semantics??x("string"):x("number"),l=vt(o,a,s??x("string"));if(l!==0)return i.direction==="ASC"?l:-l}return 0}function Tf(e,t){switch(e.type){case"FIELD_NAME":return t[e.name]??"";case"ARITH_KEY":return String(le(e.expr,t));case"FUNC_KEY":return ue(e.expr,t);case"GROUPING_KEY":throw new Error("ArgumentError: GROUPING() is not supported in REORDER BY.")}}async function Tu(e,t,n,r,i){if(e.checkGroups?.length)return Ri(e,t,n,r,i);let o=await qe(e.appId,e.fields,t,r),a=await At(e.appId,e.fields,o,t,r),s=await mu.materialize(e,t,n,r,i,o),{rows:l,columns:d}=s;if(fE(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 c=[],u=[],p=await we(e.appId,t,r),f=l.map((y,m)=>{let h={};return e.fields.forEach((S,I)=>{if(s.importPresence&&!s.importPresence[m]?.has(S))return;let w=y[d[I]]??"";h[S]={value:lE(w,p.get(S))}}),h});f.forEach(y=>un([y],e.fields.filter(m=>m in y),o,a));let E=f.map(y=>e.keyFields.map(m=>String(y[m]?.value??"")));if(fa.has(e)){let y=e.keyFields.map(h=>p.get(h)==="NUMBER"),m=new Set;for(let h of E){let S=ln(h,y);if(m.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");m.add(S)}}let R=await Ei(e.appId,e.keyFields,E,t,n,p);if(f.forEach((y,m)=>{let h=fi(R,E[m]);h!==void 0?u.push({id:h,record:y}):c.push(y)}),n.confirm&&c.length+u.length>0){let y=c.length+u.length;if(!await n.confirm(y,"UPDATE"))throw new ce("UPDATE",y)}let g=[];for(let y=0;y<c.length;y+=100){let m=await t.postRecords({app:e.appId,records:c.slice(y,y+100)});g.push(m.ids)}for(let y=0;y<u.length;y+=100)await t.putRecords({app:e.appId,records:u.slice(y,y+100)});return{type:"UPSERT",insertedCount:g.flat().length,updatedCount:u.length}}var vS=Object.freeze(["\u30A2\u30D7\u30EAID","\u30A2\u30D7\u30EA\u540D","\u8AAC\u660E"]),US=Object.freeze(["\u30D5\u30A3\u30FC\u30EB\u30C9\u30B3\u30FC\u30C9","\u30E9\u30D9\u30EB","\u30BF\u30A4\u30D7","\u30B5\u30D6\u30C6\u30FC\u30D6\u30EB","\u30EB\u30C3\u30AF\u30A2\u30C3\u30D7","\u30B3\u30D4\u30FC\u5143","\u91CD\u8907\u7981\u6B62","\u8A08\u7B97\u5F0F"]);async function yE(e){let t=await e.getApps(),n=[...vS],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 mE(e,t,n){let r=await te(e.appId,t,n),i=[...US],o=r.map(a=>({\u30D5\u30A3\u30FC\u30EB\u30C9\u30B3\u30FC\u30C9:a.code,\u30E9\u30D9\u30EB:a.label,\u30BF\u30A4\u30D7:a.fieldType,\u30B5\u30D6\u30C6\u30FC\u30D6\u30EB:a.inSubtable===!0?a.subtableCode??"":"",\u30EB\u30C3\u30AF\u30A2\u30C3\u30D7:a.hasLookup===!0?"YES":"",\u30B3\u30D4\u30FC\u5143:a.isLookupCopyTarget===!0?"YES":"",\u91CD\u8907\u7981\u6B62:a.isUnique===!0?"YES":"",\u8A08\u7B97\u5F0F:a.isCalculated===!0?"YES":""}));return{type:"SELECT",rows:o,columns:i,rowCount:o.length}}function kS(e,t=!1){try{let n=new Lt(e).tokenize(),r=new _t(n,{import:t}).parse();return Sn("phase15b",r),We(r),r}catch(n){throw n instanceof Ie||n instanceof T,n}}async function ui(e,t,n,r,i){let o=[];na(e,t,n,r,o,i),await Promise.all(o)}async function hE(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(ui(s.condition,t,n,r,i));await Promise.all(o)}function ni(e,t,n,r,i){return i!==void 0&&i.size>0?ht(e,t,n,i,r):Ft(e,t,n,r)}function na(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(ni(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(ni(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":na(e.left,t,n,r,i,o),na(e.right,t,n,r,i,o);break;case"NOT":case"GROUP":na(e.expr,t,n,r,i,o);break;case"EXISTS":{let a=e;i.push(ni(a.query,t,n,r,o).then(s=>{a.resolved=s.rowCount>0}));break}case"BOOLEAN":break}}async function AE(e,t,n,r){for(let i of e){if(i.value.type!=="SCALAR_SUBQUERY")continue;let o=await Ft(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 SE(e,t,n,r,i){let o=new Map,a=[];for(let d=0;d<e.length;d++){let c=e[d];if(c.type!=="SCALAR_SUBQUERY_COL")continue;let u=JSON.stringify(c.query),p=o.get(u);p||(p=ni(c.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(u,p)),a.push([d,p])}let s=await Promise.all(a.map(([,d])=>d)),l=new Map;return a.forEach(([d],c)=>l.set(d,s[c])),l}var TE=new WeakMap,Vl=new WeakMap,IE=new WeakMap,wE=new WeakMap;async function bE(e,t,n,r=1e4,i){let o=new Set,a=new Set,s=new Set,l={...t,getFields:async g=>(o.add(g),t.getFields(g)),getProcessStatuses:async g=>(a.add(g),t.getProcessStatuses(g)),getNumberPrecision:async g=>(s.add(g),t.getNumberPrecision(g))},d=new Map,c=new Map,u=new Map,p=new Set,f=i??await pi(e,l,n),E=g=>f.nodes.find(y=>y.source===g||JSON.stringify(y.source)===JSON.stringify(g)),R=async g=>{if(g===null||typeof g!="object"||p.has(g))return;if(p.add(g),Array.isArray(g)){await Promise.all(g.map(R));return}let y=g;if(y.type==="SELECT"){let m=g;await Ea(m,l,n);let h=[m.from,...m.joins.map(U=>U.table)].some(U=>U.cteName!==null);if(re(m).type==="PLAIN"&&!h){let U=await nu(m,l,n);U&&u.set(m,U)}let S=[m.from,...m.joins.map(U=>U.table)].filter(U=>U.cteName===null).map(U=>U.appId);(nt(m.where)||m.orderBy.length>0||m.columns.some(U=>U.type==="WINDOW_COL"&&U.orderBy.length>0))&&S.forEach(U=>o.add(U));let{resolver:w,rewrites:N}=await tn(m,l,n);N.length>0&&Vl.set(m,N);let b=he(m.where,w),D=E(m);if(b.capability==="UNSUPPORTED"&&!D)throw new Error(`ArgumentError: WHERE predicate is unsupported (${nn(b)}).`);d.set(m,b);let _=ou.get(m)??Ra(m,await ga(m,l,n));if(_&&TE.set(m,_),m.orderBy.length>0||m.columns.some(U=>U.type==="WINDOW_COL"&&U.orderBy.length>0)){let U=await oi(m,l,n);if(m.orderMode!=="KINTONE_NATIVE")for(let L of U.semantics.values())L.fieldType==="STATUS"&&L.source&&a.add(L.source.appId);if(oa(m)&&!h&&D?.allowed!==!1){let L=b.capability==="EXACT_PUSHDOWN"?Ue(m):"FULL_SCAN";c.set(m,(m.orderMode==="KINTONE_NATIVE"?xr:Fr)({stmt:m,staticMode:L,whereCapability:b.capability,whereReasons:b.reasons,orderSemantics:U.semantics,maxRecords:r,hasKlike:ge(m.where)}))}}}else if(y.type==="VALIDATE"){let m=g;o.add(m.appId);let h=await te(m.appId,l,n),S=new Map(h.filter(A=>!A.inSubtable).map(A=>[A.code,A])),I=new Set(h.filter(A=>A.inSubtable).map(A=>A.code)),w=Os(m,h),N=Dn(m.checkGroups??[]),b=Ql(m.where);for(let A of N){if(A.field!=="$id"&&!S.has(A.field)&&!I.has(A.field))throw me(`CHECK \u306E\u30D5\u30A3\u30FC\u30EB\u30C9 ${A.field} \u306F APP${m.appId} \u306B\u5B58\u5728\u3057\u307E\u305B\u3093`);if(A.field!=="$id"&&!S.has(A.field)&&I.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)&&!I.has(A))throw new Error(`ArgumentError: WHERE field ${A} does not exist in APP${m.appId}.`);if(A!=="$id"&&!S.has(A)&&I.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 D=new Map([...S].map(([A,P])=>[A,P.fieldType]));D.set("$id","RECORD_NUMBER"),cn(m,D);let C=he(m.where,A=>A.field==="$id"?Z({fieldType:"__ID__"}):S.get(A.field)?.semantics??(S.has(A.field)?Z(S.get(A.field)):void 0));if(C.capability==="UNSUPPORTED")throw new Error(`ArgumentError: WHERE predicate is unsupported (${nn(C)}).`);let _=new Map([...S].map(([A,P])=>[A,P.fieldType])),U=new Map([...S.values()].flatMap(A=>A.optionOrder?[[A.code,new Set(Object.keys(A.optionOrder))]]:[])),L=m.where===null?null:C.capability==="EXACT_PUSHDOWN"?m.where:Pn(m.where,{allowUnqualifiedFields:!0,fieldTypes:_,fieldOptions:U,allowKlike:!1}),v=w.some(A=>A.field.fieldType==="NUMBER");v&&(s.add(m.appId),await st(m.appId,l,n)),IE.set(m,{targetFields:w.map(A=>A.subtableCode?`${A.subtableCode}(${A.field.code})`:A.field.code),fetchFields:[...new Set(["$id",...w.map(A=>A.subtableCode??A.field.code),...b,...N.map(A=>A.field)])],subtables:new Map([...new Set(w.flatMap(A=>A.subtableCode?[A.subtableCode]:[]))].map(A=>[A,w.filter(P=>P.subtableCode===A).length])),capability:C,prefilter:L,numberPrecision:v})}else if(y.type==="UPDATE"||y.type==="DELETE"){if(o.add(g.appId),y.type==="UPDATE"&&g.applyBlocks?.length){let h=g,S=await te(h.appId,l,n);if(Et(h,S),ca(h)){let I=S.filter(N=>!N.inSubtable),w=$s(h.where,{fieldTypes:new Map(I.map(N=>[N.code,N.fieldType])),fieldOptions:new Map(I.flatMap(N=>N.optionOrder?[[N.code,new Set(Object.keys(N.optionOrder))]]:[]))});wE.set(h,w)}}let m=g;(m.type!=="UPDATE"||!ca(m))&&E(m)?.allowed!==!1&&await Vn(m,l,n)}await Promise.all(Object.values(y).map(R))};if(await R(e),typeof e=="object"&&e!==null&&e.type==="WITH"&&Pt(e)){let g=Nt(e),{resolver:y,rewrites:m}=await tn(g,l,n);m.length>0&&Vl.set(g,m);let h=he(g.where,y),S=E(g);if(h.capability==="UNSUPPORTED"&&!S)throw new Error(`ArgumentError: WHERE predicate is unsupported (${nn(h)}).`);if(d.set(g,h),oa(g)&&S?.allowed!==!1){let I=await oi(g,l,n);c.set(g,(g.orderMode==="KINTONE_NATIVE"?xr:Fr)({stmt:g,staticMode:h.capability==="EXACT_PUSHDOWN"?Ue(g):"FULL_SCAN",whereCapability:h.capability,whereReasons:h.reasons,orderSemantics:I.semantics,maxRecords:r,hasKlike:ge(g.where)}))}}return{capabilities:d,orderPlans:c,plainGroupByPlans:u,fieldApps:o,processStatusApps:a,numberPrecisionApps:s,relativeDatePlan:f}}function Wl(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 MS(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 If(e){return e==="<>"?"!=":e}function je(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(je).join(", ")})`;case"FUNC_FIELD":case"ARITH_FIELD":case"CASE_FIELD":case"ARITH_VALUE":case"CASE_VALUE":return je(t.expr);case"GROUPING_FIELD":return`GROUPING(${je(t.ref)})`;case"GROUPING_REF":return je(t.field);case"ARITH":case"SCALAR_ARITH":case"CONCAT_OP":return`(${je(t.left)} ${typeof t.op=="string"?t.op:t.type==="CONCAT_OP"?"||":"<op>"} ${je(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(je).join(", ")})`:"<expr>";case"ARRAY":return Array.isArray(t.elements)?`[${t.elements.map(je).join(", ")}]`:"<expr>";case"CASE":case"CASE_WHEN":return"CASE ... END";default:return"<expr>"}}function Zt(e){try{let t=e;switch(t.type){case"BINARY":return`${je(t.left)} ${MS(t.op)} ${je(t.right)}`;case"NULL_CHECK":return`${je(t.field)} IS ${t.not===!0?"NOT ":""}NULL`;case"LOGICAL":return`(${Zt(t.left)} ${t.op==="AND"||t.op==="OR"?t.op:"<op>"} ${Zt(t.right)})`;case"NOT":return`NOT (${Zt(t.expr)})`;case"GROUP":return`(${Zt(t.expr)})`;case"BOOLEAN":return t.value===!0?"TRUE":t.value===!1?"FALSE":"<expr>";default:return"<expr>"}}catch{return"<expr>"}}function Hl(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?FS(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),c=l.left.type==="FIELD"?l.left.field:"(unknown)";t.push(` ${Al(d)}: ${d}`,` ${Tl(d)}: kintone server exact JOIN prefilter`,` target alias / APP: ${s.targetAlias} / APP${s.appId}`,` field: ${c}`,` function leaf relation: ${s.relation}`,` consumption: ${s.consumption}`)}t.push(` client residual: ${r.residualWhere===null?"(none)":Zt(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,c=If(s.op),u=n.capability?.reasons.find(p=>p.functionName===l&&(d===void 0||p.field===d)&&p.operator===c);t.push(` ${Al(l)}: ${l}`,` ${Tl(l)}: kintone server whole-WHERE exact`,` field: ${u?.field??d??"(unknown)"} (${u?.fieldType??"unknown"})`,` operator: ${u?.operator??c}`)}let a=i.serializedWholeWhere;t.push(" where capability: EXACT_PUSHDOWN",` server predicate: ${a}`," client residual: (none)",` ${wf(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,c=If(s.op),u=n.capability?.reasons.find(p=>p.functionName===l&&(d===void 0||p.field===d)&&p.operator===c);t.push(` ${Al(l)}: ${l}`,` ${Tl(l)}: kintone server exact prefilter`,` field: ${u?.field??d??"(unknown)"} (${u?.fieldType??"unknown"})`,` operator: ${u?.operator??c}`)}let a=V(o.prefilterWhere);t.push(" where capability: SUPERSET_PREFILTER",` server prefilter: ${a}`,` client residual: ${Zt(o.residualWhere)}`,` ${wf(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 FS(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,c=l?.type==="IN_LIST"&&Array.isArray(l.values)&&l.values.some(u=>u!==null&&typeof u=="object"&&u.type==="KINTONE_FUNC"&&u.name===t);if((d||c)&&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 Tl(e){return J(e)?"relative date evaluation":"kintone function evaluation"}function wf(e){return e.every(t=>t.right.type==="KINTONE_FUNC"&&J(t.right.name))?"relative date client evaluations":"kintone function client evaluations"}var PE=Symbol("ksql.explainFetchPlan");function Iu(e){return e[PE]}function NE(e,t){e[PE]=t}async function CE(e,t,n,r="batch-explain",i=1e4,o=2,a=!1,s=100,l=Ae){let d=Yl(r);try{let c=Zl(e,a),u=Za(c),p=ks(c,n),f=Mf(c,p),E=new Map,R=[],g=[];for(let m=0;m<c.length;m++){let h=c[m],S=h.type==="SET_VARIABLE"?h.expr.type==="SCALAR_SUBQUERY"?{...h,expr:ia(h.expr,E)}:h:ia(h,E);We(S);let I=await pi(S,t,d),w=await bE(S,t,d,i,I),N={sources:[]},b=I.hasServerOnlyWhereFunction&&!I.allowed?Hl(I):[...Hl(I),...OE(xS(S,u.statements[m],w.capabilities,w.orderPlans,s,l,N),o)],D=Wl(w);R.push({index:m,type:u.statements[m].statementType,plan:b.length===0?D:[b[0],...D,...b.slice(1)]}),g.push({index:m,fetch:wu(N.sources),sources:N.sources}),(h.type==="SET_VARIABLE"||h.type==="DECLARE_VARIABLE")&&E.set(h.name,h.type==="DECLARE_VARIABLE"&&h.annotation==="RELATIVE_DATE"?{type:"relative-date",value:f.get(h.name)}:h.type==="SET_VARIABLE"&&h.expr.type==="ARRAY"?{type:"array",elements:h.expr.elements.map(C=>({type:"string",value:C.value}))}:{type:"string",value:`@${h.name}`,placeholder:!0})}let y={statementCount:c.length,statements:R};return NE(y,{statements:g}),y}finally{fu(d)}}function xS(e,t,n,r,i=100,o=Ae,a={sources:[]}){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 ${Ke} \u884C\u3001tempTableMaxRows \u3067\u5909\u66F4\u53EF\u3001\u8D85\u904E\u306F\u30A8\u30E9\u30FC\uFF09`,...Jr(e.query,t,n,r,a,"main").map(s=>` ${s}`)];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 s=pa(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:",...Jr(e.expr.query,s,n,r,a).map(l=>` ${l}`)]}return[`SET @${e.name} = <scalar expression>`," value: \u5B9F\u884C\u6642\u306B1\u56DE\u8A55\u4FA1\uFF08\u30D0\u30C3\u30C1\u5185\u5B9A\u6570\u30FB\u7D50\u679C\u30E1\u30BF\u30C7\u30FC\u30BF\u306B\u306F\u975E\u516C\u958B\uFF09"]}if(e.type==="DECLARE_VARIABLE")return e.annotation==="RELATIVE_DATE"?[`DECLARE @${e.name} RELATIVE_DATE = <relative-date token>`," value: \u5916\u90E8\u6CE8\u5165\u304C\u3042\u308C\u3070\u63A1\u7528\u3001\u306A\u3051\u308C\u3070\u65E2\u5B9A\u30C8\u30FC\u30AF\u30F3\u3092\u4F7F\u7528\uFF08\u5024\u306F\u975E\u516C\u958B\uFF09"]:[`DECLARE @${e.name} = <default scalar expression>`," value: \u5916\u90E8\u6CE8\u5165\u304C\u3042\u308C\u3070\u63A1\u7528\u3001\u306A\u3051\u308C\u3070\u65E2\u5B9A\u5024\u3092\u5B9F\u884C\u6642\u306B1\u56DE\u8A55\u4FA1\uFF08\u5024\u306F\u975E\u516C\u958B\uFF09"];if(e.type==="SHOW_APPS")return["SHOW APPS\uFF08\u30A2\u30D7\u30EA\u4E00\u89A7\u306E\u53D6\u5F97\uFF09"];if(e.type==="DESCRIBE")return[`DESCRIBE APP${e.appId}\uFF08\u30D5\u30A3\u30FC\u30EB\u30C9\u5B9A\u7FA9\u306E\u53D6\u5F97\uFF09`];if(e.type==="EXPLAIN")return Jr(e.query,t,n,r,a);if(e.type==="ASSERT"){let s=[`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"],l=[e.left,e.right,e.low,e.high].filter(d=>d!==null&&d.type==="SCALAR_SUBQUERY");return l.forEach((d,c)=>{s.push(l.length>1?` subquery[${c+1}]:`:" subquery:");let u=pa(d.query)?t:{...t,tempTablesReferenced:[]};s.push(...Jr(d.query,u,n,r,a).map(p=>` ${p}`))}),s}return e.type==="UPDATE"&&(e.applyBlocks?.length??0)>0?Ta(e,void 0,n,r,i,o):Jr(e,t,n,r,a)}function pa(e){if(Array.isArray(e))return e.some(pa);if(e!==null&&typeof e=="object"){let t=e,n=t.cteName;return typeof n=="string"&&n.startsWith("#")?!0:Object.values(t).some(pa)}return!1}function Jr(e,t,n,r,i={sources:[]},o="main"){if(t.tempTablesReferenced.length===0)return Ta(e,void 0,n,r,100,Ae,1e4,void 0,!0,i,o);let a=[];e.type==="INSERT_SELECT"?a.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"&&a.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`),a.push(" mode: FULL_SCAN\uFF08\u4E00\u6642\u30C6\u30FC\u30D6\u30EB\u53C2\u7167\uFF09"),a.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 s=t.appIds.filter(l=>e.type!=="INSERT_SELECT"&&e.type!=="UPSERT_SELECT"||l!==e.appId);return s.length>0&&a.push(` app: ${s.map(l=>`APP${l}`).join(", ")}`),a.push(" note: \u4E00\u6642\u30C6\u30FC\u30D6\u30EB\u3078\u306E WHERE \u30D7\u30C3\u30B7\u30E5\u30C0\u30A6\u30F3\u306F\u884C\u308F\u308C\u306A\u3044"),a}async function KS(e,t,n,r,i,o=100,a=Ae,s){let l=s??await pi(e.query,t,n),d=await bE(e.query,t,n,r,l),c={sources:[]},u=Hl(l),p=l.hasServerOnlyWhereFunction&&!l.allowed?[...Wl(d),...u]:[...Wl(d),...u,...OE(Ta(e.query,void 0,d.capabilities,d.orderPlans,o,a,r,d.plainGroupByPlans,!0,c),i)],f=ra(p,c.sources),E={type:"SELECT",columns:["plan"],rows:f.map(R=>({plan:R})),rowCount:f.length};return NE(E,{statements:[{index:0,fetch:wu(c.sources),sources:c.sources}]}),E}function OE(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 Ta(e,t,n,r,i=100,o=Ae,a=1e4,s,l=!0,d,c="main"){let u=d??{sources:[]};if(e.type==="UNION"){let f=WS(e,n,r,s,u);return l?ra(f,u.sources):f}if(e.type==="WITH"){let f=HS(e,n,r,s,u);return l?ra(f,u.sources):f}if(e.type==="INSERT")return zS(e,t,i,o);if(e.type==="INSERT_SELECT")return qS(e,t,n,r,s);if(e.type==="UPSERT")return ZS(e,t,i,o);if(e.type==="UPSERT_SELECT")return eT(e,t,n,r,s);if(e.type==="UPDATE")return XS(e,t,n,r,i,o,a);if(e.type==="DELETE")return QS(e,t);if(e.type==="REORDER")return tT(e,t);if(e.type==="VALIDATE")return $S(e,t);if(e.type==="IMPORT"){if(e.writeMode==="UPDATE_RECORD_NUMBER"){let R=e.targets?.filter(g=>g.kind==="SUBTABLE")??[];return[...t?[t]:[],`IMPORT UPDATE INTO APP${e.appId}`," writeMode: UPDATE_RECORD_NUMBER",` source: CSV ${e.source.sourceName}`,` keyHeader: ${e.recordNumberSourceHeader}`," mapping: BY_NAME"," parentRows: requires source load"," duplicate: preflight before lookup/write"," matched: requires lookup"," unmatched: requires lookup"," invalid: requires source load"," requiresLookup:true"," inserted: 0"," keyInPayload: false",...R.length?[` replaceSubtables: ${e.replaceSubtables?.join(", ")??"ERROR: required"}`," subtableRowIdPolicy: PRESERVE existing; empty/unknown add without id"," rowIdOwnership: owned elsewhere invalidates the parent"," replacementDiff: existing/input/update/add/delete/rowIdNotFound requires actual-data preflight",' confirmPolicy: highest warning "\u30B5\u30D6\u30C6\u30FC\u30D6\u30EB\u5168\u7F6E\u63DB\u30FBN\u884C\u524A\u9664" plus per-table detail (including delete=0)']:[],` disposition: ${e.validateOnly?"VALIDATE ONLY":e.onErrorSkip?`ON ERROR SKIP INTO ${e.errorTable}`:"fail-fast"}`," gate: enabled for this parse",` writesKintone: ${e.validateOnly?"false":"true"}`]}let f=e.keyFields?"UPSERT":"INSERT",E=e.targets?.some(R=>R.kind==="SUBTABLE")===!0;return[...t?[t]:[],`IMPORT ${f} INTO APP${e.appId}`,` source: ${e.source.kind} ${e.source.sourceName}`,` sourceFormat: ${e.source.kind}`,` encoding: ${e.source.kind==="JSON"?"UTF8 only":e.source.encoding??"UTF8 (or loader metadata)"}`,` mapping: ${e.source.kind==="JSON"?"BY NAME (INTO order)":e.source.projection?"SELECT expressions":e.source.mappingMode}`,...e.source.kind==="JSON"?[" duplicateKeyPolicy: reject"," numberLexemePolicy: preserve; JSON number accepts safe integer only"," precisionTargetsRequireString: true"," unknownKeyPolicy: reject"," presenceAware: true",...E?[" subtableRowIdPolicy: reject _rid/id; DROP IDs and renumber every input row"," subtableUpdatePolicy: present table replaces all rows; missing table is preserved; [] deletes all rows"," confirmPolicy: parent/table existing/input/add/delete detail required; delete is highest warning"]:[]]:[` header: ${e.source.hasHeader?"HEADER":"NO HEADER"}`,...e.source.mappingMode==="BY_NAME"?[` writtenColumns: ${e.fields.join(", ")}`," knownExportColumns: audit and ignore with reason/non-empty count",` unknownColumnPolicy: ${e.source.ignoreUnknownColumns?"ignore with audit/non-empty count":"ERR_IMPORT_UNKNOWN_COLUMN"}`," multipleValueDelimiter: LF (CRLF or LF)"," sourceValueMode: string-preserving"," roundTripNumericGuarantee: exact CSV lexeme passes strict decimal validation"," FILE: audit-ignore unless named in INTO (analyze error)"]:[]],` sourceLimit: 10485760 bytes / ${e.fields.length} target columns`,` key: ${e.keyFields?.join(", ")??"none"}`,` checks: ${e.checkGroups?.length??0}`,` disposition: ${e.validateOnly?"VALIDATE ONLY":e.onErrorSkip?`ON ERROR SKIP INTO ${e.errorTable}`:"fail-fast"}`," gate: enabled for this parse",` preflight: ${e.validateOnly&&E?"requires actual source load at execution; this EXPLAIN is static":"requires load"}`,...E?[e.source.kind==="JSON"?" Phase5C: JSON mutation requires detail-capable confirmation surface":" Phase5D: CSV mutation requires detail-capable confirmation surface"]:[],` writesKintone: ${e.validateOnly?"false":"true"}`," duplicateKey: preflight before lookup/write (requires load)"]}let p=ze(e,t,n,r,s,!0,!0,u,c);return l?ra(p,u.sources):p}var bf={none:0,count_only:1,exact:2,prefiltered:3,all:4};function wu(e){return e.reduce((t,n)=>bf[t]>=bf[n.fetch]?t:n.fetch,"none")}function ra(e,t){let n=e.filter(r=>!r.startsWith("fetch summary:"));return t.length===0?n:[`fetch summary: ${wu(t).toUpperCase()}`,...n]}function BS(e){let t=/(?:^|\s)limit\s+(\d+)(?:\s|$)/i.exec(e);return t?Number(t[1]):null}function Xo(e,t,n,r,i,o,a=!1){let s={app:t,alias:n,role:r,fetch:i.toLowerCase(),pending:a,kintoneQuery:o==="(\u5168\u4EF6\u53D6\u5F97)"||o==="(\u306A\u3057)"||o===""?null:o,limit:BS(o)};return e.sources.push(s),s}function GS(e){return[e.fetch.toUpperCase(),...e.limit===null?[]:[`(limit ${e.limit})`],...e.pending?["(\u672A\u78BA\u5B9A)"]:[]].join(" ")}function Jo(e){return` fetch: ${GS(e)}`}function $S(e,t){let n=IE.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)":V(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?Jl:Xl).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 VS(e){let t=e.field.tableAlias?`${e.field.tableAlias}.${e.field.field}`:e.field.field,n=e.value.replace(/'/g,"''"),r=e.value.replace(/\\/g,"\\\\").replace(/"/g,'\\"'),i=e.normalizedOperator==="IN"?"in":"not in";return` pushdown normalized: ${t} ${e.originalOperator} '${n}' -> ${t} ${i} ("${r}")`}function ze(e,t,n,r,i,o=!0,a=!0,s={sources:[]},l="main"){let d=n?.get(e)??(n?[...n].find(([I])=>JSON.stringify(I)===JSON.stringify(e))?.[1]:void 0),c=r?.get(e)??(r?[...r].find(([I])=>JSON.stringify(I)===JSON.stringify(e))?.[1]:void 0),u=i?.get(e)??(i?[...i].find(([I])=>JSON.stringify(I)===JSON.stringify(e))?.[1]:void 0),p=o&&d!==void 0&&eE(e,d),f=p?"COUNT_TOTAL_COUNT":c?.kind==="CANONICAL_LOCAL"||d&&d.capability!=="EXACT_PUSHDOWN"?"FULL_SCAN":Ue(e),E=YS(e);d&&d.capability!=="EXACT_PUSHDOWN"&&E.push(...d.reasons.map(I=>I.code));let R=[],g=zp(e,ii.get(e)?.allItems.length);t&&R.push(t),R.push(` mode: ${f}`);for(let I of Vl.get(e)??Kf.get(e)??[])R.push(VS(I));g&&(R.push(` grouping source: ${g.source}`),R.push(` grouping sets: ${g.expandedSetCount} (limit: ${g.setLimit})`),R.push(` grouping items: ${g.groupingItemCount} (limit: ${g.itemLimit})`),R.push(` grouping output rows: runtime checked (limit: ${g.outputRowLimit}, before HAVING/DISTINCT/LIMIT)`));let y=re(e);if(y.type==="PLAIN"){let I=y.allItems;if(u)u.items.forEach((w,N)=>{let b=I[N];b?.type==="FIELD_NAME"&&w.kind==="PHYSICAL"&&R.push(` group key ${b.name}: PHYSICAL (source=${w.sourceIndex}, field=${w.fieldCode})`)});else if([e.from,...e.joins.map(w=>w.table)].some(w=>w.cteName!==null))for(let w of I)w.type==="FIELD_NAME"&&R.push(` group key ${w.name}: DEFERRED (materialized schema unavailable)`)}for(let I of e.columns){if(I.type!=="WINDOW_COL"||I.windowKind===void 0||I.windowKind==="RANKING")continue;let w=[];I.partitionBy.length>0&&w.push(`PARTITION BY ${I.partitionBy.map(N=>N.tableAlias?`${N.tableAlias}.${N.field}`:N.field).join(", ")}`),I.orderBy.length>0&&w.push(`ORDER BY ${I.orderBy.map(LE).join(", ")}`),I.windowKind==="VALUE"?R.push(` window ${I.alias}: ${I.valueFunc}(offset=${I.offset}) OVER (${w.join(" ")})`):I.windowKind==="AGGREGATE"&&(R.push(` window ${I.alias}: ${I.aggFunc} OVER (${w.join(" ")})`),R.push(I.frame===null?" frame: PARTITION ENTIRE":` frame: ${I.frame.unit} UNBOUNDED PRECEDING AND CURRENT ROW${I.frame.source==="DEFAULT"?" (\u65E2\u5B9A)":""}`))}if(p){let I=e.where===null?"":V(e.where);if(R.push(` app: APP${e.from.appId} (${e.from.appId})`),R.push(` kintone query: ${I}${I?" ":""}limit 1`),a){let w=Xo(s,e.from.appId,e.from.alias,l,"COUNT_ONLY",`${I}${I?" ":""}limit 1`);R.push(Jo(w))}return R.push(" fields: $id"),R.push(" fetch API: GET records.json (totalCount=true)"),R.push(" REST execution: single GET"),R.push(" record limit: maxRecords/onLimitReached not applied"),R.push(" fallback: full record scan when totalCount is missing or invalid"),R.push(" search abort: fail-closed (SearchAbortedError)"),R}c?(R.push(` order plan: ${c.kind}`),c.reasonCodes.length>0&&R.push(` order reason: ${c.reasonCodes.join(", ")}`),c.kind==="KORDER_NATIVE"?(R.push(" order semantics: kintone native (not kSQL canonical)"),R.push(" REST execution: single GET")):c.kind==="KORDER_CURSOR"&&(R.push(" order semantics: kintone native (not kSQL canonical)"),R.push(" fetch API: POST/GET/DELETE records/cursor.json"),R.push(" cursor page size: 500"),R.push(` scan rows: ${c.scanRows}`))):g&&R.push(" order plan: CANONICAL_LOCAL");let m=c&&!c.requiresCompleteInput?{...e,orderBy:[]}:e,h=Tt(m);c?.requiresCompleteInput&&h.add("LOCAL_ORDER");let S=mt(e.where);if(h.size>0&&(!S||g!==null)&&(R.push(" complete input: required (onLimit=truncate disabled)"),R.push(` complete input reason: ${[...h].join(", ")}`),R.push(" onLimit=truncate: disabled")),S)return R.push(" predicate: constant false"),R.push(" records API access: none"),R.push(` app: APP${e.from.appId} (${e.from.appId})`),R;if(f==="FULL_SCAN"&&E.length>0&&R.push(` reason: ${E.join(", ")}`),f==="SIMPLE"){let I=Bi(c?.kind==="CANONICAL_REST_TOP_N"?qf(e):e);R.push(` app: APP${e.from.appId} (${e.from.appId})`);let w=c?.kind==="KORDER_CURSOR"?Vs(e):I.query;if(R.push(` kintone query: ${w||"(\u306A\u3057)"}`),a&&e.from.cteName===null){let N=w?"EXACT":"ALL";R.push(Jo(Xo(s,e.from.appId,e.from.alias,l,N,w)))}R.push(` fields: ${I.fields.length===0?"(\u5168\u30D5\u30A3\u30FC\u30EB\u30C9)":I.fields.join(", ")}`)}else{let I=TE.get(e),w=I??Cn(e);if(e.joins.length>0)if(I){if(R.push(" join pushdown plan: applied (runtime metadata resolved)"),R.push(" runtime plan timing: variables/subqueries resolved -> metadata resolved -> immutable plan"),R.push(" EXPLAIN unresolved subqueries: not applied (records API is not called)"),I.joinPlan.serverFunctionCandidate&&R.push(` allow form: JOIN_SERVER_FUNCTION_EXACT (${I.joinPlan.serverFunctionCandidate.variant==="WHOLE_WHERE_EXACT"?"whole-WHERE":"leaf"})`),R.push(` client residual: ${I.joinPlan.residualWhere===null?"(none)":Zt(I.joinPlan.residualWhere)}`),R.push(` KLIKE applied nodes: ${I.joinPlan.appliedKlikes.size}`),R.push(` KLIKE unapplied nodes: ${I.joinPlan.allKlikes.length-I.joinPlan.appliedKlikes.size}`),I.joinPlan.residualWhere!==null)for(let P of I.joinPlan.rejections)R.push(` join pushdown not applied: ${P.reason}`)}else{let P=e.joins.some(M=>M.type!=="INNER")?"OUTER_JOIN":[e.from,...e.joins.map(M=>M.table)].some(M=>M.cteName!==null||!!M.subtableCode)?"SOURCE_KIND":"PLAN_NOT_APPLICABLE";R.push(" join pushdown plan: not applied"),R.push(` join pushdown not applied: ${P}`)}let N=$t(e,e.from,u),b=e.from.alias?` AS ${e.from.alias}`:"",D=w.mainCondition,C=Yf(e),_=e.joins.length===0&&d?.capability==="EXACT_PUSHDOWN"&&e.where!==null&&!ct(e.where)?V(e.where):"",U=e.from.alias?I?.queriesByAlias.get(e.from.alias):void 0,L=U||(D!==null?V(D):_||"(\u5168\u4EF6\u53D6\u5F97)");R.push(` app: APP${e.from.appId}${b} (${e.from.appId})`),R.push(` kintone query: ${L}`);let v=I?.joinPlan.items.find(P=>P.targetAlias===e.from.alias),A=I?.joinPlan.serverFunctionConsumptions.find(P=>P.targetAlias===e.from.alias);if(a&&e.from.cteName===null){let P=!I&&C!==null,M=L==="(\u5168\u4EF6\u53D6\u5F97)"?"ALL":P?"PREFILTERED":v?.relation==="exact"||A||_!==""?"EXACT":"PREFILTERED";R.push(Jo(Xo(s,e.from.appId,e.from.alias,l,M,L,P)))}v||A?(R.push(` pushdown applied: ${U}`),R.push(` relation: ${v?.relation??"exact"}`)):!I&&C!==null&&R.push(` pushdown candidate: ${V(C)}\uFF08\u5B9F\u884C\u6642\u306E\u578B\u30FB\u5B9F\u5728\u78BA\u8A8D\u5F85\u3061\uFF09`),R.push(` fields: ${N.length===0?"(\u5168\u30D5\u30A3\u30FC\u30EB\u30C9)":N.join(", ")}`);for(let P of e.joins){let M=$t(e,P.table,u),O=P.table.alias?` AS ${P.table.alias}`:"",K=P.type==="INNER"?"JOIN":`${P.type} JOIN`,j=P.table.alias?w.joinConditions.get(P.table.alias)??null:null,q=P.table.alias&&!P.table.subtableCode&&P.table.cteName===null&&e.where?ur(e.where,{tableAlias:P.table.alias}):null,k=P.table.alias?I?.queriesByAlias.get(P.table.alias):void 0,$=k||(j!==null?V(j):"(\u5168\u4EF6\u53D6\u5F97)");R.push(` ${K}: APP${P.table.appId}${O} (${P.table.appId})`),R.push(` kintone query: ${$}`);let X=I?.joinPlan.items.find(F=>F.targetAlias===P.table.alias),G=I?.joinPlan.serverFunctionConsumptions.find(F=>F.targetAlias===P.table.alias);if(a&&P.table.cteName===null){let F=!I&&q!==null,de=$==="(\u5168\u4EF6\u53D6\u5F97)"?"ALL":F?"PREFILTERED":X?.relation==="exact"||G?"EXACT":"PREFILTERED";R.push(Jo(Xo(s,P.table.appId,P.table.alias,"join",de,$,F)))}X||G?(R.push(` pushdown applied: ${k}`),R.push(` relation: ${X?.relation??"exact"}`)):!I&&q!==null&&R.push(` pushdown candidate: ${V(q)}\uFF08\u5B9F\u884C\u6642\u306E\u578B\u30FB\u5B9F\u5728\u78BA\u8A8D\u5F85\u3061\uFF09`),R.push(` fields: ${M.length===0?"(\u5168\u30D5\u30A3\u30FC\u30EB\u30C9)":M.join(", ")}`)}}return R.push(...jS(e,n,r,i,s)),R}function WS(e,t,n,r,i={sources:[]}){let o=[],a=l=>{if(l.type==="SELECT"){o.push(l);return}a(l.left),o.push(l.right)};a(e);let s=[];return o.forEach((l,d)=>{d>0&&s.push(""),s.push(...ze(l,`[union:${d+1}]`,t,n,r,!0,!0,i,"union"))}),s}function HS(e,t,n,r,i={sources:[]}){let o=[];for(let a of e.ctes)a.query.type==="SELECT"&&(o.push(...ze(a.query,`[cte: ${a.name}]`,t,n,r,!1,!0,i,"cte")),o.push(""));if((e.query.type==="SELECT"||e.query.type==="UNION")&&o.push(...Ta(e.query,"[main]",t,n,100,Ae,1e4,r,!1,i)),Pt(e)){o.push("");let a=Nt(e);o.push(...ze(a,"[effective: inlined CTE]",t,n,r,!1,!0,i,"cte"))}return o}function YS(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=re(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"),ct(e.where)&&t.push("WHERE \u53E5\u306B JS \u8A55\u4FA1\u304C\u5FC5\u8981\u306A\u5F0F"),wt(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 jS(e,t,n,r,i={sources:[]}){let o=[],a=1,s=l=>{if(l)switch(l.type){case"BINARY":l.right.type==="SCALAR_SUBQUERY"&&(o.push(""),o.push(...ze(l.right.query,`[subquery:${a++}]`,t,n,r,!1,!0,i,"subquery"))),l.right.type==="SUBQUERY_IN_LIST"&&(o.push(""),o.push(...ze(l.right.query,`[subquery:${a++}]`,t,n,r,!1,!0,i,"subquery")));break;case"EXISTS":o.push(""),o.push(...ze(l.query,`[subquery:${a++}]`,t,n,r,!1,!0,i,"subquery"));break;case"LOGICAL":s(l.left),s(l.right);break;case"NOT":case"GROUP":s(l.expr);break;case"NULL_CHECK":break;case"BOOLEAN":break}};s(e.where);for(let l of e.columns)l.type==="SCALAR_SUBQUERY_COL"&&(o.push(""),o.push(...ze(l.query,`[subquery:${a++}]`,t,n,r,!1,!0,i,"subquery")));return e.having&&s(e.having),o}function zS(e,t,n=St,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,...bu(So(e,n,r))]:a}function qS(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(...ze(e.select,"[source SELECT]",n,r,i,!1,!1)),o}function XS(e,t,n,r,i=100,o=Ae,a=1e4){if(e.applyBlocks?.length)return JS(e,t,i,o,a);let s=dp(e),l=e.assignments.some(f=>f.value.type==="STRING_FUNC"),d=so(e),c=e.assignments.some(f=>f.value.type==="SCALAR_SUBQUERY"),u=[];if(t&&u.push(t),u.push(e.from?" [UPDATE FROM]":" [UPDATE]"),u.push(` target: APP${e.appId} (${e.appId})`),e.from){let f=e.from.cteName??`APP${e.from.appId}`;u.push(` source: ${f} AS ${e.from.alias}`),u.push(` join: APP${e.appId}.${e.from.targetJoinField} = ${e.from.alias}.${e.from.joinKeyField}`),u.push(` target filter: ${e.from.targetFilter?ci(e.from.targetFilter):"(none)"}`)}else u.push(` kintone query: ${ci(e.where)}`);e.subtableCode||(u.push(" selection: exact native pushdown; JS residual none"),u.push(" search abort: DML fail-closed (SearchAbortedError; mutation 0)")),u.push(mt(e.where)?" api: metadata validation only (records API access: none)":" api: GET /k/v1/records.json \u2192 PUT /k/v1/records.json");let p=[];if(s&&p.push("\u7B97\u8853 SET\uFF08\u73FE\u5728\u5024\u3092\u53D6\u5F97\u3057\u3066\u8A08\u7B97\uFF09"),l&&p.push("\u6587\u5B57\u5217\u95A2\u6570 SET\uFF08\u73FE\u5728\u5024\u3092\u53D6\u5F97\u3057\u3066\u8A55\u4FA1\uFF09"),c&&p.push("\u30B9\u30AB\u30E9\u30FC\u30B5\u30D6\u30AF\u30A8\u30EA SET"),!d&&!c&&p.push("\u5358\u7D14 SET"),u.push(` set type: ${p.join(", ")}`),d){let f=nT(e);f.length>0&&u.push(` ref fields: ${f.join(", ")}\uFF08GET \u306B\u542B\u3081\u308B\uFF09`)}u.push(" set fields:");for(let f of e.assignments)u.push(` ${iT(f)}`);for(let f of e.assignments)f.value.type==="SCALAR_SUBQUERY"&&(u.push(""),u.push(...ze(f.value.query,`[subquery: ${f.field}]`,n,r,void 0,!1,!1)));return u}function JS(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"}),c=[...new Set(a.targets.flatMap(E=>E.operations.map(R=>R.kind)))],u=c.includes("REMOVE"),p=wE.get(e),f=p?["parent selection: safe prefilter + JS residual evaluation",`kintone prefilter: ${p.prefilter===null?"(none; empty query)":V(p.prefilter)}`,"JS residual: original parent WHERE",`applied KLIKE: ${p.appliedKlikes.size}`,`unapplied KLIKE: ${p.unappliedKlikes.length}${p.unappliedKlikes.length>0?" (unsupported: cannot be fully applied to native query)":""}`,`candidate limit: maxRecords=${i}, onLimit=error, stopAfter=none`,`target guard: dmlMaxRows=${n} after JS residual evaluation`,"search abort: DML fail-closed (B7-P3; all surfaces, no surface gate)"]:[];return[...t?[t]:[],"statement: UPDATE APPLY",`target app: APP${e.appId}`,`parent selector: ${ci(e.where)}`,`parent cardinality: ${ut(e.where)?"single":"multiple"}`,...f,`apply target: ${a.targets.map(E=>`${E.field} (${E.targetKind})`).join(" | ")}`,`operations: ${c.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=${u?"FULL_SURVIVORS":"none"}`,"post-image validation: required (B43 equivalent)","parent rows: unknown (records API not called)","matched subtable rows: unknown (records API not called)","validation errors: unknown (records API not called)",`deleted rows: ${u?"unknown (records API not called)":"0 (static without REMOVE)"}`,`dmlMaxRows: ${n}`,`dmlMaxSubtableRows: ${r}`,"MCP mutation: disabled in v1",...bu(o)]}function QS(e,t){let n=[];return t&&n.push(t),n.push(" [DELETE]"),n.push(` target: APP${e.appId} (${e.appId})`),n.push(` kintone query: ${ci(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(mt(e.where)?" api: metadata validation only (records API access: none)":" api: GET /k/v1/records.json \u2192 DELETE /k/v1/records.json"),n}function ZS(e,t,n=St,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,...bu(So(e,n,r))]:a}function bu(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 eT(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(...ze(e.select,"[source SELECT]",n,r,i,!1,!1)),o}function tT(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(LE).join(", "),o=[...t?[t]:[]," [REORDER]",` target: APP${e.appId} (${e.appId})`,` table: ${n}`,` scope: ${r}`,` by: ${i}`,mt(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: ${ci(e.where)}`),o}function LE(e){return`${e.key.type==="FIELD_NAME"?e.key.name:"(\u5F0F)"} ${e.direction}`}function ci(e){if(e.type==="BOOLEAN")return e.value?"TRUE":"FALSE (constant)";try{return V(e)}catch{return"(JS \u8A55\u4FA1\u304C\u5FC5\u8981\u306A\u305F\u3081 kintone \u30AF\u30A8\u30EA\u306B\u5909\u63DB\u4E0D\u53EF)"}}function nT(e){let t=new Set;for(let{value:n}of e.assignments)n.type==="ARITH"&&da(n,t),n.type==="STRING_FUNC"&&da(n,t),(n.type==="SCALAR_ARITH"||n.type==="CONCAT_OP")&&ri(n,t);return[...t]}function da(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"&&(da(e.left,t),da(e.right,t)),e.type==="STRING_FUNC")for(let n of e.args)n.type==="AGG_GROUP_KEY"?t.add(n.tableAlias?`${n.tableAlias}.${n.field}`:n.field):n.type!=="AGG_REF"&&n.type!=="AGG_ARITH"&&n.type!=="VARIABLE"&&ri(n,t)}async function _E(e,t,n,r,i){let o=yu(e),a=await we(e.appId,n,r),s=t.cteName,l=s!==null?new Map((i?.get(s)?.columns??[]).map(p=>[p,i?.get(s)?.columnMeta?.get(p)?.fieldType??(i?.get(s)?.columnMeta?.get(p)?.semantics?.compareMode==="number"?"NUMBER":"SINGLE_LINE_TEXT")])):await we(t.appId,n,r),d=new Set,c=new Set;for(let p of o){if(p.tableAlias!==null){if(p.tableAlias.toLowerCase()===`app${e.appId}`.toLowerCase()){if(p.field!=="$id"&&!a.has(p.field))throw me(`CHECK \u306E\u30BF\u30FC\u30B2\u30C3\u30C8\u30D5\u30A3\u30FC\u30EB\u30C9 ${p.field} \u306F\u5B58\u5728\u3057\u307E\u305B\u3093`);d.add(p.field)}else if(p.tableAlias.toLowerCase()===t.alias.toLowerCase()){if(p.field!=="$id"&&!l.has(p.field))throw me(`CHECK \u306E\u30BD\u30FC\u30B9\u30D5\u30A3\u30FC\u30EB\u30C9 ${p.field} \u306F\u5B58\u5728\u3057\u307E\u305B\u3093`);c.add(p.field)}else throw me(`CHECK \u306E\u4FEE\u98FE\u5B50 ${p.tableAlias} \u306F\u66F4\u65B0\u5148\u307E\u305F\u306F FROM alias \u3067\u306F\u3042\u308A\u307E\u305B\u3093`);continue}let f=p.field==="$id"||a.has(p.field),E=p.field==="$id"||l.has(p.field);if(!f)throw me(`UPDATE FROM \u306E CHECK \u3067\u306F\u30BD\u30FC\u30B9\u5217 ${p.field} \u3092\u4FEE\u98FE\u3057\u3066\u304F\u3060\u3055\u3044`);if(E)throw me(`UPDATE FROM \u306E CHECK \u306E\u975E\u4FEE\u98FE\u30D5\u30A3\u30FC\u30EB\u30C9 ${p.field} \u306F\u66D6\u6627\u3067\u3059`);d.add(p.field)}let u=new Map;for(let[p,f]of a)u.set(p,f),u.set(`APP${e.appId}.${p}`,f);u.set("$id","RECORD_NUMBER"),u.set(`APP${e.appId}.$id`,"RECORD_NUMBER");for(let[p,f]of l)u.set(`${t.alias}.${p}`,f);return{targetFields:[...d],sourceFields:[...c],evaluationTypes:u}}function rT(e,t,n){if(!e)return{};let r=Rt(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 ri(e,t){if(e.type==="FIELD"){t.add(e.tableAlias?`${e.tableAlias}.${e.field}`:e.field);return}if(e.type==="STRING_FUNC"){for(let n of e.args)n.type==="AGG_GROUP_KEY"?t.add(n.tableAlias?`${n.tableAlias}.${n.field}`:n.field):n.type!=="AGG_REF"&&n.type!=="AGG_ARITH"&&n.type!=="VARIABLE"&&ri(n,t);return}(e.type==="SCALAR_ARITH"||e.type==="CONCAT_OP")&&(ri(e.left,t),ri(e.right,t))}function iT(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} = ${DE(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 DE(e){return`${Pf(e.left)} ${e.op} ${Pf(e.right)}`}function Pf(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"?`(${DE(e)})`:"..."}var ce=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 Re=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 Pu(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 $e(e){return new Re("READ_ONLY_VIOLATION",e)}function Xn(e,t){return new Re("PARSE_ERROR",e,t)}function vE(){let e=new on;return new Re("SEARCH_ABORTED",e.message,e)}function mi(e){return e instanceof Error&&e.message.trim()!==""||e!==null&&typeof e=="object"&&typeof e.message=="string"?e.message:String(e)}function oT(e){if(e===null||typeof e!="object")return!1;let t=e;return typeof t.status=="number"||typeof t.response?.status=="number"||typeof t.code=="string"&&t.code.trim()!==""}function dn(e){return e instanceof Re?e:e instanceof Ie||e instanceof T?new Re("PARSE_ERROR",mi(e),e):e instanceof on||e?.name==="SearchAbortedError"?new Re("SEARCH_ABORTED",mi(e),e):e instanceof Pe||e?.name==="FetchAllLimitError"?new Re("FETCH_LIMIT_EXCEEDED",mi(e),e):e instanceof Error&&e.name==="ClientOperationError"&&"cause"in e?new Re("CLIENT_ERROR",e.message,e.cause):oT(e)?new Re("CLIENT_ERROR",mi(e),e):new Re("EXECUTION_ERROR",mi(e),e)}function Ia(e,t){let n=dn(e);if(e instanceof Q){let r=t[e.statementIndex];if(r!==void 0)return Pu(n,e.statementIndex,r.type)}return n}var aT=2,wa=5,sT=3e4,lT=10*6e4+3e4,ba=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??aT;if(!Number.isSafeInteger(r)||r<1||r>wa)throw new Error(`ArgumentError: cursorMaxActive must be an integer from 1 to ${wa}.`);this.maxActive=r,this.waitTimeoutMs=n.waitTimeoutMs??sT,this.quarantineMs=n.quarantineMs??lT}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 Do(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>wa)throw new Error(`ArgumentError: cursorMaxActive must be an integer from 1 to ${wa}.`)}};function uT(e){let t=e;return t?.status===404&&t.code==="GAIA_CN01"}async function cT(e,t=r=>new Promise(i=>setTimeout(i,r)),n=uT){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 pT(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 UE(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 pT(cT(t.delete,t.sleep,t.isAlreadyReleasedError),t.cleanupTimeoutMs??5e3),n=!0,t.onReleased?.()}catch(l){throw t.onReleaseUnknown?.(),l}}),o)}}function kE(e){return ME(e,fT(e))}function ME(e,t,n=!1,r){let i=[];for(let o of Object.values(e)){let a=ET(o.options),s=RT(o.type,o.format),l={code:o.code,label:o.label,fieldType:o.type,optionOrder:a,sortKind:s,required:o.required,minValue:Pa(o.minValue),maxValue:Pa(o.maxValue),minLength:Pa(o.minLength),maxLength:Pa(o.maxLength),defaultValue:o.defaultValue,hasLookup:Object.prototype.hasOwnProperty.call(o,"lookup"),isLookupCopyTarget:t.has(o.code),isUnique:o.unique===!0,isCalculated:o.type==="CALC"||typeof o.expression=="string"&&o.expression.length>0,inSubtable:n,...r?{subtableCode:r}:{},writable:!t.has(o.code)&&!dT.has(o.type)};l.semantics=Z(l),i.push(l),o.fields&&i.push(...ME(o.fields,t,!0,o.type==="SUBTABLE"?o.code:r))}return i}var dT=new Set(["CALC","RECORD_NUMBER","CREATOR","CREATED_TIME","MODIFIER","UPDATED_TIME","STATUS","STATUS_ASSIGNEE","CATEGORY","REFERENCE_TABLE","SUBTABLE"]);function fT(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 Pa(e){return e==null||e===""?void 0:e}function ET(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 RT(e,t){if(e==="NUMBER"||e==="RECORD_NUMBER")return"number";if(e==="CALC")return t==="NUMBER"||t==="NUMBER_DIGIT"?"number":"string"}function FE(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 gT="Filter aborted because of too many search results";function xE(e){return e?.includes(gT)===!0}var KE="/k/v1/records.json",Na="/k/v1/records/cursor.json",yT=4096,mT=2,Nu=e=>kintone.api.url(e,!0);function hT(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(KE,t,!0),i={"X-Requested-With":"XMLHttpRequest"};return new TextEncoder().encode(r).byteLength<=yT?{url:r,init:{method:"GET",credentials:"include",headers:i}}:{url:Nu(KE),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 hi(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(`
14
14
  `));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 AT(e){try{let t=await e.json();if(t!==null&&typeof t=="object"){let r=t;return hi({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}),hi(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}),hi(n)}}function ST(e){let t=e;return t?.code==="GAIA_CN01"&&(t.status===404||t.status===void 0)}async function fn(e,t,n){try{return await kintone.api(Nu(e),t,n)}catch(r){throw hi(r)}}function TT(e){if(!Number.isSafeInteger(e)||e<1||e>5)throw new Error("ArgumentError: cursorMaxActive must be an integer from 1 to 5.")}function Cu(e={}){let t=e.cursorMaxActive??mT;TT(t);let n=null,r=null,i=new Set;return{async getRecords(a){try{let s=hT(a),l=await fetch(s.url,s.init);if(!l.ok)throw await AT(l);let d=await l.json();return xE(l.headers.get("X-Cybozu-Warning"))?{...d,searchAborted:!0}:d}catch(s){throw hi(s)}},async openCursor(a){let s=Nu(Na),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 ba(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(),c;try{c=await n.runCreate(()=>fn(Na,"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 vo(R))}let u=c.id,p=UE(Number(c.totalCount),{get:()=>fn(Na,"GET",{id:u}),delete:()=>fn(Na,"DELETE",{id:u}),isAlreadyReleasedError:ST,onReleased:()=>d.release(),onReleaseUnknown:()=>d.quarantine()}),f=null,E={totalCount:p.totalCount,async nextPage(){let R=await p.nextPage();return R.next||i.delete(E),R},close(){return f||(f=p.close().finally(()=>{i.delete(E)}),f)}};return i.add(E),E},async getApps(){let s=[],l=0;for(;;){let d=await fn("/k/v1/apps.json","GET",{limit:100,offset:l});for(let c of d.apps)s.push({appId:Number(c.appId),name:c.name,description:c.description});if(d.apps.length<100)break;l+=100}return s},async getFields(a){let s=await fn("/k/v1/app/form/fields.json","GET",{app:a});return kE(s.properties)},async getNumberPrecision(a){let s=await fn("/k/v1/app/settings.json","GET",{app:a});return _p(s)},async getProcessStatuses(a){let s=await fn("/k/v1/app/status.json","GET",{app:a,lang:"user"});return{enable:s.enable,states:FE(s.states)}}}}var BE=new Set(["postRecords","putRecords","deleteRecords"]),Ai=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 xt(e){try{return await e()}catch(t){throw new Ai(t)}}function IT(e){return()=>{throw $e(`${String(e)} is blocked by the readonly client`)}}function Jn(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 xt(()=>t(l));if(d.searchAborted===!0)throw vE();return d},openCursor:async l=>{let d=await xt(()=>n(l)),c=d.nextPage.bind(d),u=d.close.bind(d);return{totalCount:d.totalCount,nextPage:()=>xt(()=>c()),close:()=>xt(()=>u())}},getApps:()=>xt(()=>r()),getFields:l=>xt(()=>i(l)),getNumberPrecision:l=>xt(()=>o(l)),getProcessStatuses:l=>xt(()=>a(l))});return new Proxy(s,{get(l,d,c){return BE.has(d)?IT(d):Reflect.get(l,d,c)},has(l,d){return BE.has(d)?!1:Reflect.has(l,d)}})}function wT(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 Ai(o.reason)})(),n)}}}async function Qn(e,t){let n=wT(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 bT="A-Za-z",PT="\\u3040-\\u30FF\\u3400-\\u9FFF\\uF900-\\uFAFF\\uFF01-\\uFF60",Lu=`${bT}${PT}`,$E=`${Lu}0-9_`,NT=new RegExp(`^[${Lu}]$`,"u"),CT=new RegExp(`^[${$E}]$`,"u"),OT=new RegExp(`^[${Lu}][${$E}]{0,63}$`,"u");function LT(e){return NT.test(e)}function _T(e){return CT.test(e)}function _u(e){let t=e.normalize("NFC").toUpperCase();if(!OT.test(t))throw new Error(`ArgumentError: logical app name "${e}" is invalid; expected 1-64 UTF-16 units starting with an ASCII letter or supported Japanese character.`);return t}function Ou(e){if(!e)return!1;let t=e.codePointAt(0);return t>=65&&t<=90||t>=97&&t<=122||t>=48&&t<=57||t===95||t===36||t>=12352&&t<=12543||t>=13312&&t<=40959||t>=63744&&t<=64255||t>=65281&&t<=65376}function DT(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 vT(e,t){let n=t>0?e[t-1]:"";if(Ou(n))return null;let r,i,o,a,s,l;if(e.slice(t,t+5).toUpperCase()==="LAPP_"){if(r="logical",l=t+5,a=l,!LT(e[l]??""))return null;for(l++;l<e.length&&_T(e[l]);)l++;s=l;try{o=_u(e.slice(a,s))}catch{return null}}else if(e.slice(t,t+3).toUpperCase()==="APP"){for(r="physical",l=t+3,a=l;l<e.length&&/[0-9]/.test(e[l]);)l++;if(s=l,s===a)return null;i=Number(e.slice(a,s))}else return null;if(e[l]==="$"){l++;let f=l;for(;l<e.length&&Ou(e[l]);)l++;if(l===f)return null}let d=l,c=null;if(e[l]==="@"){l++;let f=l;for(;l<e.length&&DT(e[l]);)l++;if(l===f)return null;c=e.slice(f,l)}let u=l<e.length?e[l]:"";if(Ou(u))return null;let p={profile:c,start:t,referenceValueStart:a,referenceValueEnd:s,appEnd:d,fullEnd:l};return r==="physical"?{...p,source:r,appId:i}:{...p,source:r,logicalName:o}}function Du(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]!==`
15
15
  `;)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=vT(e,n);if(!i){n++;continue}t.push(i),n=i.fullEnd}return t}function GE(e){let t=9e8;for(;e.has(t);)t++;return e.add(t),t}function VE(e,t="dev",n){let r=Du(e),i=r.some(g=>g.profile!==null),o=new Map,a=g=>g??t;for(let g of r){if(g.source!=="physical")continue;let y=a(g.profile),m=o.get(g.appId);m||(m=new Set,o.set(g.appId,m)),m.add(y.toLowerCase())}let s=new Set(r.filter(g=>g.source==="physical").map(g=>g.appId)),l=new Map;for(let g of r){if(g.source!=="logical")continue;let y=a(g.profile).toLowerCase(),m=`logical:${g.logicalName}@${y}`;if(l.has(m))continue;if(!n)throw new Error(`ArgumentError: logical app LAPP_${g.logicalName}@${y} requires logicalApps configuration.`);let h=n.resolveLogicalApp(g.logicalName,y);l.set(m,h),s.add(h)}let d=new Map,c=new Map;for(let[g,y]of o.entries()){let m=[...y].sort();if(!(m.length<=1))for(let h of m){let S=GE(s);d.set(`physical:${g}@${h}`,S),c.set(S,{source:"physical",mappedAppId:S,appId:g,profile:h})}}let u=[],p=[],f=0,E=0,R=(g,y,m,h)=>{if(!g&&y===m)return;let S=f;u.push(g),f+=g.length,p.push({normalizedStart:S,normalizedEnd:f,sourceStart:y,sourceEnd:m,...h===void 0?{}:{bindingMappedAppId:h}})};for(let g of r){let y=a(g.profile).toLowerCase(),m;if(g.source==="physical")m={source:"physical",mappedAppId:d.get(`physical:${g.appId}@${y}`)??g.appId,appId:g.appId,profile:y};else{let I=`logical:${g.logicalName}@${y}`,w=d.get(I);w===void 0&&(w=GE(s),d.set(I,w)),m={source:"logical",logicalName:g.logicalName,mappedAppId:w,appId:l.get(I),profile:y}}c.set(m.mappedAppId,m),R(e.slice(E,g.start),E,g.start);let h=e.slice(g.referenceValueEnd,g.appEnd),S=g.source==="physical"?`${e.slice(g.start,g.referenceValueStart)}${m.mappedAppId}${h}`:`APP${m.mappedAppId}${h}`;R(S,g.start,g.fullEnd,m.mappedAppId),E=g.fullEnd}return R(e.slice(E),E,e.length),{normalizedSql:u.join(""),hasProfileSyntax:i,appBindingByMappedApp:c,rewriteSegments:p}}var WE=new Set(["client","logicalApps","maxRecords","fetchParallel","cursorMaxActive"]),HE=new Set([...WE,"onLimitReached"]),UT=new Set([...HE,"variables","tempTableMaxRows"]);function YE(e){if(e===null||typeof e!="object"||Array.isArray(e))throw new TypeError("options must be an object")}function Si(e,t){if(!Number.isSafeInteger(e)||e<=0)throw new RangeError(`${t} must be a positive safe integer`)}function jE(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 kT(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 zE(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=_u(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`);Si(r,`logicalApps.${n}`),t[i]=r}return t}function qE(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&&Si(e.maxRecords,"maxRecords"),e.fetchParallel!==void 0&&Si(e.fetchParallel,"fetchParallel"),e.cursorMaxActive!==void 0&&(Si(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 vu(e,t){YE(e);let n=t==="run"?HE:WE;jE(e.client);let r=qE(e,n,t==="run"?"runQuery":"explainQuery"),i=zE(e.logicalApps);return{client:e.client,...i===void 0?{}:{logicalApps:i},executeOptions:r}}function XE(e){YE(e),jE(e.client),e.variables!==void 0&&kT(e.variables),e.tempTableMaxRows!==void 0&&Si(e.tempTableMaxRows,"tempTableMaxRows");let t=qE(e,UT,"runBatch"),n=zE(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 Ca(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 s=t.get(Number(i[2]));if(s){let l=s.source==="logical"?r==="physical"?`LAPP_${s.logicalName} -> APP${s.appId}`:`LAPP_${s.logicalName} -> APP${s.appId}@${s.profile}`:r==="physical"?`APP${s.appId}`:`APP${s.appId}@${s.profile}`;return`${i[1]}${l}`}}if(t.size===0)return e;let o=[...t.keys()].sort((s,l)=>String(l).length-String(s).length),a=new RegExp(`APP(${o.join("|")})(?!\\d)(\\s+AS\\s+[^\\s()]+)?(?:\\s+\\(\\1\\))?`,"g");return e.replace(a,(s,l,d)=>{let c=t.get(Number(l));return`${c.source==="logical"?r==="physical"?`LAPP_${c.logicalName} -> APP${c.appId}`:`LAPP_${c.logicalName}@${c.profile}`:r==="physical"?`APP${c.appId}`:`APP${c.appId}@${c.profile}`}${d??""}`})}return Array.isArray(e)?e.map(i=>Ca(i,t,n)):e!==null&&typeof e=="object"?Object.fromEntries(Object.entries(e).map(([i,o])=>[i,Ca(o,t,n)])):e}function MT(e,t,n){return e.slice(t,n)}function Ti(e,t,n){let r=Du(e),i=r.find(d=>d.profile!==null);if(i!==void 0)throw new Error(`ArgumentError: browser engine library does not support @profile suffixes (${MT(e,i.start,i.fullEnd)}).`);if(!r.some(d=>d.source==="logical"))return{sql:e,client:t,logicalBindings:[]};let o=VE(e,"browser",{resolveLogicalApp(d){let c=n?.[d];if(c===void 0)throw new Error(`ArgumentError: logical app LAPP_${d} is not defined.`);return c}}),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 Ii(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 wi(e,t){if(t.length===0)return e;let n=new Map(t.map(r=>[r.mappedAppId,r]));return Ca(e,n,{logicalAppDisplay:"physical"})}function Oa(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 FT(e){return Object.fromEntries(Object.entries(e).map(([t,n])=>[t,String(n)]))}function xT(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 La(e,t=e.metrics){let n=Nf(e);return{type:"query",rows:e.rows.map(FT),columns:e.columns.map(r=>xT(r,n)),rowCount:e.rowCount,warnings:[...e.warnings??[]],...e.validateStats?{validateStats:e.validateStats}:{},metrics:Oa(t)}}function JE(e,t={}){let n=new Lt(e).tokenize(),r=new _t(n,t).parse();return We(r),r}function QE(e,t={}){let n=new Lt(e).tokenize(),r=new _t(n,t).parseStatements();return r.forEach(We),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 ZE(e){if(e instanceof se)return Xn(e.message,e);let t=dn(e);return t.code==="PARSE_ERROR"?t:Xn("SQL statement could not be parsed",e)}function KT(e){if(e.trim()==="")throw Xn("SQL statement is empty");try{return JE(e,{import:!0})}catch(t){let n=ZE(t);throw n.message.includes("\u8907\u6587\u306F\u30D0\u30C3\u30C1\u5B9F\u884C API \u3092\u4F7F\u7528\u3057\u3066\u304F\u3060\u3055\u3044")?Xn("This API accepts one statement; use runBatch for multiple statements",t):n}}function eR(e){if(Li(e)==="UNKNOWN")throw $e("Unclassifiable statement is not allowed");return e}function tR(e){if(e.trim()==="")throw Xn("SQL statement is empty");try{return QE(e,{import:!0})}catch(t){throw ZE(t)}}function BT(e){let t=eR(e),n=t.type;if(n==="IMPORT")throw $e("IMPORT is disabled by default in engine library queries");if(!yn(t))throw $e(`${n} statements are not read-only`);if(Uu(t))throw $e("APPLY statements are not allowed in engine library queries");if(!zu(t))throw $e(`${n} does not return rows; use runBatch for batch-scoped or non-row-returning read-only statements`)}function nR(e){let t=eR(e),n=t.type==="EXPLAIN"?t.query:t;if(n.type==="IMPORT")throw $e("IMPORT is disabled by default in engine library batches");if(!yn(n))throw $e(`${n.type} statements are not read-only`);if(Uu(n))throw $e("APPLY statements are not allowed in engine library batches");if(It(n.type))throw $e("DML VALIDATE ONLY statements are not supported by runBatch")}function rR(e){let t=KT(e);return BT(t),t}function iR(e){let t=tR(e);return t.forEach(nR),t}function oR(e){let t=e.trim(),n=tR(t);n.forEach(nR);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 GT(e){let t=e.error,n=t?.cause!==void 0?dn(t.cause):new Re("EXECUTION_ERROR",t?.message??`Statement ${e.index} failed`);return Pu(n,e.index,e.type)}async function ku(e,t){let n=[],r=[];try{let i=XE(t),o=Ti(e,i.client,i.logicalApps);r=o.logicalBindings,n=iR(o.sql);let a=await Qn(o.client,c=>kf(o.sql,Jn(c),{...i.executeOptions,captureColumnMeta:!0})),s=a.statements.find(c=>c.status==="error");if(s!==void 0)throw GT(s);let l=[],d=a.statements.map(c=>{let u={index:c.index,type:c.type,status:c.status};if(c.tempTable!==void 0&&(u.tempTable=c.tempTable),c.rowCount!==void 0&&(u.rowCount=c.rowCount),c.error!==void 0&&(u.error={code:c.error.code,message:c.error.message}),c.skippedReason!==void 0&&(u.skippedReason=c.skippedReason),c.status==="success"&&c.result?.type==="SELECT"){u.resultIndex=l.length;let p=La(c.result,a.metrics);l.push(n[c.index]?.type==="EXPLAIN"?wi(p,r):p)}return u});return{type:"batch",batch:!0,statementCount:a.statementCount,statements:d,results:l,warnings:[]}}catch(i){throw Ii(Ia(i,n),r)}}function aR(e){if(e===null||typeof e!="object"||e.type!=="SELECT")throw new Error("Engine returned a non-SELECT result")}async function Mu(e,t){let n=[];try{let r=vu(t,"run"),i=Ti(e,r.client,r.logicalApps);n=i.logicalBindings;let a=rR(i.sql).type==="VALIDATE"?{...r.executeOptions,onLimitReached:"error"}:r.executeOptions,s=await Qn(i.client,l=>jl(i.sql,Jn(l),{...a,captureColumnMeta:!0}));return aR(s),La(s)}catch(r){throw Ii(dn(r),n)}}async function Fu(e,t){let n=[],r=[];try{let i=vu(t,"explain"),o=Ti(e,i.client,i.logicalApps);r=o.logicalBindings;let a=oR(o.sql);if(n=a.statements,a.legacySql!==void 0){let c=await Qn(o.client,f=>jl(a.legacySql,Jn(f),i.executeOptions));aR(c);let u=wi(c.rows.map(f=>String(f.plan??"")),r),p=Iu(c)??{statements:[{index:0,fetch:"none",sources:[]}]};return{type:"explain",lines:u,text:u.join(`
16
16
  `),plan:p,metrics:Oa(c.metrics)}}let s=await Qn(o.client,c=>CE(o.sql,Jn(c),void 0,"batch-explain",i.executeOptions.maxRecords,i.executeOptions.cursorMaxActive)),l=wi(s.statements.flatMap(c=>[...s.statementCount>1?[`[${c.index+1}] ${c.type}`]:[],...c.plan]),r),d=Iu(s)??{statements:s.statements.map(c=>({index:c.index,fetch:"none",sources:[]}))};return{type:"explain",lines:l,text:l.join(`
17
- `),plan:d,metrics:Oa()}}catch(i){throw Ii(Ia(i,n),r)}}var xu="3.56.1";var sR=(e,t)=>Object.prototype.hasOwnProperty.call(e,t);function $T(){let e=Object.create(null);return Object.freeze({versions:e,get(t){return sR(e,t)?e[t]:void 0}})}function VT(e){if(e===null||typeof e!="object")return!1;let t=e;return t.versions!==null&&typeof t.versions=="object"&&!Array.isArray(t.versions)&&typeof t.get=="function"}function lR(e,t,n,r=console){let i;if(e.ksql===void 0){i=$T();try{e.ksql=i}catch(a){r.error(`[kSQL engine ${t}] window.ksql registry could not be initialized; loading was aborted.`,a);return}}else if(VT(e.ksql))i=e.ksql;else{r.error(`[kSQL engine ${t}] window.ksql already exists but is not a compatible { versions, get } registry; loading was aborted.`);return}if(sR(i.versions,t))return r.warn(`[kSQL engine ${t}] this version is already registered; the first entry was kept.`),i;let o=Object.freeze(n);try{i.versions[t]=o}catch(a){r.error(`[kSQL engine ${t}] the compatible window.ksql registry rejected registration; loading was aborted.`,a);return}return i}var WT={version:xu,createReadonlyKintoneClient:Cu,explainQuery:Fu,KsqlEngineError:Re,runBatch:ku,runQuery:Mu};lR(window,xu,WT);})();
17
+ `),plan:d,metrics:Oa()}}catch(i){throw Ii(Ia(i,n),r)}}var xu="3.56.2";var sR=(e,t)=>Object.prototype.hasOwnProperty.call(e,t);function $T(){let e=Object.create(null);return Object.freeze({versions:e,get(t){return sR(e,t)?e[t]:void 0}})}function VT(e){if(e===null||typeof e!="object")return!1;let t=e;return t.versions!==null&&typeof t.versions=="object"&&!Array.isArray(t.versions)&&typeof t.get=="function"}function lR(e,t,n,r=console){let i;if(e.ksql===void 0){i=$T();try{e.ksql=i}catch(a){r.error(`[kSQL engine ${t}] window.ksql registry could not be initialized; loading was aborted.`,a);return}}else if(VT(e.ksql))i=e.ksql;else{r.error(`[kSQL engine ${t}] window.ksql already exists but is not a compatible { versions, get } registry; loading was aborted.`);return}if(sR(i.versions,t))return r.warn(`[kSQL engine ${t}] this version is already registered; the first entry was kept.`),i;let o=Object.freeze(n);try{i.versions[t]=o}catch(a){r.error(`[kSQL engine ${t}] the compatible window.ksql registry rejected registration; loading was aborted.`,a);return}return i}var WT={version:xu,createReadonlyKintoneClient:Cu,explainQuery:Fu,KsqlEngineError:Re,runBatch:ku,runQuery:Mu};lR(window,xu,WT);})();