aiex-cli 0.0.1-beta.9 → 0.0.2-beta.1
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/README.md +50 -26
- package/dist/cli.mjs +1776 -626
- package/dist/{completions-ygS1okck.mjs → completions-C3rmTwXZ.mjs} +2 -2
- package/dist/core/schema-sqlite/migrate-helper.mjs +35 -37
- package/dist/{doctor-BiU1lDp-.mjs → doctor-collector-Cbqgwx__.mjs} +309 -223
- package/dist/index.d.mts +15 -15
- package/dist/index.mjs +1 -1
- package/dist/table-schema.json +4 -0
- package/dist/web/assets/AISettings-Cm8fAfaG.js +205 -0
- package/dist/web/assets/DataBrowser-DQwOvooY.js +6 -0
- package/dist/web/assets/ExtractRunner-CzfLlCCf.js +1 -0
- package/dist/web/assets/ExtractionViewer-D7tghmR-.js +1 -0
- package/dist/web/assets/JsonSchemaEditor-DXhYW-Un.js +570 -0
- package/dist/web/assets/api-client-CIC2X8_4.js +1 -0
- package/dist/web/assets/baseinput-B7PU5-38.js +2 -0
- package/dist/web/assets/button-Cdgr9Igy.js +927 -0
- package/dist/web/assets/checkbox-CCQwMfLd.js +142 -0
- package/dist/web/assets/{cssMode-DAbG0CMn.js → cssMode-CCz1uj8b.js} +1 -1
- package/dist/web/assets/dialog-8xaIXBKO.js +108 -0
- package/dist/web/assets/dist-B5Yem2Jn.js +1 -0
- package/dist/web/assets/{editor.main-BqhfoHxy.js → editor.main-DOue-nGf.js} +2 -2
- package/dist/web/assets/{freemarker2-B9_5ct2b.js → freemarker2-C87H7V8i.js} +1 -1
- package/dist/web/assets/{handlebars-TY59WcoQ.js → handlebars-TLnoktZW.js} +1 -1
- package/dist/web/assets/{html-CLULsh27.js → html-Rewbtgcp.js} +1 -1
- package/dist/web/assets/{htmlMode-BvG7RNbU.js → htmlMode-Cr9y3YUi.js} +1 -1
- package/dist/web/assets/index-BEorm4a5.css +2 -0
- package/dist/web/assets/{index-CKUXTDYj.js → index-CWy8KajQ.js} +38 -38
- package/dist/web/assets/{javascript-DHrLp6gu.js → javascript-BO8DPECx.js} +1 -1
- package/dist/web/assets/{jsonMode-DBDhdzl1.js → jsonMode-B78m_Y1l.js} +1 -1
- package/dist/web/assets/{liquid-tGeb-nqF.js → liquid-CDp_8YUE.js} +1 -1
- package/dist/web/assets/{mdx-Cmdz78VU.js → mdx-CeR1GULE.js} +1 -1
- package/dist/web/assets/{monaco.contribution-CroYPUF5.js → monaco.contribution-tCitzj1_.js} +2 -2
- package/dist/web/assets/object-utils-Cm2M3fPO.js +1 -0
- package/dist/web/assets/{python-Dmfz4iDE.js → python-DWmB1hQ6.js} +1 -1
- package/dist/web/assets/{razor-BJicZHJs.js → razor-BVk762Lq.js} +1 -1
- package/dist/web/assets/runtime-dom.esm-bundler-DZwuSnld.js +1 -0
- package/dist/web/assets/select-DKPPF403.js +438 -0
- package/dist/web/assets/{tsMode-DYqTyE66.js → tsMode-Gjs5D1gt.js} +1 -1
- package/dist/web/assets/{typescript-DLnTe9Hf.js → typescript-Cw6YtwrM.js} +1 -1
- package/dist/web/assets/utils-CZhxh2Ya.js +2 -0
- package/dist/web/assets/{xml-BIYqLORk.js → xml-guZq0YZJ.js} +1 -1
- package/dist/web/assets/{yaml-BjmulkMX.js → yaml-B9TbU-LX.js} +1 -1
- package/dist/web/index.html +11 -8
- package/package.json +17 -1
- package/src/core/schema-sqlite/migrate-helper.ts +32 -46
- package/dist/web/assets/AISettings-DOzonIux.js +0 -334
- package/dist/web/assets/DataBrowser-rznfVRaV.js +0 -3
- package/dist/web/assets/JsonSchemaEditor-C9iyQs7N.js +0 -929
- package/dist/web/assets/api-client-Dsg4WOM9.js +0 -1
- package/dist/web/assets/button-kTMweGMc.js +0 -927
- package/dist/web/assets/dialog-CWuu7WjI.js +0 -108
- package/dist/web/assets/index-DDFnprdM.css +0 -2
- package/dist/web/assets/lib-C30cIFrm.js +0 -1
- package/dist/web/assets/overlayeventbus-AtOpmI6n.js +0 -80
- package/dist/web/assets/table-schema-mJrrf9qw.js +0 -2
- /package/dist/web/assets/{abap-DrZwwXZX.js → abap-C3UM4cME.js} +0 -0
- /package/dist/web/assets/{apex-CrCz0btt.js → apex-BQBZvQmN.js} +0 -0
- /package/dist/web/assets/{azcli-BapzKHay.js → azcli-Dn9Awrok.js} +0 -0
- /package/dist/web/assets/{bat-C_NRAiA1.js → bat-JgEezSDo.js} +0 -0
- /package/dist/web/assets/{bicep-C7pp2CNk.js → bicep-vcQeC7wE.js} +0 -0
- /package/dist/web/assets/{cameligo-BhhK9vxZ.js → cameligo-C0cr0T3L.js} +0 -0
- /package/dist/web/assets/{clojure-D0ujmUyE.js → clojure-Brc1-rbW.js} +0 -0
- /package/dist/web/assets/{coffee-DHEl7Jbb.js → coffee-BiZYU83a.js} +0 -0
- /package/dist/web/assets/{cpp-Iil-3nzZ.js → cpp-ikWHCInz.js} +0 -0
- /package/dist/web/assets/{csharp-Dh0Ee7SY.js → csharp-BRWs_LfH.js} +0 -0
- /package/dist/web/assets/{csp-mwzjw0JL.js → csp-CcAumoJw.js} +0 -0
- /package/dist/web/assets/{css-COIa8ZTR.js → css-BZm6paiA.js} +0 -0
- /package/dist/web/assets/{cypher-GVc17FC4.js → cypher-CDQMONdb.js} +0 -0
- /package/dist/web/assets/{dart-phiCaE7_.js → dart-Ci4SZdF1.js} +0 -0
- /package/dist/web/assets/{dockerfile-BMaDhdim.js → dockerfile-BV0tAr-M.js} +0 -0
- /package/dist/web/assets/{ecl-Cj47kvqp.js → ecl-CP7nM2KN.js} +0 -0
- /package/dist/web/assets/{editor.api-DLXGyrN1.js → editor.api-BU_q4v8i.js} +0 -0
- /package/dist/web/assets/{elixir-DBbstcE1.js → elixir-GcA6wFiI.js} +0 -0
- /package/dist/web/assets/{flow9-ChHb1adO.js → flow9-CIb9youF.js} +0 -0
- /package/dist/web/assets/{fsharp-CMk2OIJN.js → fsharp-BVaBE4co.js} +0 -0
- /package/dist/web/assets/{go-BrMkuJg0.js → go-Bbqf306x.js} +0 -0
- /package/dist/web/assets/{graphql-PSR1UKGv.js → graphql-DJPrC4l-.js} +0 -0
- /package/dist/web/assets/{hcl-DAQrbDOW.js → hcl-QyfWVWpM.js} +0 -0
- /package/dist/web/assets/{ini-0TG5BxW0.js → ini-CgstZeS8.js} +0 -0
- /package/dist/web/assets/{java-rgorz17v.js → java-D4AG88ZY.js} +0 -0
- /package/dist/web/assets/{julia-C8VMdHm8.js → julia-CN8U9648.js} +0 -0
- /package/dist/web/assets/{kotlin-CllWo3gX.js → kotlin-gNNgpJhY.js} +0 -0
- /package/dist/web/assets/{less-Cgca25AP.js → less-C3SY2L8t.js} +0 -0
- /package/dist/web/assets/{lexon-D0GHdBaw.js → lexon-CznnqzUX.js} +0 -0
- /package/dist/web/assets/{lua-DmRsNG-P.js → lua-f3xyJgy5.js} +0 -0
- /package/dist/web/assets/{m3-BgL5dNKT.js → m3-Cl7J89p-.js} +0 -0
- /package/dist/web/assets/{markdown-BuJfycGS.js → markdown-Bv2fnzzT.js} +0 -0
- /package/dist/web/assets/{mips-C9m_93PR.js → mips-D6rXUTWa.js} +0 -0
- /package/dist/web/assets/{msdax-CpFHC9OI.js → msdax-Bb1N2x5J.js} +0 -0
- /package/dist/web/assets/{mysql-qFvltsqN.js → mysql-DXSr6oD7.js} +0 -0
- /package/dist/web/assets/{objective-c-Bnmr858J.js → objective-c-CEJiVkDa.js} +0 -0
- /package/dist/web/assets/{pascal-WP0_D5AO.js → pascal-BtkMEIba.js} +0 -0
- /package/dist/web/assets/{pascaligo-Blom4Rij.js → pascaligo-C7FAwqk7.js} +0 -0
- /package/dist/web/assets/{perl-B-vk8g64.js → perl-D9kqkBbN.js} +0 -0
- /package/dist/web/assets/{pgsql-Cgvz6v67.js → pgsql-BjGTBL1W.js} +0 -0
- /package/dist/web/assets/{php-8a3Lrw9m.js → php-BN0c0noA.js} +0 -0
- /package/dist/web/assets/{pla-DuFqEZ8V.js → pla-B94QTqOt.js} +0 -0
- /package/dist/web/assets/{postiats-DkLtSgkp.js → postiats-DH91dqBs.js} +0 -0
- /package/dist/web/assets/{powerquery-BJ1aNepW.js → powerquery-D7P0oUen.js} +0 -0
- /package/dist/web/assets/{powershell-rE98k687.js → powershell-CCVHmJax.js} +0 -0
- /package/dist/web/assets/{preload-helper-DWTEM3RW.js → preload-helper-DgFuoWHe.js} +0 -0
- /package/dist/web/assets/{protobuf-CUheFacr.js → protobuf-BIP7pixC.js} +0 -0
- /package/dist/web/assets/{pug-LDcAMD8w.js → pug-DcbLK7HH.js} +0 -0
- /package/dist/web/assets/{qsharp-IHfqKOfK.js → qsharp-B-VY_WOG.js} +0 -0
- /package/dist/web/assets/{r-D-QApv87.js → r-DwRtsJsj.js} +0 -0
- /package/dist/web/assets/{redis-SXdDyWR9.js → redis-CaW0tkwu.js} +0 -0
- /package/dist/web/assets/{redshift-Y6lsCryn.js → redshift-3tS8G0ME.js} +0 -0
- /package/dist/web/assets/{restructuredtext-edObr9a8.js → restructuredtext-_TNyGyK0.js} +0 -0
- /package/dist/web/assets/{ruby-CNnUfF-8.js → ruby-A-MwVfO4.js} +0 -0
- /package/dist/web/assets/{rust-IHUZWzBr.js → rust-oemlUIvG.js} +0 -0
- /package/dist/web/assets/{sb-DrUvY44N.js → sb-BDZuaI3W.js} +0 -0
- /package/dist/web/assets/{scala-B4hbXGLM.js → scala-Bfo2loK4.js} +0 -0
- /package/dist/web/assets/{scheme-BGrd12j3.js → scheme-N2eo7rjB.js} +0 -0
- /package/dist/web/assets/{scss-x5G1ES4U.js → scss-vjjSCTgN.js} +0 -0
- /package/dist/web/assets/{shell-DOehe2Y8.js → shell-Bfb9Yq6w.js} +0 -0
- /package/dist/web/assets/{solidity-BeRvcwWV.js → solidity-C9RbukzG.js} +0 -0
- /package/dist/web/assets/{sophia-DZbkUNjy.js → sophia-DWV_MWOg.js} +0 -0
- /package/dist/web/assets/{sparql-B7_oi5-h.js → sparql-iMXILWhh.js} +0 -0
- /package/dist/web/assets/{sql-CTlsFWVE.js → sql-CJDj31JM.js} +0 -0
- /package/dist/web/assets/{st-DJVEJdPE.js → st-BG9AQ1OO.js} +0 -0
- /package/dist/web/assets/{swift-CwhT3fYa.js → swift-B579DvHm.js} +0 -0
- /package/dist/web/assets/{systemverilog-BQN63pkN.js → systemverilog-BNgaF3ZX.js} +0 -0
- /package/dist/web/assets/{tcl-DqwfpskA.js → tcl-grdtJiUA.js} +0 -0
- /package/dist/web/assets/{twig-BiyenUgc.js → twig-JAsFXBZw.js} +0 -0
- /package/dist/web/assets/{typespec-CWOJribt.js → typespec-D3hIQXEU.js} +0 -0
- /package/dist/web/assets/{vb-Cq5F87m3.js → vb-H38jRcEz.js} +0 -0
- /package/dist/web/assets/{wgsl-BAvW2lVr.js → wgsl-BC5Grc5r.js} +0 -0
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{An as e,Kt as t,Nn as n,jn as r}from"./button-Cdgr9Igy.js";var i={STARTS_WITH:`startsWith`,CONTAINS:`contains`,NOT_CONTAINS:`notContains`,ENDS_WITH:`endsWith`,EQUALS:`equals`,NOT_EQUALS:`notEquals`,IN:`in`,LESS_THAN:`lt`,LESS_THAN_OR_EQUAL_TO:`lte`,GREATER_THAN:`gt`,GREATER_THAN_OR_EQUAL_TO:`gte`,BETWEEN:`between`,DATE_IS:`dateIs`,DATE_IS_NOT:`dateIsNot`,DATE_BEFORE:`dateBefore`,DATE_AFTER:`dateAfter`};function a(e,t){var n=typeof Symbol<`u`&&e[Symbol.iterator]||e[`@@iterator`];if(!n){if(Array.isArray(e)||(n=o(e))||t){n&&(e=n);var r=0,i=function(){};return{s:i,n:function(){return r>=e.length?{done:!0}:{done:!1,value:e[r++]}},e:function(e){throw e},f:i}}throw TypeError(`Invalid attempt to iterate non-iterable instance.
|
|
2
|
+
In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}var a,s=!0,c=!1;return{s:function(){n=n.call(e)},n:function(){var e=n.next();return s=e.done,e},e:function(e){c=!0,a=e},f:function(){try{s||n.return==null||n.return()}finally{if(c)throw a}}}}function o(e,t){if(e){if(typeof e==`string`)return s(e,t);var n={}.toString.call(e).slice(8,-1);return n===`Object`&&e.constructor&&(n=e.constructor.name),n===`Map`||n===`Set`?Array.from(e):n===`Arguments`||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?s(e,t):void 0}}function s(e,t){(t==null||t>e.length)&&(t=e.length);for(var n=0,r=Array(t);n<t;n++)r[n]=e[n];return r}var c={filter:function(e,t,r,i,o){var s=[];if(!e)return s;var c=a(e),l;try{for(c.s();!(l=c.n()).done;){var u=l.value;if(typeof u==`string`){if(this.filters[i](u,r,o)){s.push(u);continue}}else{var d=a(t),f;try{for(d.s();!(f=d.n()).done;){var p=f.value,m=n(u,p);if(this.filters[i](m,r,o)){s.push(u);break}}}catch(e){d.e(e)}finally{d.f()}}}}catch(e){c.e(e)}finally{c.f()}return s},filters:{startsWith:function(t,n,r){if(n==null||n===``)return!0;if(t==null)return!1;var i=e(n.toString()).toLocaleLowerCase(r);return e(t.toString()).toLocaleLowerCase(r).slice(0,i.length)===i},contains:function(t,n,r){if(n==null||n===``)return!0;if(t==null)return!1;var i=e(n.toString()).toLocaleLowerCase(r);return e(t.toString()).toLocaleLowerCase(r).indexOf(i)!==-1},notContains:function(t,n,r){if(n==null||n===``)return!0;if(t==null)return!1;var i=e(n.toString()).toLocaleLowerCase(r);return e(t.toString()).toLocaleLowerCase(r).indexOf(i)===-1},endsWith:function(t,n,r){if(n==null||n===``)return!0;if(t==null)return!1;var i=e(n.toString()).toLocaleLowerCase(r),a=e(t.toString()).toLocaleLowerCase(r);return a.indexOf(i,a.length-i.length)!==-1},equals:function(t,n,r){return n==null||n===``?!0:t==null?!1:t.getTime&&n.getTime?t.getTime()===n.getTime():e(t.toString()).toLocaleLowerCase(r)==e(n.toString()).toLocaleLowerCase(r)},notEquals:function(t,n,r){return n==null||n===``?!1:t==null?!0:t.getTime&&n.getTime?t.getTime()!==n.getTime():e(t.toString()).toLocaleLowerCase(r)!=e(n.toString()).toLocaleLowerCase(r)},in:function(e,t){if(t==null||t.length===0)return!0;for(var n=0;n<t.length;n++)if(r(e,t[n]))return!0;return!1},between:function(e,t){return t==null||t[0]==null||t[1]==null?!0:e==null?!1:e.getTime?t[0].getTime()<=e.getTime()&&e.getTime()<=t[1].getTime():t[0]<=e&&e<=t[1]},lt:function(e,t){return t==null?!0:e==null?!1:e.getTime&&t.getTime?e.getTime()<t.getTime():e<t},lte:function(e,t){return t==null?!0:e==null?!1:e.getTime&&t.getTime?e.getTime()<=t.getTime():e<=t},gt:function(e,t){return t==null?!0:e==null?!1:e.getTime&&t.getTime?e.getTime()>t.getTime():e>t},gte:function(e,t){return t==null?!0:e==null?!1:e.getTime&&t.getTime?e.getTime()>=t.getTime():e>=t},dateIs:function(e,t){return t==null?!0:e==null?!1:(typeof e==`string`&&(e=new Date(e)),typeof t==`string`&&(t=new Date(t)),e.toDateString()===t.toDateString())},dateIsNot:function(e,t){return t==null?!0:e==null?!1:(typeof e==`string`&&(e=new Date(e)),typeof t==`string`&&(t=new Date(t)),e.toDateString()!==t.toDateString())},dateBefore:function(e,t){return t==null?!0:e==null?!1:(typeof e==`string`&&(e=new Date(e)),typeof t==`string`&&(t=new Date(t)),e.getTime()<t.getTime())},dateAfter:function(e,t){return t==null?!0:e==null?!1:(typeof e==`string`&&(e=new Date(e)),typeof t==`string`&&(t=new Date(t)),e.getTime()>t.getTime())}},register:function(e,t){this.filters[e]=t}};function l(e){"@babel/helpers - typeof";return l=typeof Symbol==`function`&&typeof Symbol.iterator==`symbol`?function(e){return typeof e}:function(e){return e&&typeof Symbol==`function`&&e.constructor===Symbol&&e!==Symbol.prototype?`symbol`:typeof e},l(e)}function u(e,t){if(!(e instanceof t))throw TypeError(`Cannot call a class as a function`)}function d(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,`value`in r&&(r.writable=!0),Object.defineProperty(e,p(r.key),r)}}function f(e,t,n){return t&&d(e.prototype,t),Object.defineProperty(e,`prototype`,{writable:!1}),e}function p(e){var t=m(e,`string`);return l(t)==`symbol`?t:t+``}function m(e,t){if(l(e)!=`object`||!e)return e;var n=e[Symbol.toPrimitive];if(n!==void 0){var r=n.call(e,t);if(l(r)!=`object`)return r;throw TypeError(`@@toPrimitive must return a primitive value.`)}return String(e)}var h=function(){function e(t){var n=arguments.length>1&&arguments[1]!==void 0?arguments[1]:function(){};u(this,e),this.element=t,this.listener=n}return f(e,[{key:`bindScrollListener`,value:function(){this.scrollableParents=t(this.element);for(var e=0;e<this.scrollableParents.length;e++)this.scrollableParents[e].addEventListener(`scroll`,this.listener)}},{key:`unbindScrollListener`,value:function(){if(this.scrollableParents)for(var e=0;e<this.scrollableParents.length;e++)this.scrollableParents[e].removeEventListener(`scroll`,this.listener)}},{key:`destroy`,value:function(){this.unbindScrollListener(),this.element=null,this.listener=null,this.scrollableParents=null}}])}();export{i as n,c as r,h as t};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{m as e}from"./editor.api-
|
|
1
|
+
import{m as e}from"./editor.api-BU_q4v8i.js";var t=Object.defineProperty,n=Object.getOwnPropertyDescriptor,r=Object.getOwnPropertyNames,i=Object.prototype.hasOwnProperty,a=(e,a,o,s)=>{if(a&&typeof a==`object`||typeof a==`function`)for(let c of r(a))!i.call(e,c)&&c!==o&&t(e,c,{get:()=>a[c],enumerable:!(s=n(a,c))||s.enumerable});return e},o=(e,t,n)=>(a(e,t,`default`),n&&a(n,t,`default`)),s={};o(s,e);var c={comments:{blockComment:[`<!--`,`-->`]},brackets:[[`<`,`>`]],autoClosingPairs:[{open:`<`,close:`>`},{open:`'`,close:`'`},{open:`"`,close:`"`}],surroundingPairs:[{open:`<`,close:`>`},{open:`'`,close:`'`},{open:`"`,close:`"`}],onEnterRules:[{beforeText:RegExp(`<([_:\\w][_:\\w-.\\d]*)([^/>]*(?!/)>)[^<]*$`,`i`),afterText:/^<\/([_:\w][_:\w-.\d]*)\s*>$/i,action:{indentAction:s.languages.IndentAction.IndentOutdent}},{beforeText:RegExp(`<(\\w[\\w\\d]*)([^/>]*(?!/)>)[^<]*$`,`i`),action:{indentAction:s.languages.IndentAction.Indent}}]},l={defaultToken:``,tokenPostfix:`.xml`,ignoreCase:!0,qualifiedName:/(?:[\w\.\-]+:)?[\w\.\-]+/,tokenizer:{root:[[/[^<&]+/,``],{include:`@whitespace`},[/(<)(@qualifiedName)/,[{token:`delimiter`},{token:`tag`,next:`@tag`}]],[/(<\/)(@qualifiedName)(\s*)(>)/,[{token:`delimiter`},{token:`tag`},``,{token:`delimiter`}]],[/(<\?)(@qualifiedName)/,[{token:`delimiter`},{token:`metatag`,next:`@tag`}]],[/(<\!)(@qualifiedName)/,[{token:`delimiter`},{token:`metatag`,next:`@tag`}]],[/<\!\[CDATA\[/,{token:`delimiter.cdata`,next:`@cdata`}],[/&\w+;/,`string.escape`]],cdata:[[/[^\]]+/,``],[/\]\]>/,{token:`delimiter.cdata`,next:`@pop`}],[/\]/,``]],tag:[[/[ \t\r\n]+/,``],[/(@qualifiedName)(\s*=\s*)("[^"]*"|'[^']*')/,[`attribute.name`,``,`attribute.value`]],[/(@qualifiedName)(\s*=\s*)("[^">?\/]*|'[^'>?\/]*)(?=[\?\/]\>)/,[`attribute.name`,``,`attribute.value`]],[/(@qualifiedName)(\s*=\s*)("[^">]*|'[^'>]*)/,[`attribute.name`,``,`attribute.value`]],[/@qualifiedName/,`attribute.name`],[/\?>/,{token:`delimiter`,next:`@pop`}],[/(\/)(>)/,[{token:`tag`},{token:`delimiter`,next:`@pop`}]],[/>/,{token:`delimiter`,next:`@pop`}]],whitespace:[[/[ \t\r\n]+/,``],[/<!--/,{token:`comment`,next:`@comment`}]],comment:[[/[^<\-]+/,`comment.content`],[/-->/,{token:`comment`,next:`@pop`}],[/<!--/,`comment.content.invalid`],[/[<\-]/,`comment.content`]]}};export{c as conf,l as language};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{m as e}from"./editor.api-
|
|
1
|
+
import{m as e}from"./editor.api-BU_q4v8i.js";var t=Object.defineProperty,n=Object.getOwnPropertyDescriptor,r=Object.getOwnPropertyNames,i=Object.prototype.hasOwnProperty,a=(e,a,o,s)=>{if(a&&typeof a==`object`||typeof a==`function`)for(let c of r(a))!i.call(e,c)&&c!==o&&t(e,c,{get:()=>a[c],enumerable:!(s=n(a,c))||s.enumerable});return e},o=(e,t,n)=>(a(e,t,`default`),n&&a(n,t,`default`)),s={};o(s,e);var c={comments:{lineComment:`#`},brackets:[[`{`,`}`],[`[`,`]`],[`(`,`)`]],autoClosingPairs:[{open:`{`,close:`}`},{open:`[`,close:`]`},{open:`(`,close:`)`},{open:`"`,close:`"`},{open:`'`,close:`'`}],surroundingPairs:[{open:`{`,close:`}`},{open:`[`,close:`]`},{open:`(`,close:`)`},{open:`"`,close:`"`},{open:`'`,close:`'`}],folding:{offSide:!0},onEnterRules:[{beforeText:/:\s*$/,action:{indentAction:s.languages.IndentAction.Indent}}]},l={tokenPostfix:`.yaml`,brackets:[{token:`delimiter.bracket`,open:`{`,close:`}`},{token:`delimiter.square`,open:`[`,close:`]`}],keywords:[`true`,`True`,`TRUE`,`false`,`False`,`FALSE`,`null`,`Null`,`Null`,`~`],numberInteger:/(?:0|[+-]?[0-9]+)/,numberFloat:/(?:0|[+-]?[0-9]+)(?:\.[0-9]+)?(?:e[-+][1-9][0-9]*)?/,numberOctal:/0o[0-7]+/,numberHex:/0x[0-9a-fA-F]+/,numberInfinity:/[+-]?\.(?:inf|Inf|INF)/,numberNaN:/\.(?:nan|Nan|NAN)/,numberDate:/\d{4}-\d\d-\d\d([Tt ]\d\d:\d\d:\d\d(\.\d+)?(( ?[+-]\d\d?(:\d\d)?)|Z)?)?/,escapes:/\\(?:[btnfr\\"']|[0-7][0-7]?|[0-3][0-7]{2})/,tokenizer:{root:[{include:`@whitespace`},{include:`@comment`},[/%[^ ]+.*$/,`meta.directive`],[/---/,`operators.directivesEnd`],[/\.{3}/,`operators.documentEnd`],[/[-?:](?= )/,`operators`],{include:`@anchor`},{include:`@tagHandle`},{include:`@flowCollections`},{include:`@blockStyle`},[/@numberInteger(?![ \t]*\S+)/,`number`],[/@numberFloat(?![ \t]*\S+)/,`number.float`],[/@numberOctal(?![ \t]*\S+)/,`number.octal`],[/@numberHex(?![ \t]*\S+)/,`number.hex`],[/@numberInfinity(?![ \t]*\S+)/,`number.infinity`],[/@numberNaN(?![ \t]*\S+)/,`number.nan`],[/@numberDate(?![ \t]*\S+)/,`number.date`],[/(".*?"|'.*?'|[^#'"]*?)([ \t]*)(:)( |$)/,[`type`,`white`,`operators`,`white`]],{include:`@flowScalars`},[/.+?(?=(\s+#|$))/,{cases:{"@keywords":`keyword`,"@default":`string`}}]],object:[{include:`@whitespace`},{include:`@comment`},[/\}/,`@brackets`,`@pop`],[/,/,`delimiter.comma`],[/:(?= )/,`operators`],[/(?:".*?"|'.*?'|[^,\{\[]+?)(?=: )/,`type`],{include:`@flowCollections`},{include:`@flowScalars`},{include:`@tagHandle`},{include:`@anchor`},{include:`@flowNumber`},[/[^\},]+/,{cases:{"@keywords":`keyword`,"@default":`string`}}]],array:[{include:`@whitespace`},{include:`@comment`},[/\]/,`@brackets`,`@pop`],[/,/,`delimiter.comma`],{include:`@flowCollections`},{include:`@flowScalars`},{include:`@tagHandle`},{include:`@anchor`},{include:`@flowNumber`},[/[^\],]+/,{cases:{"@keywords":`keyword`,"@default":`string`}}]],multiString:[[/^( +).+$/,`string`,`@multiStringContinued.$1`]],multiStringContinued:[[/^( *).+$/,{cases:{"$1==$S2":`string`,"@default":{token:`@rematch`,next:`@popall`}}}]],whitespace:[[/[ \t\r\n]+/,`white`]],comment:[[/#.*$/,`comment`]],flowCollections:[[/\[/,`@brackets`,`@array`],[/\{/,`@brackets`,`@object`]],flowScalars:[[/"([^"\\]|\\.)*$/,`string.invalid`],[/'([^'\\]|\\.)*$/,`string.invalid`],[/'[^']*'/,`string`],[/"/,`string`,`@doubleQuotedString`]],doubleQuotedString:[[/[^\\"]+/,`string`],[/@escapes/,`string.escape`],[/\\./,`string.escape.invalid`],[/"/,`string`,`@pop`]],blockStyle:[[/[>|][0-9]*[+-]?$/,`operators`,`@multiString`]],flowNumber:[[/@numberInteger(?=[ \t]*[,\]\}])/,`number`],[/@numberFloat(?=[ \t]*[,\]\}])/,`number.float`],[/@numberOctal(?=[ \t]*[,\]\}])/,`number.octal`],[/@numberHex(?=[ \t]*[,\]\}])/,`number.hex`],[/@numberInfinity(?=[ \t]*[,\]\}])/,`number.infinity`],[/@numberNaN(?=[ \t]*[,\]\}])/,`number.nan`],[/@numberDate(?=[ \t]*[,\]\}])/,`number.date`]],tagHandle:[[/\![^ ]*/,`tag`]],anchor:[[/[&*][^ ]+/,`namespace`]]}};export{c as conf,l as language};
|
package/dist/web/index.html
CHANGED
|
@@ -12,17 +12,20 @@
|
|
|
12
12
|
var dark =
|
|
13
13
|
stored === "dark" ||
|
|
14
14
|
((!stored || stored === "auto") && window.matchMedia("(prefers-color-scheme: dark)").matches)
|
|
15
|
+
document.documentElement.setAttribute("data-vxe-ui-theme", dark ? "dark" : "light")
|
|
15
16
|
if (dark) document.documentElement.classList.add("jscb-dark")
|
|
16
17
|
})()
|
|
17
18
|
</script>
|
|
18
|
-
<script type="module" crossorigin src="/assets/index-
|
|
19
|
-
<link rel="modulepreload" crossorigin href="/assets/preload-helper-
|
|
20
|
-
<link rel="modulepreload" crossorigin href="/assets/button-
|
|
21
|
-
<link rel="modulepreload" crossorigin href="/assets/
|
|
22
|
-
<link rel="modulepreload" crossorigin href="/assets/api-client-
|
|
23
|
-
<link rel="modulepreload" crossorigin href="/assets/
|
|
24
|
-
<link rel="modulepreload" crossorigin href="/assets/
|
|
25
|
-
<link rel="
|
|
19
|
+
<script type="module" crossorigin src="/assets/index-CWy8KajQ.js"></script>
|
|
20
|
+
<link rel="modulepreload" crossorigin href="/assets/preload-helper-DgFuoWHe.js">
|
|
21
|
+
<link rel="modulepreload" crossorigin href="/assets/button-Cdgr9Igy.js">
|
|
22
|
+
<link rel="modulepreload" crossorigin href="/assets/object-utils-Cm2M3fPO.js">
|
|
23
|
+
<link rel="modulepreload" crossorigin href="/assets/api-client-CIC2X8_4.js">
|
|
24
|
+
<link rel="modulepreload" crossorigin href="/assets/runtime-dom.esm-bundler-DZwuSnld.js">
|
|
25
|
+
<link rel="modulepreload" crossorigin href="/assets/dialog-8xaIXBKO.js">
|
|
26
|
+
<link rel="modulepreload" crossorigin href="/assets/utils-CZhxh2Ya.js">
|
|
27
|
+
<link rel="modulepreload" crossorigin href="/assets/dist-B5Yem2Jn.js">
|
|
28
|
+
<link rel="stylesheet" crossorigin href="/assets/index-BEorm4a5.css">
|
|
26
29
|
</head>
|
|
27
30
|
<body>
|
|
28
31
|
<div id="app"></div>
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "aiex-cli",
|
|
3
3
|
"type": "module",
|
|
4
|
-
"version": "0.0.
|
|
4
|
+
"version": "0.0.2-beta.1",
|
|
5
5
|
"description": "JSON Schema → SQLite with AI-powered data extraction",
|
|
6
6
|
"author": "OSpoon <zxin088@gmail.com>",
|
|
7
7
|
"license": "MIT",
|
|
@@ -46,6 +46,10 @@
|
|
|
46
46
|
"@ai-sdk/openai-compatible": "^2.0.47",
|
|
47
47
|
"@clack/prompts": "^1.2.0",
|
|
48
48
|
"@hono/node-server": "^1.0.0",
|
|
49
|
+
"@hono/zod-validator": "^0.8.0",
|
|
50
|
+
"@langfuse/otel": "^5.3.0",
|
|
51
|
+
"@notionhq/client": "^5.22.0",
|
|
52
|
+
"@opentelemetry/sdk-trace-node": "^2.7.1",
|
|
49
53
|
"ai": "^6.0.182",
|
|
50
54
|
"better-sqlite3": "^11.0.0",
|
|
51
55
|
"citty": "^0.2.2",
|
|
@@ -57,9 +61,19 @@
|
|
|
57
61
|
"drizzle-orm": "^0.38.4",
|
|
58
62
|
"es-toolkit": "^1.46.1",
|
|
59
63
|
"esbuild": "^0.19.12",
|
|
64
|
+
"execa": "^9.6.1",
|
|
60
65
|
"hono": "^4.0.0",
|
|
66
|
+
"jsonfile": "^6.2.1",
|
|
67
|
+
"jsonrepair": "^3.14.0",
|
|
68
|
+
"kysely": "^0.29.2",
|
|
69
|
+
"mime": "^4.1.0",
|
|
70
|
+
"open": "^11.0.0",
|
|
71
|
+
"p-retry": "^7.1.0",
|
|
61
72
|
"picocolors": "^1.1.1",
|
|
73
|
+
"proper-lockfile": "^4.1.2",
|
|
74
|
+
"tinyglobby": "^0.2.16",
|
|
62
75
|
"tsx": "^4.21.0",
|
|
76
|
+
"unpdf": "^1.6.2",
|
|
63
77
|
"update-notifier": "^7.3.1",
|
|
64
78
|
"zod": "^3.23.0"
|
|
65
79
|
},
|
|
@@ -67,7 +81,9 @@
|
|
|
67
81
|
"@antfu/eslint-config": "^8.1.1",
|
|
68
82
|
"@antfu/ni": "^30.1.0",
|
|
69
83
|
"@types/better-sqlite3": "^7.6.0",
|
|
84
|
+
"@types/jsonfile": "^6.1.4",
|
|
70
85
|
"@types/node": "^25.6.0",
|
|
86
|
+
"@types/proper-lockfile": "^4.1.4",
|
|
71
87
|
"@types/update-notifier": "^6.0.8",
|
|
72
88
|
"@vitest/coverage-v8": "^4.1.4",
|
|
73
89
|
"eslint": "^10.2.0",
|
|
@@ -6,6 +6,8 @@ import process from 'node:process'
|
|
|
6
6
|
import { fileURLToPath } from 'node:url'
|
|
7
7
|
import Database from 'better-sqlite3'
|
|
8
8
|
import * as esbuild from 'esbuild'
|
|
9
|
+
import { readFile as readJsonFile, writeFile as writeJsonFile } from 'jsonfile'
|
|
10
|
+
import lockfile from 'proper-lockfile'
|
|
9
11
|
import { sanitizeMigrationName } from './migration-name'
|
|
10
12
|
|
|
11
13
|
const require = createRequire(import.meta.url)
|
|
@@ -64,14 +66,14 @@ async function loadPrevSnapshot(migrationsPath: string): Promise<DrizzleSQLiteSn
|
|
|
64
66
|
const metaPath = path.join(migrationsPath, 'meta', '_journal.json')
|
|
65
67
|
|
|
66
68
|
try {
|
|
67
|
-
const journal =
|
|
69
|
+
const journal = await readJsonFile(metaPath)
|
|
68
70
|
if (!journal.entries?.length)
|
|
69
71
|
return null
|
|
70
72
|
|
|
71
73
|
const latestEntry = journal.entries[journal.entries.length - 1]
|
|
72
74
|
const snapshotPath = path.join(migrationsPath, 'meta', `${latestEntry.tag}_snapshot.json`)
|
|
73
75
|
|
|
74
|
-
return
|
|
76
|
+
return await readJsonFile(snapshotPath)
|
|
75
77
|
}
|
|
76
78
|
catch {
|
|
77
79
|
return null
|
|
@@ -90,7 +92,7 @@ async function saveSnapshot(
|
|
|
90
92
|
let journal: { version: string, dialect: string, entries: Array<{ idx: number, version: string, when: number, tag: string, breakpoints: boolean }> }
|
|
91
93
|
|
|
92
94
|
try {
|
|
93
|
-
journal =
|
|
95
|
+
journal = await readJsonFile(journalPath)
|
|
94
96
|
}
|
|
95
97
|
catch {
|
|
96
98
|
journal = { version: '6', dialect: 'sqlite', entries: [] }
|
|
@@ -101,7 +103,7 @@ async function saveSnapshot(
|
|
|
101
103
|
const tag = `${String(idx).padStart(4, '0')}_${suffix}`
|
|
102
104
|
|
|
103
105
|
const snapshotPath = path.join(metaPath, `${tag}_snapshot.json`)
|
|
104
|
-
await
|
|
106
|
+
await writeJsonFile(snapshotPath, snapshot, { spaces: 2, EOL: '\n' })
|
|
105
107
|
|
|
106
108
|
journal.entries.push({
|
|
107
109
|
idx,
|
|
@@ -110,7 +112,7 @@ async function saveSnapshot(
|
|
|
110
112
|
tag,
|
|
111
113
|
breakpoints: true,
|
|
112
114
|
})
|
|
113
|
-
await
|
|
115
|
+
await writeJsonFile(journalPath, journal, { spaces: 2, EOL: '\n' })
|
|
114
116
|
|
|
115
117
|
return tag
|
|
116
118
|
}
|
|
@@ -147,53 +149,27 @@ function applyMigrationWithTransaction(dbPath: string, sqlStatements: string[]):
|
|
|
147
149
|
}
|
|
148
150
|
}
|
|
149
151
|
|
|
150
|
-
// Simple file lock mechanism
|
|
151
152
|
const LOCK_FILE = '.migrate.lock'
|
|
152
153
|
|
|
153
|
-
async function
|
|
154
|
-
const lockPath = path.join(aiexDir, LOCK_FILE)
|
|
154
|
+
async function acquireMigrationLock(aiexDir: string): Promise<() => Promise<void>> {
|
|
155
155
|
await fs.mkdir(aiexDir, { recursive: true })
|
|
156
156
|
|
|
157
|
-
// Try to create lock file atomically using exclusive write
|
|
158
157
|
try {
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
158
|
+
return await lockfile.lock(aiexDir, {
|
|
159
|
+
lockfilePath: path.join(aiexDir, LOCK_FILE),
|
|
160
|
+
realpath: false,
|
|
161
|
+
stale: 300000,
|
|
162
|
+
update: 10000,
|
|
163
|
+
retries: 0,
|
|
164
|
+
})
|
|
162
165
|
}
|
|
163
|
-
catch (
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
const content = await fs.readFile(lockPath, 'utf-8')
|
|
168
|
-
const [pidStr, timestampStr] = content.split('\n')
|
|
169
|
-
const lockPid = Number.parseInt(pidStr, 10)
|
|
170
|
-
const lockTime = Number.parseInt(timestampStr, 10)
|
|
171
|
-
|
|
172
|
-
// Check if lock is stale (> 5 minutes old) or process is dead
|
|
173
|
-
const lockAge = Date.now() - lockTime
|
|
174
|
-
if (lockAge > 300000) {
|
|
175
|
-
// Lock is stale, remove it and retry
|
|
176
|
-
await fs.unlink(lockPath)
|
|
177
|
-
return acquireLock(aiexDir)
|
|
178
|
-
}
|
|
179
|
-
|
|
180
|
-
throw new Error(`Migration is already running (PID ${lockPid}, started ${Math.round(lockAge / 1000)}s ago). Wait for it to complete or remove ${lockPath} if stale.`)
|
|
181
|
-
}
|
|
182
|
-
catch {
|
|
183
|
-
// Can't read lock file, it might be corrupted - remove and retry
|
|
184
|
-
await fs.unlink(lockPath).catch(() => {})
|
|
185
|
-
return acquireLock(aiexDir)
|
|
186
|
-
}
|
|
187
|
-
}
|
|
188
|
-
throw e
|
|
166
|
+
catch (error) {
|
|
167
|
+
const lockPath = path.join(aiexDir, LOCK_FILE)
|
|
168
|
+
const message = error instanceof Error ? error.message : String(error)
|
|
169
|
+
throw new Error(`Migration is already running or the lock could not be acquired. Wait for it to complete or remove ${lockPath} if stale. ${message}`)
|
|
189
170
|
}
|
|
190
171
|
}
|
|
191
172
|
|
|
192
|
-
async function releaseLock(aiexDir: string): Promise<void> {
|
|
193
|
-
const lockPath = path.join(aiexDir, LOCK_FILE)
|
|
194
|
-
await fs.unlink(lockPath).catch(() => {})
|
|
195
|
-
}
|
|
196
|
-
|
|
197
173
|
async function main(): Promise<void> {
|
|
198
174
|
const args = process.argv.slice(2)
|
|
199
175
|
const schemaPath = args[0]
|
|
@@ -209,11 +185,21 @@ async function main(): Promise<void> {
|
|
|
209
185
|
try {
|
|
210
186
|
// Acquire lock to prevent concurrent migrations
|
|
211
187
|
const aiexDir = path.dirname(path.dirname(migrationsPath))
|
|
212
|
-
await
|
|
188
|
+
const releaseLock = await acquireMigrationLock(aiexDir)
|
|
213
189
|
|
|
214
190
|
try {
|
|
215
191
|
const exports = await loadSchemaExports(schemaPath)
|
|
216
|
-
|
|
192
|
+
|
|
193
|
+
// Check if database file exists — if missing, force full migration
|
|
194
|
+
let dbMissing = false
|
|
195
|
+
try {
|
|
196
|
+
await fs.access(dbPath)
|
|
197
|
+
}
|
|
198
|
+
catch {
|
|
199
|
+
dbMissing = true
|
|
200
|
+
}
|
|
201
|
+
|
|
202
|
+
const prevSnapshot = dbMissing ? null : await loadPrevSnapshot(migrationsPath)
|
|
217
203
|
const currentSnapshot = await generateSQLiteDrizzleJson(exports, prevSnapshot?.id)
|
|
218
204
|
|
|
219
205
|
const prev = prevSnapshot || EMPTY_SNAPSHOT
|
|
@@ -237,7 +223,7 @@ async function main(): Promise<void> {
|
|
|
237
223
|
console.log(JSON.stringify({ success: true, changes: sqlStatements.length, tag }))
|
|
238
224
|
}
|
|
239
225
|
finally {
|
|
240
|
-
await releaseLock(
|
|
226
|
+
await releaseLock()
|
|
241
227
|
}
|
|
242
228
|
}
|
|
243
229
|
catch (error: unknown) {
|