@proteus-vue/compat-miniprogram 0.1.1-beta.1 → 0.1.1-beta.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.js +21 -20
- package/dist/route-table.d.ts +4 -1
- package/dist/tags.d.ts +7 -2
- package/package.json +2 -2
package/dist/index.js
CHANGED
|
@@ -63,25 +63,25 @@ var AUTO_CODEMOD_TAGS = {
|
|
|
63
63
|
checkbox: "p-checkbox",
|
|
64
64
|
radio: "p-radio",
|
|
65
65
|
form: "p-form",
|
|
66
|
-
picker: "p-picker"
|
|
66
|
+
picker: "p-picker",
|
|
67
|
+
"scroll-view": "p-scroll-view"
|
|
67
68
|
};
|
|
68
69
|
var MANUAL_TAGS = {
|
|
69
|
-
|
|
70
|
-
swiper:
|
|
71
|
-
"
|
|
72
|
-
"movable-
|
|
73
|
-
"
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
progress: "p-progress\uFF08L2\uFF09",
|
|
70
|
+
swiper: '\u8F6E\u64AD\u8BED\u4E49\u2014\u2014\u65E0 1:1 \u7EC4\u4EF6\uFF0C\u7528 <p-stack direction="row" snap="mandatory" :loop="true"> \u8868\u8FBE\uFF08\u26052026-09-19 \u5DF2\u843D\u5730\uFF1Asnap/loop \u53EF\u7528\uFF1BMP \u7AEF\u964D\u7EA7\u4E3A\u666E\u901A\u6392\u5217+\u63D0\u793A\uFF0C\u5982\u9700\u539F\u751F\u7FFB\u9875\u7528 p-scroll-view \u7684 paging-enabled\uFF09',
|
|
71
|
+
"swiper-item": "\u8F6E\u64AD\u5B50\u9879\u2014\u2014\u968F swiper \u8F6C\u4E3A p-stack \u7684\u76F4\u63A5\u5B50\u9879\uFF08\u6BCF\u4E2A\u5B50\u9879\u5373\u4E00\u5C4F\uFF09",
|
|
72
|
+
"movable-area": "gesture.scrollable \u5BB9\u5668\uFF08p-scrollable\uFF09",
|
|
73
|
+
"movable-view": "gesture.draggable\uFF08p-draggable\uFF09",
|
|
74
|
+
navigator: "p-router-link\uFF08url \u2192 to \u5C5E\u6027\u6620\u5C04\uFF09",
|
|
75
|
+
label: "p-label",
|
|
76
|
+
progress: "p-progress",
|
|
77
77
|
"rich-text": "p-rich-text",
|
|
78
78
|
icon: "p-icon",
|
|
79
79
|
canvas: "p-canvas",
|
|
80
80
|
video: 'p-media kind="video"\uFF08\u6D88\u706D\u4E3A\u5C5E\u6027\uFF09',
|
|
81
81
|
audio: 'p-media kind="audio"\uFF08\u6D88\u706D\u4E3A\u5C5E\u6027\uFF09',
|
|
82
|
-
camera: "p-camera + useCamera
|
|
83
|
-
map: "p-map + useMap
|
|
84
|
-
"web-view": "p-webview
|
|
82
|
+
camera: "p-camera + useCamera",
|
|
83
|
+
map: "p-map + useMap",
|
|
84
|
+
"web-view": "p-webview"
|
|
85
85
|
};
|
|
86
86
|
function isManualTag(tag) {
|
|
87
87
|
return tag in MANUAL_TAGS;
|
|
@@ -161,14 +161,15 @@ function countMigration(source, migrated) {
|
|
|
161
161
|
// src/route-table.ts
|
|
162
162
|
var NAVIGATION_APIS = ["navigateTo", "switchTab", "reLaunch", "redirectTo"];
|
|
163
163
|
function routeNameFromPath(path) {
|
|
164
|
-
const clean = path.replace(/^\/+/, "").replace(/\.vue$/, "")
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
if (
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
164
|
+
const clean = path.split("?")[0].replace(/^\/+/, "").replace(/\.vue$/, "");
|
|
165
|
+
const segs = clean.split("/").filter(Boolean);
|
|
166
|
+
const base = segs[segs.length - 1] ?? "";
|
|
167
|
+
if (base === "index") {
|
|
168
|
+
const dir = segs.slice(0, -1).join("/");
|
|
169
|
+
const stripped = dir.replace(/^(pages|subpackages)(\/|$)/, "").replace(/\/$/, "");
|
|
170
|
+
return stripped ? stripped.replace(/\//g, "-") : "index";
|
|
171
|
+
}
|
|
172
|
+
return clean.replace(/^(pages|subpackages)\//, "").replace(/\//g, "-");
|
|
172
173
|
}
|
|
173
174
|
function collectRouteTargets(source) {
|
|
174
175
|
const out = [];
|
package/dist/route-table.d.ts
CHANGED
|
@@ -8,7 +8,10 @@ export interface RouteTarget {
|
|
|
8
8
|
/** 路径(去 query / 去 .vue / 去前导斜杠) */
|
|
9
9
|
path: string;
|
|
10
10
|
}
|
|
11
|
-
/**
|
|
11
|
+
/**
|
|
12
|
+
* 路由路径 → 路由名(与 packages/router/src/scan.ts deriveNameFromFile **同规则**,见文件头):
|
|
13
|
+
* index 归并目录名 · 剥 pages/subpackages 前缀 · `/`→`-`(kebab,非小驼峰)
|
|
14
|
+
*/
|
|
12
15
|
export declare function routeNameFromPath(path: string): string;
|
|
13
16
|
/** 从单份源码收集导航目标(纯函数) */
|
|
14
17
|
export declare function collectRouteTargets(source: string): RouteTarget[];
|
package/dist/tags.d.ts
CHANGED
|
@@ -1,6 +1,11 @@
|
|
|
1
|
-
/** codemod 自动替换:小程序标签 → p-* 语义组件(1:1;migration.md §2 自动集)
|
|
1
|
+
/** codemod 自动替换:小程序标签 → p-* 语义组件(1:1;migration.md §2 自动集)
|
|
2
|
+
* ★2026-09-19 增补 `scroll-view → p-scroll-view`:端对齐批次 2 已把 `<scroll-view>` 官方属性
|
|
3
|
+
* 40/40 全量透传进薄包装 `p-scroll-view`(属性名 kebab 同名、事件名同名且载荷归一)→ 属真 1:1,
|
|
4
|
+
* 不再需要「语义识别」人工环节(原 MANUAL 判定写于该组件落地之前)。语义还原为 `p-stack`
|
|
5
|
+
* direction 仍是**可选**的进一步精炼,非迁移必需。 */
|
|
2
6
|
export declare const AUTO_CODEMOD_TAGS: Record<string, string>;
|
|
3
|
-
/** 需语义识别(manual
|
|
7
|
+
/** 需语义识别(manual 标注——语义还原为布局原语;AI Agent G-23 辅助)
|
|
8
|
+
* ★提示文案纪律:只写**已落地**的目标(不得指向未实现的 props——否则迁移者照着做会得到静默无效属性)。 */
|
|
4
9
|
export declare const MANUAL_TAGS: Record<string, string>;
|
|
5
10
|
/** 判定一个标签是否需要 manual 标注(有效小程序组件标签) */
|
|
6
11
|
export declare function isManualTag(tag: string): boolean;
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@proteus-vue/compat-miniprogram",
|
|
3
|
-
"version": "0.1.1-beta.
|
|
3
|
+
"version": "0.1.1-beta.3",
|
|
4
4
|
"description": "G-31 B6 Layer 1 兼容层(proteus-component-semantics-plan migration.md):旧小程序迁移三步走——createWxCompat 运行时桥(wx.* 委托 Proteus)+ migrateMpSource codemod(标签自动/存储直改/manual 标注)+ useStorage 迁移目标",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"license": "Apache-2.0",
|
|
@@ -19,7 +19,7 @@
|
|
|
19
19
|
"README.md"
|
|
20
20
|
],
|
|
21
21
|
"dependencies": {
|
|
22
|
-
"@proteus-vue/api": "0.2.0-beta.
|
|
22
|
+
"@proteus-vue/api": "0.2.0-beta.3"
|
|
23
23
|
},
|
|
24
24
|
"scripts": {
|
|
25
25
|
"build": "tsc -p tsconfig.build.json --emitDeclarationOnly && esbuild src/index.ts --bundle --format=esm --platform=neutral --outfile=dist/index.js --external:@proteus-vue/api"
|