lanhu-layer-tree 1.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.env.example +11 -0
- package/README.md +317 -0
- package/dist/assets.d.ts +38 -0
- package/dist/assets.d.ts.map +1 -0
- package/dist/assets.js +247 -0
- package/dist/assets.js.map +1 -0
- package/dist/cli.d.ts +3 -0
- package/dist/cli.d.ts.map +1 -0
- package/dist/cli.js +322 -0
- package/dist/cli.js.map +1 -0
- package/dist/client.d.ts +44 -0
- package/dist/client.d.ts.map +1 -0
- package/dist/client.js +441 -0
- package/dist/client.js.map +1 -0
- package/dist/cookie.d.ts +32 -0
- package/dist/cookie.d.ts.map +1 -0
- package/dist/cookie.js +177 -0
- package/dist/cookie.js.map +1 -0
- package/dist/formatter.d.ts +6 -0
- package/dist/formatter.d.ts.map +1 -0
- package/dist/formatter.js +225 -0
- package/dist/formatter.js.map +1 -0
- package/dist/index.d.ts +5 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +27 -0
- package/dist/index.js.map +1 -0
- package/dist/merger.d.ts +27 -0
- package/dist/merger.d.ts.map +1 -0
- package/dist/merger.js +141 -0
- package/dist/merger.js.map +1 -0
- package/dist/resolver.d.ts +27 -0
- package/dist/resolver.d.ts.map +1 -0
- package/dist/resolver.js +196 -0
- package/dist/resolver.js.map +1 -0
- package/dist/types.d.ts +85 -0
- package/dist/types.d.ts.map +1 -0
- package/dist/types.js +6 -0
- package/dist/types.js.map +1 -0
- package/dist/utils.d.ts +23 -0
- package/dist/utils.d.ts.map +1 -0
- package/dist/utils.js +106 -0
- package/dist/utils.js.map +1 -0
- package/package.json +38 -0
- package/src/assets.ts +221 -0
- package/src/cli.ts +333 -0
- package/src/client.ts +490 -0
- package/src/cookie.ts +156 -0
- package/src/formatter.ts +251 -0
- package/src/index.ts +4 -0
- package/src/merger.ts +154 -0
- package/src/resolver.ts +195 -0
- package/src/types.ts +94 -0
- package/src/utils.ts +120 -0
- package/tsconfig.json +20 -0
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* 资源 UUID 解析:Unity/Cocos
|
|
3
|
+
*/
|
|
4
|
+
import { Layer } from './types';
|
|
5
|
+
export interface AssetInfo {
|
|
6
|
+
uuid?: string;
|
|
7
|
+
guid?: string;
|
|
8
|
+
sliced: boolean;
|
|
9
|
+
border?: [number, number, number, number] | null;
|
|
10
|
+
}
|
|
11
|
+
/**
|
|
12
|
+
* 批量解析图层中的图片资源 GUID(Unity)
|
|
13
|
+
*/
|
|
14
|
+
export declare function resolveLayerAssetsUnity(layers: Layer[], assetsDir: string): Record<string, AssetInfo>;
|
|
15
|
+
/**
|
|
16
|
+
* 批量解析图层中的图片资源 UUID(Cocos)
|
|
17
|
+
*
|
|
18
|
+
* 仅处理本地已存在的资源:
|
|
19
|
+
* - 有 .meta 文件 → 读取 UUID
|
|
20
|
+
* - 无 .meta 文件 → 生成 .meta 并分配新 UUID
|
|
21
|
+
*/
|
|
22
|
+
export declare function resolveLayerAssetsCocos(layers: Layer[], assetsDir: string): Record<string, AssetInfo>;
|
|
23
|
+
/**
|
|
24
|
+
* 根据图层名称取出对应的资源信息
|
|
25
|
+
*/
|
|
26
|
+
export declare function getAssetInfoForLayer(layerName: string, uuidMap: Record<string, AssetInfo>): AssetInfo | null;
|
|
27
|
+
//# sourceMappingURL=resolver.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"resolver.d.ts","sourceRoot":"","sources":["../src/resolver.ts"],"names":[],"mappings":"AAAA;;GAEG;AAIH,OAAO,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC;AAShC,MAAM,WAAW,SAAS;IACxB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,OAAO,CAAC;IAChB,MAAM,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,GAAG,IAAI,CAAC;CAClD;AAwDD;;GAEG;AACH,wBAAgB,uBAAuB,CACrC,MAAM,EAAE,KAAK,EAAE,EACf,SAAS,EAAE,MAAM,GAChB,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,CAuC3B;AAED;;;;;;GAMG;AACH,wBAAgB,uBAAuB,CACrC,MAAM,EAAE,KAAK,EAAE,EACf,SAAS,EAAE,MAAM,GAChB,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,CAiD3B;AAED;;GAEG;AACH,wBAAgB,oBAAoB,CAClC,SAAS,EAAE,MAAM,EACjB,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,GACjC,SAAS,GAAG,IAAI,CAIlB"}
|
package/dist/resolver.js
ADDED
|
@@ -0,0 +1,196 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* 资源 UUID 解析:Unity/Cocos
|
|
4
|
+
*/
|
|
5
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
6
|
+
if (k2 === undefined) k2 = k;
|
|
7
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
8
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
9
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
10
|
+
}
|
|
11
|
+
Object.defineProperty(o, k2, desc);
|
|
12
|
+
}) : (function(o, m, k, k2) {
|
|
13
|
+
if (k2 === undefined) k2 = k;
|
|
14
|
+
o[k2] = m[k];
|
|
15
|
+
}));
|
|
16
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
17
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
18
|
+
}) : function(o, v) {
|
|
19
|
+
o["default"] = v;
|
|
20
|
+
});
|
|
21
|
+
var __importStar = (this && this.__importStar) || (function () {
|
|
22
|
+
var ownKeys = function(o) {
|
|
23
|
+
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
24
|
+
var ar = [];
|
|
25
|
+
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
26
|
+
return ar;
|
|
27
|
+
};
|
|
28
|
+
return ownKeys(o);
|
|
29
|
+
};
|
|
30
|
+
return function (mod) {
|
|
31
|
+
if (mod && mod.__esModule) return mod;
|
|
32
|
+
var result = {};
|
|
33
|
+
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
34
|
+
__setModuleDefault(result, mod);
|
|
35
|
+
return result;
|
|
36
|
+
};
|
|
37
|
+
})();
|
|
38
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
39
|
+
exports.resolveLayerAssetsUnity = resolveLayerAssetsUnity;
|
|
40
|
+
exports.resolveLayerAssetsCocos = resolveLayerAssetsCocos;
|
|
41
|
+
exports.getAssetInfoForLayer = getAssetInfoForLayer;
|
|
42
|
+
const fs = __importStar(require("fs"));
|
|
43
|
+
const assets_1 = require("./assets");
|
|
44
|
+
const SKIP_LAYER_TYPES = new Set([
|
|
45
|
+
'textLayer',
|
|
46
|
+
'group',
|
|
47
|
+
'layerGroup',
|
|
48
|
+
'artboard',
|
|
49
|
+
'layerSection'
|
|
50
|
+
]);
|
|
51
|
+
const CHINESE_REGEX = /[一-鿿]/;
|
|
52
|
+
/**
|
|
53
|
+
* 从图层名称提取资源文件名
|
|
54
|
+
* 规则:
|
|
55
|
+
* - 去除 "Img_" / "Img" 前缀
|
|
56
|
+
* - 去除 "拷贝" 及后续数字
|
|
57
|
+
* - 去除九宫格标记 " s9-x-y"
|
|
58
|
+
* - 中文命名 / "background" 跳过
|
|
59
|
+
*/
|
|
60
|
+
function extractResourceFilename(name) {
|
|
61
|
+
let resourceName = name;
|
|
62
|
+
if (resourceName.startsWith('Img_')) {
|
|
63
|
+
resourceName = resourceName.slice(4);
|
|
64
|
+
}
|
|
65
|
+
else if (resourceName.startsWith('Img')) {
|
|
66
|
+
resourceName = resourceName.slice(3);
|
|
67
|
+
}
|
|
68
|
+
resourceName = resourceName.replace(/\s*拷贝\s*\d*/g, '').trim();
|
|
69
|
+
resourceName = resourceName.replace(/\s+s9-\d+-\d+/g, '').trim();
|
|
70
|
+
if (!resourceName)
|
|
71
|
+
return null;
|
|
72
|
+
if (CHINESE_REGEX.test(resourceName))
|
|
73
|
+
return null;
|
|
74
|
+
if (resourceName.toLowerCase() === 'background')
|
|
75
|
+
return null;
|
|
76
|
+
return `${resourceName}.png`;
|
|
77
|
+
}
|
|
78
|
+
/**
|
|
79
|
+
* 收集图层中所有需要解析的资源文件名
|
|
80
|
+
*/
|
|
81
|
+
function collectImageRefs(layers) {
|
|
82
|
+
const refs = new Set();
|
|
83
|
+
for (const layer of layers) {
|
|
84
|
+
const name = layer.name || '';
|
|
85
|
+
const ltype = layer.type || '';
|
|
86
|
+
if (SKIP_LAYER_TYPES.has(ltype))
|
|
87
|
+
continue;
|
|
88
|
+
if (name.startsWith('参考图') || name.startsWith('fe'))
|
|
89
|
+
continue;
|
|
90
|
+
const filename = extractResourceFilename(name);
|
|
91
|
+
if (filename)
|
|
92
|
+
refs.add(filename);
|
|
93
|
+
}
|
|
94
|
+
return refs;
|
|
95
|
+
}
|
|
96
|
+
/**
|
|
97
|
+
* 批量解析图层中的图片资源 GUID(Unity)
|
|
98
|
+
*/
|
|
99
|
+
function resolveLayerAssetsUnity(layers, assetsDir) {
|
|
100
|
+
if (!assetsDir || !fs.existsSync(assetsDir))
|
|
101
|
+
return {};
|
|
102
|
+
const imageRefs = collectImageRefs(layers);
|
|
103
|
+
const uuidMap = {};
|
|
104
|
+
const missingFiles = [];
|
|
105
|
+
for (const filename of imageRefs) {
|
|
106
|
+
const local = (0, assets_1.findLocalAsset)(filename, assetsDir);
|
|
107
|
+
if (!local) {
|
|
108
|
+
missingFiles.push(filename);
|
|
109
|
+
continue;
|
|
110
|
+
}
|
|
111
|
+
const metaPath = `${local}.meta`;
|
|
112
|
+
if (fs.existsSync(metaPath)) {
|
|
113
|
+
const info = (0, assets_1.readUnityMeta)(metaPath);
|
|
114
|
+
if (info) {
|
|
115
|
+
uuidMap[filename] = {
|
|
116
|
+
guid: info.guid,
|
|
117
|
+
sliced: info.sliced,
|
|
118
|
+
border: info.border
|
|
119
|
+
};
|
|
120
|
+
const slicedTag = info.sliced ? '九宫格' : '普通';
|
|
121
|
+
console.log(` [复用] ${filename} guid=${info.guid.slice(0, 8)}... ${slicedTag}`);
|
|
122
|
+
}
|
|
123
|
+
}
|
|
124
|
+
}
|
|
125
|
+
if (missingFiles.length > 0) {
|
|
126
|
+
console.error(`\n❌ 错误:以下 ${missingFiles.length} 个资源在本地未找到:`);
|
|
127
|
+
for (const f of missingFiles.sort()) {
|
|
128
|
+
console.error(` - ${f}`);
|
|
129
|
+
}
|
|
130
|
+
console.error(`\n请确保资源文件存在于目录:${assetsDir}`);
|
|
131
|
+
throw new Error(`缺失 ${missingFiles.length} 个资源文件`);
|
|
132
|
+
}
|
|
133
|
+
return uuidMap;
|
|
134
|
+
}
|
|
135
|
+
/**
|
|
136
|
+
* 批量解析图层中的图片资源 UUID(Cocos)
|
|
137
|
+
*
|
|
138
|
+
* 仅处理本地已存在的资源:
|
|
139
|
+
* - 有 .meta 文件 → 读取 UUID
|
|
140
|
+
* - 无 .meta 文件 → 生成 .meta 并分配新 UUID
|
|
141
|
+
*/
|
|
142
|
+
function resolveLayerAssetsCocos(layers, assetsDir) {
|
|
143
|
+
if (!assetsDir || !fs.existsSync(assetsDir))
|
|
144
|
+
return {};
|
|
145
|
+
const imageRefs = collectImageRefs(layers);
|
|
146
|
+
const uuidMap = {};
|
|
147
|
+
const missingFiles = [];
|
|
148
|
+
for (const filename of imageRefs) {
|
|
149
|
+
const local = (0, assets_1.findLocalAsset)(filename, assetsDir);
|
|
150
|
+
if (!local) {
|
|
151
|
+
missingFiles.push(filename);
|
|
152
|
+
continue;
|
|
153
|
+
}
|
|
154
|
+
const metaPath = `${local}.meta`;
|
|
155
|
+
// 已有 .meta 文件
|
|
156
|
+
if (fs.existsSync(metaPath)) {
|
|
157
|
+
const uid = (0, assets_1.readCocosSpriteUuid)(metaPath);
|
|
158
|
+
if (uid) {
|
|
159
|
+
uuidMap[filename] = { uuid: uid, sliced: false };
|
|
160
|
+
console.log(` [复用] ${filename} uuid=${uid.slice(0, 8)}...`);
|
|
161
|
+
continue;
|
|
162
|
+
}
|
|
163
|
+
}
|
|
164
|
+
// 无 .meta 文件 → 生成新的 .meta
|
|
165
|
+
try {
|
|
166
|
+
const meta = (0, assets_1.makeCocosMeta)(local);
|
|
167
|
+
fs.writeFileSync(metaPath, JSON.stringify(meta, null, 2), 'utf-8');
|
|
168
|
+
const subKeys = Object.keys(meta.subMetas);
|
|
169
|
+
const uid = meta.subMetas[subKeys[0]].uuid;
|
|
170
|
+
uuidMap[filename] = { uuid: uid, sliced: false };
|
|
171
|
+
console.log(` [生成meta] ${filename} uuid=${uid.slice(0, 8)}...`);
|
|
172
|
+
}
|
|
173
|
+
catch (e) {
|
|
174
|
+
console.warn(` [警告] 无法为 ${filename} 生成 meta:`, e);
|
|
175
|
+
}
|
|
176
|
+
}
|
|
177
|
+
if (missingFiles.length > 0) {
|
|
178
|
+
console.error(`\n❌ 错误:以下 ${missingFiles.length} 个资源在本地未找到:`);
|
|
179
|
+
for (const f of missingFiles.sort()) {
|
|
180
|
+
console.error(` - ${f}`);
|
|
181
|
+
}
|
|
182
|
+
console.error(`\n请确保资源文件存在于目录:${assetsDir}`);
|
|
183
|
+
throw new Error(`缺失 ${missingFiles.length} 个资源文件`);
|
|
184
|
+
}
|
|
185
|
+
return uuidMap;
|
|
186
|
+
}
|
|
187
|
+
/**
|
|
188
|
+
* 根据图层名称取出对应的资源信息
|
|
189
|
+
*/
|
|
190
|
+
function getAssetInfoForLayer(layerName, uuidMap) {
|
|
191
|
+
const filename = extractResourceFilename(layerName);
|
|
192
|
+
if (!filename)
|
|
193
|
+
return null;
|
|
194
|
+
return uuidMap[filename] || null;
|
|
195
|
+
}
|
|
196
|
+
//# sourceMappingURL=resolver.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"resolver.js","sourceRoot":"","sources":["../src/resolver.ts"],"names":[],"mappings":"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"}
|
package/dist/types.d.ts
ADDED
|
@@ -0,0 +1,85 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* 蓝湖 API 类型定义
|
|
3
|
+
*/
|
|
4
|
+
export interface LanhuConfig {
|
|
5
|
+
cookie?: string;
|
|
6
|
+
baseUrl?: string;
|
|
7
|
+
timeout?: number;
|
|
8
|
+
}
|
|
9
|
+
export interface ParsedUrl {
|
|
10
|
+
team_id: string;
|
|
11
|
+
project_id: string;
|
|
12
|
+
doc_id?: string;
|
|
13
|
+
}
|
|
14
|
+
export interface Design {
|
|
15
|
+
index: number;
|
|
16
|
+
id: string;
|
|
17
|
+
name: string;
|
|
18
|
+
width: number;
|
|
19
|
+
height: number;
|
|
20
|
+
url: string;
|
|
21
|
+
update_time: string;
|
|
22
|
+
}
|
|
23
|
+
export interface DesignsResponse {
|
|
24
|
+
status: string;
|
|
25
|
+
message?: string;
|
|
26
|
+
project_name?: string;
|
|
27
|
+
total_designs?: number;
|
|
28
|
+
designs?: Design[];
|
|
29
|
+
}
|
|
30
|
+
export interface Layer {
|
|
31
|
+
name: string;
|
|
32
|
+
type: string;
|
|
33
|
+
width: number;
|
|
34
|
+
height: number;
|
|
35
|
+
x: number;
|
|
36
|
+
y: number;
|
|
37
|
+
path: string;
|
|
38
|
+
depth: number;
|
|
39
|
+
smart_object?: string;
|
|
40
|
+
text?: string;
|
|
41
|
+
text_style?: TextStyle;
|
|
42
|
+
opacity?: number;
|
|
43
|
+
}
|
|
44
|
+
export interface TextStyle {
|
|
45
|
+
fill_color?: string;
|
|
46
|
+
font_size?: number;
|
|
47
|
+
font_name?: string;
|
|
48
|
+
stroke_color?: string;
|
|
49
|
+
stroke_width?: number;
|
|
50
|
+
shadow_color?: string;
|
|
51
|
+
}
|
|
52
|
+
export interface LayersResponse {
|
|
53
|
+
design_id: string;
|
|
54
|
+
design_name: string;
|
|
55
|
+
version: string;
|
|
56
|
+
canvas_size: {
|
|
57
|
+
width: number;
|
|
58
|
+
height: number;
|
|
59
|
+
};
|
|
60
|
+
total_layers: number;
|
|
61
|
+
layers: Layer[];
|
|
62
|
+
}
|
|
63
|
+
export interface Slice {
|
|
64
|
+
name: string;
|
|
65
|
+
download_url: string;
|
|
66
|
+
size: string;
|
|
67
|
+
format: string;
|
|
68
|
+
layer_path: string;
|
|
69
|
+
}
|
|
70
|
+
export interface SlicesResponse {
|
|
71
|
+
design_id: string;
|
|
72
|
+
design_name: string;
|
|
73
|
+
version: string;
|
|
74
|
+
canvas_size: {
|
|
75
|
+
width: number;
|
|
76
|
+
height: number;
|
|
77
|
+
};
|
|
78
|
+
total_slices: number;
|
|
79
|
+
slices: Slice[];
|
|
80
|
+
}
|
|
81
|
+
export interface TreeFormatOptions {
|
|
82
|
+
engine?: 'unity' | 'cocos';
|
|
83
|
+
assetsDir?: string;
|
|
84
|
+
}
|
|
85
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,MAAM,WAAW,WAAW;IAC1B,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,SAAS;IACxB,OAAO,EAAE,MAAM,CAAC;IAChB,UAAU,EAAE,MAAM,CAAC;IACnB,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,MAAM;IACrB,KAAK,EAAE,MAAM,CAAC;IACd,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,GAAG,EAAE,MAAM,CAAC;IACZ,WAAW,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,eAAe;IAC9B,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;CACpB;AAED,MAAM,WAAW,KAAK;IACpB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,CAAC;IACV,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,UAAU,CAAC,EAAE,SAAS,CAAC;IACvB,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,SAAS;IACxB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAED,MAAM,WAAW,cAAc;IAC7B,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,EAAE,MAAM,CAAC;IACpB,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW,EAAE;QACX,KAAK,EAAE,MAAM,CAAC;QACd,MAAM,EAAE,MAAM,CAAC;KAChB,CAAC;IACF,YAAY,EAAE,MAAM,CAAC;IACrB,MAAM,EAAE,KAAK,EAAE,CAAC;CACjB;AAED,MAAM,WAAW,KAAK;IACpB,IAAI,EAAE,MAAM,CAAC;IACb,YAAY,EAAE,MAAM,CAAC;IACrB,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;IACf,UAAU,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,cAAc;IAC7B,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,EAAE,MAAM,CAAC;IACpB,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW,EAAE;QACX,KAAK,EAAE,MAAM,CAAC;QACd,MAAM,EAAE,MAAM,CAAC;KAChB,CAAC;IACF,YAAY,EAAE,MAAM,CAAC;IACrB,MAAM,EAAE,KAAK,EAAE,CAAC;CACjB;AAED,MAAM,WAAW,iBAAiB;IAChC,MAAM,CAAC,EAAE,OAAO,GAAG,OAAO,CAAC;IAC3B,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB"}
|
package/dist/types.js
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":";AAAA;;GAEG"}
|
package/dist/utils.d.ts
ADDED
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* 工具函数
|
|
3
|
+
*/
|
|
4
|
+
/**
|
|
5
|
+
* 标准化颜色格式为 #RRGGBB 或 #RRGGBBAA
|
|
6
|
+
*/
|
|
7
|
+
export declare function normalizeColor(c: any): string;
|
|
8
|
+
/**
|
|
9
|
+
* 解析蓝湖 URL,提取 tid/pid/image_id 等参数
|
|
10
|
+
*/
|
|
11
|
+
export declare function parseUrl(url: string, defaultTid?: string): {
|
|
12
|
+
team_id: string;
|
|
13
|
+
project_id: string;
|
|
14
|
+
doc_id?: string;
|
|
15
|
+
};
|
|
16
|
+
/**
|
|
17
|
+
* 将 PS 坐标系转换为游戏引擎 UI 坐标系(Cocos/Unity)
|
|
18
|
+
*
|
|
19
|
+
* PS 坐标系:左上角为原点 (0,0),x 向右,y 向下
|
|
20
|
+
* 引擎坐标系:父节点中心为原点 (0,0),x 向右,y 向上,锚点为元素中心 (0.5, 0.5)
|
|
21
|
+
*/
|
|
22
|
+
export declare function convertToEnginePos(left: number, top: number, width: number, height: number, parentWidth: number, parentHeight: number): [number, number];
|
|
23
|
+
//# sourceMappingURL=utils.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../src/utils.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH;;GAEG;AACH,wBAAgB,cAAc,CAAC,CAAC,EAAE,GAAG,GAAG,MAAM,CAmC7C;AAED;;GAEG;AACH,wBAAgB,QAAQ,CAAC,GAAG,EAAE,MAAM,EAAE,UAAU,CAAC,EAAE,MAAM,GAAG;IAAE,OAAO,EAAE,MAAM,CAAC;IAAC,UAAU,EAAE,MAAM,CAAC;IAAC,MAAM,CAAC,EAAE,MAAM,CAAA;CAAE,CAqDnH;AAED;;;;;GAKG;AACH,wBAAgB,kBAAkB,CAChC,IAAI,EAAE,MAAM,EACZ,GAAG,EAAE,MAAM,EACX,KAAK,EAAE,MAAM,EACb,MAAM,EAAE,MAAM,EACd,WAAW,EAAE,MAAM,EACnB,YAAY,EAAE,MAAM,GACnB,CAAC,MAAM,EAAE,MAAM,CAAC,CAIlB"}
|
package/dist/utils.js
ADDED
|
@@ -0,0 +1,106 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* 工具函数
|
|
4
|
+
*/
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.normalizeColor = normalizeColor;
|
|
7
|
+
exports.parseUrl = parseUrl;
|
|
8
|
+
exports.convertToEnginePos = convertToEnginePos;
|
|
9
|
+
/**
|
|
10
|
+
* 标准化颜色格式为 #RRGGBB 或 #RRGGBBAA
|
|
11
|
+
*/
|
|
12
|
+
function normalizeColor(c) {
|
|
13
|
+
if (typeof c === 'string') {
|
|
14
|
+
return c;
|
|
15
|
+
}
|
|
16
|
+
if (typeof c === 'object' && c !== null) {
|
|
17
|
+
let r = c.r ?? c.red ?? c.R ?? 0;
|
|
18
|
+
let g = c.g ?? c.green ?? c.G ?? 0;
|
|
19
|
+
let b = c.b ?? c.blue ?? c.B ?? 0;
|
|
20
|
+
let a = c.a ?? c.alpha ?? null;
|
|
21
|
+
// 如果是 0-1 范围的浮点数,转换为 0-255
|
|
22
|
+
if (typeof r === 'number' && r <= 1.0 && typeof g === 'number' && g <= 1.0) {
|
|
23
|
+
r = Math.round(r * 255);
|
|
24
|
+
g = Math.round(g * 255);
|
|
25
|
+
b = Math.round(b * 255);
|
|
26
|
+
if (a !== null && typeof a === 'number' && a <= 1.0) {
|
|
27
|
+
a = Math.round(a * 255);
|
|
28
|
+
}
|
|
29
|
+
}
|
|
30
|
+
else {
|
|
31
|
+
r = Math.round(r);
|
|
32
|
+
g = Math.round(g);
|
|
33
|
+
b = Math.round(b);
|
|
34
|
+
if (a !== null) {
|
|
35
|
+
a = Math.round(a);
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
if (a !== null && a < 255) {
|
|
39
|
+
return `#${r.toString(16).padStart(2, '0')}${g.toString(16).padStart(2, '0')}${b.toString(16).padStart(2, '0')}${a.toString(16).padStart(2, '0')}`.toUpperCase();
|
|
40
|
+
}
|
|
41
|
+
return `#${r.toString(16).padStart(2, '0')}${g.toString(16).padStart(2, '0')}${b.toString(16).padStart(2, '0')}`.toUpperCase();
|
|
42
|
+
}
|
|
43
|
+
return String(c);
|
|
44
|
+
}
|
|
45
|
+
/**
|
|
46
|
+
* 解析蓝湖 URL,提取 tid/pid/image_id 等参数
|
|
47
|
+
*/
|
|
48
|
+
function parseUrl(url, defaultTid) {
|
|
49
|
+
let queryString = url;
|
|
50
|
+
if (url.startsWith('http')) {
|
|
51
|
+
const urlObj = new URL(url);
|
|
52
|
+
const fragment = urlObj.hash;
|
|
53
|
+
if (!fragment) {
|
|
54
|
+
throw new Error('Invalid Lanhu URL: missing fragment part');
|
|
55
|
+
}
|
|
56
|
+
if (fragment.includes('?')) {
|
|
57
|
+
queryString = fragment.split('?')[1];
|
|
58
|
+
}
|
|
59
|
+
else {
|
|
60
|
+
queryString = fragment;
|
|
61
|
+
}
|
|
62
|
+
}
|
|
63
|
+
if (queryString.startsWith('?')) {
|
|
64
|
+
queryString = queryString.substring(1);
|
|
65
|
+
}
|
|
66
|
+
const params = {};
|
|
67
|
+
queryString.split('&').forEach(part => {
|
|
68
|
+
if (part.includes('=')) {
|
|
69
|
+
const [key, value] = part.split('=');
|
|
70
|
+
params[key] = value;
|
|
71
|
+
}
|
|
72
|
+
});
|
|
73
|
+
const teamId = params.tid;
|
|
74
|
+
const projectId = params.pid;
|
|
75
|
+
const docId = params.docId || params.image_id;
|
|
76
|
+
if (!projectId) {
|
|
77
|
+
throw new Error('URL parsing failed: missing required param pid');
|
|
78
|
+
}
|
|
79
|
+
if (!teamId) {
|
|
80
|
+
if (!defaultTid) {
|
|
81
|
+
throw new Error('URL 缺少 tid 参数,且未配置默认 TID');
|
|
82
|
+
}
|
|
83
|
+
return {
|
|
84
|
+
team_id: defaultTid,
|
|
85
|
+
project_id: projectId,
|
|
86
|
+
doc_id: docId
|
|
87
|
+
};
|
|
88
|
+
}
|
|
89
|
+
return {
|
|
90
|
+
team_id: teamId,
|
|
91
|
+
project_id: projectId,
|
|
92
|
+
doc_id: docId
|
|
93
|
+
};
|
|
94
|
+
}
|
|
95
|
+
/**
|
|
96
|
+
* 将 PS 坐标系转换为游戏引擎 UI 坐标系(Cocos/Unity)
|
|
97
|
+
*
|
|
98
|
+
* PS 坐标系:左上角为原点 (0,0),x 向右,y 向下
|
|
99
|
+
* 引擎坐标系:父节点中心为原点 (0,0),x 向右,y 向上,锚点为元素中心 (0.5, 0.5)
|
|
100
|
+
*/
|
|
101
|
+
function convertToEnginePos(left, top, width, height, parentWidth, parentHeight) {
|
|
102
|
+
const x = Math.round((left + width / 2 - parentWidth / 2) * 10) / 10;
|
|
103
|
+
const y = Math.round((parentHeight / 2 - (top + height / 2)) * 10) / 10;
|
|
104
|
+
return [x, y];
|
|
105
|
+
}
|
|
106
|
+
//# sourceMappingURL=utils.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../src/utils.ts"],"names":[],"mappings":"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"}
|
package/package.json
ADDED
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "lanhu-layer-tree",
|
|
3
|
+
"version": "1.0.0",
|
|
4
|
+
"description": "蓝湖设计图图层树提取工具 - 从蓝湖获取设计图列表、图层信息、切图资源等",
|
|
5
|
+
"main": "dist/index.js",
|
|
6
|
+
"bin": {
|
|
7
|
+
"lanhu": "dist/cli.js"
|
|
8
|
+
},
|
|
9
|
+
"scripts": {
|
|
10
|
+
"build": "tsc",
|
|
11
|
+
"dev": "tsc --watch",
|
|
12
|
+
"prepublishOnly": "npm run build",
|
|
13
|
+
"test": "echo \"Error: no test specified\" && exit 1"
|
|
14
|
+
},
|
|
15
|
+
"keywords": [
|
|
16
|
+
"lanhu",
|
|
17
|
+
"design",
|
|
18
|
+
"layer",
|
|
19
|
+
"ui",
|
|
20
|
+
"cocos",
|
|
21
|
+
"unity"
|
|
22
|
+
],
|
|
23
|
+
"author": "",
|
|
24
|
+
"license": "MIT",
|
|
25
|
+
"dependencies": {
|
|
26
|
+
"axios": "^1.6.8",
|
|
27
|
+
"chrome-cookies-secure": "^3.0.2",
|
|
28
|
+
"commander": "^12.0.0",
|
|
29
|
+
"dotenv": "^16.4.5"
|
|
30
|
+
},
|
|
31
|
+
"devDependencies": {
|
|
32
|
+
"@types/node": "^20.12.7",
|
|
33
|
+
"typescript": "^5.4.5"
|
|
34
|
+
},
|
|
35
|
+
"engines": {
|
|
36
|
+
"node": ">=16.0.0"
|
|
37
|
+
}
|
|
38
|
+
}
|