mysqlsyncr 1.1.12 → 1.2.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 +59 -0
- package/__tests__/acceptCurrent.test.js +117 -0
- package/__tests__/columnAttributes.test.js +101 -0
- package/__tests__/options.test.js +259 -0
- package/__tests__/parser.test.js +167 -166
- package/__tests__/parser2.test.js +155 -152
- package/__tests__/paths.test.js +21 -0
- package/__tests__/prompt.test.js +106 -0
- package/__tests__/sync.test.js +348 -0
- package/__tests__/templateDrift.test.js +72 -0
- package/__tests__/versions.test.js +138 -0
- package/dist/index.cjs +4059 -1733
- package/dist/index.js +4101 -1777
- package/package.json +66 -59
- package/rollup.config.js +2 -1
- package/src/DBStructureChecker.js +47 -0
- package/src/acceptCurrent.js +225 -0
- package/src/apply.js +254 -136
- package/src/cli.js +61 -34
- package/src/compare.js +106 -92
- package/src/differences.js +258 -212
- package/src/dump.js +63 -54
- package/src/getters.js +151 -139
- package/src/index.js +223 -169
- package/src/loggers.js +156 -139
- package/src/normalizers.js +28 -6
- package/src/options.js +133 -0
- package/src/parsers.js +82 -36
- package/src/paths.js +41 -0
- package/src/prompt.js +109 -0
- package/src/rebuild.js +106 -0
- package/src/rows.js +46 -0
- package/src/socketServer.js +106 -24
- package/src/templateDrift.js +93 -0
- package/src/versions.js +112 -0
- package/ui/README.md +55 -40
- package/ui/dist/spa/assets/KFOMCnqEu92Fr1ME7kSn66aGLdTylUAMQXC89YmC2DPNWuYjalmUiAw-k1h7X_-h.woff +0 -0
- package/ui/dist/spa/assets/KFOMCnqEu92Fr1ME7kSn66aGLdTylUAMQXC89YmC2DPNWuZtalmUiAw-B7du-70m.woff +0 -0
- package/ui/dist/spa/assets/KFOMCnqEu92Fr1ME7kSn66aGLdTylUAMQXC89YmC2DPNWuaabVmUiAw-CoAZ_DKt.woff +0 -0
- package/ui/dist/spa/assets/KFOMCnqEu92Fr1ME7kSn66aGLdTylUAMQXC89YmC2DPNWub2bVmUiAw-D0406B4n.woff +0 -0
- package/ui/dist/spa/assets/KFOMCnqEu92Fr1ME7kSn66aGLdTylUAMQXC89YmC2DPNWubEbFmUiAw-CnAg2DeQ.woff +0 -0
- package/ui/dist/spa/assets/KFOMCnqEu92Fr1ME7kSn66aGLdTylUAMQXC89YmC2DPNWubEbVmUiAw-BG9VWE5v.woff +0 -0
- package/ui/dist/spa/assets/MainLayout-DLH1Kfg-.js +1 -0
- package/ui/dist/spa/assets/axios-2hQ_j_Tz.js +1 -0
- package/ui/dist/spa/assets/flUhRq6tzZclQEJ-Vdg-IuiaDsNa-OUIwM9U8.woff +0 -0
- package/ui/dist/spa/assets/index-Cqrg985P.js +23 -0
- package/ui/dist/spa/assets/index-pOWtXlXQ.css +1 -0
- package/ui/dist/spa/index.html +2 -2
- package/ui/package.json +43 -42
- package/ui/src/components/DefinitionDiff.vue +169 -0
- package/ui/src/pages/MainComponent.vue +704 -78
- package/ui/dist/spa/assets/KFOkCnqEu92Fr1MmgVxIIzQ-Y2mpUUkw.woff +0 -0
- package/ui/dist/spa/assets/KFOlCnqEu92Fr1MmEU9fBBc--ViM7Ag4Q.woff +0 -0
- package/ui/dist/spa/assets/KFOlCnqEu92Fr1MmSU5fBBc--CrFzpgl6.woff +0 -0
- package/ui/dist/spa/assets/KFOlCnqEu92Fr1MmWUlfBBc--CW3_XjG_.woff +0 -0
- package/ui/dist/spa/assets/KFOlCnqEu92Fr1MmYUtfBBc--Dr8fnyGc.woff +0 -0
- package/ui/dist/spa/assets/KFOmCnqEu92Fr1Mu4mxM-DAYh6T4l.woff +0 -0
- package/ui/dist/spa/assets/MainLayout-CvQD3xKr.js +0 -1
- package/ui/dist/spa/assets/axios-C0XcclIb.js +0 -1
- package/ui/dist/spa/assets/flUhRq6tzZclQEJ-Vdg-IuiaDsNa-Dr0goTwe.woff +0 -0
- package/ui/dist/spa/assets/index-CwWo8xmP.js +0 -40
- package/ui/dist/spa/assets/index-kXpA8n8r.css +0 -5
package/ui/README.md
CHANGED
|
@@ -1,40 +1,55 @@
|
|
|
1
|
-
# MySQLsyncr (mysqlsyncr)
|
|
2
|
-
|
|
3
|
-
A simple ui for the sync features in mysqlsyncr
|
|
4
|
-
|
|
5
|
-
##
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
1
|
+
# MySQLsyncr (mysqlsyncr)
|
|
2
|
+
|
|
3
|
+
A simple ui for the sync features in mysqlsyncr
|
|
4
|
+
|
|
5
|
+
## Requirements
|
|
6
|
+
|
|
7
|
+
Building or running the UI in development mode needs **Node.js 22.22.0 or later** (or 24, 26, 28, 30). The Quasar CLI (`@quasar/app-vite`) checks this itself and stops with "INCOMPATIBLE NODE VERSION" on anything older, even though its `package.json` accepts any Node 22.
|
|
8
|
+
|
|
9
|
+
```bash
|
|
10
|
+
node -v # check
|
|
11
|
+
nvm install 22 # then nvm use 22, if you use nvm
|
|
12
|
+
```
|
|
13
|
+
|
|
14
|
+
This only applies to building. `mysqlsyncr ui` serves the prebuilt files in `dist/spa`, and installing or running mysqlsyncr doesn't need these packages or this Node version.
|
|
15
|
+
|
|
16
|
+
## Install the dependencies
|
|
17
|
+
```bash
|
|
18
|
+
yarn
|
|
19
|
+
# or
|
|
20
|
+
npm install
|
|
21
|
+
```
|
|
22
|
+
|
|
23
|
+
### Start the app in development mode (hot-code reloading, error reporting, etc.)
|
|
24
|
+
```bash
|
|
25
|
+
quasar dev
|
|
26
|
+
```
|
|
27
|
+
|
|
28
|
+
|
|
29
|
+
### Lint the files
|
|
30
|
+
```bash
|
|
31
|
+
yarn lint
|
|
32
|
+
# or
|
|
33
|
+
npm run lint
|
|
34
|
+
```
|
|
35
|
+
|
|
36
|
+
|
|
37
|
+
### Format the files
|
|
38
|
+
```bash
|
|
39
|
+
yarn format
|
|
40
|
+
# or
|
|
41
|
+
npm run format
|
|
42
|
+
```
|
|
43
|
+
|
|
44
|
+
|
|
45
|
+
### Build the app for production
|
|
46
|
+
```bash
|
|
47
|
+
npm run build
|
|
48
|
+
# or
|
|
49
|
+
quasar build
|
|
50
|
+
```
|
|
51
|
+
|
|
52
|
+
This writes the UI to `dist/spa`, which is what `mysqlsyncr ui` serves and what gets published. It's committed to the repository, so rebuild and commit it after changing anything in `src/`; otherwise the served UI won't include the change.
|
|
53
|
+
|
|
54
|
+
### Customize the configuration
|
|
55
|
+
See [Configuring quasar.config.js](https://v2.quasar.dev/quasar-cli-vite/quasar-config-js).
|
package/ui/dist/spa/assets/KFOMCnqEu92Fr1ME7kSn66aGLdTylUAMQXC89YmC2DPNWuYjalmUiAw-k1h7X_-h.woff
ADDED
|
Binary file
|
package/ui/dist/spa/assets/KFOMCnqEu92Fr1ME7kSn66aGLdTylUAMQXC89YmC2DPNWuZtalmUiAw-B7du-70m.woff
ADDED
|
Binary file
|
package/ui/dist/spa/assets/KFOMCnqEu92Fr1ME7kSn66aGLdTylUAMQXC89YmC2DPNWuaabVmUiAw-CoAZ_DKt.woff
ADDED
|
Binary file
|
package/ui/dist/spa/assets/KFOMCnqEu92Fr1ME7kSn66aGLdTylUAMQXC89YmC2DPNWub2bVmUiAw-D0406B4n.woff
ADDED
|
Binary file
|
package/ui/dist/spa/assets/KFOMCnqEu92Fr1ME7kSn66aGLdTylUAMQXC89YmC2DPNWubEbFmUiAw-CnAg2DeQ.woff
ADDED
|
Binary file
|
package/ui/dist/spa/assets/KFOMCnqEu92Fr1ME7kSn66aGLdTylUAMQXC89YmC2DPNWubEbVmUiAw-BG9VWE5v.woff
ADDED
|
Binary file
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{A as e,C as t,D as n,E as r,F as i,I as a,L as o,M as s,N as c,O as l,P as u,R as d,S as f,T as p,_ as m,a as h,b as g,d as _,g as v,h as y,i as b,j as x,k as S,l as C,m as w,n as T,o as E,p as D,r as O,s as k,t as A,u as j,v as M,w as N,x as P,y as F}from"./index-Cqrg985P.js";var I=m({name:`QPageContainer`,setup(n,{slots:r}){let i=_(),a=p(w,D);if(a===D)return console.error(`QPageContainer needs to be child of QLayout`),D;e(y,!0);let o=F(()=>{let e={};return a.header.space&&(e.paddingTop=`${a.header.size}px`),a.right.space&&(e[`padding${i.lang.rtl?`Left`:`Right`}`]=`${a.right.size}px`),a.footer.space&&(e.paddingBottom=`${a.footer.size}px`),a.left.space&&(e[`padding${i.lang.rtl?`Right`:`Left`}`]=`${a.left.size}px`),e});return()=>t(`div`,{class:`q-page-container`,style:o.value},j(r.default))}});function L(e){let t=o({width:0,height:0}),i=f(),a=null,s=null,c=null,l=0,p,m={width:-1,height:-1};function h(){c!==null&&(clearTimeout(c),c=null)}function g(){if(h(),s===null)return;let{offsetWidth:e,offsetHeight:n}=a;(e!==m.width||n!==m.height)&&(m={width:e,height:n},t.value=m,p?.(m))}function _(){l>0?c===null&&(c=setTimeout(g,l)):g()}function v(){h(),s!==null&&(s.disconnect(),s=null)}let y=new u(()=>{let t=d(e)??{},n=C(t.target,i);l=Number(t.debounce)||0,p=t.onResize,n!==a&&(v(),a=n,m={width:-1,height:-1}),t.disabled===!0||a===null?v():s===null&&(s=new ResizeObserver(_),s.observe(a,{box:`border-box`}),g())});return y.scheduler=()=>{y.run()},i===null?y.run():(n(()=>{y.run()}),r(v)),{elementSize:t,refreshElementSize:g,stopElementSize(){v(),a=null,y.stop()}}}var{passive:R}=v;function z(e){let t=o({top:0,left:0}),i=a(`down`),s=a(!1),c=o({top:0,left:0}),l=o({top:0,left:0}),p={scrollPosition:t,scrollDirection:i,scrollDirectionChanged:s,scrollDelta:c,scrollInflectionPoint:l},m=f(),h=m!==null||N()?_():void 0,g=null,v=!1,y=null,x=`vertical`,S,w,T,D=0,k=0,A=`down`,j={top:0,left:0};function M(){y!==null&&(y(),y=null)}function P(){if(M(),g===null)return;let e=Math.max(0,E(g)),n=O(g),r=e-D,a=n-k;if(x===`vertical`&&r===0||x===`horizontal`&&a===0||r===0&&a===0)return;let o=Math.abs(r)>=Math.abs(a)?r<0?`up`:`down`:a<0?`left`:`right`,u=A!==o,d={top:e,left:n},f={top:r,left:a};D=e,k=n,t.value=d,c.value=f,s.value=u,u&&(A=o,j=d,i.value=o,l.value=d),T?.({position:d,direction:o,directionChanged:u,delta:f,inflectionPoint:j})}function F(){if(S===0)P();else if(y===null){if(S===void 0){let e=requestAnimationFrame(P);y=()=>{cancelAnimationFrame(e)}}else{let e=setTimeout(P,S);y=()=>{clearTimeout(e)}}}}function I(){M(),v&&=(g.removeEventListener(`scroll`,F,R),!1)}let L=new u(()=>{let n=d(e)??{},r=d(n.scrollTarget),a=C(n.target,m),o=r==null?a===null?null:b(a):b(a,r);x=n.axis??`vertical`,S=n.debounce===void 0||n.debounce===null?void 0:Number(n.debounce)||0,T=n.onScroll,o!==g&&(I(),g=o,(D!==0||k!==0)&&(D=k=0,t.value={top:D,left:k},c.value={top:D,left:k}),A!==`down`&&(A=`down`,i.value=A),s.value&&=!1,(j.top!==0||j.left!==0)&&(j={top:0,left:0},l.value=j));let u=h?.lang.rtl===!0,f=w!==void 0&&w!==u;w=u,n.disabled===!0||g===null?I():v?f&&P():(g.addEventListener(`scroll`,F,R),v=!0,P())});return L.scheduler=()=>{L.run()},m===null?L.run():(n(()=>{L.run()}),r(I)),{...p,refreshScroll:P,stopScroll(){I(),g=null,L.stop()}}}var B=/^(h|l)h(h|r) lpr (f|l)f(f|r)$/,V=m({name:`QLayout`,props:{container:Boolean,view:{type:String,default:`hhh lpr fff`,validator:e=>B.test(e.toLowerCase())},onScroll:Function,onScrollHeight:Function,onResize:Function},setup(n,{slots:r,emit:c}){let u=_(),d=o(null),f=o(null),p=()=>n.container?f.value:d.value,m=a(u.screen.height),g=a(n.container?0:u.screen.width),v=a({position:0,direction:`down`,inflectionPoint:0}),y=a(0),b=a(M.value?0:h()),x=F(()=>`q-layout q-layout--`+(n.container?`containerized`:`standard`)),S=F(()=>n.container?null:{minHeight:u.screen.height+`px`}),C=F(()=>b.value===0?null:{[u.lang.rtl?`left`:`right`]:`${b.value}px`}),E=F(()=>b.value===0?null:{[u.lang.rtl?`right`:`left`]:0,[u.lang.rtl?`left`:`right`]:`-${b.value}px`,width:`calc(100% + ${b.value}px)`}),D=null;function O(e){let t={position:e.position.top,direction:e.direction,directionChanged:e.directionChanged,inflectionPoint:e.inflectionPoint.top,delta:e.delta.top};n.container||!document.qScrollPrevented?(D=null,k(t)):D=t}function k(e){v.value=e,n.onScroll!==void 0&&c(`scroll`,e)}function N(e){let{height:t,width:r}=e,i=!1;m.value!==t&&(i=!0,m.value=t,n.onScrollHeight!==void 0&&c(`scrollHeight`,t),I()),g.value!==r&&(i=!0,g.value=r),i&&n.onResize!==void 0&&c(`resize`,e)}function P({height:e}){y.value!==e&&(y.value=e,I())}function I(){if(n.container){let e=m.value>y.value?h():0;b.value!==e&&(b.value=e)}}z({target:p,onScroll:O}),L({target:p,debounce:100,onResize:N}),L(()=>({target:d,debounce:100,disabled:n.container!==!0,onResize:P}));let R=null,B={instances:{},view:F(()=>n.view),isContainer:F(()=>n.container),rootRef:d,height:m,containerHeight:y,scrollbarWidth:b,totalWidth:F(()=>n.container?g.value+b.value:u.screen.width),rows:F(()=>{let e=n.view.toLowerCase().split(` `);return{top:[...e[0]],middle:[...e[1]],bottom:[...e[2]]}}),header:i({size:0,offset:0,space:!1}),right:i({size:300,offset:0,space:!1}),footer:i({size:0,offset:0,space:!1}),left:i({size:300,offset:0,space:!1}),scroll:v,animate(){R===null?document.body.classList.add(`q-body--layout-animate`):clearTimeout(R),R=setTimeout(()=>{R=null,document.body.classList.remove(`q-body--layout-animate`)},155)},update(e,t,n){B[e][t]=n}};e(w,B);{let e=()=>{if(D!==null){let e=D;D=null,k(e)}};A(e),l(()=>{T(e)})}if(h()>0){let e=null,t=document.documentElement,r=()=>{e=null,t.classList.remove(`hide-scrollbar`)},i=()=>{if(e===null){if(t.scrollHeight>u.screen.height)return;t.classList.add(`hide-scrollbar`)}else clearTimeout(e);e=setTimeout(r,300)},a=t=>{e!==null&&t===`remove`&&(clearTimeout(e),r()),window[`${t}EventListener`](`resize`,i)};s(()=>n.container?`remove`:`add`,a),n.container||a(`add`),l(()=>{a(`remove`)})}return()=>{let e=t(`div`,{class:x.value,style:S.value,ref:n.container?f:d,tabindex:-1},j(r.default));return n.container?t(`div`,{class:`q-layout-container overflow-hidden`,ref:d},[t(`div`,{class:`absolute-full`,style:C.value},[t(`div`,{class:`scroll`,style:E.value},[e])])]):e}}}),H={};function U(e,t){let n=x(`router-view`);return S(),g(V,{view:`lHh Lpr lFf`},{default:c(()=>[P(I,null,{default:c(()=>[P(n)]),_:1})]),_:1})}var W=k(H,[[`render`,U]]);export{W as default};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{c as e,f as t}from"./index-Cqrg985P.js";var n=e.create({baseURL:`/`}),r=t(({app:t})=>{t.config.globalProperties.$axios=e,t.config.globalProperties.$api=n});export{n as api,r as default};
|
|
Binary file
|