@rex0220/kintone-sql-tools 3.81.0 → 3.82.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist-engine/index.cjs +1 -1
- package/dist-engine/index.mjs +1 -1
- package/dist-engine/ksql-engine.umd.js +1 -1
- package/dist-engine/meta/bundle-baseline.json +2 -2
- package/dist-flow/index.cjs +1 -1
- package/dist-flow/index.mjs +1 -1
- package/dist-mcp/ksql-mcp.js +2 -2
- package/dist-mcpb/ksql-mcp.mcpb +0 -0
- package/package.json +1 -1
package/dist-engine/index.cjs
CHANGED
|
@@ -18,4 +18,4 @@ WHERE \u3092 AND \u306E\u5B89\u5168\u306A KLIKE \u6761\u4EF6\u3078\u66F8\u304D\u
|
|
|
18
18
|
`));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 uN(e){try{let t=await e.json();if(t!==null&&typeof t=="object"){let r=t;return Io({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}),Io(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}),Io(n)}}function cN(e){let t=e;return t?.code==="GAIA_CN01"&&(t.status===404||t.status===void 0)}async function zn(e,t,n){try{return await kintone.api($p(e),t,n)}catch(r){throw Io(r)}}function pN(e){if(!Number.isSafeInteger(e)||e<1||e>5)throw new Error("ArgumentError: cursorMaxActive must be an integer from 1 to 5.")}function _y(e={}){let t=e.cursorMaxActive??sN;pN(t);let n=null,r=null,i=new Set;return{async getRecords(a){try{let s=lN(a),l=await fetch(s.url,s.init);if(!l.ok)throw await uN(l);let u=await l.json();return Oy(l.headers.get("X-Cybozu-Warning"))?{...u,searchAborted:!0}:u}catch(s){throw Io(s)}},async openCursor(a){let s=$p(tl),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??=new Zs(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 u=await n.acquire(),p;try{p=await n.runCreate(()=>zn(tl,"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"?(u.release(),R):(u.quarantine(),new ns(R))}let c=p.id,d=by(Number(p.totalCount),{get:()=>zn(tl,"GET",{id:c}),delete:()=>zn(tl,"DELETE",{id:c}),isAlreadyReleasedError:cN,onReleased:()=>u.release(),onReleaseUnknown:()=>u.quarantine()}),f=null,E={totalCount:d.totalCount,async nextPage(){let R=await d.nextPage();return R.next||i.delete(E),R},close(){return f||(f=d.close().finally(()=>{i.delete(E)}),f)}};return i.add(E),E},async getApps(){let s=[],l=0;for(;;){let u=await zn("/k/v1/apps.json","GET",{limit:100,offset:l});for(let p of u.apps)s.push({appId:Number(p.appId),name:p.name,description:p.description});if(u.apps.length<100)break;l+=100}return s},async getFields(a){let s=await zn("/k/v1/app/form/fields.json","GET",{app:a});return Ny(s.properties)},async getNumberPrecision(a){let s=await zn("/k/v1/app/settings.json","GET",{app:a});return lE(s)},async getProcessStatuses(a){let s=await zn("/k/v1/app/status.json","GET",{app:a,lang:"user"});return{enable:s.enable,states:Py(s.states)}}}}var Dy=new Set(["postRecords","putRecords","upsertRecords","deleteRecords"]),wo=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 Sn(e){try{return await e()}catch(t){throw new wo(t)}}function dN(e){return()=>{throw ot(`${String(e)} is blocked by the readonly client`)}}function kr(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 u=await Sn(()=>t(l));if(u.searchAborted===!0)throw wy();return u},openCursor:async l=>{let u=await Sn(()=>n(l)),p=u.nextPage.bind(u),c=u.close.bind(u);return{totalCount:u.totalCount,nextPage:()=>Sn(()=>p()),close:()=>Sn(()=>c())}},getApps:()=>Sn(()=>r()),getFields:l=>Sn(()=>i(l)),getNumberPrecision:l=>Sn(()=>o(l)),getProcessStatuses:l=>Sn(()=>a(l))});return new Proxy(s,{get(l,u,p){return Dy.has(u)?dN(u):Reflect.get(l,u,p)},has(l,u){return Dy.has(u)?!1:Reflect.has(l,u)}})}function fN(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 wo(o.reason)})(),n)}}}async function xr(e,t){let n=fN(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 EN="A-Za-z",RN="\\u3040-\\u30FF\\u3400-\\u9FFF\\uF900-\\uFAFF\\uFF01-\\uFF60",Vp=`${EN}${RN}`,Uy=`${Vp}0-9_`,mN=new RegExp(`^[${Vp}]$`,"u"),yN=new RegExp(`^[${Uy}]$`,"u"),gN=new RegExp(`^[${Vp}][${Uy}]{0,63}$`,"u");function hN(e){return mN.test(e)}function AN(e){return yN.test(e)}function Hp(e){let t=e.normalize("NFC").toUpperCase();if(!gN.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 Wp(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 SN(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 TN(e,t){let n=t>0?e[t-1]:"";if(Wp(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,!hN(e[l]??""))return null;for(l++;l<e.length&&AN(e[l]);)l++;s=l;try{o=Hp(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&&Wp(e[l]);)l++;if(l===f)return null}let u=l,p=null;if(e[l]==="@"){l++;let f=l;for(;l<e.length&&SN(e[l]);)l++;if(l===f)return null;p=e.slice(f,l)}let c=l<e.length?e[l]:"";if(Wp(c))return null;let d={profile:p,start:t,referenceValueStart:a,referenceValueEnd:s,appEnd:u,fullEnd:l};return r==="physical"?{...d,source:r,appId:i}:{...d,source:r,logicalName:o}}function Yp(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]!==`
|
|
19
19
|
`;)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=TN(e,n);if(!i){n++;continue}t.push(i),n=i.fullEnd}return t}function vy(e){let t=9e8;for(;e.has(t);)t++;return e.add(t),t}function My(e,t="dev",n){let r=Yp(e),i=r.some(m=>m.profile!==null),o=new Map,a=m=>m??t;for(let m of r){if(m.source!=="physical")continue;let y=a(m.profile),g=o.get(m.appId);g||(g=new Set,o.set(m.appId,g)),g.add(y.toLowerCase())}let s=new Set(r.filter(m=>m.source==="physical").map(m=>m.appId)),l=new Map;for(let m of r){if(m.source!=="logical")continue;let y=a(m.profile).toLowerCase(),g=`logical:${m.logicalName}@${y}`;if(l.has(g))continue;if(!n)throw new Error(`ArgumentError: logical app LAPP_${m.logicalName}@${y} requires logicalApps configuration.`);let A=n.resolveLogicalApp(m.logicalName,y);l.set(g,A),s.add(A)}let u=new Map,p=new Map;for(let[m,y]of o.entries()){let g=[...y].sort();if(!(g.length<=1))for(let A of g){let h=vy(s);u.set(`physical:${m}@${A}`,h),p.set(h,{source:"physical",mappedAppId:h,appId:m,profile:A})}}let c=[],d=[],f=0,E=0,R=(m,y,g,A)=>{if(!m&&y===g)return;let h=f;c.push(m),f+=m.length,d.push({normalizedStart:h,normalizedEnd:f,sourceStart:y,sourceEnd:g,...A===void 0?{}:{bindingMappedAppId:A}})};for(let m of r){let y=a(m.profile).toLowerCase(),g;if(m.source==="physical")g={source:"physical",mappedAppId:u.get(`physical:${m.appId}@${y}`)??m.appId,appId:m.appId,profile:y};else{let I=`logical:${m.logicalName}@${y}`,b=u.get(I);b===void 0&&(b=vy(s),u.set(I,b)),g={source:"logical",logicalName:m.logicalName,mappedAppId:b,appId:l.get(I),profile:y}}p.set(g.mappedAppId,g),R(e.slice(E,m.start),E,m.start);let A=e.slice(m.referenceValueEnd,m.appEnd),h=m.source==="physical"?`${e.slice(m.start,m.referenceValueStart)}${g.mappedAppId}${A}`:`APP${g.mappedAppId}${A}`;R(h,m.start,m.fullEnd,g.mappedAppId),E=m.fullEnd}return R(e.slice(E),E,e.length),{normalizedSql:c.join(""),hasProfileSyntax:i,appBindingByMappedApp:p,rewriteSegments:d}}var ky=new Set(["client","logicalApps","maxRecords","recursiveCteMaxDepth","recursiveCteMaxRows","recursiveCteMaxExpansions","fetchParallel","cursorMaxActive"]),xy=new Set([...ky,"onLimitReached"]),IN=new Set([...xy,"variables","tempTableMaxRows"]);function Fy(e){if(e===null||typeof e!="object"||Array.isArray(e))throw new TypeError("options must be an object")}function Fr(e,t){if(!Number.isSafeInteger(e)||e<=0)throw new RangeError(`${t} must be a positive safe integer`)}function Gy(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 wN(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 Ky(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=Hp(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`);Fr(r,`logicalApps.${n}`),t[i]=r}return t}function By(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)}`);e.maxRecords!==void 0&&Fr(e.maxRecords,"maxRecords");for(let r of["recursiveCteMaxDepth","recursiveCteMaxRows","recursiveCteMaxExpansions"])e[r]!==void 0&&Fr(e[r],r);if(e.fetchParallel!==void 0&&Fr(e.fetchParallel,"fetchParallel"),e.cursorMaxActive!==void 0&&(Fr(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.recursiveCteMaxDepth!==void 0?{recursiveCteMaxDepth:e.recursiveCteMaxDepth}:{},...e.recursiveCteMaxRows!==void 0?{recursiveCteMaxRows:e.recursiveCteMaxRows}:{},...e.recursiveCteMaxExpansions!==void 0?{recursiveCteMaxExpansions:e.recursiveCteMaxExpansions}:{},...e.fetchParallel!==void 0?{fetchParallel:e.fetchParallel}:{},...e.cursorMaxActive!==void 0?{cursorMaxActive:e.cursorMaxActive}:{},...e.onLimitReached!==void 0?{onLimitReached:e.onLimitReached}:{}}}function jp(e,t){Fy(e);let n=t==="run"?xy:ky;Gy(e.client);let r=By(e,n,t==="run"?"runQuery":"explainQuery"),i=Ky(e.logicalApps);return{client:e.client,...i===void 0?{}:{logicalApps:i},executeOptions:r}}function $y(e){Fy(e),Gy(e.client),e.variables!==void 0&&wN(e.variables),e.tempTableMaxRows!==void 0&&Fr(e.tempTableMaxRows,"tempTableMaxRows");let t=By(e,IN,"runBatch"),n=Ky(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 nl(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,u)=>{let p=t.get(Number(l));return`${p.source==="logical"?r==="physical"?`LAPP_${p.logicalName} -> APP${p.appId}`:`LAPP_${p.logicalName}@${p.profile}`:r==="physical"?`APP${p.appId}`:`APP${p.appId}@${p.profile}`}${u??""}`})}return Array.isArray(e)?e.map(i=>nl(i,t,n)):e!==null&&typeof e=="object"?Object.fromEntries(Object.entries(e).map(([i,o])=>[i,nl(o,t,n)])):e}function bN(e,t,n){return e.slice(t,n)}function bo(e,t,n){let r=Yp(e),i=r.find(u=>u.profile!==null);if(i!==void 0)throw new Error(`ArgumentError: browser engine library does not support @profile suffixes (${bN(e,i.start,i.fullEnd)}).`);if(!r.some(u=>u.source==="logical"))return{sql:e,client:t,logicalBindings:[]};let o=My(e,"browser",{resolveLogicalApp(u){let p=n?.[u];if(p===void 0)throw new Error(`ArgumentError: logical app LAPP_${u} is not defined.`);return p}}),a=[...o.appBindingByMappedApp.values()].filter(u=>u.source==="logical"),s=u=>o.appBindingByMappedApp.get(u)?.appId??u,l={getRecords:u=>t.getRecords({...u,app:s(u.app)}),openCursor:u=>t.openCursor({...u,app:s(u.app)}),getApps:()=>t.getApps(),getFields:u=>t.getFields(s(u)),getNumberPrecision:u=>t.getNumberPrecision(s(u)),getProcessStatuses:u=>t.getProcessStatuses(s(u))};return{sql:o.normalizedSql,client:l,logicalBindings:a}}function No(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 Co(e,t){if(t.length===0)return e;let n=new Map(t.map(r=>[r.mappedAppId,r]));return nl(e,n,{logicalAppDisplay:"physical"})}function rl(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 NN(e){return Object.fromEntries(Object.entries(e).map(([t,n])=>[t,String(n)]))}function CN(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 il(e,t=e.metrics){let n=rm(e);return{type:"query",rows:e.rows.map(NN),columns:e.columns.map(r=>CN(r,n)),rowCount:e.rowCount,warnings:[...e.warnings??[]],...e.validateStats?{validateStats:e.validateStats}:{},metrics:rl(t)}}function zp(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 Wy(e){if(e instanceof he)return Mr(e.message,e);let t=jn(e);return t.code==="PARSE_ERROR"?t:Mr("SQL statement could not be parsed",e)}function PN(e){if(e.trim()==="")throw Mr("SQL statement is empty");try{return rR(e,{import:!0})}catch(t){let n=Wy(t);throw n.message.includes("\u8907\u6587\u306F\u30D0\u30C3\u30C1\u5B9F\u884C API \u3092\u4F7F\u7528\u3057\u3066\u304F\u3060\u3055\u3044")?Mr("This API accepts one statement; use runBatch for multiple statements",t):n}}function Vy(e){if(ko(e)==="UNKNOWN")throw ot("Unclassifiable statement is not allowed");return e}function Hy(e){if(e.trim()==="")throw Mr("SQL statement is empty");try{return tc(e,{import:!0})}catch(t){throw Wy(t)}}function ON(e){let t=Vy(e),n=t.type;if(n==="IMPORT")throw ot("IMPORT is disabled by default in engine library queries");if(!Qn(t))throw ot(`${n} statements are not read-only`);if(zp(t))throw ot("APPLY statements are not allowed in engine library queries");if(!sd(t))throw ot(`${n} does not return rows; use runBatch for batch-scoped or non-row-returning read-only statements`)}function Yy(e){let t=Vy(e),n=t.type==="EXPLAIN"?t.query:t;if(n.type==="IMPORT")throw ot("IMPORT is disabled by default in engine library batches");if(!Qn(n))throw ot(`${n.type} statements are not read-only`);if(zp(n))throw ot("APPLY statements are not allowed in engine library batches");if(en(n.type))throw ot("DML VALIDATE ONLY statements are not supported by runBatch")}function jy(e){let t=PN(e);return ON(t),t}function zy(e){let t=Hy(e);return t.forEach(Yy),t}function qy(e){let t=e.trim(),n=Hy(t);n.forEach(Yy);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 LN(e){let t=e.error,n=t?.cause!==void 0?jn(t.cause):new ve("EXECUTION_ERROR",t?.message??`Statement ${e.index} failed`);return Bp(n,e.index,e.type)}async function Jy(e,t){let n=[],r=[];try{let i=$y(t),o=bo(e,i.client,i.logicalApps);r=o.logicalBindings,n=zy(o.sql);let a=await xr(o.client,p=>Em(o.sql,kr(p),{...i.executeOptions,captureColumnMeta:!0})),s=a.statements.find(p=>p.status==="error");if(s!==void 0)throw LN(s);let l=[],u=a.statements.map(p=>{let c={index:p.index,type:p.type,status:p.status};if(p.tempTable!==void 0&&(c.tempTable=p.tempTable),p.rowCount!==void 0&&(c.rowCount=p.rowCount),p.error!==void 0&&(c.error={code:p.error.code,message:p.error.message}),p.skippedReason!==void 0&&(c.skippedReason=p.skippedReason),p.status==="success"&&p.result?.type==="SELECT"){c.resultIndex=l.length;let d=il(p.result,a.metrics);l.push(n[p.index]?.type==="EXPLAIN"?Co(d,r):d)}return c});return{type:"batch",batch:!0,statementCount:a.statementCount,statements:u,results:l,warnings:[]}}catch(i){throw No(Xs(i,n),r)}}function Xy(e){if(e===null||typeof e!="object"||e.type!=="SELECT")throw new Error("Engine returned a non-SELECT result")}async function Qy(e,t){let n=[];try{let r=jp(t,"run"),i=bo(e,r.client,r.logicalApps);n=i.logicalBindings;let a=jy(i.sql).type==="VALIDATE"?{...r.executeOptions,onLimitReached:"error"}:r.executeOptions,s=await xr(i.client,l=>op(i.sql,kr(l),{...a,captureColumnMeta:!0}));return Xy(s),il(s)}catch(r){throw No(jn(r),n)}}async function Zy(e,t){let n=[],r=[];try{let i=jp(t,"explain"),o=bo(e,i.client,i.logicalApps);r=o.logicalBindings;let a=qy(o.sql);if(n=a.statements,a.legacySql!==void 0){let p=await xr(o.client,f=>op(a.legacySql,kr(f),i.executeOptions));Xy(p);let c=Co(p.rows.map(f=>String(f.plan??"")),r),d=Fp(p)??{statements:[{index:0,fetch:"none",sources:[]}]};return{type:"explain",lines:c,text:c.join(`
|
|
20
20
|
`),plan:d,metrics:rl(p.metrics)}}let s=await xr(o.client,p=>yy(o.sql,kr(p),void 0,"batch-explain",i.executeOptions.maxRecords,i.executeOptions.cursorMaxActive,!1,100,void 0,!0,i.executeOptions.recursiveCteMaxDepth,i.executeOptions.recursiveCteMaxRows,i.executeOptions.recursiveCteMaxExpansions,void 0,void 0,{surface:"DOCUMENT_ONLY"})),l=Co(s.statements.flatMap(p=>[...s.statementCount>1?[`[${p.index+1}] ${p.type}`]:[],...p.plan]),r),u=Fp(s)??{statements:s.statements.map(p=>({index:p.index,fetch:"none",sources:[]}))};return{type:"explain",lines:l,text:l.join(`
|
|
21
|
-
`),plan:u,metrics:rl()}}catch(i){throw No(Xs(i,n),r)}}var _N="3.
|
|
21
|
+
`),plan:u,metrics:rl()}}catch(i){throw No(Xs(i,n),r)}}var _N="3.82.0";0&&(module.exports={KsqlEngineError,createReadonlyKintoneClient,explainQuery,runBatch,runQuery,version});
|
package/dist-engine/index.mjs
CHANGED
|
@@ -18,4 +18,4 @@ WHERE \u3092 AND \u306E\u5B89\u5168\u306A KLIKE \u6761\u4EF6\u3078\u66F8\u304D\u
|
|
|
18
18
|
`));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 Qb(e){try{let t=await e.json();if(t!==null&&typeof t=="object"){let r=t;return Io({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}),Io(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}),Io(n)}}function Zb(e){let t=e;return t?.code==="GAIA_CN01"&&(t.status===404||t.status===void 0)}async function zn(e,t,n){try{return await kintone.api(Bp(e),t,n)}catch(r){throw Io(r)}}function eN(e){if(!Number.isSafeInteger(e)||e<1||e>5)throw new Error("ArgumentError: cursorMaxActive must be an integer from 1 to 5.")}function tN(e={}){let t=e.cursorMaxActive??Jb;eN(t);let n=null,r=null,i=new Set;return{async getRecords(a){try{let s=Xb(a),l=await fetch(s.url,s.init);if(!l.ok)throw await Qb(l);let u=await l.json();return Py(l.headers.get("X-Cybozu-Warning"))?{...u,searchAborted:!0}:u}catch(s){throw Io(s)}},async openCursor(a){let s=Bp(tl),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 Zs(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 u=await n.acquire(),p;try{p=await n.runCreate(()=>zn(tl,"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"?(u.release(),R):(u.quarantine(),new ns(R))}let c=p.id,d=wy(Number(p.totalCount),{get:()=>zn(tl,"GET",{id:c}),delete:()=>zn(tl,"DELETE",{id:c}),isAlreadyReleasedError:Zb,onReleased:()=>u.release(),onReleaseUnknown:()=>u.quarantine()}),f=null,E={totalCount:d.totalCount,async nextPage(){let R=await d.nextPage();return R.next||i.delete(E),R},close(){return f||(f=d.close().finally(()=>{i.delete(E)}),f)}};return i.add(E),E},async getApps(){let s=[],l=0;for(;;){let u=await zn("/k/v1/apps.json","GET",{limit:100,offset:l});for(let p of u.apps)s.push({appId:Number(p.appId),name:p.name,description:p.description});if(u.apps.length<100)break;l+=100}return s},async getFields(a){let s=await zn("/k/v1/app/form/fields.json","GET",{app:a});return by(s.properties)},async getNumberPrecision(a){let s=await zn("/k/v1/app/settings.json","GET",{app:a});return sE(s)},async getProcessStatuses(a){let s=await zn("/k/v1/app/status.json","GET",{app:a,lang:"user"});return{enable:s.enable,states:Cy(s.states)}}}}var Ly=new Set(["postRecords","putRecords","upsertRecords","deleteRecords"]),wo=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 Sn(e){try{return await e()}catch(t){throw new wo(t)}}function nN(e){return()=>{throw ot(`${String(e)} is blocked by the readonly client`)}}function kr(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 u=await Sn(()=>t(l));if(u.searchAborted===!0)throw Iy();return u},openCursor:async l=>{let u=await Sn(()=>n(l)),p=u.nextPage.bind(u),c=u.close.bind(u);return{totalCount:u.totalCount,nextPage:()=>Sn(()=>p()),close:()=>Sn(()=>c())}},getApps:()=>Sn(()=>r()),getFields:l=>Sn(()=>i(l)),getNumberPrecision:l=>Sn(()=>o(l)),getProcessStatuses:l=>Sn(()=>a(l))});return new Proxy(s,{get(l,u,p){return Ly.has(u)?nN(u):Reflect.get(l,u,p)},has(l,u){return Ly.has(u)?!1:Reflect.has(l,u)}})}function rN(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 wo(o.reason)})(),n)}}}async function xr(e,t){let n=rN(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 iN="A-Za-z",oN="\\u3040-\\u30FF\\u3400-\\u9FFF\\uF900-\\uFAFF\\uFF01-\\uFF60",Wp=`${iN}${oN}`,Dy=`${Wp}0-9_`,aN=new RegExp(`^[${Wp}]$`,"u"),sN=new RegExp(`^[${Dy}]$`,"u"),lN=new RegExp(`^[${Wp}][${Dy}]{0,63}$`,"u");function uN(e){return aN.test(e)}function cN(e){return sN.test(e)}function Vp(e){let t=e.normalize("NFC").toUpperCase();if(!lN.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 $p(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 pN(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 dN(e,t){let n=t>0?e[t-1]:"";if($p(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,!uN(e[l]??""))return null;for(l++;l<e.length&&cN(e[l]);)l++;s=l;try{o=Vp(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&&$p(e[l]);)l++;if(l===f)return null}let u=l,p=null;if(e[l]==="@"){l++;let f=l;for(;l<e.length&&pN(e[l]);)l++;if(l===f)return null;p=e.slice(f,l)}let c=l<e.length?e[l]:"";if($p(c))return null;let d={profile:p,start:t,referenceValueStart:a,referenceValueEnd:s,appEnd:u,fullEnd:l};return r==="physical"?{...d,source:r,appId:i}:{...d,source:r,logicalName:o}}function Hp(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]!==`
|
|
19
19
|
`;)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=dN(e,n);if(!i){n++;continue}t.push(i),n=i.fullEnd}return t}function _y(e){let t=9e8;for(;e.has(t);)t++;return e.add(t),t}function vy(e,t="dev",n){let r=Hp(e),i=r.some(m=>m.profile!==null),o=new Map,a=m=>m??t;for(let m of r){if(m.source!=="physical")continue;let y=a(m.profile),g=o.get(m.appId);g||(g=new Set,o.set(m.appId,g)),g.add(y.toLowerCase())}let s=new Set(r.filter(m=>m.source==="physical").map(m=>m.appId)),l=new Map;for(let m of r){if(m.source!=="logical")continue;let y=a(m.profile).toLowerCase(),g=`logical:${m.logicalName}@${y}`;if(l.has(g))continue;if(!n)throw new Error(`ArgumentError: logical app LAPP_${m.logicalName}@${y} requires logicalApps configuration.`);let A=n.resolveLogicalApp(m.logicalName,y);l.set(g,A),s.add(A)}let u=new Map,p=new Map;for(let[m,y]of o.entries()){let g=[...y].sort();if(!(g.length<=1))for(let A of g){let h=_y(s);u.set(`physical:${m}@${A}`,h),p.set(h,{source:"physical",mappedAppId:h,appId:m,profile:A})}}let c=[],d=[],f=0,E=0,R=(m,y,g,A)=>{if(!m&&y===g)return;let h=f;c.push(m),f+=m.length,d.push({normalizedStart:h,normalizedEnd:f,sourceStart:y,sourceEnd:g,...A===void 0?{}:{bindingMappedAppId:A}})};for(let m of r){let y=a(m.profile).toLowerCase(),g;if(m.source==="physical")g={source:"physical",mappedAppId:u.get(`physical:${m.appId}@${y}`)??m.appId,appId:m.appId,profile:y};else{let I=`logical:${m.logicalName}@${y}`,b=u.get(I);b===void 0&&(b=_y(s),u.set(I,b)),g={source:"logical",logicalName:m.logicalName,mappedAppId:b,appId:l.get(I),profile:y}}p.set(g.mappedAppId,g),R(e.slice(E,m.start),E,m.start);let A=e.slice(m.referenceValueEnd,m.appEnd),h=m.source==="physical"?`${e.slice(m.start,m.referenceValueStart)}${g.mappedAppId}${A}`:`APP${g.mappedAppId}${A}`;R(h,m.start,m.fullEnd,g.mappedAppId),E=m.fullEnd}return R(e.slice(E),E,e.length),{normalizedSql:c.join(""),hasProfileSyntax:i,appBindingByMappedApp:p,rewriteSegments:d}}var Uy=new Set(["client","logicalApps","maxRecords","recursiveCteMaxDepth","recursiveCteMaxRows","recursiveCteMaxExpansions","fetchParallel","cursorMaxActive"]),My=new Set([...Uy,"onLimitReached"]),fN=new Set([...My,"variables","tempTableMaxRows"]);function ky(e){if(e===null||typeof e!="object"||Array.isArray(e))throw new TypeError("options must be an object")}function Fr(e,t){if(!Number.isSafeInteger(e)||e<=0)throw new RangeError(`${t} must be a positive safe integer`)}function xy(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 EN(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 Fy(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=Vp(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`);Fr(r,`logicalApps.${n}`),t[i]=r}return t}function Gy(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)}`);e.maxRecords!==void 0&&Fr(e.maxRecords,"maxRecords");for(let r of["recursiveCteMaxDepth","recursiveCteMaxRows","recursiveCteMaxExpansions"])e[r]!==void 0&&Fr(e[r],r);if(e.fetchParallel!==void 0&&Fr(e.fetchParallel,"fetchParallel"),e.cursorMaxActive!==void 0&&(Fr(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.recursiveCteMaxDepth!==void 0?{recursiveCteMaxDepth:e.recursiveCteMaxDepth}:{},...e.recursiveCteMaxRows!==void 0?{recursiveCteMaxRows:e.recursiveCteMaxRows}:{},...e.recursiveCteMaxExpansions!==void 0?{recursiveCteMaxExpansions:e.recursiveCteMaxExpansions}:{},...e.fetchParallel!==void 0?{fetchParallel:e.fetchParallel}:{},...e.cursorMaxActive!==void 0?{cursorMaxActive:e.cursorMaxActive}:{},...e.onLimitReached!==void 0?{onLimitReached:e.onLimitReached}:{}}}function Yp(e,t){ky(e);let n=t==="run"?My:Uy;xy(e.client);let r=Gy(e,n,t==="run"?"runQuery":"explainQuery"),i=Fy(e.logicalApps);return{client:e.client,...i===void 0?{}:{logicalApps:i},executeOptions:r}}function Ky(e){ky(e),xy(e.client),e.variables!==void 0&&EN(e.variables),e.tempTableMaxRows!==void 0&&Fr(e.tempTableMaxRows,"tempTableMaxRows");let t=Gy(e,fN,"runBatch"),n=Fy(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 nl(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,u)=>{let p=t.get(Number(l));return`${p.source==="logical"?r==="physical"?`LAPP_${p.logicalName} -> APP${p.appId}`:`LAPP_${p.logicalName}@${p.profile}`:r==="physical"?`APP${p.appId}`:`APP${p.appId}@${p.profile}`}${u??""}`})}return Array.isArray(e)?e.map(i=>nl(i,t,n)):e!==null&&typeof e=="object"?Object.fromEntries(Object.entries(e).map(([i,o])=>[i,nl(o,t,n)])):e}function RN(e,t,n){return e.slice(t,n)}function bo(e,t,n){let r=Hp(e),i=r.find(u=>u.profile!==null);if(i!==void 0)throw new Error(`ArgumentError: browser engine library does not support @profile suffixes (${RN(e,i.start,i.fullEnd)}).`);if(!r.some(u=>u.source==="logical"))return{sql:e,client:t,logicalBindings:[]};let o=vy(e,"browser",{resolveLogicalApp(u){let p=n?.[u];if(p===void 0)throw new Error(`ArgumentError: logical app LAPP_${u} is not defined.`);return p}}),a=[...o.appBindingByMappedApp.values()].filter(u=>u.source==="logical"),s=u=>o.appBindingByMappedApp.get(u)?.appId??u,l={getRecords:u=>t.getRecords({...u,app:s(u.app)}),openCursor:u=>t.openCursor({...u,app:s(u.app)}),getApps:()=>t.getApps(),getFields:u=>t.getFields(s(u)),getNumberPrecision:u=>t.getNumberPrecision(s(u)),getProcessStatuses:u=>t.getProcessStatuses(s(u))};return{sql:o.normalizedSql,client:l,logicalBindings:a}}function No(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 Co(e,t){if(t.length===0)return e;let n=new Map(t.map(r=>[r.mappedAppId,r]));return nl(e,n,{logicalAppDisplay:"physical"})}function rl(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 mN(e){return Object.fromEntries(Object.entries(e).map(([t,n])=>[t,String(n)]))}function yN(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 il(e,t=e.metrics){let n=nm(e);return{type:"query",rows:e.rows.map(mN),columns:e.columns.map(r=>yN(r,n)),rowCount:e.rowCount,warnings:[...e.warnings??[]],...e.validateStats?{validateStats:e.validateStats}:{},metrics:rl(t)}}function jp(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 By(e){if(e instanceof he)return Mr(e.message,e);let t=jn(e);return t.code==="PARSE_ERROR"?t:Mr("SQL statement could not be parsed",e)}function gN(e){if(e.trim()==="")throw Mr("SQL statement is empty");try{return nR(e,{import:!0})}catch(t){let n=By(t);throw n.message.includes("\u8907\u6587\u306F\u30D0\u30C3\u30C1\u5B9F\u884C API \u3092\u4F7F\u7528\u3057\u3066\u304F\u3060\u3055\u3044")?Mr("This API accepts one statement; use runBatch for multiple statements",t):n}}function $y(e){if(ko(e)==="UNKNOWN")throw ot("Unclassifiable statement is not allowed");return e}function Wy(e){if(e.trim()==="")throw Mr("SQL statement is empty");try{return ec(e,{import:!0})}catch(t){throw By(t)}}function hN(e){let t=$y(e),n=t.type;if(n==="IMPORT")throw ot("IMPORT is disabled by default in engine library queries");if(!Qn(t))throw ot(`${n} statements are not read-only`);if(jp(t))throw ot("APPLY statements are not allowed in engine library queries");if(!ad(t))throw ot(`${n} does not return rows; use runBatch for batch-scoped or non-row-returning read-only statements`)}function Vy(e){let t=$y(e),n=t.type==="EXPLAIN"?t.query:t;if(n.type==="IMPORT")throw ot("IMPORT is disabled by default in engine library batches");if(!Qn(n))throw ot(`${n.type} statements are not read-only`);if(jp(n))throw ot("APPLY statements are not allowed in engine library batches");if(en(n.type))throw ot("DML VALIDATE ONLY statements are not supported by runBatch")}function Hy(e){let t=gN(e);return hN(t),t}function Yy(e){let t=Wy(e);return t.forEach(Vy),t}function jy(e){let t=e.trim(),n=Wy(t);n.forEach(Vy);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 AN(e){let t=e.error,n=t?.cause!==void 0?jn(t.cause):new Ge("EXECUTION_ERROR",t?.message??`Statement ${e.index} failed`);return Kp(n,e.index,e.type)}async function SN(e,t){let n=[],r=[];try{let i=Ky(t),o=bo(e,i.client,i.logicalApps);r=o.logicalBindings,n=Yy(o.sql);let a=await xr(o.client,p=>fm(o.sql,kr(p),{...i.executeOptions,captureColumnMeta:!0})),s=a.statements.find(p=>p.status==="error");if(s!==void 0)throw AN(s);let l=[],u=a.statements.map(p=>{let c={index:p.index,type:p.type,status:p.status};if(p.tempTable!==void 0&&(c.tempTable=p.tempTable),p.rowCount!==void 0&&(c.rowCount=p.rowCount),p.error!==void 0&&(c.error={code:p.error.code,message:p.error.message}),p.skippedReason!==void 0&&(c.skippedReason=p.skippedReason),p.status==="success"&&p.result?.type==="SELECT"){c.resultIndex=l.length;let d=il(p.result,a.metrics);l.push(n[p.index]?.type==="EXPLAIN"?Co(d,r):d)}return c});return{type:"batch",batch:!0,statementCount:a.statementCount,statements:u,results:l,warnings:[]}}catch(i){throw No(Xs(i,n),r)}}function zy(e){if(e===null||typeof e!="object"||e.type!=="SELECT")throw new Error("Engine returned a non-SELECT result")}async function TN(e,t){let n=[];try{let r=Yp(t,"run"),i=bo(e,r.client,r.logicalApps);n=i.logicalBindings;let a=Hy(i.sql).type==="VALIDATE"?{...r.executeOptions,onLimitReached:"error"}:r.executeOptions,s=await xr(i.client,l=>ip(i.sql,kr(l),{...a,captureColumnMeta:!0}));return zy(s),il(s)}catch(r){throw No(jn(r),n)}}async function IN(e,t){let n=[],r=[];try{let i=Yp(t,"explain"),o=bo(e,i.client,i.logicalApps);r=o.logicalBindings;let a=jy(o.sql);if(n=a.statements,a.legacySql!==void 0){let p=await xr(o.client,f=>ip(a.legacySql,kr(f),i.executeOptions));zy(p);let c=Co(p.rows.map(f=>String(f.plan??"")),r),d=xp(p)??{statements:[{index:0,fetch:"none",sources:[]}]};return{type:"explain",lines:c,text:c.join(`
|
|
20
20
|
`),plan:d,metrics:rl(p.metrics)}}let s=await xr(o.client,p=>my(o.sql,kr(p),void 0,"batch-explain",i.executeOptions.maxRecords,i.executeOptions.cursorMaxActive,!1,100,void 0,!0,i.executeOptions.recursiveCteMaxDepth,i.executeOptions.recursiveCteMaxRows,i.executeOptions.recursiveCteMaxExpansions,void 0,void 0,{surface:"DOCUMENT_ONLY"})),l=Co(s.statements.flatMap(p=>[...s.statementCount>1?[`[${p.index+1}] ${p.type}`]:[],...p.plan]),r),u=xp(s)??{statements:s.statements.map(p=>({index:p.index,fetch:"none",sources:[]}))};return{type:"explain",lines:l,text:l.join(`
|
|
21
|
-
`),plan:u,metrics:rl()}}catch(i){throw No(Xs(i,n),r)}}var xU="3.
|
|
21
|
+
`),plan:u,metrics:rl()}}catch(i){throw No(Xs(i,n),r)}}var xU="3.82.0";export{Ge as KsqlEngineError,tN as createReadonlyKintoneClient,IN as explainQuery,SN as runBatch,TN as runQuery,xU as version};
|
|
@@ -18,4 +18,4 @@ WHERE \u3092 AND \u306E\u5B89\u5168\u306A KLIKE \u6761\u4EF6\u3078\u66F8\u304D\u
|
|
|
18
18
|
`));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 oN(e){try{let t=await e.json();if(t!==null&&typeof t=="object"){let r=t;return Io({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}),Io(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}),Io(n)}}function aN(e){let t=e;return t?.code==="GAIA_CN01"&&(t.status===404||t.status===void 0)}async function zn(e,t,n){try{return await kintone.api(Bp(e),t,n)}catch(r){throw Io(r)}}function sN(e){if(!Number.isSafeInteger(e)||e<1||e>5)throw new Error("ArgumentError: cursorMaxActive must be an integer from 1 to 5.")}function $p(e={}){let t=e.cursorMaxActive??rN;sN(t);let n=null,r=null,i=new Set;return{async getRecords(a){try{let s=iN(a),l=await fetch(s.url,s.init);if(!l.ok)throw await oN(l);let u=await l.json();return Dy(l.headers.get("X-Cybozu-Warning"))?{...u,searchAborted:!0}:u}catch(s){throw Io(s)}},async openCursor(a){let s=Bp(tl),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 Zs(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 u=await n.acquire(),p;try{p=await n.runCreate(()=>zn(tl,"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"?(u.release(),R):(u.quarantine(),new ns(R))}let c=p.id,d=Oy(Number(p.totalCount),{get:()=>zn(tl,"GET",{id:c}),delete:()=>zn(tl,"DELETE",{id:c}),isAlreadyReleasedError:aN,onReleased:()=>u.release(),onReleaseUnknown:()=>u.quarantine()}),f=null,E={totalCount:d.totalCount,async nextPage(){let R=await d.nextPage();return R.next||i.delete(E),R},close(){return f||(f=d.close().finally(()=>{i.delete(E)}),f)}};return i.add(E),E},async getApps(){let s=[],l=0;for(;;){let u=await zn("/k/v1/apps.json","GET",{limit:100,offset:l});for(let p of u.apps)s.push({appId:Number(p.appId),name:p.name,description:p.description});if(u.apps.length<100)break;l+=100}return s},async getFields(a){let s=await zn("/k/v1/app/form/fields.json","GET",{app:a});return Ly(s.properties)},async getNumberPrecision(a){let s=await zn("/k/v1/app/settings.json","GET",{app:a});return dE(s)},async getProcessStatuses(a){let s=await zn("/k/v1/app/status.json","GET",{app:a,lang:"user"});return{enable:s.enable,states:vy(s.states)}}}}var My=new Set(["postRecords","putRecords","upsertRecords","deleteRecords"]),wo=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 Sn(e){try{return await e()}catch(t){throw new wo(t)}}function lN(e){return()=>{throw ot(`${String(e)} is blocked by the readonly client`)}}function kr(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 u=await Sn(()=>t(l));if(u.searchAborted===!0)throw Py();return u},openCursor:async l=>{let u=await Sn(()=>n(l)),p=u.nextPage.bind(u),c=u.close.bind(u);return{totalCount:u.totalCount,nextPage:()=>Sn(()=>p()),close:()=>Sn(()=>c())}},getApps:()=>Sn(()=>r()),getFields:l=>Sn(()=>i(l)),getNumberPrecision:l=>Sn(()=>o(l)),getProcessStatuses:l=>Sn(()=>a(l))});return new Proxy(s,{get(l,u,p){return My.has(u)?lN(u):Reflect.get(l,u,p)},has(l,u){return My.has(u)?!1:Reflect.has(l,u)}})}function uN(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 wo(o.reason)})(),n)}}}async function xr(e,t){let n=uN(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 cN="A-Za-z",pN="\\u3040-\\u30FF\\u3400-\\u9FFF\\uF900-\\uFAFF\\uFF01-\\uFF60",Vp=`${cN}${pN}`,xy=`${Vp}0-9_`,dN=new RegExp(`^[${Vp}]$`,"u"),fN=new RegExp(`^[${xy}]$`,"u"),EN=new RegExp(`^[${Vp}][${xy}]{0,63}$`,"u");function RN(e){return dN.test(e)}function mN(e){return fN.test(e)}function Hp(e){let t=e.normalize("NFC").toUpperCase();if(!EN.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 Wp(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 yN(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 gN(e,t){let n=t>0?e[t-1]:"";if(Wp(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,!RN(e[l]??""))return null;for(l++;l<e.length&&mN(e[l]);)l++;s=l;try{o=Hp(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&&Wp(e[l]);)l++;if(l===f)return null}let u=l,p=null;if(e[l]==="@"){l++;let f=l;for(;l<e.length&&yN(e[l]);)l++;if(l===f)return null;p=e.slice(f,l)}let c=l<e.length?e[l]:"";if(Wp(c))return null;let d={profile:p,start:t,referenceValueStart:a,referenceValueEnd:s,appEnd:u,fullEnd:l};return r==="physical"?{...d,source:r,appId:i}:{...d,source:r,logicalName:o}}function Yp(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]!==`
|
|
19
19
|
`;)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=gN(e,n);if(!i){n++;continue}t.push(i),n=i.fullEnd}return t}function ky(e){let t=9e8;for(;e.has(t);)t++;return e.add(t),t}function Fy(e,t="dev",n){let r=Yp(e),i=r.some(m=>m.profile!==null),o=new Map,a=m=>m??t;for(let m of r){if(m.source!=="physical")continue;let y=a(m.profile),g=o.get(m.appId);g||(g=new Set,o.set(m.appId,g)),g.add(y.toLowerCase())}let s=new Set(r.filter(m=>m.source==="physical").map(m=>m.appId)),l=new Map;for(let m of r){if(m.source!=="logical")continue;let y=a(m.profile).toLowerCase(),g=`logical:${m.logicalName}@${y}`;if(l.has(g))continue;if(!n)throw new Error(`ArgumentError: logical app LAPP_${m.logicalName}@${y} requires logicalApps configuration.`);let A=n.resolveLogicalApp(m.logicalName,y);l.set(g,A),s.add(A)}let u=new Map,p=new Map;for(let[m,y]of o.entries()){let g=[...y].sort();if(!(g.length<=1))for(let A of g){let h=ky(s);u.set(`physical:${m}@${A}`,h),p.set(h,{source:"physical",mappedAppId:h,appId:m,profile:A})}}let c=[],d=[],f=0,E=0,R=(m,y,g,A)=>{if(!m&&y===g)return;let h=f;c.push(m),f+=m.length,d.push({normalizedStart:h,normalizedEnd:f,sourceStart:y,sourceEnd:g,...A===void 0?{}:{bindingMappedAppId:A}})};for(let m of r){let y=a(m.profile).toLowerCase(),g;if(m.source==="physical")g={source:"physical",mappedAppId:u.get(`physical:${m.appId}@${y}`)??m.appId,appId:m.appId,profile:y};else{let I=`logical:${m.logicalName}@${y}`,b=u.get(I);b===void 0&&(b=ky(s),u.set(I,b)),g={source:"logical",logicalName:m.logicalName,mappedAppId:b,appId:l.get(I),profile:y}}p.set(g.mappedAppId,g),R(e.slice(E,m.start),E,m.start);let A=e.slice(m.referenceValueEnd,m.appEnd),h=m.source==="physical"?`${e.slice(m.start,m.referenceValueStart)}${g.mappedAppId}${A}`:`APP${g.mappedAppId}${A}`;R(h,m.start,m.fullEnd,g.mappedAppId),E=m.fullEnd}return R(e.slice(E),E,e.length),{normalizedSql:c.join(""),hasProfileSyntax:i,appBindingByMappedApp:p,rewriteSegments:d}}var Gy=new Set(["client","logicalApps","maxRecords","recursiveCteMaxDepth","recursiveCteMaxRows","recursiveCteMaxExpansions","fetchParallel","cursorMaxActive"]),Ky=new Set([...Gy,"onLimitReached"]),hN=new Set([...Ky,"variables","tempTableMaxRows"]);function By(e){if(e===null||typeof e!="object"||Array.isArray(e))throw new TypeError("options must be an object")}function Fr(e,t){if(!Number.isSafeInteger(e)||e<=0)throw new RangeError(`${t} must be a positive safe integer`)}function $y(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 AN(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 Wy(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=Hp(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`);Fr(r,`logicalApps.${n}`),t[i]=r}return t}function Vy(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)}`);e.maxRecords!==void 0&&Fr(e.maxRecords,"maxRecords");for(let r of["recursiveCteMaxDepth","recursiveCteMaxRows","recursiveCteMaxExpansions"])e[r]!==void 0&&Fr(e[r],r);if(e.fetchParallel!==void 0&&Fr(e.fetchParallel,"fetchParallel"),e.cursorMaxActive!==void 0&&(Fr(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.recursiveCteMaxDepth!==void 0?{recursiveCteMaxDepth:e.recursiveCteMaxDepth}:{},...e.recursiveCteMaxRows!==void 0?{recursiveCteMaxRows:e.recursiveCteMaxRows}:{},...e.recursiveCteMaxExpansions!==void 0?{recursiveCteMaxExpansions:e.recursiveCteMaxExpansions}:{},...e.fetchParallel!==void 0?{fetchParallel:e.fetchParallel}:{},...e.cursorMaxActive!==void 0?{cursorMaxActive:e.cursorMaxActive}:{},...e.onLimitReached!==void 0?{onLimitReached:e.onLimitReached}:{}}}function jp(e,t){By(e);let n=t==="run"?Ky:Gy;$y(e.client);let r=Vy(e,n,t==="run"?"runQuery":"explainQuery"),i=Wy(e.logicalApps);return{client:e.client,...i===void 0?{}:{logicalApps:i},executeOptions:r}}function Hy(e){By(e),$y(e.client),e.variables!==void 0&&AN(e.variables),e.tempTableMaxRows!==void 0&&Fr(e.tempTableMaxRows,"tempTableMaxRows");let t=Vy(e,hN,"runBatch"),n=Wy(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 nl(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,u)=>{let p=t.get(Number(l));return`${p.source==="logical"?r==="physical"?`LAPP_${p.logicalName} -> APP${p.appId}`:`LAPP_${p.logicalName}@${p.profile}`:r==="physical"?`APP${p.appId}`:`APP${p.appId}@${p.profile}`}${u??""}`})}return Array.isArray(e)?e.map(i=>nl(i,t,n)):e!==null&&typeof e=="object"?Object.fromEntries(Object.entries(e).map(([i,o])=>[i,nl(o,t,n)])):e}function SN(e,t,n){return e.slice(t,n)}function bo(e,t,n){let r=Yp(e),i=r.find(u=>u.profile!==null);if(i!==void 0)throw new Error(`ArgumentError: browser engine library does not support @profile suffixes (${SN(e,i.start,i.fullEnd)}).`);if(!r.some(u=>u.source==="logical"))return{sql:e,client:t,logicalBindings:[]};let o=Fy(e,"browser",{resolveLogicalApp(u){let p=n?.[u];if(p===void 0)throw new Error(`ArgumentError: logical app LAPP_${u} is not defined.`);return p}}),a=[...o.appBindingByMappedApp.values()].filter(u=>u.source==="logical"),s=u=>o.appBindingByMappedApp.get(u)?.appId??u,l={getRecords:u=>t.getRecords({...u,app:s(u.app)}),openCursor:u=>t.openCursor({...u,app:s(u.app)}),getApps:()=>t.getApps(),getFields:u=>t.getFields(s(u)),getNumberPrecision:u=>t.getNumberPrecision(s(u)),getProcessStatuses:u=>t.getProcessStatuses(s(u))};return{sql:o.normalizedSql,client:l,logicalBindings:a}}function No(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 Co(e,t){if(t.length===0)return e;let n=new Map(t.map(r=>[r.mappedAppId,r]));return nl(e,n,{logicalAppDisplay:"physical"})}function rl(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 TN(e){return Object.fromEntries(Object.entries(e).map(([t,n])=>[t,String(n)]))}function IN(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 il(e,t=e.metrics){let n=sm(e);return{type:"query",rows:e.rows.map(TN),columns:e.columns.map(r=>IN(r,n)),rowCount:e.rowCount,warnings:[...e.warnings??[]],...e.validateStats?{validateStats:e.validateStats}:{},metrics:rl(t)}}function zp(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 Yy(e){if(e instanceof he)return Mr(e.message,e);let t=jn(e);return t.code==="PARSE_ERROR"?t:Mr("SQL statement could not be parsed",e)}function wN(e){if(e.trim()==="")throw Mr("SQL statement is empty");try{return sR(e,{import:!0})}catch(t){let n=Yy(t);throw n.message.includes("\u8907\u6587\u306F\u30D0\u30C3\u30C1\u5B9F\u884C API \u3092\u4F7F\u7528\u3057\u3066\u304F\u3060\u3055\u3044")?Mr("This API accepts one statement; use runBatch for multiple statements",t):n}}function jy(e){if(ko(e)==="UNKNOWN")throw ot("Unclassifiable statement is not allowed");return e}function zy(e){if(e.trim()==="")throw Mr("SQL statement is empty");try{return ec(e,{import:!0})}catch(t){throw Yy(t)}}function bN(e){let t=jy(e),n=t.type;if(n==="IMPORT")throw ot("IMPORT is disabled by default in engine library queries");if(!Qn(t))throw ot(`${n} statements are not read-only`);if(zp(t))throw ot("APPLY statements are not allowed in engine library queries");if(!pd(t))throw ot(`${n} does not return rows; use runBatch for batch-scoped or non-row-returning read-only statements`)}function qy(e){let t=jy(e),n=t.type==="EXPLAIN"?t.query:t;if(n.type==="IMPORT")throw ot("IMPORT is disabled by default in engine library batches");if(!Qn(n))throw ot(`${n.type} statements are not read-only`);if(zp(n))throw ot("APPLY statements are not allowed in engine library batches");if(en(n.type))throw ot("DML VALIDATE ONLY statements are not supported by runBatch")}function Jy(e){let t=wN(e);return bN(t),t}function Xy(e){let t=zy(e);return t.forEach(qy),t}function Qy(e){let t=e.trim(),n=zy(t);n.forEach(qy);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 NN(e){let t=e.error,n=t?.cause!==void 0?jn(t.cause):new Ce("EXECUTION_ERROR",t?.message??`Statement ${e.index} failed`);return Kp(n,e.index,e.type)}async function qp(e,t){let n=[],r=[];try{let i=Hy(t),o=bo(e,i.client,i.logicalApps);r=o.logicalBindings,n=Xy(o.sql);let a=await xr(o.client,p=>gm(o.sql,kr(p),{...i.executeOptions,captureColumnMeta:!0})),s=a.statements.find(p=>p.status==="error");if(s!==void 0)throw NN(s);let l=[],u=a.statements.map(p=>{let c={index:p.index,type:p.type,status:p.status};if(p.tempTable!==void 0&&(c.tempTable=p.tempTable),p.rowCount!==void 0&&(c.rowCount=p.rowCount),p.error!==void 0&&(c.error={code:p.error.code,message:p.error.message}),p.skippedReason!==void 0&&(c.skippedReason=p.skippedReason),p.status==="success"&&p.result?.type==="SELECT"){c.resultIndex=l.length;let d=il(p.result,a.metrics);l.push(n[p.index]?.type==="EXPLAIN"?Co(d,r):d)}return c});return{type:"batch",batch:!0,statementCount:a.statementCount,statements:u,results:l,warnings:[]}}catch(i){throw No(Xs(i,n),r)}}function Zy(e){if(e===null||typeof e!="object"||e.type!=="SELECT")throw new Error("Engine returned a non-SELECT result")}async function Jp(e,t){let n=[];try{let r=jp(t,"run"),i=bo(e,r.client,r.logicalApps);n=i.logicalBindings;let a=Jy(i.sql).type==="VALIDATE"?{...r.executeOptions,onLimitReached:"error"}:r.executeOptions,s=await xr(i.client,l=>ip(i.sql,kr(l),{...a,captureColumnMeta:!0}));return Zy(s),il(s)}catch(r){throw No(jn(r),n)}}async function Xp(e,t){let n=[],r=[];try{let i=jp(t,"explain"),o=bo(e,i.client,i.logicalApps);r=o.logicalBindings;let a=Qy(o.sql);if(n=a.statements,a.legacySql!==void 0){let p=await xr(o.client,f=>ip(a.legacySql,kr(f),i.executeOptions));Zy(p);let c=Co(p.rows.map(f=>String(f.plan??"")),r),d=xp(p)??{statements:[{index:0,fetch:"none",sources:[]}]};return{type:"explain",lines:c,text:c.join(`
|
|
20
20
|
`),plan:d,metrics:rl(p.metrics)}}let s=await xr(o.client,p=>Sy(o.sql,kr(p),void 0,"batch-explain",i.executeOptions.maxRecords,i.executeOptions.cursorMaxActive,!1,100,void 0,!0,i.executeOptions.recursiveCteMaxDepth,i.executeOptions.recursiveCteMaxRows,i.executeOptions.recursiveCteMaxExpansions,void 0,void 0,{surface:"DOCUMENT_ONLY"})),l=Co(s.statements.flatMap(p=>[...s.statementCount>1?[`[${p.index+1}] ${p.type}`]:[],...p.plan]),r),u=xp(s)??{statements:s.statements.map(p=>({index:p.index,fetch:"none",sources:[]}))};return{type:"explain",lines:l,text:l.join(`
|
|
21
|
-
`),plan:u,metrics:rl()}}catch(i){throw No(Xs(i,n),r)}}var Qp="3.
|
|
21
|
+
`),plan:u,metrics:rl()}}catch(i){throw No(Xs(i,n),r)}}var Qp="3.82.0";var eg=(e,t)=>Object.prototype.hasOwnProperty.call(e,t);function CN(){let e=Object.create(null);return Object.freeze({versions:e,get(t){return eg(e,t)?e[t]:void 0}})}function PN(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 tg(e,t,n,r=console){let i;if(e.ksql===void 0){i=CN();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(PN(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(eg(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 ON={version:Qp,createReadonlyKintoneClient:$p,explainQuery:Xp,KsqlEngineError:Ce,runBatch:qp,runQuery:Jp};tg(window,Qp,ON);})();
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
{
|
|
2
|
-
"generatedAt": "2026-09-
|
|
2
|
+
"generatedAt": "2026-09-16T12:16:46.016Z",
|
|
3
3
|
"baseline": "B66 Phase1 initial measured values; no arbitrary size ceiling",
|
|
4
4
|
"bundles": {
|
|
5
5
|
"index.cjs": {
|
|
@@ -25,7 +25,7 @@
|
|
|
25
25
|
"index.mjs": {
|
|
26
26
|
"inputCount": 117,
|
|
27
27
|
"minifiedBytes": 704823,
|
|
28
|
-
"gzipBytes":
|
|
28
|
+
"gzipBytes": 192997,
|
|
29
29
|
"forbidden": {
|
|
30
30
|
"mcp-instructions": [],
|
|
31
31
|
"src-mcp": [],
|
package/dist-flow/index.cjs
CHANGED
|
@@ -19,4 +19,4 @@ WHERE \u3092 AND \u306E\u5B89\u5168\u306A KLIKE \u6761\u4EF6\u3078\u66F8\u304D\u
|
|
|
19
19
|
`):Xn(n,t,"must contain only string array elements.")}if(o&&qN.has(o)){let a=ry(e,n,t),s=[];for(let l of a){if(l===null||typeof l!="object"||Array.isArray(l)||typeof l.code!="string")return Xn(n,t,"must contain objects with string code properties.");s.push(l.code)}return s.join(`
|
|
20
20
|
`)}if(o&&JN.has(o)&&/[eE]/.test(e))try{return Qg(e)}catch(a){if(a instanceof pt)return Xn(n,t,a.message.replace(/^ExportSinkInvalidValueError: /,""));throw a}if(o==="DATETIME")try{return i?ty(e,i):(ny(e),e)}catch(a){if(a instanceof pt)return Xn(n,t,"has an invalid DATETIME value.");throw a}return e}function ay(e={}){let t=e.encoding??"utf8";if(t==="utf8")return{encoding:t};let n=e.encoder;if(!n||n.encoding!=="sjis"||typeof n.encode!="function")throw new ll('encoding "sjis" requires an encoder whose encoding is "sjis" and which has an encode function.');return{encoding:t,encoder:n}}function XN(e){return e!==null&&typeof e=="object"&&ArrayBuffer.isView(e)&&Object.prototype.toString.call(e)==="[object Uint8Array]"}function sy(e,t){if(t.encoding==="utf8")return new TextEncoder().encode(e);let n;try{n=t.encoder.encode(e)}catch(r){throw new ul("Shift_JIS encoder failed to encode the CSV payload.",r)}if(!XN(n))throw new cl("Shift_JIS encoder must return a Uint8Array.");return n}function ly(e){return/[",\r\n]/.test(e)?`"${e.replace(/"/g,'""')}"`:e}function QN(e){let t=new Set;for(let n of e){if(t.has(n))throw new sl(`CSV column name ${JSON.stringify(n)} is duplicated.`);t.add(n)}}function uy(e,t={}){let n=ay(t),r=t.timezone===void 0?void 0:ey(t.timezone);QN(e.columns),iy(e.columns,e.columnMeta);let i=[e.columns.map(ly).join(",")];e.rows.forEach((s,l)=>{i.push(e.columns.map(u=>ly(oy(s[u],u,l+1,e.columnMeta?.get(u),r))).join(","))});let o=`${i.join(`\r
|
|
21
21
|
`)}\r
|
|
22
|
-
`,a=sy(o,n);return{text:o,data:a,receipt:{rows:e.rows.length,columns:e.columns.length,bytes:a.byteLength,encoding:n.encoding}}}function Qn(e,t,n){return new oe(e,`${e}: ${t}`,n)}function cy(e){let t=qg(e);if(!t||t.disposed)throw Qn("ExecutionContextDisposedError","execution context is disposed or invalid.");return t}function py(e,t){let n=`#${t}`;if(!e.exportSinks.has(n))throw Qn("ExportSinkNotFoundError","the export sink is not declared.");return n}function ZN(e){throw e instanceof oe?e:e instanceof It?new oe(e.code,e.message,e):Qn("FLOW_ERROR","CSV export failed.",e)}function pl(e,t={}){try{return uy(e,t)}catch(n){return ZN(n)}}function dy(e,t={}){if(e.status!=="success"||e.result===null||typeof e.result!="object"||e.result.type!=="SELECT")throw Qn("ExportSinkInvalidTargetError","serializeSelectResultAsCsv requires a successful SELECT StatementResult.");let n=e.result,r=dR(n);if(r===void 0)throw Qn("ExportSinkInvalidTargetError","the SELECT result is not associated with engine column metadata.");return pl({columns:n.columns,rows:n.rows,columnMeta:r},t)}function Jp(e,t){let n=cy(e),r=py(n,t);return n.failed.size>0||n.aborted!==null&&n.aborted!=="exit"?"failed":n.busy||n.nextIndex<n.statements.length?"incomplete":n.tempTables.has(r)?"materialized":"not-created"}function fy(e,t,n={}){let r=Jp(e,t);if(r!=="materialized")throw Qn(r==="not-created"?"ExportSinkNotMaterializedError":r==="incomplete"?"ExportSinkExecutionIncompleteError":"ExportSinkExecutionFailedError",`the export sink status is ${r}.`);let i=cy(e),o=i.tempTables.get(py(i,t));if(!o)throw Qn("ExportSinkNotMaterializedError","the export sink was not materialized.");return pl({columns:o.columns,rows:o.rows,columnMeta:o.columnMeta},n)}var eC="3.
|
|
22
|
+
`,a=sy(o,n);return{text:o,data:a,receipt:{rows:e.rows.length,columns:e.columns.length,bytes:a.byteLength,encoding:n.encoding}}}function Qn(e,t,n){return new oe(e,`${e}: ${t}`,n)}function cy(e){let t=qg(e);if(!t||t.disposed)throw Qn("ExecutionContextDisposedError","execution context is disposed or invalid.");return t}function py(e,t){let n=`#${t}`;if(!e.exportSinks.has(n))throw Qn("ExportSinkNotFoundError","the export sink is not declared.");return n}function ZN(e){throw e instanceof oe?e:e instanceof It?new oe(e.code,e.message,e):Qn("FLOW_ERROR","CSV export failed.",e)}function pl(e,t={}){try{return uy(e,t)}catch(n){return ZN(n)}}function dy(e,t={}){if(e.status!=="success"||e.result===null||typeof e.result!="object"||e.result.type!=="SELECT")throw Qn("ExportSinkInvalidTargetError","serializeSelectResultAsCsv requires a successful SELECT StatementResult.");let n=e.result,r=dR(n);if(r===void 0)throw Qn("ExportSinkInvalidTargetError","the SELECT result is not associated with engine column metadata.");return pl({columns:n.columns,rows:n.rows,columnMeta:r},t)}function Jp(e,t){let n=cy(e),r=py(n,t);return n.failed.size>0||n.aborted!==null&&n.aborted!=="exit"?"failed":n.busy||n.nextIndex<n.statements.length?"incomplete":n.tempTables.has(r)?"materialized":"not-created"}function fy(e,t,n={}){let r=Jp(e,t);if(r!=="materialized")throw Qn(r==="not-created"?"ExportSinkNotMaterializedError":r==="incomplete"?"ExportSinkExecutionIncompleteError":"ExportSinkExecutionFailedError",`the export sink status is ${r}.`);let i=cy(e),o=i.tempTables.get(py(i,t));if(!o)throw Qn("ExportSinkNotMaterializedError","the export sink was not materialized.");return pl({columns:o.columns,rows:o.rows,columnMeta:o.columnMeta},n)}var eC="3.82.0",vo=new WeakMap,dl=new WeakMap,Xp=new WeakMap;function tC(e,t={}){return fl(e,t)}async function nC(e,t={}){let n=fl(e,t);if(n.diagnostics.some(l=>l.severity==="error"))return n.diagnostics;let r=dl.get(n.statements),i=l=>r?.get(l)?.appId??l,o=t.schema?l=>t.schema(i(l)):t.client?l=>t.client.getFields(i(l)):void 0,s=(await rd(n.statements,n.meta,o,{strict:t.strict})).map(l=>{let u=n.statementRanges[l.statementIndex??0]?.start??0;return je(e,u,{severity:l.severity,code:l.code,message:l.message,...l.statementIndex!==void 0?{statementIndex:l.statementIndex}:{}})});return[...n.diagnostics,...s]}async function rC(e,t){let n=fl(e,t),r=n.diagnostics.find(s=>s.severity==="error");if(r)throw new oe(r.code,`${r.message} (${r.line}:${r.column})`);let i=cC(e,t.apps),o=dl.get(n.statements),a=o?my(t.client,o):t.client;try{return await _g(i,a,t.variables,"flow-explain",t.maxRecords,t.cursorMaxActive,t.enableImport===!0,t.dmlMaxRows,t.dmlMaxSubtableRows,t.resolveMetadata,t.recursiveCteMaxDepth,t.recursiveCteMaxRows,t.recursiveCteMaxExpansions,t.asOf,t.timezone,{surface:"FLOW",enableNativeUpsert:t.enableNativeUpsert!==!1,clientHasNativeUpsert:"upsertRecords"in a&&typeof a.upsertRecords=="function"})}catch(s){throw ol(s)}}function iC(e){try{let t=e.script!==void 0,n=e.statements!==void 0||e.meta!==void 0;if(t===n)throw new TypeError("Provide exactly one of script or statements+meta.");let r,i;if(t){let I=fl(e.script,e),b=I.diagnostics.find(v=>v.severity==="error");if(b)throw new oe(b.code,`${b.message} (${b.line}:${b.column})`);r=I.statements,i=I.meta.dialect}else{if(e.statements===void 0||e.meta===void 0)throw new TypeError("statements and meta must be provided together.");r=e.statements,i=e.meta.dialect}if(e.enableImport!==!0&&r.some(pC))throw new oe("KSQL1202","IMPORT is not supported (capability is disabled).");let o={},{client:a,script:s,statements:l,meta:u,apps:d,onChunkWritten:c,onImportSourceMaterialized:p,enableNativeUpsert:f,exportSinks:E,...m}=e,R=zg(r,E),g=dl.get(r),y=g?my(a,g):a,h=TR(r,i,y,m,c&&g?I=>c({...I,appId:g.get(I.appId)?.appId??I.appId}):c,f!==!1,p,R);return vo.set(o,h),Yg(o,h),g&&Xp.set(o,g),o}catch(t){throw ol(t)}}async function oC(e,t,n={}){let r=n.maxSamples??5;if(!Number.isInteger(r)||r<1||r>50)throw new oe("ArgumentError","ArgumentError: previewStatement maxSamples must be an integer from 1 through 50; fix the option before retrying.");aC(e);let i=vo.get(t);if(!i)throw new oe("ExecutionContextDisposedError","ExecutionContextDisposedError: execution context is disposed or invalid.");try{let o=await wR(e,i,r),a=Xp.get(t)?.get(o.appId)?.appId??o.appId;return{...o,appId:a}}catch(o){throw ol(o)}}function aC(e){if(!(e.type==="INSERT"||e.type==="INSERT_SELECT"||e.type==="UPDATE"||e.type==="DELETE"||e.type==="UPSERT"||e.type==="UPSERT_SELECT")){let r=e.type==="IMPORT"?"IMPORT is outside the preview contract; use executeStatement for IMPORT validation/execution.":"Send read-only and control statements to executeStatement.";throw new oe("ArgumentError",`ArgumentError: previewStatement accepts INSERT, UPDATE, DELETE, and UPSERT DML only. ${r}`)}if("validateOnly"in e&&e.validateOnly===!0)throw new oe("ArgumentError","ArgumentError: previewStatement does not accept VALIDATE ONLY; send validation DML to executeStatement.");if("onErrorSkip"in e&&e.onErrorSkip===!0)throw new oe("ArgumentError","ArgumentError: previewStatement does not accept ON ERROR SKIP; remove the modifier or use executeStatement.");if("checkGroups"in e&&e.checkGroups?.length)throw new oe("ArgumentError","ArgumentError: previewStatement does not accept CHECK clauses; remove CHECK or use executeStatement.");if(e.type==="INSERT"||e.type==="UPDATE"?!!e.applyBlocks?.length:e.type==="UPSERT"?!!(e.onInsertApplyBlocks?.length||e.onUpdateApplyBlocks?.length):!1)throw new oe("ArgumentError","ArgumentError: previewStatement does not accept APPLY; remove APPLY or use executeStatement.");if((e.type==="INSERT"||e.type==="UPDATE"||e.type==="DELETE")&&e.subtableCode)throw new oe("ArgumentError","ArgumentError: previewStatement does not accept subtable targets; target the parent app instead.")}async function sC(e,t){let n=vo.get(t);if(!n)throw new oe("ExecutionContextDisposedError","ExecutionContextDisposedError: execution context is disposed or invalid.");let r=await IR(e,n),i="STATEMENT";return e.type==="ASSERT"?r.status==="error"?i="ASSERT_VIOLATION":r.result?.type==="ASSERT"&&r.result.warning!==void 0?i="ASSERT_WARNING":r.status==="success"&&(i="ASSERT_PASSED"):e.type==="EXIT"&&r.result?.type==="EXIT"&&r.result.exited&&(i="EXIT_NO_DATA"),{...r,kind:i,metrics:lC(n.metrics)}}function lC(e){return{...e,limitReachedApps:[...e.limitReachedApps]}}async function uC(e){let t=vo.get(e);t&&(vo.delete(e),Xp.delete(e),jg(e),await bR(t))}function cC(e,t){if(!tr(e).some(n=>n.source==="logical"))return e;if(t===void 0)throw new Error("Logical app configuration is required.");return Ey(e,t).normalizedSql}function fl(e,t){let n=gf(e,t);if(t.apps!==void 0&&tr(e).some(r=>r.source==="logical")){let r=Ey(e,t.apps);dl.set(n.statements,r.appBindingByMappedApp)}return n}function pC(e){return e.type==="IMPORT"||e.type==="EXPLAIN"&&e.query.type==="IMPORT"}function Ey(e,t){let n=new Map;for(let[r,i]of Object.entries(t)){let o=r.toUpperCase().startsWith("LAPP_")?r.slice(5):r;try{n.set(er(o),i)}catch{}}return ko(e,"flow",{resolveLogicalApp(r){let i=n.get(er(r));if(i===void 0)throw new Error(`Logical app LAPP_${r} is not defined.`);return i}})}function my(e,t){let n=i=>t.get(i)?.appId??i,r={getRecords:i=>e.getRecords({...i,app:n(i.app)}),openCursor:i=>e.openCursor({...i,app:n(i.app)}),postRecords:i=>e.postRecords({...i,app:n(i.app)}),putRecords:i=>e.putRecords({...i,app:n(i.app)}),deleteRecords:i=>e.deleteRecords({...i,app:n(i.app)}),getApps:()=>e.getApps(),getFields:i=>e.getFields(n(i)),getNumberPrecision:i=>e.getNumberPrecision(n(i)),getProcessStatuses:i=>e.getProcessStatuses(n(i))};return"upsertRecords"in e&&typeof e.upsertRecords=="function"&&(r.upsertRecords=i=>e.upsertRecords({...i,app:n(i.app)})),r}0&&(module.exports={FlowImportProviderError,KsqlFlowError,createExecutionContext,createImportSourceResolver,createKintoneClient,disposeExecutionContext,executeStatement,explainScript,exportSinkStatus,isDmlResult,parseScript,previewStatement,serializeCsvExport,serializeExportSink,serializeSelectResultAsCsv,validateScript,version});
|
package/dist-flow/index.mjs
CHANGED
|
@@ -19,4 +19,4 @@ WHERE \u3092 AND \u306E\u5B89\u5168\u306A KLIKE \u6761\u4EF6\u3078\u66F8\u304D\u
|
|
|
19
19
|
`):Xn(n,t,"must contain only string array elements.")}if(o&&GN.has(o)){let a=Qg(e,n,t),s=[];for(let l of a){if(l===null||typeof l!="object"||Array.isArray(l)||typeof l.code!="string")return Xn(n,t,"must contain objects with string code properties.");s.push(l.code)}return s.join(`
|
|
20
20
|
`)}if(o&&$N.has(o)&&/[eE]/.test(e))try{return jg(e)}catch(a){if(a instanceof pt)return Xn(n,t,a.message.replace(/^ExportSinkInvalidValueError: /,""));throw a}if(o==="DATETIME")try{return i?Jg(e,i):(Xg(e),e)}catch(a){if(a instanceof pt)return Xn(n,t,"has an invalid DATETIME value.");throw a}return e}function ty(e={}){let t=e.encoding??"utf8";if(t==="utf8")return{encoding:t};let n=e.encoder;if(!n||n.encoding!=="sjis"||typeof n.encode!="function")throw new sl('encoding "sjis" requires an encoder whose encoding is "sjis" and which has an encode function.');return{encoding:t,encoder:n}}function BN(e){return e!==null&&typeof e=="object"&&ArrayBuffer.isView(e)&&Object.prototype.toString.call(e)==="[object Uint8Array]"}function ny(e,t){if(t.encoding==="utf8")return new TextEncoder().encode(e);let n;try{n=t.encoder.encode(e)}catch(r){throw new ll("Shift_JIS encoder failed to encode the CSV payload.",r)}if(!BN(n))throw new ul("Shift_JIS encoder must return a Uint8Array.");return n}function ry(e){return/[",\r\n]/.test(e)?`"${e.replace(/"/g,'""')}"`:e}function WN(e){let t=new Set;for(let n of e){if(t.has(n))throw new al(`CSV column name ${JSON.stringify(n)} is duplicated.`);t.add(n)}}function iy(e,t={}){let n=ty(t),r=t.timezone===void 0?void 0:qg(t.timezone);WN(e.columns),Zg(e.columns,e.columnMeta);let i=[e.columns.map(ry).join(",")];e.rows.forEach((s,l)=>{i.push(e.columns.map(u=>ry(ey(s[u],u,l+1,e.columnMeta?.get(u),r))).join(","))});let o=`${i.join(`\r
|
|
21
21
|
`)}\r
|
|
22
|
-
`,a=ny(o,n);return{text:o,data:a,receipt:{rows:e.rows.length,columns:e.columns.length,bytes:a.byteLength,encoding:n.encoding}}}function Qn(e,t,n){return new oe(e,`${e}: ${t}`,n)}function oy(e){let t=Hg(e);if(!t||t.disposed)throw Qn("ExecutionContextDisposedError","execution context is disposed or invalid.");return t}function ay(e,t){let n=`#${t}`;if(!e.exportSinks.has(n))throw Qn("ExportSinkNotFoundError","the export sink is not declared.");return n}function VN(e){throw e instanceof oe?e:e instanceof It?new oe(e.code,e.message,e):Qn("FLOW_ERROR","CSV export failed.",e)}function zp(e,t={}){try{return iy(e,t)}catch(n){return VN(n)}}function HN(e,t={}){if(e.status!=="success"||e.result===null||typeof e.result!="object"||e.result.type!=="SELECT")throw Qn("ExportSinkInvalidTargetError","serializeSelectResultAsCsv requires a successful SELECT StatementResult.");let n=e.result,r=cR(n);if(r===void 0)throw Qn("ExportSinkInvalidTargetError","the SELECT result is not associated with engine column metadata.");return zp({columns:n.columns,rows:n.rows,columnMeta:r},t)}function sy(e,t){let n=oy(e),r=ay(n,t);return n.failed.size>0||n.aborted!==null&&n.aborted!=="exit"?"failed":n.busy||n.nextIndex<n.statements.length?"incomplete":n.tempTables.has(r)?"materialized":"not-created"}function YN(e,t,n={}){let r=sy(e,t);if(r!=="materialized")throw Qn(r==="not-created"?"ExportSinkNotMaterializedError":r==="incomplete"?"ExportSinkExecutionIncompleteError":"ExportSinkExecutionFailedError",`the export sink status is ${r}.`);let i=oy(e),o=i.tempTables.get(ay(i,t));if(!o)throw Qn("ExportSinkNotMaterializedError","the export sink was not materialized.");return zp({columns:o.columns,rows:o.rows,columnMeta:o.columnMeta},n)}var uU="3.
|
|
22
|
+
`,a=ny(o,n);return{text:o,data:a,receipt:{rows:e.rows.length,columns:e.columns.length,bytes:a.byteLength,encoding:n.encoding}}}function Qn(e,t,n){return new oe(e,`${e}: ${t}`,n)}function oy(e){let t=Hg(e);if(!t||t.disposed)throw Qn("ExecutionContextDisposedError","execution context is disposed or invalid.");return t}function ay(e,t){let n=`#${t}`;if(!e.exportSinks.has(n))throw Qn("ExportSinkNotFoundError","the export sink is not declared.");return n}function VN(e){throw e instanceof oe?e:e instanceof It?new oe(e.code,e.message,e):Qn("FLOW_ERROR","CSV export failed.",e)}function zp(e,t={}){try{return iy(e,t)}catch(n){return VN(n)}}function HN(e,t={}){if(e.status!=="success"||e.result===null||typeof e.result!="object"||e.result.type!=="SELECT")throw Qn("ExportSinkInvalidTargetError","serializeSelectResultAsCsv requires a successful SELECT StatementResult.");let n=e.result,r=cR(n);if(r===void 0)throw Qn("ExportSinkInvalidTargetError","the SELECT result is not associated with engine column metadata.");return zp({columns:n.columns,rows:n.rows,columnMeta:r},t)}function sy(e,t){let n=oy(e),r=ay(n,t);return n.failed.size>0||n.aborted!==null&&n.aborted!=="exit"?"failed":n.busy||n.nextIndex<n.statements.length?"incomplete":n.tempTables.has(r)?"materialized":"not-created"}function YN(e,t,n={}){let r=sy(e,t);if(r!=="materialized")throw Qn(r==="not-created"?"ExportSinkNotMaterializedError":r==="incomplete"?"ExportSinkExecutionIncompleteError":"ExportSinkExecutionFailedError",`the export sink status is ${r}.`);let i=oy(e),o=i.tempTables.get(ay(i,t));if(!o)throw Qn("ExportSinkNotMaterializedError","the export sink was not materialized.");return zp({columns:o.columns,rows:o.rows,columnMeta:o.columnMeta},n)}var uU="3.82.0",vo=new WeakMap,cl=new WeakMap,qp=new WeakMap;function cU(e,t={}){return pl(e,t)}async function pU(e,t={}){let n=pl(e,t);if(n.diagnostics.some(l=>l.severity==="error"))return n.diagnostics;let r=cl.get(n.statements),i=l=>r?.get(l)?.appId??l,o=t.schema?l=>t.schema(i(l)):t.client?l=>t.client.getFields(i(l)):void 0,s=(await td(n.statements,n.meta,o,{strict:t.strict})).map(l=>{let u=n.statementRanges[l.statementIndex??0]?.start??0;return je(e,u,{severity:l.severity,code:l.code,message:l.message,...l.statementIndex!==void 0?{statementIndex:l.statementIndex}:{}})});return[...n.diagnostics,...s]}async function dU(e,t){let n=pl(e,t),r=n.diagnostics.find(s=>s.severity==="error");if(r)throw new oe(r.code,`${r.message} (${r.line}:${r.column})`);let i=qN(e,t.apps),o=cl.get(n.statements),a=o?uy(t.client,o):t.client;try{return await Og(i,a,t.variables,"flow-explain",t.maxRecords,t.cursorMaxActive,t.enableImport===!0,t.dmlMaxRows,t.dmlMaxSubtableRows,t.resolveMetadata,t.recursiveCteMaxDepth,t.recursiveCteMaxRows,t.recursiveCteMaxExpansions,t.asOf,t.timezone,{surface:"FLOW",enableNativeUpsert:t.enableNativeUpsert!==!1,clientHasNativeUpsert:"upsertRecords"in a&&typeof a.upsertRecords=="function"})}catch(s){throw ol(s)}}function fU(e){try{let t=e.script!==void 0,n=e.statements!==void 0||e.meta!==void 0;if(t===n)throw new TypeError("Provide exactly one of script or statements+meta.");let r,i;if(t){let I=pl(e.script,e),b=I.diagnostics.find(v=>v.severity==="error");if(b)throw new oe(b.code,`${b.message} (${b.line}:${b.column})`);r=I.statements,i=I.meta.dialect}else{if(e.statements===void 0||e.meta===void 0)throw new TypeError("statements and meta must be provided together.");r=e.statements,i=e.meta.dialect}if(e.enableImport!==!0&&r.some(JN))throw new oe("KSQL1202","IMPORT is not supported (capability is disabled).");let o={},{client:a,script:s,statements:l,meta:u,apps:d,onChunkWritten:c,onImportSourceMaterialized:p,enableNativeUpsert:f,exportSinks:E,...m}=e,R=Vg(r,E),g=cl.get(r),y=g?uy(a,g):a,h=AR(r,i,y,m,c&&g?I=>c({...I,appId:g.get(I.appId)?.appId??I.appId}):c,f!==!1,p,R);return vo.set(o,h),Bg(o,h),g&&qp.set(o,g),o}catch(t){throw ol(t)}}async function EU(e,t,n={}){let r=n.maxSamples??5;if(!Number.isInteger(r)||r<1||r>50)throw new oe("ArgumentError","ArgumentError: previewStatement maxSamples must be an integer from 1 through 50; fix the option before retrying.");jN(e);let i=vo.get(t);if(!i)throw new oe("ExecutionContextDisposedError","ExecutionContextDisposedError: execution context is disposed or invalid.");try{let o=await TR(e,i,r),a=qp.get(t)?.get(o.appId)?.appId??o.appId;return{...o,appId:a}}catch(o){throw ol(o)}}function jN(e){if(!(e.type==="INSERT"||e.type==="INSERT_SELECT"||e.type==="UPDATE"||e.type==="DELETE"||e.type==="UPSERT"||e.type==="UPSERT_SELECT")){let r=e.type==="IMPORT"?"IMPORT is outside the preview contract; use executeStatement for IMPORT validation/execution.":"Send read-only and control statements to executeStatement.";throw new oe("ArgumentError",`ArgumentError: previewStatement accepts INSERT, UPDATE, DELETE, and UPSERT DML only. ${r}`)}if("validateOnly"in e&&e.validateOnly===!0)throw new oe("ArgumentError","ArgumentError: previewStatement does not accept VALIDATE ONLY; send validation DML to executeStatement.");if("onErrorSkip"in e&&e.onErrorSkip===!0)throw new oe("ArgumentError","ArgumentError: previewStatement does not accept ON ERROR SKIP; remove the modifier or use executeStatement.");if("checkGroups"in e&&e.checkGroups?.length)throw new oe("ArgumentError","ArgumentError: previewStatement does not accept CHECK clauses; remove CHECK or use executeStatement.");if(e.type==="INSERT"||e.type==="UPDATE"?!!e.applyBlocks?.length:e.type==="UPSERT"?!!(e.onInsertApplyBlocks?.length||e.onUpdateApplyBlocks?.length):!1)throw new oe("ArgumentError","ArgumentError: previewStatement does not accept APPLY; remove APPLY or use executeStatement.");if((e.type==="INSERT"||e.type==="UPDATE"||e.type==="DELETE")&&e.subtableCode)throw new oe("ArgumentError","ArgumentError: previewStatement does not accept subtable targets; target the parent app instead.")}async function mU(e,t){let n=vo.get(t);if(!n)throw new oe("ExecutionContextDisposedError","ExecutionContextDisposedError: execution context is disposed or invalid.");let r=await SR(e,n),i="STATEMENT";return e.type==="ASSERT"?r.status==="error"?i="ASSERT_VIOLATION":r.result?.type==="ASSERT"&&r.result.warning!==void 0?i="ASSERT_WARNING":r.status==="success"&&(i="ASSERT_PASSED"):e.type==="EXIT"&&r.result?.type==="EXIT"&&r.result.exited&&(i="EXIT_NO_DATA"),{...r,kind:i,metrics:zN(n.metrics)}}function zN(e){return{...e,limitReachedApps:[...e.limitReachedApps]}}async function RU(e){let t=vo.get(e);t&&(vo.delete(e),qp.delete(e),Wg(e),await IR(t))}function qN(e,t){if(!tr(e).some(n=>n.source==="logical"))return e;if(t===void 0)throw new Error("Logical app configuration is required.");return ly(e,t).normalizedSql}function pl(e,t){let n=mf(e,t);if(t.apps!==void 0&&tr(e).some(r=>r.source==="logical")){let r=ly(e,t.apps);cl.set(n.statements,r.appBindingByMappedApp)}return n}function JN(e){return e.type==="IMPORT"||e.type==="EXPLAIN"&&e.query.type==="IMPORT"}function ly(e,t){let n=new Map;for(let[r,i]of Object.entries(t)){let o=r.toUpperCase().startsWith("LAPP_")?r.slice(5):r;try{n.set(er(o),i)}catch{}}return ko(e,"flow",{resolveLogicalApp(r){let i=n.get(er(r));if(i===void 0)throw new Error(`Logical app LAPP_${r} is not defined.`);return i}})}function uy(e,t){let n=i=>t.get(i)?.appId??i,r={getRecords:i=>e.getRecords({...i,app:n(i.app)}),openCursor:i=>e.openCursor({...i,app:n(i.app)}),postRecords:i=>e.postRecords({...i,app:n(i.app)}),putRecords:i=>e.putRecords({...i,app:n(i.app)}),deleteRecords:i=>e.deleteRecords({...i,app:n(i.app)}),getApps:()=>e.getApps(),getFields:i=>e.getFields(n(i)),getNumberPrecision:i=>e.getNumberPrecision(n(i)),getProcessStatuses:i=>e.getProcessStatuses(n(i))};return"upsertRecords"in e&&typeof e.upsertRecords=="function"&&(r.upsertRecords=i=>e.upsertRecords({...i,app:n(i.app)})),r}export{Hp as FlowImportProviderError,oe as KsqlFlowError,fU as createExecutionContext,xN as createImportSourceResolver,LN as createKintoneClient,RU as disposeExecutionContext,mU as executeStatement,dU as explainScript,sy as exportSinkStatus,MN as isDmlResult,cU as parseScript,EU as previewStatement,zp as serializeCsvExport,YN as serializeExportSink,HN as serializeSelectResultAsCsv,pU as validateScript,uU as version};
|