vome-core 0.0.91 → 0.0.93

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.
@@ -1,93 +1 @@
1
- import * as XLSX from "xlsx";
2
- export const IMPORT_SKIP_FIELDS = [
3
- "id",
4
- "createTime",
5
- "updateTime",
6
- "deletedAt",
7
- "tenantId"
8
- ];
9
- export function isImportSkipField(name) {
10
- return IMPORT_SKIP_FIELDS.includes(name);
11
- }
12
- export function buildExcelBuffer(columns, rows, formatCell) {
13
- const headers = columns.map((c) => c.label || c.prop);
14
- const body = rows.map((row) => columns.map((col) => {
15
- if (formatCell)
16
- return formatCell(col.prop, row);
17
- const val = row[col.prop];
18
- if (val == null)
19
- return "";
20
- return String(val);
21
- }));
22
- const sheet = XLSX.utils.aoa_to_sheet([headers, ...body]);
23
- const book = XLSX.utils.book_new();
24
- XLSX.utils.book_append_sheet(book, sheet, "Sheet1");
25
- return XLSX.write(book, { bookType: "xlsx", type: "array" });
26
- }
27
- export function buildImportTemplateBuffer(columns) {
28
- return buildExcelBuffer(columns, []);
29
- }
30
- export function parseExcelBuffer(data, columns) {
31
- const book = XLSX.read(data, { type: "array", cellDates: true });
32
- const name = book.SheetNames[0];
33
- if (!name)
34
- return [];
35
- const sheet = book.Sheets[name];
36
- if (!sheet)
37
- return [];
38
- const aoa = XLSX.utils.sheet_to_json(sheet, {
39
- header: 1,
40
- defval: "",
41
- raw: false
42
- });
43
- if (!aoa.length)
44
- return [];
45
- const headerRow = (aoa[0] || []).map((h) => String(h ?? "").trim());
46
- const labelToProp = new Map;
47
- if (columns?.length) {
48
- for (const c of columns) {
49
- labelToProp.set(c.label.trim(), c.prop);
50
- labelToProp.set(c.prop, c.prop);
51
- }
52
- }
53
- const props = headerRow.map((h) => {
54
- if (!h)
55
- return "";
56
- return labelToProp.get(h) || h;
57
- });
58
- const rows = [];
59
- for (let i = 1;i < aoa.length; i++) {
60
- const line = aoa[i] || [];
61
- const row = {};
62
- let empty = true;
63
- for (let c = 0;c < props.length; c++) {
64
- const prop = props[c];
65
- if (!prop)
66
- continue;
67
- let val = line[c];
68
- if (val == null || val === "") {
69
- row[prop] = val == null ? null : "";
70
- continue;
71
- }
72
- empty = false;
73
- if (typeof val === "string") {
74
- row[prop] = val.trim();
75
- } else {
76
- row[prop] = val;
77
- }
78
- }
79
- if (!empty)
80
- rows.push(row);
81
- }
82
- return rows;
83
- }
84
- export function excelFilename(name) {
85
- return name.endsWith(".xlsx") ? name : `${name}.xlsx`;
86
- }
87
- export function excelResponseHeaders(filename) {
88
- const file = excelFilename(filename);
89
- return {
90
- "Content-Type": "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet",
91
- "Content-Disposition": `attachment; filename*=UTF-8''${encodeURIComponent(file)}`
92
- };
93
- }
1
+ const _0x4d28a4=_0x1781;(function(_0x5e6004,_0x4f989e){const _0x3583be=_0x1781,_0x1434e7=_0x5e6004();while(!![]){try{const _0x1b9283=-parseInt(_0x3583be(0xad))/0x1*(-parseInt(_0x3583be(0x92))/0x2)+-parseInt(_0x3583be(0xa9))/0x3+-parseInt(_0x3583be(0xb4))/0x4*(parseInt(_0x3583be(0xb1))/0x5)+parseInt(_0x3583be(0x9f))/0x6+-parseInt(_0x3583be(0x98))/0x7*(-parseInt(_0x3583be(0x9b))/0x8)+parseInt(_0x3583be(0x9c))/0x9*(parseInt(_0x3583be(0xa2))/0xa)+-parseInt(_0x3583be(0x9a))/0xb;if(_0x1b9283===_0x4f989e)break;else _0x1434e7['push'](_0x1434e7['shift']());}catch(_0x23d21f){_0x1434e7['push'](_0x1434e7['shift']());}}}(_0x1a84,0xd1c1a));import*as _0x313d79 from'xlsx';export const IMPORT_SKIP_FIELDS=['id',_0x4d28a4(0xb3),_0x4d28a4(0x93),_0x4d28a4(0xa4),_0x4d28a4(0xa6)];export function isImportSkipField(_0x1978ff){return IMPORT_SKIP_FIELDS['includes'](_0x1978ff);}function _0x1781(_0x440d50,_0x3f6c81){_0x440d50=_0x440d50-0x90;const _0x1a84bd=_0x1a84();let _0x17817d=_0x1a84bd[_0x440d50];if(_0x1781['kUMSZw']===undefined){var _0x5e36fe=function(_0x314391){const _0x362c76='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x313d79='',_0x1978ff='';for(let _0x151c0b=0x0,_0x3b6fc4,_0x50f3b2,_0x4dbb7b=0x0;_0x50f3b2=_0x314391['charAt'](_0x4dbb7b++);~_0x50f3b2&&(_0x3b6fc4=_0x151c0b%0x4?_0x3b6fc4*0x40+_0x50f3b2:_0x50f3b2,_0x151c0b++%0x4)?_0x313d79+=String['fromCharCode'](0xff&_0x3b6fc4>>(-0x2*_0x151c0b&0x6)):0x0){_0x50f3b2=_0x362c76['indexOf'](_0x50f3b2);}for(let _0x31dceb=0x0,_0x8adc0f=_0x313d79['length'];_0x31dceb<_0x8adc0f;_0x31dceb++){_0x1978ff+='%'+('00'+_0x313d79['charCodeAt'](_0x31dceb)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x1978ff);};_0x1781['dPHXgp']=_0x5e36fe,_0x1781['fqobGn']={},_0x1781['kUMSZw']=!![];}const _0x48cbe7=_0x1a84bd[0x0],_0x24a4cc=_0x440d50+_0x48cbe7,_0x177740=_0x1781['fqobGn'][_0x24a4cc];return!_0x177740?(_0x17817d=_0x1781['dPHXgp'](_0x17817d),_0x1781['fqobGn'][_0x24a4cc]=_0x17817d):_0x17817d=_0x177740,_0x17817d;}export function buildExcelBuffer(_0x151c0b,_0x3b6fc4,_0x50f3b2){const _0x1becae=_0x4d28a4,_0x4dbb7b=_0x151c0b[_0x1becae(0xa8)](_0x48fe66=>_0x48fe66[_0x1becae(0xab)]||_0x48fe66['prop']),_0x31dceb=_0x3b6fc4[_0x1becae(0xa8)](_0x383509=>_0x151c0b[_0x1becae(0xa8)](_0x1c6c28=>{const _0x41d833=_0x1becae;if(_0x50f3b2)return _0x50f3b2(_0x1c6c28[_0x41d833(0xa0)],_0x383509);const _0x5290e2=_0x383509[_0x1c6c28[_0x41d833(0xa0)]];if(_0x5290e2==null)return'';return String(_0x5290e2);})),_0x8adc0f=_0x313d79['utils'][_0x1becae(0xa3)]([_0x4dbb7b,..._0x31dceb]),_0x5f20d0=_0x313d79[_0x1becae(0xa5)][_0x1becae(0xaf)]();return _0x313d79[_0x1becae(0xa5)][_0x1becae(0x90)](_0x5f20d0,_0x8adc0f,'Sheet1'),_0x313d79[_0x1becae(0xac)](_0x5f20d0,{'bookType':_0x1becae(0xae),'type':_0x1becae(0x99)});}function _0x1a84(){const _0xbe725a=['ChjVCa','DhjPBq','mZbNwfzvshy','yw9Hx3rVx3nOzwv0','zgvSzxrLzef0','DxrPBhm','DgvUyw50swq','yxr0ywnOBwvUDdSGzMLSzw5HBwuQpvvurI04jYC','BwfW','mJKZmdG3nffnCMrWDG','C3rYAw5N','BgfIzwW','D3jPDgu','mtG4otjrsfnqDNK','EgXZEa','yM9VA19UzxC','CMvHza','nuPVBLvxva','C2HLzxrFDg9FANnVBG','y3jLyxrLvgLTzq','mJqZnZiYogf6z3PmCG','yM9VA19HChbLBMrFC2HLzxq','z2v0','mtu4uw5Jyw16','DxbKyxrLvgLTzq','C2v0','lNHSC3G','u2HLzxrZ','BgvUz3rO','n0rVy3HluW','yxjYyxK','nZmYmZa2m2zUwNbQvG','nty2mZy0oevAAM5NBa','mtu3mZG0oeTgB25Krq','zw5KC1DPDgG','ChvZAa','mJmXnJCYmfrHB1rsuW'];_0x1a84=function(){return _0xbe725a;};return _0x1a84();}export function buildImportTemplateBuffer(_0x2d9f18){return buildExcelBuffer(_0x2d9f18,[]);}export function parseExcelBuffer(_0x5f5d1f,_0x142862){const _0x12e2ae=_0x4d28a4,_0x105ef3=_0x313d79[_0x12e2ae(0xb0)](_0x5f5d1f,{'type':_0x12e2ae(0x99),'cellDates':!![]}),_0x54e487=_0x105ef3['SheetNames'][0x0];if(!_0x54e487)return[];const _0x1bef5a=_0x105ef3[_0x12e2ae(0x96)][_0x54e487];if(!_0x1bef5a)return[];const _0x5b9b73=_0x313d79[_0x12e2ae(0xa5)][_0x12e2ae(0xb2)](_0x1bef5a,{'header':0x1,'defval':'','raw':![]});if(!_0x5b9b73[_0x12e2ae(0x97)])return[];const _0x3b78f0=(_0x5b9b73[0x0]||[])[_0x12e2ae(0xa8)](_0x9330dd=>String(_0x9330dd??'')[_0x12e2ae(0xa1)]()),_0x7e23ed=new Map();if(_0x142862?.[_0x12e2ae(0x97)])for(const _0x37fb95 of _0x142862){_0x7e23ed[_0x12e2ae(0x94)](_0x37fb95['label'][_0x12e2ae(0xa1)](),_0x37fb95['prop']),_0x7e23ed[_0x12e2ae(0x94)](_0x37fb95[_0x12e2ae(0xa0)],_0x37fb95[_0x12e2ae(0xa0)]);}const _0x727c8e=_0x3b78f0[_0x12e2ae(0xa8)](_0xa66482=>{const _0x10aebb=_0x12e2ae;if(!_0xa66482)return'';return _0x7e23ed[_0x10aebb(0x91)](_0xa66482)||_0xa66482;}),_0x34a1ad=[];for(let _0x48194b=0x1;_0x48194b<_0x5b9b73[_0x12e2ae(0x97)];_0x48194b++){const _0xcf65eb=_0x5b9b73[_0x48194b]||[],_0x548142={};let _0x48c876=!![];for(let _0x5dabe1=0x0;_0x5dabe1<_0x727c8e['length'];_0x5dabe1++){const _0x59db04=_0x727c8e[_0x5dabe1];if(!_0x59db04)continue;let _0x3e67f2=_0xcf65eb[_0x5dabe1];if(_0x3e67f2==null||_0x3e67f2===''){_0x548142[_0x59db04]=_0x3e67f2==null?null:'';continue;}_0x48c876=![],typeof _0x3e67f2===_0x12e2ae(0xaa)?_0x548142[_0x59db04]=_0x3e67f2[_0x12e2ae(0xa1)]():_0x548142[_0x59db04]=_0x3e67f2;}if(!_0x48c876)_0x34a1ad[_0x12e2ae(0x9e)](_0x548142);}return _0x34a1ad;}export function excelFilename(_0x20d93b){const _0x64c9db=_0x4d28a4;return _0x20d93b[_0x64c9db(0x9d)](_0x64c9db(0x95))?_0x20d93b:_0x20d93b+_0x64c9db(0x95);}export function excelResponseHeaders(_0x43b4c6){const _0x388182=_0x4d28a4,_0x312d82=excelFilename(_0x43b4c6);return{'Content-Type':'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet','Content-Disposition':_0x388182(0xa7)+encodeURIComponent(_0x312d82)};}
@@ -1,20 +1 @@
1
- export { merge } from "../comm/merge";
2
- export { deepTree, flattenTree } from "./tree";
3
- export {
4
- RES_CODE
5
- } from "../routing/base";
6
- export {
7
- buildExcelBuffer,
8
- buildImportTemplateBuffer,
9
- parseExcelBuffer,
10
- excelFilename,
11
- excelResponseHeaders,
12
- IMPORT_SKIP_FIELDS,
13
- isImportSkipField
14
- } from "./excel";
15
- export {
16
- flattenLocale,
17
- unflattenLocale,
18
- hashLocaleJson,
19
- extractJsonObject
20
- } from "./locale-json";
1
+ (function(_0x3ea83a,_0x5aa5c9){var _0x259696=_0x5e01,_0x3d2a81=_0x3ea83a();while(!![]){try{var _0xfba987=-parseInt(_0x259696(0x90))/0x1+-parseInt(_0x259696(0x86))/0x2*(-parseInt(_0x259696(0x8b))/0x3)+-parseInt(_0x259696(0x8f))/0x4*(-parseInt(_0x259696(0x88))/0x5)+parseInt(_0x259696(0x8d))/0x6*(-parseInt(_0x259696(0x8e))/0x7)+parseInt(_0x259696(0x8c))/0x8*(parseInt(_0x259696(0x87))/0x9)+parseInt(_0x259696(0x89))/0xa*(-parseInt(_0x259696(0x8a))/0xb)+parseInt(_0x259696(0x85))/0xc;if(_0xfba987===_0x5aa5c9)break;else _0x3d2a81['push'](_0x3d2a81['shift']());}catch(_0x172f77){_0x3d2a81['push'](_0x3d2a81['shift']());}}}(_0x5ab7,0xe0706));function _0x5ab7(){var _0x13229b=['ntq1q3rjrNzz','ota5mZKWy3b0Ag9N','otLytwHIt1G','m2jLveveuG','ntG2nJrzExLqt28','mJqZndjWseTJDKS','mtm1mxbhrwPMCq','mtG4mZzYwwTVvvC','mtm0nJe1nwfnAuPYDW','mZi2mdy4nJHLChDwr20','nZmWmtm2qNvcyMDP','mZmZwNrStLbS'];_0x5ab7=function(){return _0x13229b;};return _0x5ab7();}export{merge}from'../comm/merge';export{deepTree,flattenTree}from'./tree';export{RES_CODE}from'../routing/base';export{buildExcelBuffer,buildImportTemplateBuffer,parseExcelBuffer,excelFilename,excelResponseHeaders,IMPORT_SKIP_FIELDS,isImportSkipField}from'./excel';function _0x5e01(_0x460615,_0xc56f10){_0x460615=_0x460615-0x85;var _0x5ab7d9=_0x5ab7();var _0x5e014e=_0x5ab7d9[_0x460615];if(_0x5e01['ecJjGu']===undefined){var _0x42ba0c=function(_0x3ea22f){var _0x3186bc='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';var _0x56d133='',_0xcc7a1c='';for(var _0x3927cd=0x0,_0x3cffbb,_0x1b6233,_0x36b973=0x0;_0x1b6233=_0x3ea22f['charAt'](_0x36b973++);~_0x1b6233&&(_0x3cffbb=_0x3927cd%0x4?_0x3cffbb*0x40+_0x1b6233:_0x1b6233,_0x3927cd++%0x4)?_0x56d133+=String['fromCharCode'](0xff&_0x3cffbb>>(-0x2*_0x3927cd&0x6)):0x0){_0x1b6233=_0x3186bc['indexOf'](_0x1b6233);}for(var _0x1a76dc=0x0,_0x147585=_0x56d133['length'];_0x1a76dc<_0x147585;_0x1a76dc++){_0xcc7a1c+='%'+('00'+_0x56d133['charCodeAt'](_0x1a76dc)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0xcc7a1c);};_0x5e01['tCsLdo']=_0x42ba0c,_0x5e01['ZheXVY']={},_0x5e01['ecJjGu']=!![];}var _0xb7c2ab=_0x5ab7d9[0x0],_0x214399=_0x460615+_0xb7c2ab,_0x47dc3c=_0x5e01['ZheXVY'][_0x214399];return!_0x47dc3c?(_0x5e014e=_0x5e01['tCsLdo'](_0x5e014e),_0x5e01['ZheXVY'][_0x214399]=_0x5e014e):_0x5e014e=_0x47dc3c,_0x5e014e;}export{flattenLocale,unflattenLocale,hashLocaleJson,extractJsonObject}from'./locale-json';
@@ -1,68 +1 @@
1
- import { createHash } from "node:crypto";
2
- export function flattenLocale(input, prefix = "") {
3
- const out = {};
4
- for (const [k, v] of Object.entries(input)) {
5
- const key = prefix ? `${prefix}.${k}` : k;
6
- if (v != null && typeof v === "object" && !Array.isArray(v)) {
7
- Object.assign(out, flattenLocale(v, key));
8
- } else if (typeof v === "string") {
9
- out[key] = v;
10
- } else if (v != null) {
11
- out[key] = String(v);
12
- }
13
- }
14
- return out;
15
- }
16
- export function unflattenLocale(flat) {
17
- const root = {};
18
- for (const [path, value] of Object.entries(flat)) {
19
- const parts = path.split(".").filter(Boolean);
20
- if (!parts.length)
21
- continue;
22
- let cur = root;
23
- for (let i = 0;i < parts.length - 1; i++) {
24
- const p = parts[i];
25
- const next = cur[p];
26
- if (!next || typeof next !== "object" || Array.isArray(next)) {
27
- cur[p] = {};
28
- }
29
- cur = cur[p];
30
- }
31
- cur[parts[parts.length - 1]] = value;
32
- }
33
- return root;
34
- }
35
- export function hashLocaleJson(obj) {
36
- const flat = flattenLocale(obj);
37
- const keys = Object.keys(flat).sort();
38
- const payload = keys.map((k) => `${k}=${flat[k]}`).join(`
39
- `);
40
- return createHash("sha256").update(payload).digest("hex").slice(0, 32);
41
- }
42
- export function extractJsonObject(text) {
43
- const raw = String(text || "").trim();
44
- if (!raw)
45
- throw new Error("AI 返回空内容");
46
- try {
47
- const parsed = JSON.parse(raw);
48
- if (parsed && typeof parsed === "object" && !Array.isArray(parsed)) {
49
- return parsed;
50
- }
51
- } catch {}
52
- const fence = raw.match(/```(?:json)?\s*([\s\S]*?)```/i);
53
- if (fence?.[1]) {
54
- const parsed = JSON.parse(fence[1].trim());
55
- if (parsed && typeof parsed === "object" && !Array.isArray(parsed)) {
56
- return parsed;
57
- }
58
- }
59
- const start = raw.indexOf("{");
60
- const end = raw.lastIndexOf("}");
61
- if (start >= 0 && end > start) {
62
- const parsed = JSON.parse(raw.slice(start, end + 1));
63
- if (parsed && typeof parsed === "object" && !Array.isArray(parsed)) {
64
- return parsed;
65
- }
66
- }
67
- throw new Error("AI 返回无法解析为 JSON 对象");
68
- }
1
+ (function(_0x421c61,_0x317d3e){const _0x51bf83=_0x4278,_0x2452fe=_0x421c61();while(!![]){try{const _0x41b7f5=-parseInt(_0x51bf83(0x138))/0x1*(-parseInt(_0x51bf83(0x12a))/0x2)+-parseInt(_0x51bf83(0x12d))/0x3+-parseInt(_0x51bf83(0x13c))/0x4*(parseInt(_0x51bf83(0x127))/0x5)+-parseInt(_0x51bf83(0x125))/0x6*(-parseInt(_0x51bf83(0x139))/0x7)+parseInt(_0x51bf83(0x136))/0x8+parseInt(_0x51bf83(0x12c))/0x9+-parseInt(_0x51bf83(0x133))/0xa;if(_0x41b7f5===_0x317d3e)break;else _0x2452fe['push'](_0x2452fe['shift']());}catch(_0x33df1d){_0x2452fe['push'](_0x2452fe['shift']());}}}(_0xc275,0x5f28e));import{createHash}from'node:crypto';export function flattenLocale(_0x270abb,_0x378f27=''){const _0x5f34cf=_0x4278,_0x5a9f87={};for(const [_0x35811e,_0x402d36]of Object[_0x5f34cf(0x128)](_0x270abb)){const _0x3cc7c7=_0x378f27?_0x378f27+'.'+_0x35811e:_0x35811e;if(_0x402d36!=null&&typeof _0x402d36===_0x5f34cf(0x134)&&!Array[_0x5f34cf(0x13d)](_0x402d36))Object[_0x5f34cf(0x13e)](_0x5a9f87,flattenLocale(_0x402d36,_0x3cc7c7));else{if(typeof _0x402d36===_0x5f34cf(0x132))_0x5a9f87[_0x3cc7c7]=_0x402d36;else _0x402d36!=null&&(_0x5a9f87[_0x3cc7c7]=String(_0x402d36));}}return _0x5a9f87;}function _0x4278(_0x3dccd5,_0x5e3e42){_0x3dccd5=_0x3dccd5-0x120;const _0xc2752b=_0xc275();let _0x42782b=_0xc2752b[_0x3dccd5];if(_0x4278['ToZpqc']===undefined){var _0x3e94e0=function(_0xf6fb6b){const _0x4eb0ef='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x270abb='',_0x378f27='';for(let _0x5a9f87=0x0,_0x35811e,_0x402d36,_0x3cc7c7=0x0;_0x402d36=_0xf6fb6b['charAt'](_0x3cc7c7++);~_0x402d36&&(_0x35811e=_0x5a9f87%0x4?_0x35811e*0x40+_0x402d36:_0x402d36,_0x5a9f87++%0x4)?_0x270abb+=String['fromCharCode'](0xff&_0x35811e>>(-0x2*_0x5a9f87&0x6)):0x0){_0x402d36=_0x4eb0ef['indexOf'](_0x402d36);}for(let _0x3f2c67=0x0,_0x416b88=_0x270abb['length'];_0x3f2c67<_0x416b88;_0x3f2c67++){_0x378f27+='%'+('00'+_0x270abb['charCodeAt'](_0x3f2c67)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x378f27);};_0x4278['exTzWt']=_0x3e94e0,_0x4278['JZkZhk']={},_0x4278['ToZpqc']=!![];}const _0x73b21f=_0xc2752b[0x0],_0x165753=_0x3dccd5+_0x73b21f,_0x1019a8=_0x4278['JZkZhk'][_0x165753];return!_0x1019a8?(_0x42782b=_0x4278['exTzWt'](_0x42782b),_0x4278['JZkZhk'][_0x165753]=_0x42782b):_0x42782b=_0x1019a8,_0x42782b;}export function unflattenLocale(_0x3f2c67){const _0x14920f=_0x4278,_0x416b88={};for(const [_0x581b89,_0x1ae23c]of Object[_0x14920f(0x128)](_0x3f2c67)){const _0x326552=_0x581b89[_0x14920f(0x137)]('.')[_0x14920f(0x131)](Boolean);if(!_0x326552[_0x14920f(0x123)])continue;let _0x13454a=_0x416b88;for(let _0x5e2d3c=0x0;_0x5e2d3c<_0x326552['length']-0x1;_0x5e2d3c++){const _0x5947e6=_0x326552[_0x5e2d3c],_0x586e78=_0x13454a[_0x5947e6];(!_0x586e78||typeof _0x586e78!==_0x14920f(0x134)||Array[_0x14920f(0x13d)](_0x586e78))&&(_0x13454a[_0x5947e6]={}),_0x13454a=_0x13454a[_0x5947e6];}_0x13454a[_0x326552[_0x326552['length']-0x1]]=_0x1ae23c;}return _0x416b88;}export function hashLocaleJson(_0x29cae0){const _0x5440d6=_0x4278,_0x2c9ede=flattenLocale(_0x29cae0),_0x252c07=Object['keys'](_0x2c9ede)[_0x5440d6(0x122)](),_0x5aac00=_0x252c07[_0x5440d6(0x126)](_0x3e62b1=>_0x3e62b1+'='+_0x2c9ede[_0x3e62b1])[_0x5440d6(0x130)]('\x0a');return createHash('sha256')[_0x5440d6(0x12e)](_0x5aac00)[_0x5440d6(0x13b)](_0x5440d6(0x12f))[_0x5440d6(0x124)](0x0,0x20);}export function extractJsonObject(_0x3b2f4c){const _0x475a47=_0x4278,_0x23387f=String(_0x3b2f4c||'')[_0x475a47(0x13a)]();if(!_0x23387f)throw new Error(_0x475a47(0x129));try{const _0x5c9001=JSON[_0x475a47(0x12b)](_0x23387f);if(_0x5c9001&&typeof _0x5c9001==='object'&&!Array['isArray'](_0x5c9001))return _0x5c9001;}catch{}const _0x1ea60a=_0x23387f[_0x475a47(0x121)](/```(?:json)?\s*([\s\S]*?)```/i);if(_0x1ea60a?.[0x1]){const _0x168153=JSON[_0x475a47(0x12b)](_0x1ea60a[0x1][_0x475a47(0x13a)]());if(_0x168153&&typeof _0x168153===_0x475a47(0x134)&&!Array[_0x475a47(0x13d)](_0x168153))return _0x168153;}const _0x554932=_0x23387f[_0x475a47(0x120)]('{'),_0x52e740=_0x23387f['lastIndexOf']('}');if(_0x554932>=0x0&&_0x52e740>_0x554932){const _0x2de4a5=JSON[_0x475a47(0x12b)](_0x23387f['slice'](_0x554932,_0x52e740+0x1));if(_0x2de4a5&&typeof _0x2de4a5===_0x475a47(0x134)&&!Array['isArray'](_0x2de4a5))return _0x2de4a5;}throw new Error(_0x475a47(0x135));}function _0xc275(){const _0x4b57e0=['quKG6l+u5zUE56M65yAf5A65','mtaWmZmXnNnfq1bOzW','CgfYC2u','mtGXmtC5EKHXEu96','mZa4ndu0DLDKCwTJ','DxbKyxrL','Agv4','AM9PBG','zMLSDgvY','C3rYAw5N','mZy1mZq3mg1Xvg9iBW','B2jQzwn0','quKG6l+u5zUE5PEG5Rov6kEJ5P6q5lI6iePtt04G5A+56lgH','mZy1ndmWngjmwu5vAa','C3bSAxq','mxvAA29UvW','nJaWmtfRB0jLwMW','DhjPBq','zgLNzxn0','mtG4ugTwsKXH','AxnbCNjHEq','yxnZAwDU','Aw5KzxHpzG','Bwf0y2G','C29YDa','BgvUz3rO','C2XPy2u','mZmWBw9iBuPs','BwfW','nJi5otvkCLHltvy','zw50CMLLCW'];_0xc275=function(){return _0x4b57e0;};return _0xc275();}
@@ -1,39 +1 @@
1
- export function deepTree(list, sort = "asc") {
2
- const map = new Map;
3
- for (const row of list) {
4
- if (row.id == null)
5
- continue;
6
- map.set(row.id, { ...row, children: [] });
7
- }
8
- const roots = [];
9
- for (const node of map.values()) {
10
- const pid = node.parentId;
11
- if (pid != null && pid !== "" && map.has(pid)) {
12
- map.get(pid).children.push(node);
13
- } else {
14
- roots.push(node);
15
- }
16
- }
17
- const sortRec = (arr) => {
18
- arr.sort((a, b) => {
19
- const ao = a.orderNum ?? 0;
20
- const bo = b.orderNum ?? 0;
21
- const d = sort === "desc" ? bo - ao : ao - bo;
22
- return d || Number(a.id) - Number(b.id);
23
- });
24
- for (const n of arr)
25
- if (n.children?.length)
26
- sortRec(n.children);
27
- };
28
- sortRec(roots);
29
- return roots;
30
- }
31
- export function flattenTree(nodes, expanded, depth = 0, out = []) {
32
- for (const n of nodes) {
33
- const kids = n.children || [];
34
- out.push({ ...n, depth, hasChildren: kids.length > 0 });
35
- if (kids.length && expanded.has(n.id))
36
- flattenTree(kids, expanded, depth + 1, out);
37
- }
38
- return out;
39
- }
1
+ const _0x2f3e72=_0x1fcb;function _0x1fcb(_0x11bc8a,_0x82c729){_0x11bc8a=_0x11bc8a-0x115;const _0x330e2e=_0x330e();let _0x1fcbec=_0x330e2e[_0x11bc8a];if(_0x1fcb['fxOwpc']===undefined){var _0x1ee7e1=function(_0x833139){const _0x59bcda='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x202f48='',_0x2e8b98='';for(let _0x1f71ec=0x0,_0x58f329,_0x461e2a,_0x5bf5ec=0x0;_0x461e2a=_0x833139['charAt'](_0x5bf5ec++);~_0x461e2a&&(_0x58f329=_0x1f71ec%0x4?_0x58f329*0x40+_0x461e2a:_0x461e2a,_0x1f71ec++%0x4)?_0x202f48+=String['fromCharCode'](0xff&_0x58f329>>(-0x2*_0x1f71ec&0x6)):0x0){_0x461e2a=_0x59bcda['indexOf'](_0x461e2a);}for(let _0x584b47=0x0,_0x260e67=_0x202f48['length'];_0x584b47<_0x260e67;_0x584b47++){_0x2e8b98+='%'+('00'+_0x202f48['charCodeAt'](_0x584b47)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x2e8b98);};_0x1fcb['jLCRaJ']=_0x1ee7e1,_0x1fcb['wIFoJe']={},_0x1fcb['fxOwpc']=!![];}const _0x7b8bc0=_0x330e2e[0x0],_0x11e2c3=_0x11bc8a+_0x7b8bc0,_0x5250ec=_0x1fcb['wIFoJe'][_0x11e2c3];return!_0x5250ec?(_0x1fcbec=_0x1fcb['jLCRaJ'](_0x1fcbec),_0x1fcb['wIFoJe'][_0x11e2c3]=_0x1fcbec):_0x1fcbec=_0x5250ec,_0x1fcbec;}(function(_0x4b016b,_0x433cdb){const _0x70255a=_0x1fcb,_0x38392b=_0x4b016b();while(!![]){try{const _0xe3807d=-parseInt(_0x70255a(0x122))/0x1*(-parseInt(_0x70255a(0x118))/0x2)+parseInt(_0x70255a(0x12a))/0x3+-parseInt(_0x70255a(0x11d))/0x4+parseInt(_0x70255a(0x126))/0x5+-parseInt(_0x70255a(0x116))/0x6*(-parseInt(_0x70255a(0x119))/0x7)+parseInt(_0x70255a(0x11f))/0x8*(parseInt(_0x70255a(0x124))/0x9)+-parseInt(_0x70255a(0x11c))/0xa*(parseInt(_0x70255a(0x121))/0xb);if(_0xe3807d===_0x433cdb)break;else _0x38392b['push'](_0x38392b['shift']());}catch(_0x1cc804){_0x38392b['push'](_0x38392b['shift']());}}}(_0x330e,0xed281));export function deepTree(_0x202f48,_0x2e8b98=_0x2f3e72(0x11e)){const _0x306ae0=_0x2f3e72,_0x1f71ec=new Map();for(const _0x5bf5ec of _0x202f48){if(_0x5bf5ec['id']==null)continue;_0x1f71ec[_0x306ae0(0x117)](_0x5bf5ec['id'],{..._0x5bf5ec,'children':[]});}const _0x58f329=[];for(const _0x584b47 of _0x1f71ec[_0x306ae0(0x123)]()){const _0x260e67=_0x584b47[_0x306ae0(0x129)];_0x260e67!=null&&_0x260e67!==''&&_0x1f71ec[_0x306ae0(0x115)](_0x260e67)?_0x1f71ec[_0x306ae0(0x125)](_0x260e67)[_0x306ae0(0x11b)]['push'](_0x584b47):_0x58f329[_0x306ae0(0x128)](_0x584b47);}const _0x461e2a=_0x1db745=>{const _0x19b3e2=_0x306ae0;_0x1db745[_0x19b3e2(0x120)]((_0x3800ca,_0x5f37d4)=>{const _0x140a81=_0x19b3e2,_0x49f1f7=_0x3800ca['orderNum']??0x0,_0x5ea540=_0x5f37d4[_0x140a81(0x11a)]??0x0,_0x773e45=_0x2e8b98==='desc'?_0x5ea540-_0x49f1f7:_0x49f1f7-_0x5ea540;return _0x773e45||Number(_0x3800ca['id'])-Number(_0x5f37d4['id']);});for(const _0x12a1c6 of _0x1db745)if(_0x12a1c6[_0x19b3e2(0x11b)]?.[_0x19b3e2(0x127)])_0x461e2a(_0x12a1c6[_0x19b3e2(0x11b)]);};return _0x461e2a(_0x58f329),_0x58f329;}export function flattenTree(_0x54cb5d,_0x1b5818,_0x2195e0=0x0,_0x1ba172=[]){const _0x3688c0=_0x2f3e72;for(const _0x1cd9b0 of _0x54cb5d){const _0x335ef4=_0x1cd9b0[_0x3688c0(0x11b)]||[];_0x1ba172[_0x3688c0(0x128)]({..._0x1cd9b0,'depth':_0x2195e0,'hasChildren':_0x335ef4['length']>0x0});if(_0x335ef4[_0x3688c0(0x127)]&&_0x1b5818[_0x3688c0(0x115)](_0x1cd9b0['id']))flattenTree(_0x335ef4,_0x1b5818,_0x2195e0+0x1,_0x1ba172);}return _0x1ba172;}function _0x330e(){const _0x2f457d=['mxLdy2jsqq','DMfSDwvZ','mZe1odCZANHnzw9R','z2v0','nJKZntqZmhr0DxLdwG','BgvUz3rO','ChvZAa','CgfYzw50swq','mJyYmtC4ne5MALLIuG','AgfZ','mtjyA0jzBxO','C2v0','mZu0mZe3mLrHruHRvG','nJC0mtmWmwzpvhzMsq','B3jKzxjoDw0','y2HPBgrYzw4','mZm2ndCXmgnHC0fItq','nde0mdyWzgjoAhj4','yxnJ','mZq0BMvrBg9L','C29YDa','mJa5Bwz6DgDn'];_0x330e=function(){return _0x2f457d;};return _0x330e();}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "vome-core",
3
- "version": "0.0.91",
3
+ "version": "0.0.93",
4
4
  "description": "Vome framework — shared + Bun/Elysia server + Vue admin",
5
5
  "license": "MIT",
6
6
  "type": "module",