@lytjs/compat 4.2.0 → 5.0.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 +1 -1
- package/dist/bin/vue-to-lyt.cjs +19 -13
- package/dist/bin/vue-to-lyt.mjs +15 -9
- package/dist/index.cjs +18 -10
- package/dist/index.mjs +11 -3
- package/dist/types/built-in-components.d.ts +5 -5
- package/dist/types/built-in-components.d.ts.map +1 -1
- package/dist/types/index.d.ts +5 -3
- package/dist/types/index.d.ts.map +1 -1
- package/dist/types/migrate.d.ts +86 -0
- package/dist/types/migrate.d.ts.map +1 -0
- package/dist/types/sfc-converter.d.ts +42 -0
- package/dist/types/sfc-converter.d.ts.map +1 -1
- package/dist/types/types.d.ts +52 -8
- package/dist/types/types.d.ts.map +1 -1
- package/dist/types/vue3-api.d.ts +77 -1
- package/dist/types/vue3-api.d.ts.map +1 -1
- package/package.json +5 -12
package/README.md
CHANGED
|
@@ -51,7 +51,7 @@ createApp(App).mount('#app');
|
|
|
51
51
|
|
|
52
52
|
```javascript
|
|
53
53
|
import {
|
|
54
|
-
ref, shallowRef, toRef, toRefs, unref,
|
|
54
|
+
ref, shallowRef, toRef, toRefs, unref,
|
|
55
55
|
reactive, readonly, shallowReactive,
|
|
56
56
|
computed,
|
|
57
57
|
watch, watchEffect, watchPostEffect, watchSyncEffect,
|
package/dist/bin/vue-to-lyt.cjs
CHANGED
|
@@ -1,17 +1,23 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
|
-
var
|
|
3
|
-
|
|
4
|
-
|
|
2
|
+
"use strict";var k=Object.create;var S=Object.defineProperty;var R=Object.getOwnPropertyDescriptor;var L=Object.getOwnPropertyNames;var M=Object.getPrototypeOf,E=Object.prototype.hasOwnProperty;var T=(n,e,t,s)=>{if(e&&typeof e=="object"||typeof e=="function")for(let r of L(e))!E.call(n,r)&&r!==t&&S(n,r,{get:()=>e[r],enumerable:!(s=R(e,r))||s.enumerable});return n};var w=(n,e,t)=>(t=n!=null?k(M(n)):{},T(e||!n||!n.__esModule?S(t,"default",{value:n,enumerable:!0}):t,n));var a=w(require("fs")),p=w(require("path"));var m=class{constructor(e){this.warnings=[];this.content=e}getWarnings(){return[...this.warnings]}addWarning(e,t,s){this.warnings.push({type:e,message:t,suggestion:s})}parse(){let e={template:null,script:null,scriptSetup:null,styles:[],customBlocks:[]},t=this.content.match(/<template[^>]*>([\s\S]*?)<\/template>/);t&&(e.template=t[1].trim());let s=this.content.match(/<script[^>]*setup[^>]*>([\s\S]*?)<\/script>/);if(s&&(e.scriptSetup=s[1].trim()),!e.scriptSetup){let c=this.content.match(/<script(?:\s[^>]*?)?>([\s\S]*?)<\/script>/);c&&(e.script=c[1].trim())}let r=/<style([^>]*)>([\s\S]*?)<\/style>/g,i;for(;(i=r.exec(this.content))!==null;){let c={},u=i[1].match(/(\w+)(?:="([^"]*)")?/g);if(u)for(let l of u){let[g,f]=l.split("=");c[g.trim()]=f?f.replace(/"/g,""):""}e.styles.push({content:i[2].trim(),attrs:c})}let o=/<(template|script|style)([^>]*)>([\s\S]*?)<\/\1>/g,v=this.content.match(/<(\w+)([^>]*)>([\s\S]*?)<\/\1>/g)||[];for(let c of v){let u=c.match(/^<(\w+)/);if(!u)continue;let l=u[1];if(["template","script","style"].includes(l))continue;let g=c.match(new RegExp(`^<${l}[^>]*>([\\s\\S]*?)</${l}>$`));if(!g)continue;let f={},d=c.match(new RegExp(`^<${l}([^>]*)>`));if(d){let h=d[1].match(/(\w+)(?:="([^"]*)")?/g);if(h)for(let W of h){let[x,y]=W.split("=");f[x.trim()]=y?y.replace(/"/g,""):""}}e.customBlocks.push({tag:l,content:g[1].trim(),attrs:f})}return e}convertTemplate(e){let t=e;return t=t.replace(/v-for="([^"]*)"/g,'v-each="$1"'),t=t.replace(/:key=/g,"key="),t=t.replace(/v-if=/g,"if="),t=t.replace(/v-else-if=/g,"else-if="),t=t.replace(/v-else/g,"else"),t=t.replace(/v-show=/g,"show="),t=t.replace(/v-html=/g,"html="),t=t.replace(/v-text=/g,"text="),t=t.replace(/\bv-once\b/g,"once"),t=t.replace(/\bv-pre\b/g,"pre"),t=t.replace(/\bv-cloak\b/g,"cloak"),t=t.replace(/v-slot:/g,"slot:"),t=t.replace(/v-on:/g,"on:"),t=t.replace(/v-model\.(\w+)="/g,'model.$1="'),t=t.replace(/v-model="/g,'model="'),t=t.replace(/v-bind:/g,":"),/v-memo/.test(t)&&(this.addWarning("directive","v-memo \u6307\u4EE4\u5728 Lyt.js \u4E2D\u4E0D\u652F\u6301","\u4F7F\u7528 computed \u5C5E\u6027\u66FF\u4EE3\u624B\u52A8\u7F13\u5B58"),t=t.replace(/\s*v-memo="[^"]*"/g,"")),/v-is/.test(t)&&(this.addWarning("directive","v-is \u52A8\u6001\u7EC4\u4EF6\u8BED\u6CD5\u5728 Lyt.js \u4E2D\u53EF\u80FD\u9700\u8981\u8C03\u6574","\u4F7F\u7528 :is \u5C5E\u6027\u66FF\u4EE3 v-is"),t=t.replace(/v-is=/g,":is=")),t}convertScript(e,t=!1){let s=e;return s=s.replace(/from\s+['"]vue['"]/g,"from '@lytjs/compat'"),s=s.replace(/from\s+['"]vue-router['"]/g,"from '@lytjs/router'"),s=s.replace(/from\s+['"]pinia['"]/g,"from '@lytjs/store'"),s=s.replace(/from\s+['"]vuex['"]/g,"from '@lytjs/store'"),t&&(/defineProps/.test(s)&&this.addWarning("api","defineProps \u662F\u7F16\u8BD1\u5668\u5B8F\uFF0C\u9700\u8981\u624B\u52A8\u8F6C\u6362\u4E3A defineComponent({ props: {...} })","\u5728 Lyt.js \u4E2D\u4F7F\u7528 defineComponent \u7684 props \u9009\u9879"),/defineEmits/.test(s)&&this.addWarning("api","defineEmits \u662F\u7F16\u8BD1\u5668\u5B8F\uFF0C\u9700\u8981\u624B\u52A8\u8F6C\u6362\u4E3A defineComponent({ emits: {...} })","\u5728 Lyt.js \u4E2D\u4F7F\u7528 defineComponent \u7684 emits \u9009\u9879"),/defineExpose/.test(s)&&this.addWarning("api","defineExpose \u5728 Lyt.js \u4E2D\u4E0D\u9700\u8981","\u5728 Lyt.js \u4E2D setup \u8FD4\u56DE\u7684\u5BF9\u8C61\u81EA\u52A8\u66B4\u9732\u4E3A\u516C\u5171\u5C5E\u6027"),/withDefaults/.test(s)&&this.addWarning("api","withDefaults \u662F\u7F16\u8BD1\u5668\u5B8F\uFF0C\u9700\u8981\u624B\u52A8\u8F6C\u6362","\u5728 defineComponent \u7684 props \u9009\u9879\u4E2D\u4F7F\u7528 default \u5B57\u6BB5"),/useSlots/.test(s)&&this.addWarning("api","useSlots \u5728 Lyt.js \u4E2D\u9700\u8981\u901A\u8FC7 setup \u4E0A\u4E0B\u6587\u8BBF\u95EE","\u4F7F\u7528 setup(props, { slots }) \u8BBF\u95EE\u63D2\u69FD"),/useAttrs/.test(s)&&this.addWarning("api","useAttrs \u5728 Lyt.js \u4E2D\u9700\u8981\u901A\u8FC7 setup \u4E0A\u4E0B\u6587\u8BBF\u95EE","\u4F7F\u7528 setup(props, { attrs }) \u8BBF\u95EE attrs"),s=this.convertScriptSetupToSetup(s)),s}convertScriptSetupToSetup(e){let t=e;return t=t.replace(/const\s+\w+\s*=\s*defineProps\s*\([^)]*\)\s*;?\s*\n?/g,`// [Compat] defineProps \u5DF2\u79FB\u9664\uFF0C\u8BF7\u5728 defineComponent({ props: {...} }) \u4E2D\u5B9A\u4E49
|
|
3
|
+
`),t=t.replace(/const\s+\w+\s*=\s*defineEmits\s*\([^)]*\)\s*;?\s*\n?/g,`// [Compat] defineEmits \u5DF2\u79FB\u9664\uFF0C\u8BF7\u5728 defineComponent({ emits: [...] }) \u4E2D\u5B9A\u4E49
|
|
4
|
+
`),t=t.replace(/defineExpose\s*\([^)]*\)\s*;?\s*\n?/g,`// [Compat] defineExpose \u5DF2\u79FB\u9664\uFF0Csetup \u8FD4\u56DE\u503C\u81EA\u52A8\u66B4\u9732
|
|
5
|
+
`),t=t.replace(/const\s+\w+\s*=\s*withDefaults\s*\([^)]*\)\s*;?\s*\n?/g,`// [Compat] withDefaults \u5DF2\u79FB\u9664\uFF0C\u8BF7\u5728 props \u9009\u9879\u4E2D\u4F7F\u7528 default
|
|
6
|
+
`),t}convertStyles(e){let t=[];for(let s of e){let r=Object.entries(s.attrs).map(([i,o])=>o?`${i}="${o}"`:i).join(" ");s.attrs.module!==void 0&&this.addWarning("feature","CSS Modules \u5728 Lyt.js \u4E2D\u4E0D\u652F\u6301","\u4F7F\u7528 scoped \u6837\u5F0F\u66FF\u4EE3"),t.push(`<style${r?" "+r:""}>
|
|
7
|
+
${s.content}
|
|
8
|
+
</style>`)}return t.join(`
|
|
5
9
|
|
|
6
|
-
`)}convert(){let
|
|
7
|
-
${
|
|
8
|
-
</template>`)}if(
|
|
9
|
-
${
|
|
10
|
-
</script>`)}else if(
|
|
11
|
-
${
|
|
12
|
-
</script>`)}
|
|
10
|
+
`)}convert(){let e=this.parse(),t=[];if(e.template){let s=this.convertTemplate(e.template);t.push(`<template>
|
|
11
|
+
${s}
|
|
12
|
+
</template>`)}if(e.scriptSetup){let s=this.convertScript(e.scriptSetup,!0);t.push(`<script setup>
|
|
13
|
+
${s}
|
|
14
|
+
</script>`)}else if(e.script){let s=this.convertScript(e.script,!1);t.push(`<script>
|
|
15
|
+
${s}
|
|
16
|
+
</script>`)}e.styles.length>0&&t.push(this.convertStyles(e.styles));for(let s of e.customBlocks){let r=Object.entries(s.attrs).map(([i,o])=>o?`${i}="${o}"`:i).join(" ");t.push(`<${s.tag}${r?" "+r:""}>
|
|
17
|
+
${s.content}
|
|
18
|
+
</${s.tag}>`)}return t.join(`
|
|
13
19
|
|
|
14
|
-
`)}};function
|
|
20
|
+
`)}convertWithWarnings(){return this.warnings=[],{code:this.convert(),warnings:this.warnings}}};function C(n){return new m(n).convert()}function P(){let n=process.argv.slice(2),e={input:"",recursive:!1,dryRun:!1,help:!1};for(let t=0;t<n.length;t++){let s=n[t];switch(s){case"-h":case"--help":e.help=!0;break;case"-r":case"--recursive":e.recursive=!0;break;case"-d":case"--dry-run":e.dryRun=!0;break;case"-o":case"--output":e.output=n[++t];break;default:e.input||(e.input=s);break}}return e}function b(){console.log(`
|
|
15
21
|
vue-to-lyt - \u5C06 Vue \u9879\u76EE\u8F6C\u6362\u4E3A Lyt.js \u9879\u76EE
|
|
16
22
|
|
|
17
23
|
\u7528\u6CD5:
|
|
@@ -32,5 +38,5 @@ vue-to-lyt - \u5C06 Vue \u9879\u76EE\u8F6C\u6362\u4E3A Lyt.js \u9879\u76EE
|
|
|
32
38
|
|
|
33
39
|
# \u8F6C\u6362\u5230\u6307\u5B9A\u8F93\u51FA\u76EE\u5F55
|
|
34
40
|
vue-to-lyt ./src --recursive --output ./lyt-src
|
|
35
|
-
`)}function
|
|
36
|
-
\u8F6C\u6362\u5B8C\u6210!`)}
|
|
41
|
+
`)}function $(n,e){try{let t=a.readFileSync(n,"utf-8"),s=C(t),r=e||n.replace(/\.vue$/,".lyt");return console.log(`[\u8F6C\u6362] ${n} -> ${r}`),console.log(t!==s?"[\u53D8\u66F4] \u6587\u4EF6\u5185\u5BB9\u5DF2\u8F6C\u6362":"[\u8DF3\u8FC7] \u6587\u4EF6\u5185\u5BB9\u65E0\u9700\u8F6C\u6362"),!0}catch(t){return console.error(`[\u9519\u8BEF] \u5904\u7406\u6587\u4EF6 ${n} \u65F6\u51FA\u9519:`,t),!1}}function j(n,e){let t=a.readdirSync(n);for(let s of t){let r=p.join(n,s);if(a.statSync(r).isDirectory()){if(s==="node_modules"||s===".git")continue;let o=e?p.join(e,s):void 0;j(r,o)}else if(s.endsWith(".vue")){let o;if(e){let v=p.relative(n,r);o=p.join(e,v.replace(/\.vue$/,".lyt"))}$(r,o)}}}function B(){let n=P();n.help&&(b(),process.exit(0)),n.input||(console.error("\u9519\u8BEF: \u8BF7\u6307\u5B9A\u8F93\u5165\u6587\u4EF6\u6216\u76EE\u5F55"),b(),process.exit(1));let e=p.resolve(n.input);a.existsSync(e)||(console.error(`\u9519\u8BEF: \u8DEF\u5F84\u4E0D\u5B58\u5728: ${e}`),process.exit(1));let t=a.statSync(e);t.isDirectory()?(n.recursive||(console.error("\u9519\u8BEF: \u8F93\u5165\u662F\u76EE\u5F55\uFF0C\u8BF7\u4F7F\u7528 --recursive \u9009\u9879"),process.exit(1)),j(e,n.output)):t.isFile()&&$(e,n.output),console.log(`
|
|
42
|
+
\u8F6C\u6362\u5B8C\u6210!`)}B();
|
package/dist/bin/vue-to-lyt.mjs
CHANGED
|
@@ -1,17 +1,23 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
|
-
import*as
|
|
2
|
+
import*as a from"fs";import*as p from"path";var m=class{constructor(e){this.warnings=[];this.content=e}getWarnings(){return[...this.warnings]}addWarning(e,t,s){this.warnings.push({type:e,message:t,suggestion:s})}parse(){let e={template:null,script:null,scriptSetup:null,styles:[],customBlocks:[]},t=this.content.match(/<template[^>]*>([\s\S]*?)<\/template>/);t&&(e.template=t[1].trim());let s=this.content.match(/<script[^>]*setup[^>]*>([\s\S]*?)<\/script>/);if(s&&(e.scriptSetup=s[1].trim()),!e.scriptSetup){let c=this.content.match(/<script(?:\s[^>]*?)?>([\s\S]*?)<\/script>/);c&&(e.script=c[1].trim())}let r=/<style([^>]*)>([\s\S]*?)<\/style>/g,i;for(;(i=r.exec(this.content))!==null;){let c={},u=i[1].match(/(\w+)(?:="([^"]*)")?/g);if(u)for(let l of u){let[g,f]=l.split("=");c[g.trim()]=f?f.replace(/"/g,""):""}e.styles.push({content:i[2].trim(),attrs:c})}let o=/<(template|script|style)([^>]*)>([\s\S]*?)<\/\1>/g,v=this.content.match(/<(\w+)([^>]*)>([\s\S]*?)<\/\1>/g)||[];for(let c of v){let u=c.match(/^<(\w+)/);if(!u)continue;let l=u[1];if(["template","script","style"].includes(l))continue;let g=c.match(new RegExp(`^<${l}[^>]*>([\\s\\S]*?)</${l}>$`));if(!g)continue;let f={},d=c.match(new RegExp(`^<${l}([^>]*)>`));if(d){let h=d[1].match(/(\w+)(?:="([^"]*)")?/g);if(h)for(let $ of h){let[j,y]=$.split("=");f[j.trim()]=y?y.replace(/"/g,""):""}}e.customBlocks.push({tag:l,content:g[1].trim(),attrs:f})}return e}convertTemplate(e){let t=e;return t=t.replace(/v-for="([^"]*)"/g,'v-each="$1"'),t=t.replace(/:key=/g,"key="),t=t.replace(/v-if=/g,"if="),t=t.replace(/v-else-if=/g,"else-if="),t=t.replace(/v-else/g,"else"),t=t.replace(/v-show=/g,"show="),t=t.replace(/v-html=/g,"html="),t=t.replace(/v-text=/g,"text="),t=t.replace(/\bv-once\b/g,"once"),t=t.replace(/\bv-pre\b/g,"pre"),t=t.replace(/\bv-cloak\b/g,"cloak"),t=t.replace(/v-slot:/g,"slot:"),t=t.replace(/v-on:/g,"on:"),t=t.replace(/v-model\.(\w+)="/g,'model.$1="'),t=t.replace(/v-model="/g,'model="'),t=t.replace(/v-bind:/g,":"),/v-memo/.test(t)&&(this.addWarning("directive","v-memo \u6307\u4EE4\u5728 Lyt.js \u4E2D\u4E0D\u652F\u6301","\u4F7F\u7528 computed \u5C5E\u6027\u66FF\u4EE3\u624B\u52A8\u7F13\u5B58"),t=t.replace(/\s*v-memo="[^"]*"/g,"")),/v-is/.test(t)&&(this.addWarning("directive","v-is \u52A8\u6001\u7EC4\u4EF6\u8BED\u6CD5\u5728 Lyt.js \u4E2D\u53EF\u80FD\u9700\u8981\u8C03\u6574","\u4F7F\u7528 :is \u5C5E\u6027\u66FF\u4EE3 v-is"),t=t.replace(/v-is=/g,":is=")),t}convertScript(e,t=!1){let s=e;return s=s.replace(/from\s+['"]vue['"]/g,"from '@lytjs/compat'"),s=s.replace(/from\s+['"]vue-router['"]/g,"from '@lytjs/router'"),s=s.replace(/from\s+['"]pinia['"]/g,"from '@lytjs/store'"),s=s.replace(/from\s+['"]vuex['"]/g,"from '@lytjs/store'"),t&&(/defineProps/.test(s)&&this.addWarning("api","defineProps \u662F\u7F16\u8BD1\u5668\u5B8F\uFF0C\u9700\u8981\u624B\u52A8\u8F6C\u6362\u4E3A defineComponent({ props: {...} })","\u5728 Lyt.js \u4E2D\u4F7F\u7528 defineComponent \u7684 props \u9009\u9879"),/defineEmits/.test(s)&&this.addWarning("api","defineEmits \u662F\u7F16\u8BD1\u5668\u5B8F\uFF0C\u9700\u8981\u624B\u52A8\u8F6C\u6362\u4E3A defineComponent({ emits: {...} })","\u5728 Lyt.js \u4E2D\u4F7F\u7528 defineComponent \u7684 emits \u9009\u9879"),/defineExpose/.test(s)&&this.addWarning("api","defineExpose \u5728 Lyt.js \u4E2D\u4E0D\u9700\u8981","\u5728 Lyt.js \u4E2D setup \u8FD4\u56DE\u7684\u5BF9\u8C61\u81EA\u52A8\u66B4\u9732\u4E3A\u516C\u5171\u5C5E\u6027"),/withDefaults/.test(s)&&this.addWarning("api","withDefaults \u662F\u7F16\u8BD1\u5668\u5B8F\uFF0C\u9700\u8981\u624B\u52A8\u8F6C\u6362","\u5728 defineComponent \u7684 props \u9009\u9879\u4E2D\u4F7F\u7528 default \u5B57\u6BB5"),/useSlots/.test(s)&&this.addWarning("api","useSlots \u5728 Lyt.js \u4E2D\u9700\u8981\u901A\u8FC7 setup \u4E0A\u4E0B\u6587\u8BBF\u95EE","\u4F7F\u7528 setup(props, { slots }) \u8BBF\u95EE\u63D2\u69FD"),/useAttrs/.test(s)&&this.addWarning("api","useAttrs \u5728 Lyt.js \u4E2D\u9700\u8981\u901A\u8FC7 setup \u4E0A\u4E0B\u6587\u8BBF\u95EE","\u4F7F\u7528 setup(props, { attrs }) \u8BBF\u95EE attrs"),s=this.convertScriptSetupToSetup(s)),s}convertScriptSetupToSetup(e){let t=e;return t=t.replace(/const\s+\w+\s*=\s*defineProps\s*\([^)]*\)\s*;?\s*\n?/g,`// [Compat] defineProps \u5DF2\u79FB\u9664\uFF0C\u8BF7\u5728 defineComponent({ props: {...} }) \u4E2D\u5B9A\u4E49
|
|
3
|
+
`),t=t.replace(/const\s+\w+\s*=\s*defineEmits\s*\([^)]*\)\s*;?\s*\n?/g,`// [Compat] defineEmits \u5DF2\u79FB\u9664\uFF0C\u8BF7\u5728 defineComponent({ emits: [...] }) \u4E2D\u5B9A\u4E49
|
|
4
|
+
`),t=t.replace(/defineExpose\s*\([^)]*\)\s*;?\s*\n?/g,`// [Compat] defineExpose \u5DF2\u79FB\u9664\uFF0Csetup \u8FD4\u56DE\u503C\u81EA\u52A8\u66B4\u9732
|
|
5
|
+
`),t=t.replace(/const\s+\w+\s*=\s*withDefaults\s*\([^)]*\)\s*;?\s*\n?/g,`// [Compat] withDefaults \u5DF2\u79FB\u9664\uFF0C\u8BF7\u5728 props \u9009\u9879\u4E2D\u4F7F\u7528 default
|
|
6
|
+
`),t}convertStyles(e){let t=[];for(let s of e){let r=Object.entries(s.attrs).map(([i,o])=>o?`${i}="${o}"`:i).join(" ");s.attrs.module!==void 0&&this.addWarning("feature","CSS Modules \u5728 Lyt.js \u4E2D\u4E0D\u652F\u6301","\u4F7F\u7528 scoped \u6837\u5F0F\u66FF\u4EE3"),t.push(`<style${r?" "+r:""}>
|
|
3
7
|
${s.content}
|
|
4
|
-
</style>`)}return
|
|
8
|
+
</style>`)}return t.join(`
|
|
5
9
|
|
|
6
|
-
`)}convert(){let
|
|
10
|
+
`)}convert(){let e=this.parse(),t=[];if(e.template){let s=this.convertTemplate(e.template);t.push(`<template>
|
|
7
11
|
${s}
|
|
8
|
-
</template>`)}if(
|
|
12
|
+
</template>`)}if(e.scriptSetup){let s=this.convertScript(e.scriptSetup,!0);t.push(`<script setup>
|
|
9
13
|
${s}
|
|
10
|
-
</script>`)}else if(
|
|
14
|
+
</script>`)}else if(e.script){let s=this.convertScript(e.script,!1);t.push(`<script>
|
|
11
15
|
${s}
|
|
12
|
-
</script>`)}
|
|
16
|
+
</script>`)}e.styles.length>0&&t.push(this.convertStyles(e.styles));for(let s of e.customBlocks){let r=Object.entries(s.attrs).map(([i,o])=>o?`${i}="${o}"`:i).join(" ");t.push(`<${s.tag}${r?" "+r:""}>
|
|
17
|
+
${s.content}
|
|
18
|
+
</${s.tag}>`)}return t.join(`
|
|
13
19
|
|
|
14
|
-
`)}};function
|
|
20
|
+
`)}convertWithWarnings(){return this.warnings=[],{code:this.convert(),warnings:this.warnings}}};function S(n){return new m(n).convert()}function W(){let n=process.argv.slice(2),e={input:"",recursive:!1,dryRun:!1,help:!1};for(let t=0;t<n.length;t++){let s=n[t];switch(s){case"-h":case"--help":e.help=!0;break;case"-r":case"--recursive":e.recursive=!0;break;case"-d":case"--dry-run":e.dryRun=!0;break;case"-o":case"--output":e.output=n[++t];break;default:e.input||(e.input=s);break}}return e}function w(){console.log(`
|
|
15
21
|
vue-to-lyt - \u5C06 Vue \u9879\u76EE\u8F6C\u6362\u4E3A Lyt.js \u9879\u76EE
|
|
16
22
|
|
|
17
23
|
\u7528\u6CD5:
|
|
@@ -32,5 +38,5 @@ vue-to-lyt - \u5C06 Vue \u9879\u76EE\u8F6C\u6362\u4E3A Lyt.js \u9879\u76EE
|
|
|
32
38
|
|
|
33
39
|
# \u8F6C\u6362\u5230\u6307\u5B9A\u8F93\u51FA\u76EE\u5F55
|
|
34
40
|
vue-to-lyt ./src --recursive --output ./lyt-src
|
|
35
|
-
`)}function
|
|
36
|
-
\u8F6C\u6362\u5B8C\u6210!`)}
|
|
41
|
+
`)}function C(n,e){try{let t=a.readFileSync(n,"utf-8"),s=S(t),r=e||n.replace(/\.vue$/,".lyt");return console.log(`[\u8F6C\u6362] ${n} -> ${r}`),console.log(t!==s?"[\u53D8\u66F4] \u6587\u4EF6\u5185\u5BB9\u5DF2\u8F6C\u6362":"[\u8DF3\u8FC7] \u6587\u4EF6\u5185\u5BB9\u65E0\u9700\u8F6C\u6362"),!0}catch(t){return console.error(`[\u9519\u8BEF] \u5904\u7406\u6587\u4EF6 ${n} \u65F6\u51FA\u9519:`,t),!1}}function b(n,e){let t=a.readdirSync(n);for(let s of t){let r=p.join(n,s);if(a.statSync(r).isDirectory()){if(s==="node_modules"||s===".git")continue;let o=e?p.join(e,s):void 0;b(r,o)}else if(s.endsWith(".vue")){let o;if(e){let v=p.relative(n,r);o=p.join(e,v.replace(/\.vue$/,".lyt"))}C(r,o)}}}function x(){let n=W();n.help&&(w(),process.exit(0)),n.input||(console.error("\u9519\u8BEF: \u8BF7\u6307\u5B9A\u8F93\u5165\u6587\u4EF6\u6216\u76EE\u5F55"),w(),process.exit(1));let e=p.resolve(n.input);a.existsSync(e)||(console.error(`\u9519\u8BEF: \u8DEF\u5F84\u4E0D\u5B58\u5728: ${e}`),process.exit(1));let t=a.statSync(e);t.isDirectory()?(n.recursive||(console.error("\u9519\u8BEF: \u8F93\u5165\u662F\u76EE\u5F55\uFF0C\u8BF7\u4F7F\u7528 --recursive \u9009\u9879"),process.exit(1)),b(e,n.output)):t.isFile()&&C(e,n.output),console.log(`
|
|
42
|
+
\u8F6C\u6362\u5B8C\u6210!`)}x();
|
package/dist/index.cjs
CHANGED
|
@@ -1,13 +1,21 @@
|
|
|
1
|
-
var
|
|
2
|
-
|
|
1
|
+
"use strict";var R=Object.defineProperty;var ze=Object.getOwnPropertyDescriptor;var Ge=Object.getOwnPropertyNames;var Ne=Object.prototype.hasOwnProperty;var we=(i,e)=>{for(var t in e)R(i,t,{get:e[t],enumerable:!0})},_e=(i,e,t,o)=>{if(e&&typeof e=="object"||typeof e=="function")for(let n of Ge(e))!Ne.call(i,n)&&n!==t&&R(i,n,{get:()=>e[n],enumerable:!(o=ze(e,n))||o.enumerable});return i};var qe=i=>_e(R({},"__esModule",{value:!0}),i);var Ze={};we(Ze,{Fragment:()=>se,KeepAlive:()=>ke,Suspense:()=>De,Teleport:()=>Ee,Transition:()=>Pe,TransitionGroup:()=>Ie,VueSfcConverter:()=>u,analyzeVueFile:()=>Fe,computed:()=>W,convertVueSfcToLyt:()=>Te,convertVueSfcToLytWithWarnings:()=>x,createApp:()=>Me,createCompatVue:()=>Le,defineAsyncComponent:()=>pe,defineComponent:()=>be,defineEmits:()=>ce,defineExpose:()=>ue,defineProps:()=>ae,effect:()=>O,formatMigrationReport:()=>Oe,getCurrentInstance:()=>ne,getCurrentScope:()=>ie,h:()=>re,inject:()=>z,isProxy:()=>de,isReactive:()=>v,isReadonly:()=>h,isRef:()=>j,markRaw:()=>D,migrateVueFile:()=>Be,nextTick:()=>V,onActivated:()=>Z,onBeforeMount:()=>q,onBeforeUnmount:()=>J,onBeforeUpdate:()=>H,onDeactivated:()=>ee,onErrorCaptured:()=>Q,onMounted:()=>G,onRenderTracked:()=>X,onRenderTriggered:()=>Y,onScopeDispose:()=>oe,onServerPrefetch:()=>te,onUnmounted:()=>_,onUpdated:()=>N,provide:()=>K,proxyRefs:()=>ye,reactive:()=>k,readonly:()=>E,ref:()=>S,shallowReactive:()=>P,shallowRef:()=>T,toRaw:()=>I,toRef:()=>b,toRefs:()=>$,triggerRef:()=>A,unref:()=>M,useAttrs:()=>me,useCompatMode:()=>We,useSlots:()=>fe,useTemplateRef:()=>ge,watch:()=>L,watchEffect:()=>U,watchPostEffect:()=>B,watchSyncEffect:()=>F,withDefaults:()=>le});module.exports=qe(Ze);var ve={};we(ve,{Fragment:()=>se,computed:()=>W,defineAsyncComponent:()=>pe,defineEmits:()=>ce,defineExpose:()=>ue,defineProps:()=>ae,effect:()=>O,getCurrentInstance:()=>ne,getCurrentScope:()=>ie,h:()=>re,inject:()=>z,isProxy:()=>de,isReactive:()=>v,isReadonly:()=>h,isRef:()=>j,markRaw:()=>D,nextTick:()=>V,onActivated:()=>Z,onBeforeMount:()=>q,onBeforeUnmount:()=>J,onBeforeUpdate:()=>H,onDeactivated:()=>ee,onErrorCaptured:()=>Q,onMounted:()=>G,onRenderTracked:()=>X,onRenderTriggered:()=>Y,onScopeDispose:()=>oe,onServerPrefetch:()=>te,onUnmounted:()=>_,onUpdated:()=>N,provide:()=>K,proxyRefs:()=>ye,reactive:()=>k,readonly:()=>E,ref:()=>S,setCurrentInstance:()=>Je,shallowReactive:()=>P,shallowRef:()=>T,toRaw:()=>I,toRef:()=>b,toRefs:()=>$,triggerRef:()=>A,unref:()=>M,useAttrs:()=>me,useSlots:()=>fe,useTemplateRef:()=>ge,watch:()=>L,watchEffect:()=>U,watchPostEffect:()=>B,watchSyncEffect:()=>F,withDefaults:()=>le});var s=require("@lytjs/reactivity"),a=require("@lytjs/component"),y=require("@lytjs/core"),Re=require("@lytjs/component/builtins/async-component"),S=s.ref,T=s.shallowRef,j=s.isRef,M=s.unref,b=s.toRef,$=s.toRefs,A=s.triggerRef,k=s.reactive,E=s.readonly,P=s.shallowReactive,I=s.toRaw,v=s.isReactive,h=s.isReadonly;function D(i){return i.__v_skip=!0,i}var W=s.computed,L=s.watch,U=s.watchEffect;function B(i){return(0,s.watchEffect)(i,{flush:"post"})}function F(i){return(0,s.watchEffect)(i,{flush:"sync"})}var O=s.effect,V=s.nextTick,K=a.provide,z=a.inject,G=a.onMounted,N=a.onUpdated,_=a.onUnmounted,q=a.compositionOnBeforeMount,H=a.onBeforeUpdate,J=a.onBeforeUnmount;function Q(i){}function X(i){}function Y(i){}function Z(i){}function ee(i){}function te(i){}var Se=null,He=null;function ne(){return Se}function Je(i){Se=i}function ie(){return He}function oe(i){}var re=y.h,se=y.Fragment,pe=Re.defineAsyncComponent;function ae(){return{}}var ce=a.defineEmits;function le(i,e){return{...i,...e}}function ue(i){}function fe(){return{}}function me(){return{}}function ge(i){return{value:null}}function de(i){return v(i)||h(i)}function ye(i){return i}var u=class{constructor(e){this.warnings=[];this.content=e}getWarnings(){return[...this.warnings]}addWarning(e,t,o){this.warnings.push({type:e,message:t,suggestion:o})}parse(){let e={template:null,script:null,scriptSetup:null,styles:[],customBlocks:[]},t=this.content.match(/<template[^>]*>([\s\S]*?)<\/template>/);t&&(e.template=t[1].trim());let o=this.content.match(/<script[^>]*setup[^>]*>([\s\S]*?)<\/script>/);if(o&&(e.scriptSetup=o[1].trim()),!e.scriptSetup){let c=this.content.match(/<script(?:\s[^>]*?)?>([\s\S]*?)<\/script>/);c&&(e.script=c[1].trim())}let n=/<style([^>]*)>([\s\S]*?)<\/style>/g,r;for(;(r=n.exec(this.content))!==null;){let c={},f=r[1].match(/(\w+)(?:="([^"]*)")?/g);if(f)for(let l of f){let[d,m]=l.split("=");c[d.trim()]=m?m.replace(/"/g,""):""}e.styles.push({content:r[2].trim(),attrs:c})}let p=/<(template|script|style)([^>]*)>([\s\S]*?)<\/\1>/g,w=this.content.match(/<(\w+)([^>]*)>([\s\S]*?)<\/\1>/g)||[];for(let c of w){let f=c.match(/^<(\w+)/);if(!f)continue;let l=f[1];if(["template","script","style"].includes(l))continue;let d=c.match(new RegExp(`^<${l}[^>]*>([\\s\\S]*?)</${l}>$`));if(!d)continue;let m={},he=c.match(new RegExp(`^<${l}([^>]*)>`));if(he){let xe=he[1].match(/(\w+)(?:="([^"]*)")?/g);if(xe)for(let Ve of xe){let[Ke,Ce]=Ve.split("=");m[Ke.trim()]=Ce?Ce.replace(/"/g,""):""}}e.customBlocks.push({tag:l,content:d[1].trim(),attrs:m})}return e}convertTemplate(e){let t=e;return t=t.replace(/v-for="([^"]*)"/g,'v-each="$1"'),t=t.replace(/:key=/g,"key="),t=t.replace(/v-if=/g,"if="),t=t.replace(/v-else-if=/g,"else-if="),t=t.replace(/v-else/g,"else"),t=t.replace(/v-show=/g,"show="),t=t.replace(/v-html=/g,"html="),t=t.replace(/v-text=/g,"text="),t=t.replace(/\bv-once\b/g,"once"),t=t.replace(/\bv-pre\b/g,"pre"),t=t.replace(/\bv-cloak\b/g,"cloak"),t=t.replace(/v-slot:/g,"slot:"),t=t.replace(/v-on:/g,"on:"),t=t.replace(/v-model\.(\w+)="/g,'model.$1="'),t=t.replace(/v-model="/g,'model="'),t=t.replace(/v-bind:/g,":"),/v-memo/.test(t)&&(this.addWarning("directive","v-memo \u6307\u4EE4\u5728 Lyt.js \u4E2D\u4E0D\u652F\u6301","\u4F7F\u7528 computed \u5C5E\u6027\u66FF\u4EE3\u624B\u52A8\u7F13\u5B58"),t=t.replace(/\s*v-memo="[^"]*"/g,"")),/v-is/.test(t)&&(this.addWarning("directive","v-is \u52A8\u6001\u7EC4\u4EF6\u8BED\u6CD5\u5728 Lyt.js \u4E2D\u53EF\u80FD\u9700\u8981\u8C03\u6574","\u4F7F\u7528 :is \u5C5E\u6027\u66FF\u4EE3 v-is"),t=t.replace(/v-is=/g,":is=")),t}convertScript(e,t=!1){let o=e;return o=o.replace(/from\s+['"]vue['"]/g,"from '@lytjs/compat'"),o=o.replace(/from\s+['"]vue-router['"]/g,"from '@lytjs/router'"),o=o.replace(/from\s+['"]pinia['"]/g,"from '@lytjs/store'"),o=o.replace(/from\s+['"]vuex['"]/g,"from '@lytjs/store'"),t&&(/defineProps/.test(o)&&this.addWarning("api","defineProps \u662F\u7F16\u8BD1\u5668\u5B8F\uFF0C\u9700\u8981\u624B\u52A8\u8F6C\u6362\u4E3A defineComponent({ props: {...} })","\u5728 Lyt.js \u4E2D\u4F7F\u7528 defineComponent \u7684 props \u9009\u9879"),/defineEmits/.test(o)&&this.addWarning("api","defineEmits \u662F\u7F16\u8BD1\u5668\u5B8F\uFF0C\u9700\u8981\u624B\u52A8\u8F6C\u6362\u4E3A defineComponent({ emits: {...} })","\u5728 Lyt.js \u4E2D\u4F7F\u7528 defineComponent \u7684 emits \u9009\u9879"),/defineExpose/.test(o)&&this.addWarning("api","defineExpose \u5728 Lyt.js \u4E2D\u4E0D\u9700\u8981","\u5728 Lyt.js \u4E2D setup \u8FD4\u56DE\u7684\u5BF9\u8C61\u81EA\u52A8\u66B4\u9732\u4E3A\u516C\u5171\u5C5E\u6027"),/withDefaults/.test(o)&&this.addWarning("api","withDefaults \u662F\u7F16\u8BD1\u5668\u5B8F\uFF0C\u9700\u8981\u624B\u52A8\u8F6C\u6362","\u5728 defineComponent \u7684 props \u9009\u9879\u4E2D\u4F7F\u7528 default \u5B57\u6BB5"),/useSlots/.test(o)&&this.addWarning("api","useSlots \u5728 Lyt.js \u4E2D\u9700\u8981\u901A\u8FC7 setup \u4E0A\u4E0B\u6587\u8BBF\u95EE","\u4F7F\u7528 setup(props, { slots }) \u8BBF\u95EE\u63D2\u69FD"),/useAttrs/.test(o)&&this.addWarning("api","useAttrs \u5728 Lyt.js \u4E2D\u9700\u8981\u901A\u8FC7 setup \u4E0A\u4E0B\u6587\u8BBF\u95EE","\u4F7F\u7528 setup(props, { attrs }) \u8BBF\u95EE attrs"),o=this.convertScriptSetupToSetup(o)),o}convertScriptSetupToSetup(e){let t=e;return t=t.replace(/const\s+\w+\s*=\s*defineProps\s*\([^)]*\)\s*;?\s*\n?/g,`// [Compat] defineProps \u5DF2\u79FB\u9664\uFF0C\u8BF7\u5728 defineComponent({ props: {...} }) \u4E2D\u5B9A\u4E49
|
|
2
|
+
`),t=t.replace(/const\s+\w+\s*=\s*defineEmits\s*\([^)]*\)\s*;?\s*\n?/g,`// [Compat] defineEmits \u5DF2\u79FB\u9664\uFF0C\u8BF7\u5728 defineComponent({ emits: [...] }) \u4E2D\u5B9A\u4E49
|
|
3
|
+
`),t=t.replace(/defineExpose\s*\([^)]*\)\s*;?\s*\n?/g,`// [Compat] defineExpose \u5DF2\u79FB\u9664\uFF0Csetup \u8FD4\u56DE\u503C\u81EA\u52A8\u66B4\u9732
|
|
4
|
+
`),t=t.replace(/const\s+\w+\s*=\s*withDefaults\s*\([^)]*\)\s*;?\s*\n?/g,`// [Compat] withDefaults \u5DF2\u79FB\u9664\uFF0C\u8BF7\u5728 props \u9009\u9879\u4E2D\u4F7F\u7528 default
|
|
5
|
+
`),t}convertStyles(e){let t=[];for(let o of e){let n=Object.entries(o.attrs).map(([r,p])=>p?`${r}="${p}"`:r).join(" ");o.attrs.module!==void 0&&this.addWarning("feature","CSS Modules \u5728 Lyt.js \u4E2D\u4E0D\u652F\u6301","\u4F7F\u7528 scoped \u6837\u5F0F\u66FF\u4EE3"),t.push(`<style${n?" "+n:""}>
|
|
6
|
+
${o.content}
|
|
3
7
|
</style>`)}return t.join(`
|
|
4
8
|
|
|
5
|
-
`)}convert(){let e=this.parse(),t=[];if(e.template){let
|
|
6
|
-
${
|
|
7
|
-
</template>`)}if(e.scriptSetup){let
|
|
8
|
-
${
|
|
9
|
-
</script>`)}else if(e.script){let
|
|
10
|
-
${
|
|
11
|
-
</script>`)}
|
|
9
|
+
`)}convert(){let e=this.parse(),t=[];if(e.template){let o=this.convertTemplate(e.template);t.push(`<template>
|
|
10
|
+
${o}
|
|
11
|
+
</template>`)}if(e.scriptSetup){let o=this.convertScript(e.scriptSetup,!0);t.push(`<script setup>
|
|
12
|
+
${o}
|
|
13
|
+
</script>`)}else if(e.script){let o=this.convertScript(e.script,!1);t.push(`<script>
|
|
14
|
+
${o}
|
|
15
|
+
</script>`)}e.styles.length>0&&t.push(this.convertStyles(e.styles));for(let o of e.customBlocks){let n=Object.entries(o.attrs).map(([r,p])=>p?`${r}="${p}"`:r).join(" ");t.push(`<${o.tag}${n?" "+n:""}>
|
|
16
|
+
${o.content}
|
|
17
|
+
</${o.tag}>`)}return t.join(`
|
|
12
18
|
|
|
13
|
-
`)}};function
|
|
19
|
+
`)}convertWithWarnings(){return this.warnings=[],{code:this.convert(),warnings:this.warnings}}};function Te(i){return new u(i).convert()}function x(i){return new u(i).convertWithWarnings()}var je=require("@lytjs/core");function Me(i,e){let t=(0,je.createApp)(i,e);return{...t,use(o,...n){return typeof o=="function"?o(this,...n):o&&typeof o.install=="function"&&o.install(this,...n),this},mixin(o){return this},component(o,n){return n?(t.component(o,n),this):t.component(o)},directive(o,n){return n?this:null},provide(o,n){return t.provide(o,n),this}}}var C=require("@lytjs/component");function be(i){return i&&typeof i=="object"?(0,C.defineComponent)(i):typeof i=="function"?(0,C.defineComponent)({setup:i}):(0,C.defineComponent)(i)}var $e=require("@lytjs/component"),Ae=require("@lytjs/core"),g=$e.defineComponent,ke=g({name:"KeepAlive",setup(i,{slots:e}){return()=>{var t;return(t=e.default)==null?void 0:t.call(e)}}}),Ee=g({name:"Teleport",props:{to:{type:[String,Object],required:!0},disabled:Boolean},setup(i,{slots:e}){return()=>{var t;return(t=e.default)==null?void 0:t.call(e)}}}),Pe=g({name:"Transition",props:{name:{type:String,default:"v"}},setup(i,{slots:e}){return()=>{var t;return(t=e.default)==null?void 0:t.call(e)}}}),Ie=g({name:"TransitionGroup",props:{tag:{type:String,default:"span"},name:{type:String,default:"v"}},setup(i,{slots:e}){return()=>{var t;return(0,Ae.h)(i.tag,null,(t=e.default)==null?void 0:t.call(e))}}}),De=g({name:"Suspense",setup(i,{slots:e}){return()=>{var t;return(t=e.default)==null?void 0:t.call(e)}}});var Qe=!1;function We(i=!0){Qe=i}function Le(){return{...ve,version:"3.x (Compat)"}}function Ue(i){let e=[],t=i.split(`
|
|
20
|
+
`);for(let o=0;o<t.length;o++){let n=t[o],r=o+1;/from\s+['"]vue['"]/.test(n)&&e.push({type:"import",severity:"warning",description:'\u4ECE "vue" \u5BFC\u5165\u9700\u8981\u66FF\u6362\u4E3A "@lytjs/compat"',suggestion:'\u5C06 from "vue" \u66FF\u6362\u4E3A from "@lytjs/compat"',line:r,original:n.trim(),replacement:n.trim().replace(/from\s+['"]vue['"]/,"from '@lytjs/compat'")}),/from\s+['"]vue-router['"]/.test(n)&&e.push({type:"ecosystem",severity:"warning",description:"vue-router \u9700\u8981\u66FF\u6362\u4E3A @lytjs/router",suggestion:'\u5C06 from "vue-router" \u66FF\u6362\u4E3A from "@lytjs/router"',line:r,original:n.trim(),replacement:n.trim().replace(/from\s+['"]vue-router['"]/,"from '@lytjs/router'")}),/from\s+['"]pinia['"]/.test(n)&&e.push({type:"ecosystem",severity:"warning",description:"Pinia \u9700\u8981\u66FF\u6362\u4E3A @lytjs/store",suggestion:'\u5C06 from "pinia" \u66FF\u6362\u4E3A from "@lytjs/store"\uFF0C\u5E76\u8C03\u6574 API \u8C03\u7528',line:r,original:n.trim(),replacement:n.trim().replace(/from\s+['"]pinia['"]/,"from '@lytjs/store'")}),/from\s+['"]vuex['"]/.test(n)&&e.push({type:"ecosystem",severity:"warning",description:"Vuex \u9700\u8981\u66FF\u6362\u4E3A @lytjs/store",suggestion:'\u5C06 from "vuex" \u66FF\u6362\u4E3A from "@lytjs/store"\uFF0C\u5E76\u8C03\u6574 API \u8C03\u7528',line:r,original:n.trim(),replacement:n.trim().replace(/from\s+['"]vuex['"]/,"from '@lytjs/store'")}),/v-for=/.test(n)&&e.push({type:"directive",severity:"warning",description:"v-for \u9700\u8981\u8F6C\u6362\u4E3A v-each",suggestion:'\u5C06 v-for="..." \u66FF\u6362\u4E3A v-each="..."',line:r,original:n.trim(),replacement:n.trim().replace(/v-for=/,"v-each=")}),/v-if=/.test(n)&&e.push({type:"directive",severity:"info",description:"v-if \u9700\u8981\u8F6C\u6362\u4E3A if",suggestion:'\u5C06 v-if="..." \u66FF\u6362\u4E3A if="..."',line:r,original:n.trim(),replacement:n.trim().replace(/v-if=/,"if=")}),/v-else-if=/.test(n)&&e.push({type:"directive",severity:"info",description:"v-else-if \u9700\u8981\u8F6C\u6362\u4E3A else-if",suggestion:'\u5C06 v-else-if="..." \u66FF\u6362\u4E3A else-if="..."',line:r,original:n.trim(),replacement:n.trim().replace(/v-else-if=/,"else-if=")}),/\bv-else\b/.test(n)&&e.push({type:"directive",severity:"info",description:"v-else \u9700\u8981\u8F6C\u6362\u4E3A else",suggestion:"\u5C06 v-else \u66FF\u6362\u4E3A else",line:r,original:n.trim(),replacement:n.trim().replace(/\bv-else\b/,"else")}),/v-show=/.test(n)&&e.push({type:"directive",severity:"info",description:"v-show \u9700\u8981\u8F6C\u6362\u4E3A show",suggestion:'\u5C06 v-show="..." \u66FF\u6362\u4E3A show="..."',line:r,original:n.trim(),replacement:n.trim().replace(/v-show=/,"show=")}),/v-model/.test(n)&&e.push({type:"directive",severity:"info",description:"v-model \u9700\u8981\u8F6C\u6362\u4E3A model",suggestion:'\u5C06 v-model="..." \u66FF\u6362\u4E3A model="..."',line:r,original:n.trim(),replacement:n.trim().replace(/v-model/,"model")}),/v-on:/.test(n)&&e.push({type:"directive",severity:"info",description:"v-on: \u9700\u8981\u8F6C\u6362\u4E3A on:",suggestion:'\u5C06 v-on:click="..." \u66FF\u6362\u4E3A on:click="..." \u6216 @click="..."',line:r,original:n.trim(),replacement:n.trim().replace(/v-on:/,"on:")}),/v-bind:/.test(n)&&e.push({type:"directive",severity:"info",description:"v-bind: \u53EF\u4EE5\u7B80\u5199\u4E3A :",suggestion:'\u5C06 v-bind:attr="..." \u66FF\u6362\u4E3A :attr="..."',line:r,original:n.trim(),replacement:n.trim().replace(/v-bind:/,":")}),/v-slot:/.test(n)&&e.push({type:"directive",severity:"info",description:"v-slot: \u9700\u8981\u8F6C\u6362\u4E3A slot:",suggestion:"\u5C06 v-slot:name \u66FF\u6362\u4E3A slot:name \u6216 #name",line:r,original:n.trim(),replacement:n.trim().replace(/v-slot:/,"slot:")}),/v-html=/.test(n)&&e.push({type:"directive",severity:"info",description:"v-html \u9700\u8981\u8F6C\u6362\u4E3A html",suggestion:'\u5C06 v-html="..." \u66FF\u6362\u4E3A html="..."',line:r,original:n.trim(),replacement:n.trim().replace(/v-html=/,"html=")}),/v-text=/.test(n)&&e.push({type:"directive",severity:"info",description:"v-text \u9700\u8981\u8F6C\u6362\u4E3A text",suggestion:'\u5C06 v-text="..." \u66FF\u6362\u4E3A text="..."',line:r,original:n.trim(),replacement:n.trim().replace(/v-text=/,"text=")}),/v-memo/.test(n)&&e.push({type:"feature",severity:"error",description:"v-memo \u5728 Lyt.js \u4E2D\u4E0D\u652F\u6301",suggestion:"\u4F7F\u7528 computed \u5C5E\u6027\u66FF\u4EE3\u624B\u52A8\u7F13\u5B58\u903B\u8F91",line:r,original:n.trim()}),/\$refs/.test(n)&&e.push({type:"api",severity:"warning",description:"$refs \u5728 Lyt.js \u4E2D\u4E0D\u652F\u6301",suggestion:"\u4F7F\u7528 ref() \u548C\u6A21\u677F ref \u5C5E\u6027\u66FF\u4EE3",line:r,original:n.trim()}),/\$emit/.test(n)&&e.push({type:"api",severity:"warning",description:"$emit \u5728 Lyt.js \u4E2D\u4E0D\u652F\u6301",suggestion:"\u4F7F\u7528 setup \u4E0A\u4E0B\u6587\u4E2D\u7684 emit \u51FD\u6570\u66FF\u4EE3",line:r,original:n.trim()}),/\$el/.test(n)&&e.push({type:"api",severity:"warning",description:"$el \u5728 Lyt.js \u4E2D\u4E0D\u652F\u6301",suggestion:"\u4F7F\u7528 template ref \u66FF\u4EE3",line:r,original:n.trim()}),/\$parent/.test(n)&&e.push({type:"api",severity:"warning",description:"$parent \u5728 Lyt.js \u4E2D\u4E0D\u652F\u6301",suggestion:"\u4F7F\u7528 provide/inject \u66FF\u4EE3",line:r,original:n.trim()}),/\$children/.test(n)&&e.push({type:"api",severity:"error",description:"$children \u5728 Lyt.js \u4E2D\u4E0D\u652F\u6301",suggestion:"\u4F7F\u7528 provide/inject \u6216\u4E8B\u4EF6\u603B\u7EBF\u66FF\u4EE3",line:r,original:n.trim()}),/\$forceUpdate/.test(n)&&e.push({type:"api",severity:"warning",description:"$forceUpdate \u5728 Lyt.js \u4E2D\u4E0D\u9700\u8981",suggestion:"Lyt.js \u7684\u54CD\u5E94\u5F0F\u7CFB\u7EDF\u4F1A\u81EA\u52A8\u89E6\u53D1\u66F4\u65B0",line:r,original:n.trim()}),/\$nextTick/.test(n)&&e.push({type:"api",severity:"info",description:"$nextTick \u9700\u8981\u66FF\u6362\u4E3A\u72EC\u7ACB\u7684 nextTick \u51FD\u6570",suggestion:'import { nextTick } from "@lytjs/compat"',line:r,original:n.trim()}),/defineProps/.test(n)&&e.push({type:"api",severity:"warning",description:"defineProps \u662F\u7F16\u8BD1\u5668\u5B8F\uFF0C\u9700\u8981\u624B\u52A8\u8F6C\u6362",suggestion:"\u5728 defineComponent({ props: {...} }) \u4E2D\u5B9A\u4E49 props",line:r,original:n.trim()}),/defineEmits/.test(n)&&e.push({type:"api",severity:"warning",description:"defineEmits \u662F\u7F16\u8BD1\u5668\u5B8F\uFF0C\u9700\u8981\u624B\u52A8\u8F6C\u6362",suggestion:"\u5728 defineComponent({ emits: [...] }) \u4E2D\u5B9A\u4E49 emits",line:r,original:n.trim()}),/defineExpose/.test(n)&&e.push({type:"api",severity:"info",description:"defineExpose \u5728 Lyt.js \u4E2D\u4E0D\u9700\u8981",suggestion:"setup \u8FD4\u56DE\u503C\u81EA\u52A8\u66B4\u9732\u4E3A\u516C\u5171\u5C5E\u6027",line:r,original:n.trim()}),/<style[^>]*module/.test(n)&&e.push({type:"style",severity:"error",description:"CSS Modules \u5728 Lyt.js \u4E2D\u4E0D\u652F\u6301",suggestion:"\u4F7F\u7528 scoped \u6837\u5F0F\u66FF\u4EE3",line:r,original:n.trim()}),/<Teleport/.test(n)&&e.push({type:"component",severity:"info",description:"Teleport \u7EC4\u4EF6\u5DF2\u901A\u8FC7 @lytjs/compat \u63D0\u4F9B",suggestion:"\u786E\u4FDD\u4ECE @lytjs/compat \u5BFC\u5165 Teleport",line:r}),/<Suspense/.test(n)&&e.push({type:"component",severity:"info",description:"Suspense \u7EC4\u4EF6\u5DF2\u901A\u8FC7 @lytjs/compat \u63D0\u4F9B",suggestion:"\u786E\u4FDD\u4ECE @lytjs/compat \u5BFC\u5165 Suspense",line:r}),/<KeepAlive/.test(n)&&e.push({type:"component",severity:"info",description:"KeepAlive \u7EC4\u4EF6\u5DF2\u901A\u8FC7 @lytjs/compat \u63D0\u4F9B",suggestion:"\u786E\u4FDD\u4ECE @lytjs/compat \u5BFC\u5165 KeepAlive",line:r})}return e}function Xe(i){if(i.length===0)return 100;let e=100;for(let t of i)switch(t.severity){case"error":e-=15;break;case"warning":e-=5;break;case"info":e-=1;break}return Math.max(0,Math.min(100,e))}function Ye(i){let e=[],t=new Set;for(let o of i)if(o.severity==="error"||o.severity==="warning"){let n=`${o.type}:${o.description}`;t.has(n)||(t.add(n),e.push(`- [${o.severity.toUpperCase()}] ${o.description}: ${o.suggestion}`))}return e}function Be(i){let e=x(i),t=Ue(i);for(let p of e.warnings)t.push({type:p.type,severity:"warning",description:p.message,suggestion:p.suggestion||""});let o=t.filter(p=>p.severity==="error").length,n=t.filter(p=>p.severity==="warning").length,r=t.filter(p=>p.severity==="info").length;return{code:e.code,issues:t,errorCount:o,warningCount:n,infoCount:r,compatibilityScore:Xe(t),manualFixes:Ye(t)}}function Fe(i){return Ue(i)}function Oe(i){let e=[];if(e.push("========================================"),e.push(" Vue 3 -> Lyt.js \u8FC1\u79FB\u62A5\u544A"),e.push("========================================"),e.push(""),e.push(`\u517C\u5BB9\u6027\u8BC4\u5206: ${i.compatibilityScore}/100`),i.compatibilityScore>=80?e.push("\u8FC1\u79FB\u96BE\u5EA6: \u4F4E - \u5927\u90E8\u5206\u4EE3\u7801\u53EF\u4EE5\u81EA\u52A8\u8F6C\u6362"):i.compatibilityScore>=50?e.push("\u8FC1\u79FB\u96BE\u5EA6: \u4E2D - \u9700\u8981\u4E00\u4E9B\u624B\u52A8\u8C03\u6574"):e.push("\u8FC1\u79FB\u96BE\u5EA6: \u9AD8 - \u9700\u8981\u5927\u91CF\u624B\u52A8\u4FEE\u6539"),e.push(""),e.push("\u95EE\u9898\u7EDF\u8BA1:"),e.push(` \u9519\u8BEF: ${i.errorCount}`),e.push(` \u8B66\u544A: ${i.warningCount}`),e.push(` \u4FE1\u606F: ${i.infoCount}`),e.push(""),i.manualFixes.length>0){e.push("\u9700\u8981\u624B\u52A8\u4FEE\u6539\u7684\u90E8\u5206:");for(let t of i.manualFixes)e.push(` ${t}`);e.push("")}if(i.issues.length>0){e.push("\u8BE6\u7EC6\u95EE\u9898\u5217\u8868:"),e.push("");let t=new Map;for(let n of i.issues){let r=t.get(n.type)||[];r.push(n),t.set(n.type,r)}let o={import:"\u5BFC\u5165\u8BED\u53E5",directive:"\u6307\u4EE4\u8BED\u6CD5",lifecycle:"\u751F\u547D\u5468\u671F",api:"API \u5DEE\u5F02",component:"\u7EC4\u4EF6",style:"\u6837\u5F0F",feature:"\u4E0D\u652F\u6301\u7684\u529F\u80FD",ecosystem:"\u751F\u6001\u7CFB\u7EDF"};for(let[n,r]of t){e.push(` [${o[n]}]`);for(let p of r){let w=p.line?` (\u884C ${p.line})`:"";e.push(` ${p.severity.toUpperCase()}: ${p.description}${w}`),e.push(` \u5EFA\u8BAE: ${p.suggestion}`)}e.push("")}}return e.push("========================================"),e.join(`
|
|
21
|
+
`)}0&&(module.exports={Fragment,KeepAlive,Suspense,Teleport,Transition,TransitionGroup,VueSfcConverter,analyzeVueFile,computed,convertVueSfcToLyt,convertVueSfcToLytWithWarnings,createApp,createCompatVue,defineAsyncComponent,defineComponent,defineEmits,defineExpose,defineProps,effect,formatMigrationReport,getCurrentInstance,getCurrentScope,h,inject,isProxy,isReactive,isReadonly,isRef,markRaw,migrateVueFile,nextTick,onActivated,onBeforeMount,onBeforeUnmount,onBeforeUpdate,onDeactivated,onErrorCaptured,onMounted,onRenderTracked,onRenderTriggered,onScopeDispose,onServerPrefetch,onUnmounted,onUpdated,provide,proxyRefs,reactive,readonly,ref,shallowReactive,shallowRef,toRaw,toRef,toRefs,triggerRef,unref,useAttrs,useCompatMode,useSlots,useTemplateRef,watch,watchEffect,watchPostEffect,watchSyncEffect,withDefaults});
|
package/dist/index.mjs
CHANGED
|
@@ -1,4 +1,8 @@
|
|
|
1
|
-
var
|
|
1
|
+
var Re=Object.defineProperty;var Se=(i,e)=>{for(var t in e)Re(i,t,{get:e[t],enumerable:!0})};var h={};Se(h,{Fragment:()=>ae,computed:()=>L,defineAsyncComponent:()=>ce,defineEmits:()=>ue,defineExpose:()=>me,defineProps:()=>le,effect:()=>V,getCurrentInstance:()=>oe,getCurrentScope:()=>re,h:()=>pe,inject:()=>G,isProxy:()=>ve,isReactive:()=>y,isReadonly:()=>v,isRef:()=>M,markRaw:()=>W,nextTick:()=>K,onActivated:()=>ee,onBeforeMount:()=>H,onBeforeUnmount:()=>Q,onBeforeUpdate:()=>J,onDeactivated:()=>te,onErrorCaptured:()=>X,onMounted:()=>N,onRenderTracked:()=>Y,onRenderTriggered:()=>Z,onScopeDispose:()=>se,onServerPrefetch:()=>ne,onUnmounted:()=>q,onUpdated:()=>_,provide:()=>z,proxyRefs:()=>he,reactive:()=>E,readonly:()=>P,ref:()=>T,setCurrentInstance:()=>et,shallowReactive:()=>I,shallowRef:()=>j,toRaw:()=>D,toRef:()=>$,toRefs:()=>A,triggerRef:()=>k,unref:()=>b,useAttrs:()=>de,useSlots:()=>ge,useTemplateRef:()=>ye,watch:()=>U,watchEffect:()=>B,watchPostEffect:()=>F,watchSyncEffect:()=>O,withDefaults:()=>fe});import{ref as Te,shallowRef as je,isRef as Me,unref as be,toRef as $e,toRefs as Ae,triggerRef as ke,reactive as Ee,readonly as Pe,shallowReactive as Ie,toRaw as De,isReactive as We,isReadonly as Le,computed as Ue,watch as Be,watchEffect as d,effect as Fe,nextTick as Oe}from"@lytjs/reactivity";import{provide as Ve,inject as Ke,onMounted as ze,onUpdated as Ge,onUnmounted as Ne,compositionOnBeforeMount as _e,onBeforeUpdate as qe,onBeforeUnmount as He,defineEmits as Je}from"@lytjs/component";import{h as Qe,Fragment as Xe}from"@lytjs/core";import{defineAsyncComponent as Ye}from"@lytjs/component/builtins/async-component";var T=Te,j=je,M=Me,b=be,$=$e,A=Ae,k=ke,E=Ee,P=Pe,I=Ie,D=De,y=We,v=Le;function W(i){return i.__v_skip=!0,i}var L=Ue,U=Be,B=d;function F(i){return d(i,{flush:"post"})}function O(i){return d(i,{flush:"sync"})}var V=Fe,K=Oe,z=Ve,G=Ke,N=ze,_=Ge,q=Ne,H=_e,J=qe,Q=He;function X(i){}function Y(i){}function Z(i){}function ee(i){}function te(i){}function ne(i){}var ie=null,Ze=null;function oe(){return ie}function et(i){ie=i}function re(){return Ze}function se(i){}var pe=Qe,ae=Xe,ce=Ye;function le(){return{}}var ue=Je;function fe(i,e){return{...i,...e}}function me(i){}function ge(){return{}}function de(){return{}}function ye(i){return{value:null}}function ve(i){return y(i)||v(i)}function he(i){return i}var u=class{constructor(e){this.warnings=[];this.content=e}getWarnings(){return[...this.warnings]}addWarning(e,t,o){this.warnings.push({type:e,message:t,suggestion:o})}parse(){let e={template:null,script:null,scriptSetup:null,styles:[],customBlocks:[]},t=this.content.match(/<template[^>]*>([\s\S]*?)<\/template>/);t&&(e.template=t[1].trim());let o=this.content.match(/<script[^>]*setup[^>]*>([\s\S]*?)<\/script>/);if(o&&(e.scriptSetup=o[1].trim()),!e.scriptSetup){let p=this.content.match(/<script(?:\s[^>]*?)?>([\s\S]*?)<\/script>/);p&&(e.script=p[1].trim())}let n=/<style([^>]*)>([\s\S]*?)<\/style>/g,r;for(;(r=n.exec(this.content))!==null;){let p={},c=r[1].match(/(\w+)(?:="([^"]*)")?/g);if(c)for(let a of c){let[m,l]=a.split("=");p[m.trim()]=l?l.replace(/"/g,""):""}e.styles.push({content:r[2].trim(),attrs:p})}let s=/<(template|script|style)([^>]*)>([\s\S]*?)<\/\1>/g,g=this.content.match(/<(\w+)([^>]*)>([\s\S]*?)<\/\1>/g)||[];for(let p of g){let c=p.match(/^<(\w+)/);if(!c)continue;let a=c[1];if(["template","script","style"].includes(a))continue;let m=p.match(new RegExp(`^<${a}[^>]*>([\\s\\S]*?)</${a}>$`));if(!m)continue;let l={},w=p.match(new RegExp(`^<${a}([^>]*)>`));if(w){let R=w[1].match(/(\w+)(?:="([^"]*)")?/g);if(R)for(let Ce of R){let[we,S]=Ce.split("=");l[we.trim()]=S?S.replace(/"/g,""):""}}e.customBlocks.push({tag:a,content:m[1].trim(),attrs:l})}return e}convertTemplate(e){let t=e;return t=t.replace(/v-for="([^"]*)"/g,'v-each="$1"'),t=t.replace(/:key=/g,"key="),t=t.replace(/v-if=/g,"if="),t=t.replace(/v-else-if=/g,"else-if="),t=t.replace(/v-else/g,"else"),t=t.replace(/v-show=/g,"show="),t=t.replace(/v-html=/g,"html="),t=t.replace(/v-text=/g,"text="),t=t.replace(/\bv-once\b/g,"once"),t=t.replace(/\bv-pre\b/g,"pre"),t=t.replace(/\bv-cloak\b/g,"cloak"),t=t.replace(/v-slot:/g,"slot:"),t=t.replace(/v-on:/g,"on:"),t=t.replace(/v-model\.(\w+)="/g,'model.$1="'),t=t.replace(/v-model="/g,'model="'),t=t.replace(/v-bind:/g,":"),/v-memo/.test(t)&&(this.addWarning("directive","v-memo \u6307\u4EE4\u5728 Lyt.js \u4E2D\u4E0D\u652F\u6301","\u4F7F\u7528 computed \u5C5E\u6027\u66FF\u4EE3\u624B\u52A8\u7F13\u5B58"),t=t.replace(/\s*v-memo="[^"]*"/g,"")),/v-is/.test(t)&&(this.addWarning("directive","v-is \u52A8\u6001\u7EC4\u4EF6\u8BED\u6CD5\u5728 Lyt.js \u4E2D\u53EF\u80FD\u9700\u8981\u8C03\u6574","\u4F7F\u7528 :is \u5C5E\u6027\u66FF\u4EE3 v-is"),t=t.replace(/v-is=/g,":is=")),t}convertScript(e,t=!1){let o=e;return o=o.replace(/from\s+['"]vue['"]/g,"from '@lytjs/compat'"),o=o.replace(/from\s+['"]vue-router['"]/g,"from '@lytjs/router'"),o=o.replace(/from\s+['"]pinia['"]/g,"from '@lytjs/store'"),o=o.replace(/from\s+['"]vuex['"]/g,"from '@lytjs/store'"),t&&(/defineProps/.test(o)&&this.addWarning("api","defineProps \u662F\u7F16\u8BD1\u5668\u5B8F\uFF0C\u9700\u8981\u624B\u52A8\u8F6C\u6362\u4E3A defineComponent({ props: {...} })","\u5728 Lyt.js \u4E2D\u4F7F\u7528 defineComponent \u7684 props \u9009\u9879"),/defineEmits/.test(o)&&this.addWarning("api","defineEmits \u662F\u7F16\u8BD1\u5668\u5B8F\uFF0C\u9700\u8981\u624B\u52A8\u8F6C\u6362\u4E3A defineComponent({ emits: {...} })","\u5728 Lyt.js \u4E2D\u4F7F\u7528 defineComponent \u7684 emits \u9009\u9879"),/defineExpose/.test(o)&&this.addWarning("api","defineExpose \u5728 Lyt.js \u4E2D\u4E0D\u9700\u8981","\u5728 Lyt.js \u4E2D setup \u8FD4\u56DE\u7684\u5BF9\u8C61\u81EA\u52A8\u66B4\u9732\u4E3A\u516C\u5171\u5C5E\u6027"),/withDefaults/.test(o)&&this.addWarning("api","withDefaults \u662F\u7F16\u8BD1\u5668\u5B8F\uFF0C\u9700\u8981\u624B\u52A8\u8F6C\u6362","\u5728 defineComponent \u7684 props \u9009\u9879\u4E2D\u4F7F\u7528 default \u5B57\u6BB5"),/useSlots/.test(o)&&this.addWarning("api","useSlots \u5728 Lyt.js \u4E2D\u9700\u8981\u901A\u8FC7 setup \u4E0A\u4E0B\u6587\u8BBF\u95EE","\u4F7F\u7528 setup(props, { slots }) \u8BBF\u95EE\u63D2\u69FD"),/useAttrs/.test(o)&&this.addWarning("api","useAttrs \u5728 Lyt.js \u4E2D\u9700\u8981\u901A\u8FC7 setup \u4E0A\u4E0B\u6587\u8BBF\u95EE","\u4F7F\u7528 setup(props, { attrs }) \u8BBF\u95EE attrs"),o=this.convertScriptSetupToSetup(o)),o}convertScriptSetupToSetup(e){let t=e;return t=t.replace(/const\s+\w+\s*=\s*defineProps\s*\([^)]*\)\s*;?\s*\n?/g,`// [Compat] defineProps \u5DF2\u79FB\u9664\uFF0C\u8BF7\u5728 defineComponent({ props: {...} }) \u4E2D\u5B9A\u4E49
|
|
2
|
+
`),t=t.replace(/const\s+\w+\s*=\s*defineEmits\s*\([^)]*\)\s*;?\s*\n?/g,`// [Compat] defineEmits \u5DF2\u79FB\u9664\uFF0C\u8BF7\u5728 defineComponent({ emits: [...] }) \u4E2D\u5B9A\u4E49
|
|
3
|
+
`),t=t.replace(/defineExpose\s*\([^)]*\)\s*;?\s*\n?/g,`// [Compat] defineExpose \u5DF2\u79FB\u9664\uFF0Csetup \u8FD4\u56DE\u503C\u81EA\u52A8\u66B4\u9732
|
|
4
|
+
`),t=t.replace(/const\s+\w+\s*=\s*withDefaults\s*\([^)]*\)\s*;?\s*\n?/g,`// [Compat] withDefaults \u5DF2\u79FB\u9664\uFF0C\u8BF7\u5728 props \u9009\u9879\u4E2D\u4F7F\u7528 default
|
|
5
|
+
`),t}convertStyles(e){let t=[];for(let o of e){let n=Object.entries(o.attrs).map(([r,s])=>s?`${r}="${s}"`:r).join(" ");o.attrs.module!==void 0&&this.addWarning("feature","CSS Modules \u5728 Lyt.js \u4E2D\u4E0D\u652F\u6301","\u4F7F\u7528 scoped \u6837\u5F0F\u66FF\u4EE3"),t.push(`<style${n?" "+n:""}>
|
|
2
6
|
${o.content}
|
|
3
7
|
</style>`)}return t.join(`
|
|
4
8
|
|
|
@@ -8,6 +12,10 @@ ${o}
|
|
|
8
12
|
${o}
|
|
9
13
|
</script>`)}else if(e.script){let o=this.convertScript(e.script,!1);t.push(`<script>
|
|
10
14
|
${o}
|
|
11
|
-
</script>`)}
|
|
15
|
+
</script>`)}e.styles.length>0&&t.push(this.convertStyles(e.styles));for(let o of e.customBlocks){let n=Object.entries(o.attrs).map(([r,s])=>s?`${r}="${s}"`:r).join(" ");t.push(`<${o.tag}${n?" "+n:""}>
|
|
16
|
+
${o.content}
|
|
17
|
+
</${o.tag}>`)}return t.join(`
|
|
12
18
|
|
|
13
|
-
`)}};function
|
|
19
|
+
`)}convertWithWarnings(){return this.warnings=[],{code:this.convert(),warnings:this.warnings}}};function tt(i){return new u(i).convert()}function x(i){return new u(i).convertWithWarnings()}import{createApp as nt}from"@lytjs/core";function it(i,e){let t=nt(i,e);return{...t,use(o,...n){return typeof o=="function"?o(this,...n):o&&typeof o.install=="function"&&o.install(this,...n),this},mixin(o){return this},component(o,n){return n?(t.component(o,n),this):t.component(o)},directive(o,n){return n?this:null},provide(o,n){return t.provide(o,n),this}}}import{defineComponent as C}from"@lytjs/component";function ot(i){return i&&typeof i=="object"?C(i):typeof i=="function"?C({setup:i}):C(i)}import{defineComponent as rt}from"@lytjs/component";import{h as st}from"@lytjs/core";var f=rt,pt=f({name:"KeepAlive",setup(i,{slots:e}){return()=>{var t;return(t=e.default)==null?void 0:t.call(e)}}}),at=f({name:"Teleport",props:{to:{type:[String,Object],required:!0},disabled:Boolean},setup(i,{slots:e}){return()=>{var t;return(t=e.default)==null?void 0:t.call(e)}}}),ct=f({name:"Transition",props:{name:{type:String,default:"v"}},setup(i,{slots:e}){return()=>{var t;return(t=e.default)==null?void 0:t.call(e)}}}),lt=f({name:"TransitionGroup",props:{tag:{type:String,default:"span"},name:{type:String,default:"v"}},setup(i,{slots:e}){return()=>{var t;return st(i.tag,null,(t=e.default)==null?void 0:t.call(e))}}}),ut=f({name:"Suspense",setup(i,{slots:e}){return()=>{var t;return(t=e.default)==null?void 0:t.call(e)}}});var ft=!1;function mt(i=!0){ft=i}function gt(){return{...h,version:"3.x (Compat)"}}function xe(i){let e=[],t=i.split(`
|
|
20
|
+
`);for(let o=0;o<t.length;o++){let n=t[o],r=o+1;/from\s+['"]vue['"]/.test(n)&&e.push({type:"import",severity:"warning",description:'\u4ECE "vue" \u5BFC\u5165\u9700\u8981\u66FF\u6362\u4E3A "@lytjs/compat"',suggestion:'\u5C06 from "vue" \u66FF\u6362\u4E3A from "@lytjs/compat"',line:r,original:n.trim(),replacement:n.trim().replace(/from\s+['"]vue['"]/,"from '@lytjs/compat'")}),/from\s+['"]vue-router['"]/.test(n)&&e.push({type:"ecosystem",severity:"warning",description:"vue-router \u9700\u8981\u66FF\u6362\u4E3A @lytjs/router",suggestion:'\u5C06 from "vue-router" \u66FF\u6362\u4E3A from "@lytjs/router"',line:r,original:n.trim(),replacement:n.trim().replace(/from\s+['"]vue-router['"]/,"from '@lytjs/router'")}),/from\s+['"]pinia['"]/.test(n)&&e.push({type:"ecosystem",severity:"warning",description:"Pinia \u9700\u8981\u66FF\u6362\u4E3A @lytjs/store",suggestion:'\u5C06 from "pinia" \u66FF\u6362\u4E3A from "@lytjs/store"\uFF0C\u5E76\u8C03\u6574 API \u8C03\u7528',line:r,original:n.trim(),replacement:n.trim().replace(/from\s+['"]pinia['"]/,"from '@lytjs/store'")}),/from\s+['"]vuex['"]/.test(n)&&e.push({type:"ecosystem",severity:"warning",description:"Vuex \u9700\u8981\u66FF\u6362\u4E3A @lytjs/store",suggestion:'\u5C06 from "vuex" \u66FF\u6362\u4E3A from "@lytjs/store"\uFF0C\u5E76\u8C03\u6574 API \u8C03\u7528',line:r,original:n.trim(),replacement:n.trim().replace(/from\s+['"]vuex['"]/,"from '@lytjs/store'")}),/v-for=/.test(n)&&e.push({type:"directive",severity:"warning",description:"v-for \u9700\u8981\u8F6C\u6362\u4E3A v-each",suggestion:'\u5C06 v-for="..." \u66FF\u6362\u4E3A v-each="..."',line:r,original:n.trim(),replacement:n.trim().replace(/v-for=/,"v-each=")}),/v-if=/.test(n)&&e.push({type:"directive",severity:"info",description:"v-if \u9700\u8981\u8F6C\u6362\u4E3A if",suggestion:'\u5C06 v-if="..." \u66FF\u6362\u4E3A if="..."',line:r,original:n.trim(),replacement:n.trim().replace(/v-if=/,"if=")}),/v-else-if=/.test(n)&&e.push({type:"directive",severity:"info",description:"v-else-if \u9700\u8981\u8F6C\u6362\u4E3A else-if",suggestion:'\u5C06 v-else-if="..." \u66FF\u6362\u4E3A else-if="..."',line:r,original:n.trim(),replacement:n.trim().replace(/v-else-if=/,"else-if=")}),/\bv-else\b/.test(n)&&e.push({type:"directive",severity:"info",description:"v-else \u9700\u8981\u8F6C\u6362\u4E3A else",suggestion:"\u5C06 v-else \u66FF\u6362\u4E3A else",line:r,original:n.trim(),replacement:n.trim().replace(/\bv-else\b/,"else")}),/v-show=/.test(n)&&e.push({type:"directive",severity:"info",description:"v-show \u9700\u8981\u8F6C\u6362\u4E3A show",suggestion:'\u5C06 v-show="..." \u66FF\u6362\u4E3A show="..."',line:r,original:n.trim(),replacement:n.trim().replace(/v-show=/,"show=")}),/v-model/.test(n)&&e.push({type:"directive",severity:"info",description:"v-model \u9700\u8981\u8F6C\u6362\u4E3A model",suggestion:'\u5C06 v-model="..." \u66FF\u6362\u4E3A model="..."',line:r,original:n.trim(),replacement:n.trim().replace(/v-model/,"model")}),/v-on:/.test(n)&&e.push({type:"directive",severity:"info",description:"v-on: \u9700\u8981\u8F6C\u6362\u4E3A on:",suggestion:'\u5C06 v-on:click="..." \u66FF\u6362\u4E3A on:click="..." \u6216 @click="..."',line:r,original:n.trim(),replacement:n.trim().replace(/v-on:/,"on:")}),/v-bind:/.test(n)&&e.push({type:"directive",severity:"info",description:"v-bind: \u53EF\u4EE5\u7B80\u5199\u4E3A :",suggestion:'\u5C06 v-bind:attr="..." \u66FF\u6362\u4E3A :attr="..."',line:r,original:n.trim(),replacement:n.trim().replace(/v-bind:/,":")}),/v-slot:/.test(n)&&e.push({type:"directive",severity:"info",description:"v-slot: \u9700\u8981\u8F6C\u6362\u4E3A slot:",suggestion:"\u5C06 v-slot:name \u66FF\u6362\u4E3A slot:name \u6216 #name",line:r,original:n.trim(),replacement:n.trim().replace(/v-slot:/,"slot:")}),/v-html=/.test(n)&&e.push({type:"directive",severity:"info",description:"v-html \u9700\u8981\u8F6C\u6362\u4E3A html",suggestion:'\u5C06 v-html="..." \u66FF\u6362\u4E3A html="..."',line:r,original:n.trim(),replacement:n.trim().replace(/v-html=/,"html=")}),/v-text=/.test(n)&&e.push({type:"directive",severity:"info",description:"v-text \u9700\u8981\u8F6C\u6362\u4E3A text",suggestion:'\u5C06 v-text="..." \u66FF\u6362\u4E3A text="..."',line:r,original:n.trim(),replacement:n.trim().replace(/v-text=/,"text=")}),/v-memo/.test(n)&&e.push({type:"feature",severity:"error",description:"v-memo \u5728 Lyt.js \u4E2D\u4E0D\u652F\u6301",suggestion:"\u4F7F\u7528 computed \u5C5E\u6027\u66FF\u4EE3\u624B\u52A8\u7F13\u5B58\u903B\u8F91",line:r,original:n.trim()}),/\$refs/.test(n)&&e.push({type:"api",severity:"warning",description:"$refs \u5728 Lyt.js \u4E2D\u4E0D\u652F\u6301",suggestion:"\u4F7F\u7528 ref() \u548C\u6A21\u677F ref \u5C5E\u6027\u66FF\u4EE3",line:r,original:n.trim()}),/\$emit/.test(n)&&e.push({type:"api",severity:"warning",description:"$emit \u5728 Lyt.js \u4E2D\u4E0D\u652F\u6301",suggestion:"\u4F7F\u7528 setup \u4E0A\u4E0B\u6587\u4E2D\u7684 emit \u51FD\u6570\u66FF\u4EE3",line:r,original:n.trim()}),/\$el/.test(n)&&e.push({type:"api",severity:"warning",description:"$el \u5728 Lyt.js \u4E2D\u4E0D\u652F\u6301",suggestion:"\u4F7F\u7528 template ref \u66FF\u4EE3",line:r,original:n.trim()}),/\$parent/.test(n)&&e.push({type:"api",severity:"warning",description:"$parent \u5728 Lyt.js \u4E2D\u4E0D\u652F\u6301",suggestion:"\u4F7F\u7528 provide/inject \u66FF\u4EE3",line:r,original:n.trim()}),/\$children/.test(n)&&e.push({type:"api",severity:"error",description:"$children \u5728 Lyt.js \u4E2D\u4E0D\u652F\u6301",suggestion:"\u4F7F\u7528 provide/inject \u6216\u4E8B\u4EF6\u603B\u7EBF\u66FF\u4EE3",line:r,original:n.trim()}),/\$forceUpdate/.test(n)&&e.push({type:"api",severity:"warning",description:"$forceUpdate \u5728 Lyt.js \u4E2D\u4E0D\u9700\u8981",suggestion:"Lyt.js \u7684\u54CD\u5E94\u5F0F\u7CFB\u7EDF\u4F1A\u81EA\u52A8\u89E6\u53D1\u66F4\u65B0",line:r,original:n.trim()}),/\$nextTick/.test(n)&&e.push({type:"api",severity:"info",description:"$nextTick \u9700\u8981\u66FF\u6362\u4E3A\u72EC\u7ACB\u7684 nextTick \u51FD\u6570",suggestion:'import { nextTick } from "@lytjs/compat"',line:r,original:n.trim()}),/defineProps/.test(n)&&e.push({type:"api",severity:"warning",description:"defineProps \u662F\u7F16\u8BD1\u5668\u5B8F\uFF0C\u9700\u8981\u624B\u52A8\u8F6C\u6362",suggestion:"\u5728 defineComponent({ props: {...} }) \u4E2D\u5B9A\u4E49 props",line:r,original:n.trim()}),/defineEmits/.test(n)&&e.push({type:"api",severity:"warning",description:"defineEmits \u662F\u7F16\u8BD1\u5668\u5B8F\uFF0C\u9700\u8981\u624B\u52A8\u8F6C\u6362",suggestion:"\u5728 defineComponent({ emits: [...] }) \u4E2D\u5B9A\u4E49 emits",line:r,original:n.trim()}),/defineExpose/.test(n)&&e.push({type:"api",severity:"info",description:"defineExpose \u5728 Lyt.js \u4E2D\u4E0D\u9700\u8981",suggestion:"setup \u8FD4\u56DE\u503C\u81EA\u52A8\u66B4\u9732\u4E3A\u516C\u5171\u5C5E\u6027",line:r,original:n.trim()}),/<style[^>]*module/.test(n)&&e.push({type:"style",severity:"error",description:"CSS Modules \u5728 Lyt.js \u4E2D\u4E0D\u652F\u6301",suggestion:"\u4F7F\u7528 scoped \u6837\u5F0F\u66FF\u4EE3",line:r,original:n.trim()}),/<Teleport/.test(n)&&e.push({type:"component",severity:"info",description:"Teleport \u7EC4\u4EF6\u5DF2\u901A\u8FC7 @lytjs/compat \u63D0\u4F9B",suggestion:"\u786E\u4FDD\u4ECE @lytjs/compat \u5BFC\u5165 Teleport",line:r}),/<Suspense/.test(n)&&e.push({type:"component",severity:"info",description:"Suspense \u7EC4\u4EF6\u5DF2\u901A\u8FC7 @lytjs/compat \u63D0\u4F9B",suggestion:"\u786E\u4FDD\u4ECE @lytjs/compat \u5BFC\u5165 Suspense",line:r}),/<KeepAlive/.test(n)&&e.push({type:"component",severity:"info",description:"KeepAlive \u7EC4\u4EF6\u5DF2\u901A\u8FC7 @lytjs/compat \u63D0\u4F9B",suggestion:"\u786E\u4FDD\u4ECE @lytjs/compat \u5BFC\u5165 KeepAlive",line:r})}return e}function dt(i){if(i.length===0)return 100;let e=100;for(let t of i)switch(t.severity){case"error":e-=15;break;case"warning":e-=5;break;case"info":e-=1;break}return Math.max(0,Math.min(100,e))}function yt(i){let e=[],t=new Set;for(let o of i)if(o.severity==="error"||o.severity==="warning"){let n=`${o.type}:${o.description}`;t.has(n)||(t.add(n),e.push(`- [${o.severity.toUpperCase()}] ${o.description}: ${o.suggestion}`))}return e}function vt(i){let e=x(i),t=xe(i);for(let s of e.warnings)t.push({type:s.type,severity:"warning",description:s.message,suggestion:s.suggestion||""});let o=t.filter(s=>s.severity==="error").length,n=t.filter(s=>s.severity==="warning").length,r=t.filter(s=>s.severity==="info").length;return{code:e.code,issues:t,errorCount:o,warningCount:n,infoCount:r,compatibilityScore:dt(t),manualFixes:yt(t)}}function ht(i){return xe(i)}function xt(i){let e=[];if(e.push("========================================"),e.push(" Vue 3 -> Lyt.js \u8FC1\u79FB\u62A5\u544A"),e.push("========================================"),e.push(""),e.push(`\u517C\u5BB9\u6027\u8BC4\u5206: ${i.compatibilityScore}/100`),i.compatibilityScore>=80?e.push("\u8FC1\u79FB\u96BE\u5EA6: \u4F4E - \u5927\u90E8\u5206\u4EE3\u7801\u53EF\u4EE5\u81EA\u52A8\u8F6C\u6362"):i.compatibilityScore>=50?e.push("\u8FC1\u79FB\u96BE\u5EA6: \u4E2D - \u9700\u8981\u4E00\u4E9B\u624B\u52A8\u8C03\u6574"):e.push("\u8FC1\u79FB\u96BE\u5EA6: \u9AD8 - \u9700\u8981\u5927\u91CF\u624B\u52A8\u4FEE\u6539"),e.push(""),e.push("\u95EE\u9898\u7EDF\u8BA1:"),e.push(` \u9519\u8BEF: ${i.errorCount}`),e.push(` \u8B66\u544A: ${i.warningCount}`),e.push(` \u4FE1\u606F: ${i.infoCount}`),e.push(""),i.manualFixes.length>0){e.push("\u9700\u8981\u624B\u52A8\u4FEE\u6539\u7684\u90E8\u5206:");for(let t of i.manualFixes)e.push(` ${t}`);e.push("")}if(i.issues.length>0){e.push("\u8BE6\u7EC6\u95EE\u9898\u5217\u8868:"),e.push("");let t=new Map;for(let n of i.issues){let r=t.get(n.type)||[];r.push(n),t.set(n.type,r)}let o={import:"\u5BFC\u5165\u8BED\u53E5",directive:"\u6307\u4EE4\u8BED\u6CD5",lifecycle:"\u751F\u547D\u5468\u671F",api:"API \u5DEE\u5F02",component:"\u7EC4\u4EF6",style:"\u6837\u5F0F",feature:"\u4E0D\u652F\u6301\u7684\u529F\u80FD",ecosystem:"\u751F\u6001\u7CFB\u7EDF"};for(let[n,r]of t){e.push(` [${o[n]}]`);for(let s of r){let g=s.line?` (\u884C ${s.line})`:"";e.push(` ${s.severity.toUpperCase()}: ${s.description}${g}`),e.push(` \u5EFA\u8BAE: ${s.suggestion}`)}e.push("")}}return e.push("========================================"),e.join(`
|
|
21
|
+
`)}export{ae as Fragment,pt as KeepAlive,ut as Suspense,at as Teleport,ct as Transition,lt as TransitionGroup,u as VueSfcConverter,ht as analyzeVueFile,L as computed,tt as convertVueSfcToLyt,x as convertVueSfcToLytWithWarnings,it as createApp,gt as createCompatVue,ce as defineAsyncComponent,ot as defineComponent,ue as defineEmits,me as defineExpose,le as defineProps,V as effect,xt as formatMigrationReport,oe as getCurrentInstance,re as getCurrentScope,pe as h,G as inject,ve as isProxy,y as isReactive,v as isReadonly,M as isRef,W as markRaw,vt as migrateVueFile,K as nextTick,ee as onActivated,H as onBeforeMount,Q as onBeforeUnmount,J as onBeforeUpdate,te as onDeactivated,X as onErrorCaptured,N as onMounted,Y as onRenderTracked,Z as onRenderTriggered,se as onScopeDispose,ne as onServerPrefetch,q as onUnmounted,_ as onUpdated,z as provide,he as proxyRefs,E as reactive,P as readonly,T as ref,I as shallowReactive,j as shallowRef,D as toRaw,$ as toRef,A as toRefs,k as triggerRef,b as unref,de as useAttrs,mt as useCompatMode,ge as useSlots,ye as useTemplateRef,U as watch,B as watchEffect,F as watchPostEffect,O as watchSyncEffect,fe as withDefaults};
|
|
@@ -7,25 +7,25 @@
|
|
|
7
7
|
* KeepAlive 组件
|
|
8
8
|
* @see https://vuejs.org/api/built-in-components.html#keepalive
|
|
9
9
|
*/
|
|
10
|
-
export declare const KeepAlive:
|
|
10
|
+
export declare const KeepAlive: any;
|
|
11
11
|
/**
|
|
12
12
|
* Teleport 组件
|
|
13
13
|
* @see https://vuejs.org/api/built-in-components.html#teleport
|
|
14
14
|
*/
|
|
15
|
-
export declare const Teleport:
|
|
15
|
+
export declare const Teleport: any;
|
|
16
16
|
/**
|
|
17
17
|
* Transition 组件
|
|
18
18
|
* @see https://vuejs.org/api/built-in-components.html#transition
|
|
19
19
|
*/
|
|
20
|
-
export declare const Transition:
|
|
20
|
+
export declare const Transition: any;
|
|
21
21
|
/**
|
|
22
22
|
* TransitionGroup 组件
|
|
23
23
|
* @see https://vuejs.org/api/built-in-components.html#transitiongroup
|
|
24
24
|
*/
|
|
25
|
-
export declare const TransitionGroup:
|
|
25
|
+
export declare const TransitionGroup: any;
|
|
26
26
|
/**
|
|
27
27
|
* Suspense 组件
|
|
28
28
|
* @see https://vuejs.org/api/built-in-components.html#suspense
|
|
29
29
|
*/
|
|
30
|
-
export declare const Suspense:
|
|
30
|
+
export declare const Suspense: any;
|
|
31
31
|
//# sourceMappingURL=built-in-components.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"built-in-components.d.ts","sourceRoot":"","sources":["../../src/built-in-components.ts"],"names":[],"mappings":"AAAA;;;;GAIG;
|
|
1
|
+
{"version":3,"file":"built-in-components.d.ts","sourceRoot":"","sources":["../../src/built-in-components.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AASH;;;GAGG;AACH,eAAO,MAAM,SAAS,KAKpB,CAAA;AAEF;;;GAGG;AACH,eAAO,MAAM,QAAQ,KASnB,CAAA;AAEF;;;GAGG;AACH,eAAO,MAAM,UAAU,KAQrB,CAAA;AAEF;;;GAGG;AACH,eAAO,MAAM,eAAe,KAS1B,CAAA;AAEF;;;GAGG;AACH,eAAO,MAAM,QAAQ,KAKnB,CAAA"}
|
package/dist/types/index.d.ts
CHANGED
|
@@ -5,11 +5,13 @@
|
|
|
5
5
|
*
|
|
6
6
|
* @module @lytjs/compat
|
|
7
7
|
*/
|
|
8
|
-
export { ref, shallowRef, isRef, unref, toRef, toRefs, triggerRef, reactive, readonly, shallowReactive, toRaw, isReactive, isReadonly, markRaw, computed, watch, watchEffect, watchPostEffect, watchSyncEffect, effect, nextTick, provide, inject, onMounted, onUpdated, onUnmounted, onBeforeMount, onBeforeUpdate, onBeforeUnmount, onErrorCaptured, onRenderTracked, onRenderTriggered, onActivated, onDeactivated, onServerPrefetch, getCurrentInstance, getCurrentScope, onScopeDispose, } from './vue3-api';
|
|
9
|
-
export { convertVueSfcToLyt, VueSfcConverter, } from './sfc-converter';
|
|
8
|
+
export { ref, shallowRef, isRef, unref, toRef, toRefs, triggerRef, reactive, readonly, shallowReactive, toRaw, isReactive, isReadonly, markRaw, computed, watch, watchEffect, watchPostEffect, watchSyncEffect, effect, nextTick, provide, inject, onMounted, onUpdated, onUnmounted, onBeforeMount, onBeforeUpdate, onBeforeUnmount, onErrorCaptured, onRenderTracked, onRenderTriggered, onActivated, onDeactivated, onServerPrefetch, getCurrentInstance, getCurrentScope, onScopeDispose, h, Fragment, defineAsyncComponent, defineProps, defineEmits, withDefaults, defineExpose, useSlots, useAttrs, useTemplateRef, isProxy, proxyRefs, } from './vue3-api';
|
|
9
|
+
export { convertVueSfcToLyt, convertVueSfcToLytWithWarnings, VueSfcConverter, } from './sfc-converter';
|
|
10
10
|
export { createApp } from './create-app';
|
|
11
11
|
export { defineComponent } from './define-component';
|
|
12
12
|
export { KeepAlive, Teleport, Transition, TransitionGroup, Suspense, } from './built-in-components';
|
|
13
|
-
export type { Ref, ComputedRef, WritableComputedRef, Reactive, UnwrapRef, ComponentPublicInstance, SetupContext, ComponentOptions, DefineComponent, App, AppConfig, Plugin, Directive, } from './types';
|
|
13
|
+
export type { Ref, ComputedRef, WritableComputedRef, Reactive, UnwrapRef, ComponentPublicInstance, SetupContext, ComponentOptions, DefineComponent, App, AppConfig, Plugin, Directive, DirectiveBinding, AsyncComponentLoader, AsyncComponentOptions, AsyncComponent, VNode, } from './types';
|
|
14
14
|
export { createCompatVue, useCompatMode, } from './compat-mode';
|
|
15
|
+
export { migrateVueFile, analyzeVueFile, formatMigrationReport, } from './migrate';
|
|
16
|
+
export type { MigrationIssue, MigrationIssueType, MigrationSeverity, MigrationReport, } from './migrate';
|
|
15
17
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAGH,OAAO,EACL,GAAG,EACH,UAAU,EACV,KAAK,EACL,KAAK,EACL,KAAK,EACL,MAAM,EACN,UAAU,EACV,QAAQ,EACR,QAAQ,EACR,eAAe,EACf,KAAK,EACL,UAAU,EACV,UAAU,EACV,OAAO,EACP,QAAQ,EACR,KAAK,EACL,WAAW,EACX,eAAe,EACf,eAAe,EACf,MAAM,EACN,QAAQ,EACR,OAAO,EACP,MAAM,EACN,SAAS,EACT,SAAS,EACT,WAAW,EACX,aAAa,EACb,cAAc,EACd,eAAe,EACf,eAAe,EACf,eAAe,EACf,iBAAiB,EACjB,WAAW,EACX,aAAa,EACb,gBAAgB,EAChB,kBAAkB,EAClB,eAAe,EACf,cAAc,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAGH,OAAO,EACL,GAAG,EACH,UAAU,EACV,KAAK,EACL,KAAK,EACL,KAAK,EACL,MAAM,EACN,UAAU,EACV,QAAQ,EACR,QAAQ,EACR,eAAe,EACf,KAAK,EACL,UAAU,EACV,UAAU,EACV,OAAO,EACP,QAAQ,EACR,KAAK,EACL,WAAW,EACX,eAAe,EACf,eAAe,EACf,MAAM,EACN,QAAQ,EACR,OAAO,EACP,MAAM,EACN,SAAS,EACT,SAAS,EACT,WAAW,EACX,aAAa,EACb,cAAc,EACd,eAAe,EACf,eAAe,EACf,eAAe,EACf,iBAAiB,EACjB,WAAW,EACX,aAAa,EACb,gBAAgB,EAChB,kBAAkB,EAClB,eAAe,EACf,cAAc,EAEd,CAAC,EACD,QAAQ,EAER,oBAAoB,EAEpB,WAAW,EACX,WAAW,EACX,YAAY,EACZ,YAAY,EAEZ,QAAQ,EACR,QAAQ,EACR,cAAc,EAEd,OAAO,EACP,SAAS,GACV,MAAM,YAAY,CAAA;AAGnB,OAAO,EACL,kBAAkB,EAClB,8BAA8B,EAC9B,eAAe,GAChB,MAAM,iBAAiB,CAAA;AAGxB,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAA;AAGxC,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAA;AAGpD,OAAO,EACL,SAAS,EACT,QAAQ,EACR,UAAU,EACV,eAAe,EACf,QAAQ,GACT,MAAM,uBAAuB,CAAA;AAG9B,YAAY,EACV,GAAG,EACH,WAAW,EACX,mBAAmB,EACnB,QAAQ,EACR,SAAS,EACT,uBAAuB,EACvB,YAAY,EACZ,gBAAgB,EAChB,eAAe,EACf,GAAG,EACH,SAAS,EACT,MAAM,EACN,SAAS,EACT,gBAAgB,EAChB,oBAAoB,EACpB,qBAAqB,EACrB,cAAc,EACd,KAAK,GACN,MAAM,SAAS,CAAA;AAGhB,OAAO,EACL,eAAe,EACf,aAAa,GACd,MAAM,eAAe,CAAA;AAGtB,OAAO,EACL,cAAc,EACd,cAAc,EACd,qBAAqB,GACtB,MAAM,WAAW,CAAA;AAElB,YAAY,EACV,cAAc,EACd,kBAAkB,EAClB,iBAAiB,EACjB,eAAe,GAChB,MAAM,WAAW,CAAA"}
|
|
@@ -0,0 +1,86 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Vue 3 到 Lyt.js 迁移工具
|
|
3
|
+
*
|
|
4
|
+
* 提供代码级别的迁移分析和转换功能,帮助用户从 Vue 3 平滑迁移到 Lyt.js。
|
|
5
|
+
*/
|
|
6
|
+
/**
|
|
7
|
+
* 迁移问题类型
|
|
8
|
+
*/
|
|
9
|
+
export type MigrationIssueType = 'import' | 'directive' | 'lifecycle' | 'api' | 'component' | 'style' | 'feature' | 'ecosystem';
|
|
10
|
+
/**
|
|
11
|
+
* 迁移问题严重程度
|
|
12
|
+
*/
|
|
13
|
+
export type MigrationSeverity = 'error' | 'warning' | 'info';
|
|
14
|
+
/**
|
|
15
|
+
* 迁移问题
|
|
16
|
+
*/
|
|
17
|
+
export interface MigrationIssue {
|
|
18
|
+
type: MigrationIssueType;
|
|
19
|
+
severity: MigrationSeverity;
|
|
20
|
+
description: string;
|
|
21
|
+
suggestion: string;
|
|
22
|
+
line?: number;
|
|
23
|
+
original?: string;
|
|
24
|
+
replacement?: string;
|
|
25
|
+
}
|
|
26
|
+
/**
|
|
27
|
+
* 迁移报告
|
|
28
|
+
*/
|
|
29
|
+
export interface MigrationReport {
|
|
30
|
+
/** 转换后的代码 */
|
|
31
|
+
code: string;
|
|
32
|
+
/** 所有迁移问题 */
|
|
33
|
+
issues: MigrationIssue[];
|
|
34
|
+
/** 错误数量 */
|
|
35
|
+
errorCount: number;
|
|
36
|
+
/** 警告数量 */
|
|
37
|
+
warningCount: number;
|
|
38
|
+
/** 信息数量 */
|
|
39
|
+
infoCount: number;
|
|
40
|
+
/** 兼容性评分(0-100) */
|
|
41
|
+
compatibilityScore: number;
|
|
42
|
+
/** 需要手动修改的部分 */
|
|
43
|
+
manualFixes: string[];
|
|
44
|
+
}
|
|
45
|
+
/**
|
|
46
|
+
* 迁移 Vue 3 SFC 代码到 Lyt.js
|
|
47
|
+
*
|
|
48
|
+
* @param source - Vue 3 SFC 源代码
|
|
49
|
+
* @returns 迁移报告,包含转换后的代码和问题列表
|
|
50
|
+
*
|
|
51
|
+
* @example
|
|
52
|
+
* ```typescript
|
|
53
|
+
* import { migrateVueFile } from '@lytjs/compat/migrate'
|
|
54
|
+
*
|
|
55
|
+
* const report = migrateVueFile(`
|
|
56
|
+
* <template>
|
|
57
|
+
* <div v-if="show">{{ message }}</div>
|
|
58
|
+
* </template>
|
|
59
|
+
*
|
|
60
|
+
* <script setup>
|
|
61
|
+
* import { ref } from 'vue'
|
|
62
|
+
* const message = ref('Hello')
|
|
63
|
+
* </script>
|
|
64
|
+
* `)
|
|
65
|
+
*
|
|
66
|
+
* console.log(report.code) // 转换后的代码
|
|
67
|
+
* console.log(report.issues) // 迁移问题列表
|
|
68
|
+
* console.log(report.compatibilityScore) // 兼容性评分
|
|
69
|
+
* ```
|
|
70
|
+
*/
|
|
71
|
+
export declare function migrateVueFile(source: string): MigrationReport;
|
|
72
|
+
/**
|
|
73
|
+
* 分析 Vue 3 代码的迁移可行性(不执行转换)
|
|
74
|
+
*
|
|
75
|
+
* @param source - Vue 3 SFC 源代码
|
|
76
|
+
* @returns 迁移问题列表
|
|
77
|
+
*/
|
|
78
|
+
export declare function analyzeVueFile(source: string): MigrationIssue[];
|
|
79
|
+
/**
|
|
80
|
+
* 生成迁移摘要报告(文本格式)
|
|
81
|
+
*
|
|
82
|
+
* @param report - 迁移报告
|
|
83
|
+
* @returns 格式化的文本报告
|
|
84
|
+
*/
|
|
85
|
+
export declare function formatMigrationReport(report: MigrationReport): string;
|
|
86
|
+
//# sourceMappingURL=migrate.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"migrate.d.ts","sourceRoot":"","sources":["../../src/migrate.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAIH;;GAEG;AACH,MAAM,MAAM,kBAAkB,GAC1B,QAAQ,GACR,WAAW,GACX,WAAW,GACX,KAAK,GACL,WAAW,GACX,OAAO,GACP,SAAS,GACT,WAAW,CAAA;AAEf;;GAEG;AACH,MAAM,MAAM,iBAAiB,GAAG,OAAO,GAAG,SAAS,GAAG,MAAM,CAAA;AAE5D;;GAEG;AACH,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,kBAAkB,CAAA;IACxB,QAAQ,EAAE,iBAAiB,CAAA;IAC3B,WAAW,EAAE,MAAM,CAAA;IACnB,UAAU,EAAE,MAAM,CAAA;IAClB,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,WAAW,CAAC,EAAE,MAAM,CAAA;CACrB;AAED;;GAEG;AACH,MAAM,WAAW,eAAe;IAC9B,aAAa;IACb,IAAI,EAAE,MAAM,CAAA;IACZ,aAAa;IACb,MAAM,EAAE,cAAc,EAAE,CAAA;IACxB,WAAW;IACX,UAAU,EAAE,MAAM,CAAA;IAClB,WAAW;IACX,YAAY,EAAE,MAAM,CAAA;IACpB,WAAW;IACX,SAAS,EAAE,MAAM,CAAA;IACjB,mBAAmB;IACnB,kBAAkB,EAAE,MAAM,CAAA;IAC1B,gBAAgB;IAChB,WAAW,EAAE,MAAM,EAAE,CAAA;CACtB;AAkbD;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AACH,wBAAgB,cAAc,CAAC,MAAM,EAAE,MAAM,GAAG,eAAe,CA+B9D;AAED;;;;;GAKG;AACH,wBAAgB,cAAc,CAAC,MAAM,EAAE,MAAM,GAAG,cAAc,EAAE,CAE/D;AAED;;;;;GAKG;AACH,wBAAgB,qBAAqB,CAAC,MAAM,EAAE,eAAe,GAAG,MAAM,CAyErE"}
|
|
@@ -14,13 +14,43 @@ interface SFCParseResult {
|
|
|
14
14
|
content: string;
|
|
15
15
|
attrs: Record<string, string>;
|
|
16
16
|
}>;
|
|
17
|
+
customBlocks: Array<{
|
|
18
|
+
tag: string;
|
|
19
|
+
content: string;
|
|
20
|
+
attrs: Record<string, string>;
|
|
21
|
+
}>;
|
|
22
|
+
}
|
|
23
|
+
/**
|
|
24
|
+
* 转换警告信息
|
|
25
|
+
*/
|
|
26
|
+
interface ConversionWarning {
|
|
27
|
+
type: 'directive' | 'syntax' | 'api' | 'feature';
|
|
28
|
+
message: string;
|
|
29
|
+
line?: number;
|
|
30
|
+
suggestion?: string;
|
|
31
|
+
}
|
|
32
|
+
/**
|
|
33
|
+
* 转换结果
|
|
34
|
+
*/
|
|
35
|
+
interface ConversionResult {
|
|
36
|
+
code: string;
|
|
37
|
+
warnings: ConversionWarning[];
|
|
17
38
|
}
|
|
18
39
|
/**
|
|
19
40
|
* Vue SFC 转换器类
|
|
20
41
|
*/
|
|
21
42
|
export declare class VueSfcConverter {
|
|
22
43
|
private content;
|
|
44
|
+
private warnings;
|
|
23
45
|
constructor(content: string);
|
|
46
|
+
/**
|
|
47
|
+
* 获取转换过程中的警告
|
|
48
|
+
*/
|
|
49
|
+
getWarnings(): ConversionWarning[];
|
|
50
|
+
/**
|
|
51
|
+
* 添加警告
|
|
52
|
+
*/
|
|
53
|
+
private addWarning;
|
|
24
54
|
/**
|
|
25
55
|
* 解析 Vue SFC
|
|
26
56
|
*/
|
|
@@ -33,6 +63,10 @@ export declare class VueSfcConverter {
|
|
|
33
63
|
* 转换脚本
|
|
34
64
|
*/
|
|
35
65
|
convertScript(script: string, isSetup?: boolean): string;
|
|
66
|
+
/**
|
|
67
|
+
* 将 <script setup> 语法转换为 setup() 函数
|
|
68
|
+
*/
|
|
69
|
+
private convertScriptSetupToSetup;
|
|
36
70
|
/**
|
|
37
71
|
* 转换样式
|
|
38
72
|
*/
|
|
@@ -41,10 +75,18 @@ export declare class VueSfcConverter {
|
|
|
41
75
|
* 执行完整转换
|
|
42
76
|
*/
|
|
43
77
|
convert(): string;
|
|
78
|
+
/**
|
|
79
|
+
* 执行完整转换并返回结果(含警告)
|
|
80
|
+
*/
|
|
81
|
+
convertWithWarnings(): ConversionResult;
|
|
44
82
|
}
|
|
45
83
|
/**
|
|
46
84
|
* 便捷函数:转换 Vue SFC 内容为 Lyt.js SFC
|
|
47
85
|
*/
|
|
48
86
|
export declare function convertVueSfcToLyt(content: string): string;
|
|
87
|
+
/**
|
|
88
|
+
* 便捷函数:转换 Vue SFC 内容并返回警告
|
|
89
|
+
*/
|
|
90
|
+
export declare function convertVueSfcToLytWithWarnings(content: string): ConversionResult;
|
|
49
91
|
export {};
|
|
50
92
|
//# sourceMappingURL=sfc-converter.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sfc-converter.d.ts","sourceRoot":"","sources":["../../src/sfc-converter.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH;;GAEG;AACH,UAAU,cAAc;IACtB,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAA;IACvB,MAAM,EAAE,MAAM,GAAG,IAAI,CAAA;IACrB,WAAW,EAAE,MAAM,GAAG,IAAI,CAAA;IAC1B,MAAM,EAAE,KAAK,CAAC;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;KAAE,CAAC,CAAA;
|
|
1
|
+
{"version":3,"file":"sfc-converter.d.ts","sourceRoot":"","sources":["../../src/sfc-converter.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH;;GAEG;AACH,UAAU,cAAc;IACtB,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAA;IACvB,MAAM,EAAE,MAAM,GAAG,IAAI,CAAA;IACrB,WAAW,EAAE,MAAM,GAAG,IAAI,CAAA;IAC1B,MAAM,EAAE,KAAK,CAAC;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;KAAE,CAAC,CAAA;IACjE,YAAY,EAAE,KAAK,CAAC;QAAE,GAAG,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;KAAE,CAAC,CAAA;CACrF;AAED;;GAEG;AACH,UAAU,iBAAiB;IACzB,IAAI,EAAE,WAAW,GAAG,QAAQ,GAAG,KAAK,GAAG,SAAS,CAAA;IAChD,OAAO,EAAE,MAAM,CAAA;IACf,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,UAAU,CAAC,EAAE,MAAM,CAAA;CACpB;AAED;;GAEG;AACH,UAAU,gBAAgB;IACxB,IAAI,EAAE,MAAM,CAAA;IACZ,QAAQ,EAAE,iBAAiB,EAAE,CAAA;CAC9B;AAED;;GAEG;AACH,qBAAa,eAAe;IAC1B,OAAO,CAAC,OAAO,CAAQ;IACvB,OAAO,CAAC,QAAQ,CAA0B;gBAE9B,OAAO,EAAE,MAAM;IAI3B;;OAEG;IACH,WAAW,IAAI,iBAAiB,EAAE;IAIlC;;OAEG;IACH,OAAO,CAAC,UAAU;IAIlB;;OAEG;IACH,KAAK,IAAI,cAAc;IAiFvB;;OAEG;IACH,eAAe,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM;IA4EzC;;OAEG;IACH,aAAa,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,GAAE,OAAe,GAAG,MAAM;IA4F/D;;OAEG;IACH,OAAO,CAAC,yBAAyB;IA8BjC;;OAEG;IACH,aAAa,CAAC,MAAM,EAAE,cAAc,CAAC,QAAQ,CAAC,GAAG,MAAM;IA0BvD;;OAEG;IACH,OAAO,IAAI,MAAM;IA2CjB;;OAEG;IACH,mBAAmB,IAAI,gBAAgB;CAKxC;AAED;;GAEG;AACH,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAG1D;AAED;;GAEG;AACH,wBAAgB,8BAA8B,CAAC,OAAO,EAAE,MAAM,GAAG,gBAAgB,CAGhF"}
|
package/dist/types/types.d.ts
CHANGED
|
@@ -164,13 +164,57 @@ export type Plugin = ((app: App, ...options: any[]) => any) | {
|
|
|
164
164
|
* 指令类型
|
|
165
165
|
* @see https://vuejs.org/guide/reusability/custom-directives.html
|
|
166
166
|
*/
|
|
167
|
-
export interface Directive {
|
|
168
|
-
created?: (el: any, binding:
|
|
169
|
-
beforeMount?: (el: any, binding:
|
|
170
|
-
mounted?: (el: any, binding:
|
|
171
|
-
beforeUpdate?: (el: any, binding:
|
|
172
|
-
updated?: (el: any, binding:
|
|
173
|
-
beforeUnmount?: (el: any, binding:
|
|
174
|
-
unmounted?: (el: any, binding:
|
|
167
|
+
export interface Directive<T = any, V = any> {
|
|
168
|
+
created?: (el: any, binding: DirectiveBinding<V>, vnode: any, prevVnode: any) => void;
|
|
169
|
+
beforeMount?: (el: any, binding: DirectiveBinding<V>, vnode: any, prevVnode: any) => void;
|
|
170
|
+
mounted?: (el: any, binding: DirectiveBinding<V>, vnode: any, prevVnode: any) => void;
|
|
171
|
+
beforeUpdate?: (el: any, binding: DirectiveBinding<V>, vnode: any, prevVnode: any) => void;
|
|
172
|
+
updated?: (el: any, binding: DirectiveBinding<V>, vnode: any, prevVnode: any) => void;
|
|
173
|
+
beforeUnmount?: (el: any, binding: DirectiveBinding<V>, vnode: any, prevVnode: any) => void;
|
|
174
|
+
unmounted?: (el: any, binding: DirectiveBinding<V>, vnode: any, prevVnode: any) => void;
|
|
175
|
+
get?: (el: T, binding: DirectiveBinding<V>, vnode: any, prevVnode: any) => V;
|
|
176
|
+
set?: (el: T, binding: DirectiveBinding<V>, vnode: any, prevVnode: any, prevValue: V) => void;
|
|
177
|
+
}
|
|
178
|
+
/**
|
|
179
|
+
* 指令绑定值
|
|
180
|
+
*/
|
|
181
|
+
export interface DirectiveBinding<V = any> {
|
|
182
|
+
instance: ComponentPublicInstance | null;
|
|
183
|
+
value: V;
|
|
184
|
+
oldValue: V | null;
|
|
185
|
+
arg?: string;
|
|
186
|
+
modifiers: Record<string, boolean>;
|
|
187
|
+
dir: Directive<any, V>;
|
|
188
|
+
}
|
|
189
|
+
/**
|
|
190
|
+
* 异步组件加载器
|
|
191
|
+
*/
|
|
192
|
+
export type AsyncComponentLoader<T = any> = () => Promise<T>;
|
|
193
|
+
/**
|
|
194
|
+
* 异步组件选项
|
|
195
|
+
*/
|
|
196
|
+
export interface AsyncComponentOptions<T = any> {
|
|
197
|
+
loader: AsyncComponentLoader<T>;
|
|
198
|
+
loadingComponent?: any;
|
|
199
|
+
errorComponent?: any;
|
|
200
|
+
delay?: number;
|
|
201
|
+
timeout?: number;
|
|
202
|
+
suspensible?: boolean;
|
|
203
|
+
onError?: (error: Error, retry: () => void, fail: () => void, attempts: number) => any;
|
|
204
|
+
}
|
|
205
|
+
/**
|
|
206
|
+
* 异步组件类型
|
|
207
|
+
*/
|
|
208
|
+
export type AsyncComponent<T = any> = AsyncComponentOptions<T> | AsyncComponentLoader<T>;
|
|
209
|
+
/**
|
|
210
|
+
* VNode 类型(简化版)
|
|
211
|
+
*/
|
|
212
|
+
export interface VNode {
|
|
213
|
+
type: any;
|
|
214
|
+
props: Record<string, any> | null;
|
|
215
|
+
children: any;
|
|
216
|
+
key: string | number | null;
|
|
217
|
+
ref: any;
|
|
218
|
+
el: any;
|
|
175
219
|
}
|
|
176
220
|
//# sourceMappingURL=types.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/types.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/types.ts"],"names":[],"mappings":"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"}
|
package/dist/types/vue3-api.d.ts
CHANGED
|
@@ -4,7 +4,9 @@
|
|
|
4
4
|
* 重新导出 Lyt.js 的响应式 API,并提供 Vue 3 特有的 API
|
|
5
5
|
*/
|
|
6
6
|
import { ref as lytRef, shallowRef as lytShallowRef, isRef as lytIsRef, unref as lytUnref, toRef as lytToRef, toRefs as lytToRefs, triggerRef as lytTriggerRef, reactive as lytReactive, readonly as lytReadonly, shallowReactive as lytShallowReactive, toRaw as lytToRaw, isReactive as lytIsReactive, isReadonly as lytIsReadonly, computed as lytComputed, watch as lytWatch, watchEffect as lytWatchEffect, effect as lytEffect, nextTick as lytNextTick } from '@lytjs/reactivity';
|
|
7
|
-
import { provide as lytProvide, inject as lytInject, compositionOnBeforeMount as lytOnBeforeMount } from '@lytjs/component';
|
|
7
|
+
import { provide as lytProvide, inject as lytInject, compositionOnBeforeMount as lytOnBeforeMount, defineEmits as lytDefineEmits } from '@lytjs/component';
|
|
8
|
+
import { h as lytH } from '@lytjs/core';
|
|
9
|
+
import { defineAsyncComponent as lytDefineAsyncComponent } from '@lytjs/component/builtins/async-component';
|
|
8
10
|
/**
|
|
9
11
|
* 创建响应式引用
|
|
10
12
|
* @see https://vuejs.org/api/reactivity-core.html#ref
|
|
@@ -199,4 +201,78 @@ export declare function getCurrentScope(): any;
|
|
|
199
201
|
* @see https://vuejs.org/api/reactivity-advanced.html#onscopedispose
|
|
200
202
|
*/
|
|
201
203
|
export declare function onScopeDispose(fn: () => void): void;
|
|
204
|
+
/**
|
|
205
|
+
* 创建虚拟节点
|
|
206
|
+
* @see https://vuejs.org/api/render-function.html#h
|
|
207
|
+
*/
|
|
208
|
+
export declare const h: typeof lytH;
|
|
209
|
+
/**
|
|
210
|
+
* Fragment 片段组件
|
|
211
|
+
* @see https://vuejs.org/api/render-function.html#fragment
|
|
212
|
+
*/
|
|
213
|
+
export declare const Fragment: symbol;
|
|
214
|
+
/**
|
|
215
|
+
* 定义异步组件
|
|
216
|
+
* @see https://vuejs.org/api/general.html#defineasynccomponent
|
|
217
|
+
*/
|
|
218
|
+
export declare const defineAsyncComponent: typeof lytDefineAsyncComponent;
|
|
219
|
+
/**
|
|
220
|
+
* 定义组件 props(编译器宏占位)
|
|
221
|
+
*
|
|
222
|
+
* 在 Lyt.js 中,props 通过 defineComponent 的 props 选项定义。
|
|
223
|
+
* 此函数仅用于代码兼容,运行时返回空对象。
|
|
224
|
+
*
|
|
225
|
+
* @see https://vuejs.org/api/sfc-script-setup.html#defineprops
|
|
226
|
+
*/
|
|
227
|
+
export declare function defineProps<T = any>(): T;
|
|
228
|
+
/**
|
|
229
|
+
* 定义组件 emits(编译器宏占位)
|
|
230
|
+
*
|
|
231
|
+
* 在 Lyt.js 中,emits 通过 defineComponent 的 emits 选项定义。
|
|
232
|
+
* 此函数包装了 @lytjs/component 的 defineEmits。
|
|
233
|
+
*
|
|
234
|
+
* @see https://vuejs.org/api/sfc-script-setup.html#defineemits
|
|
235
|
+
*/
|
|
236
|
+
export declare const defineEmits: typeof lytDefineEmits;
|
|
237
|
+
/**
|
|
238
|
+
* 为 props 设置默认值(编译器宏占位)
|
|
239
|
+
*
|
|
240
|
+
* @see https://vuejs.org/api/sfc-script-setup.html#withdefaults
|
|
241
|
+
*/
|
|
242
|
+
export declare function withDefaults<T, D>(props: T, defaults: D): T & D;
|
|
243
|
+
/**
|
|
244
|
+
* 暴露组件公共属性(编译器宏占位)
|
|
245
|
+
*
|
|
246
|
+
* 在 Lyt.js 中,setup 返回的对象自动暴露为公共属性。
|
|
247
|
+
*
|
|
248
|
+
* @see https://vuejs.org/api/sfc-script-setup.html#defineexpose
|
|
249
|
+
*/
|
|
250
|
+
export declare function defineExpose<T = any>(exposed?: T): void;
|
|
251
|
+
/**
|
|
252
|
+
* 使用插槽(占位)
|
|
253
|
+
* @see https://vuejs.org/api/composition-api-setup.html#useslots
|
|
254
|
+
*/
|
|
255
|
+
export declare function useSlots(): Record<string, any>;
|
|
256
|
+
/**
|
|
257
|
+
* 使用 attrs(占位)
|
|
258
|
+
* @see https://vuejs.org/api/composition-api-setup.html#useattrs
|
|
259
|
+
*/
|
|
260
|
+
export declare function useAttrs(): Record<string, any>;
|
|
261
|
+
/**
|
|
262
|
+
* 使用模板引用(占位)
|
|
263
|
+
* @see https://vuejs.org/api/composition-api-setup.html#usetemplateRef
|
|
264
|
+
*/
|
|
265
|
+
export declare function useTemplateRef<T = any>(key: string): {
|
|
266
|
+
value: T | null;
|
|
267
|
+
};
|
|
268
|
+
/**
|
|
269
|
+
* 检查值是否为代理对象(reactive / readonly)
|
|
270
|
+
* @see https://vuejs.org/api/reactivity-utilities.html#isproxy
|
|
271
|
+
*/
|
|
272
|
+
export declare function isProxy(value: unknown): boolean;
|
|
273
|
+
/**
|
|
274
|
+
* 将 ref 标记为不再需要跟踪
|
|
275
|
+
* @see https://vuejs.org/api/reactivity-utilities.html#toraw
|
|
276
|
+
*/
|
|
277
|
+
export declare function proxyRefs<T extends object>(objectWithRefs: T): T;
|
|
202
278
|
//# sourceMappingURL=vue3-api.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"vue3-api.d.ts","sourceRoot":"","sources":["../../src/vue3-api.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,OAAO,EACL,GAAG,IAAI,MAAM,EACb,UAAU,IAAI,aAAa,EAC3B,KAAK,IAAI,QAAQ,EACjB,KAAK,IAAI,QAAQ,EACjB,KAAK,IAAI,QAAQ,EACjB,MAAM,IAAI,SAAS,EACnB,UAAU,IAAI,aAAa,EAC3B,QAAQ,IAAI,WAAW,EACvB,QAAQ,IAAI,WAAW,EACvB,eAAe,IAAI,kBAAkB,EACrC,KAAK,IAAI,QAAQ,EACjB,UAAU,IAAI,aAAa,EAC3B,UAAU,IAAI,aAAa,EAC3B,QAAQ,IAAI,WAAW,EACvB,KAAK,IAAI,QAAQ,EACjB,WAAW,IAAI,cAAc,EAC7B,MAAM,IAAI,SAAS,EACnB,QAAQ,IAAI,WAAW,EACxB,MAAM,mBAAmB,CAAA;AAG1B,OAAO,EACL,OAAO,IAAI,UAAU,EACrB,MAAM,IAAI,SAAS,EAInB,wBAAwB,IAAI,gBAAgB,
|
|
1
|
+
{"version":3,"file":"vue3-api.d.ts","sourceRoot":"","sources":["../../src/vue3-api.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@lytjs/compat",
|
|
3
|
-
"version": "
|
|
3
|
+
"version": "5.0.1",
|
|
4
4
|
"description": "Lyt.js Vue 3 兼容层 - 提供与 Vue 3 兼容的 API 和工具",
|
|
5
5
|
"main": "./dist/index.cjs",
|
|
6
6
|
"module": "./dist/index.mjs",
|
|
@@ -11,12 +11,6 @@
|
|
|
11
11
|
"import": "./dist/index.mjs",
|
|
12
12
|
"require": "./dist/index.cjs",
|
|
13
13
|
"default": "./dist/index.mjs"
|
|
14
|
-
},
|
|
15
|
-
"./vite": {
|
|
16
|
-
"types": "./dist/types/vite.d.ts",
|
|
17
|
-
"import": "./dist/vite.mjs",
|
|
18
|
-
"require": "./dist/vite.cjs",
|
|
19
|
-
"default": "./dist/vite.mjs"
|
|
20
14
|
}
|
|
21
15
|
},
|
|
22
16
|
"bin": {
|
|
@@ -47,9 +41,8 @@
|
|
|
47
41
|
"access": "public"
|
|
48
42
|
},
|
|
49
43
|
"dependencies": {
|
|
50
|
-
"@lytjs/core": "^
|
|
51
|
-
"@lytjs/reactivity": "^
|
|
52
|
-
"@lytjs/component": "^
|
|
53
|
-
}
|
|
54
|
-
"devDependencies": {}
|
|
44
|
+
"@lytjs/core": "^5.0.1",
|
|
45
|
+
"@lytjs/reactivity": "^5.0.1",
|
|
46
|
+
"@lytjs/component": "^5.0.1"
|
|
47
|
+
}
|
|
55
48
|
}
|