@yxlib/core 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/README.md +304 -0
- package/dist/@yx/core.es.js +10 -0
- package/package.json +44 -0
package/README.md
ADDED
|
@@ -0,0 +1,304 @@
|
|
|
1
|
+
# YX-Core
|
|
2
|
+
|
|
3
|
+
印象核心库,提供组件注册、域名鉴权等核心功能。
|
|
4
|
+
|
|
5
|
+
## 特性
|
|
6
|
+
|
|
7
|
+
- 🎯 **组件注册系统** - 发布-订阅模式的组件注册机制
|
|
8
|
+
- 🔐 **域名鉴权** - 域名白名单验证,支持多区域配置
|
|
9
|
+
- 🚀 **自动共享** - 多个插件自动共享鉴权状态
|
|
10
|
+
- 💾 **智能缓存** - 7天缓存 + 5分钟后台刷新
|
|
11
|
+
- 🌍 **多区域支持** - 支持国内(cn)和国外(foreign)区域
|
|
12
|
+
- 📦 **模块化设计** - 清晰的模块划分,易于扩展
|
|
13
|
+
|
|
14
|
+
## 安装
|
|
15
|
+
|
|
16
|
+
```bash
|
|
17
|
+
npm install yx-core
|
|
18
|
+
```
|
|
19
|
+
|
|
20
|
+
## 快速开始
|
|
21
|
+
|
|
22
|
+
### 插件开发者
|
|
23
|
+
|
|
24
|
+
```javascript
|
|
25
|
+
// yx-video/src/index.js
|
|
26
|
+
import { RegComponents } from 'yx-core';
|
|
27
|
+
import YxVideo from './yx-video';
|
|
28
|
+
|
|
29
|
+
// 方式一:回调函数(适合需要区域信息的场景)
|
|
30
|
+
RegComponents((region) => {
|
|
31
|
+
customElements.define("yx-video", YxVideo);
|
|
32
|
+
console.log(`YxVideo 已注册,区域:${region}`);
|
|
33
|
+
});
|
|
34
|
+
|
|
35
|
+
// 方式二:直接注册(更简洁)
|
|
36
|
+
RegComponents('yx-video', YxVideo);
|
|
37
|
+
|
|
38
|
+
export const version = '1.0.0';
|
|
39
|
+
```
|
|
40
|
+
|
|
41
|
+
### 项目使用者
|
|
42
|
+
|
|
43
|
+
```javascript
|
|
44
|
+
// main.js
|
|
45
|
+
import { InitRegion } from 'yx-core';
|
|
46
|
+
|
|
47
|
+
// 导入所有插件
|
|
48
|
+
import 'yx-video';
|
|
49
|
+
import 'yx-audio';
|
|
50
|
+
import 'yx-player';
|
|
51
|
+
|
|
52
|
+
// 初始化(自动完成域名鉴权并注册所有组件)
|
|
53
|
+
try {
|
|
54
|
+
await InitRegion('cn');
|
|
55
|
+
console.log('所有插件已注册');
|
|
56
|
+
} catch (err) {
|
|
57
|
+
console.error('域名鉴权失败:', err);
|
|
58
|
+
}
|
|
59
|
+
```
|
|
60
|
+
|
|
61
|
+
## API 文档
|
|
62
|
+
|
|
63
|
+
### RegComponents(nameOrCallback, component?)
|
|
64
|
+
|
|
65
|
+
注册 Web Components(插件方调用)。支持两种调用方式。
|
|
66
|
+
|
|
67
|
+
**方式一:回调函数**
|
|
68
|
+
|
|
69
|
+
```javascript
|
|
70
|
+
RegComponents(callback)
|
|
71
|
+
```
|
|
72
|
+
|
|
73
|
+
**参数:**
|
|
74
|
+
- `callback` (Function): 组件注册回调函数,接收 `region` 参数
|
|
75
|
+
|
|
76
|
+
**示例:**
|
|
77
|
+
|
|
78
|
+
```javascript
|
|
79
|
+
import { RegComponents } from 'yx-core';
|
|
80
|
+
import YxVideo from './yx-video';
|
|
81
|
+
|
|
82
|
+
RegComponents((region) => {
|
|
83
|
+
customElements.define("yx-video", YxVideo);
|
|
84
|
+
console.log(`YxVideo 已注册,区域:${region}`);
|
|
85
|
+
});
|
|
86
|
+
```
|
|
87
|
+
|
|
88
|
+
**方式二:直接注册组件**
|
|
89
|
+
|
|
90
|
+
```javascript
|
|
91
|
+
RegComponents(name, Component)
|
|
92
|
+
```
|
|
93
|
+
|
|
94
|
+
**参数:**
|
|
95
|
+
- `name` (String): 组件名称
|
|
96
|
+
- `Component` (Function): Web Component 类
|
|
97
|
+
|
|
98
|
+
**示例:**
|
|
99
|
+
|
|
100
|
+
```javascript
|
|
101
|
+
import { RegComponents } from 'yx-core';
|
|
102
|
+
import YxVideo from './yx-video';
|
|
103
|
+
|
|
104
|
+
// 直接注册组件
|
|
105
|
+
RegComponents('yx-video', YxVideo);
|
|
106
|
+
```
|
|
107
|
+
|
|
108
|
+
### InitRegion(region?)
|
|
109
|
+
|
|
110
|
+
初始化区域(项目方调用)。验证域名后自动执行所有已注册的插件。
|
|
111
|
+
|
|
112
|
+
**参数:**
|
|
113
|
+
- `region` (String, 可选): 区域,'cn' 或 'foreign',默认 'cn'
|
|
114
|
+
|
|
115
|
+
**返回:**
|
|
116
|
+
- `Promise`: 鉴权完成的 Promise
|
|
117
|
+
|
|
118
|
+
**示例:**
|
|
119
|
+
|
|
120
|
+
```javascript
|
|
121
|
+
import { InitRegion } from 'yx-core';
|
|
122
|
+
import 'yx-video';
|
|
123
|
+
import 'yx-audio';
|
|
124
|
+
|
|
125
|
+
try {
|
|
126
|
+
await InitRegion('cn');
|
|
127
|
+
console.log('所有插件已注册');
|
|
128
|
+
} catch (err) {
|
|
129
|
+
console.error('域名鉴权失败:', err);
|
|
130
|
+
}
|
|
131
|
+
```
|
|
132
|
+
|
|
133
|
+
### isAuthed()
|
|
134
|
+
|
|
135
|
+
检查是否已完成鉴权。
|
|
136
|
+
|
|
137
|
+
**返回:**
|
|
138
|
+
- `Boolean`: 是否已鉴权
|
|
139
|
+
|
|
140
|
+
**示例:**
|
|
141
|
+
|
|
142
|
+
```javascript
|
|
143
|
+
import { isAuthed } from 'yx-core';
|
|
144
|
+
|
|
145
|
+
if (isAuthed()) {
|
|
146
|
+
console.log('已完成鉴权');
|
|
147
|
+
} else {
|
|
148
|
+
console.log('未鉴权');
|
|
149
|
+
}
|
|
150
|
+
```
|
|
151
|
+
|
|
152
|
+
### getRegion()
|
|
153
|
+
|
|
154
|
+
获取当前区域。
|
|
155
|
+
|
|
156
|
+
**返回:**
|
|
157
|
+
- `String|null`: 当前区域('cn' 或 'foreign'),未初始化时返回 null
|
|
158
|
+
|
|
159
|
+
**示例:**
|
|
160
|
+
|
|
161
|
+
```javascript
|
|
162
|
+
import { getRegion } from 'yx-core';
|
|
163
|
+
|
|
164
|
+
const region = getRegion();
|
|
165
|
+
console.log('当前区域:', region); // 'cn' 或 'foreign' 或 null
|
|
166
|
+
```
|
|
167
|
+
|
|
168
|
+
## 项目结构
|
|
169
|
+
|
|
170
|
+
```
|
|
171
|
+
yx-core/
|
|
172
|
+
├── src/
|
|
173
|
+
│ ├── index.js # 主入口
|
|
174
|
+
│ ├── core/
|
|
175
|
+
│ │ └── component-registry.js # 组件注册核心
|
|
176
|
+
│ ├── modules/
|
|
177
|
+
│ │ └── domain-check/ # 域名检查模块
|
|
178
|
+
│ │ ├── index.js
|
|
179
|
+
│ │ ├── validator.js
|
|
180
|
+
│ │ └── region-map.js
|
|
181
|
+
│ └── utils/
|
|
182
|
+
│ └── cache.js # 缓存工具
|
|
183
|
+
└── test/
|
|
184
|
+
├── index.test.js
|
|
185
|
+
├── utils-cache.test.js
|
|
186
|
+
└── modules/
|
|
187
|
+
└── domain-check/
|
|
188
|
+
└── validator.test.js
|
|
189
|
+
```
|
|
190
|
+
|
|
191
|
+
## 全局变量
|
|
192
|
+
|
|
193
|
+
鉴权成功后,会在 `window` 对象上设置全局变量:
|
|
194
|
+
|
|
195
|
+
```javascript
|
|
196
|
+
window.__YX_LIVE_AUTH__ = {
|
|
197
|
+
siteid: 1001, // 站点 ID
|
|
198
|
+
hostname: 'xxx.com', // 当前域名
|
|
199
|
+
region: 'cn' // 区域
|
|
200
|
+
};
|
|
201
|
+
```
|
|
202
|
+
|
|
203
|
+
**访问鉴权状态(推荐使用 API):**
|
|
204
|
+
|
|
205
|
+
```javascript
|
|
206
|
+
import { isAuthed, getRegion } from 'yx-core';
|
|
207
|
+
|
|
208
|
+
// 推荐:使用 API 检查鉴权状态
|
|
209
|
+
if (isAuthed()) {
|
|
210
|
+
const region = getRegion();
|
|
211
|
+
console.log('已鉴权,区域:', region);
|
|
212
|
+
}
|
|
213
|
+
|
|
214
|
+
// 或者:直接访问全局变量
|
|
215
|
+
if (window.__YX_LIVE_AUTH__) {
|
|
216
|
+
console.log('鉴权信息:', window.__YX_LIVE_AUTH__);
|
|
217
|
+
}
|
|
218
|
+
```
|
|
219
|
+
|
|
220
|
+
## 插件开发建议
|
|
221
|
+
|
|
222
|
+
### 设置为外部依赖
|
|
223
|
+
|
|
224
|
+
在插件的 `vite.config.js` 中:
|
|
225
|
+
|
|
226
|
+
```javascript
|
|
227
|
+
export default defineConfig({
|
|
228
|
+
build: {
|
|
229
|
+
lib: {
|
|
230
|
+
entry: './src/index.js',
|
|
231
|
+
name: 'YxVideo',
|
|
232
|
+
fileName: 'yx-video'
|
|
233
|
+
},
|
|
234
|
+
rollupOptions: {
|
|
235
|
+
external: ['yx-core'], // 设置为外部依赖
|
|
236
|
+
output: {
|
|
237
|
+
globals: {
|
|
238
|
+
'yx-core': 'YxCore'
|
|
239
|
+
}
|
|
240
|
+
}
|
|
241
|
+
}
|
|
242
|
+
}
|
|
243
|
+
});
|
|
244
|
+
```
|
|
245
|
+
|
|
246
|
+
在插件的 `package.json` 中:
|
|
247
|
+
|
|
248
|
+
```json
|
|
249
|
+
{
|
|
250
|
+
"peerDependencies": {
|
|
251
|
+
"yx-core": "^2.0.0"
|
|
252
|
+
},
|
|
253
|
+
"devDependencies": {
|
|
254
|
+
"yx-core": "^2.0.0"
|
|
255
|
+
}
|
|
256
|
+
}
|
|
257
|
+
```
|
|
258
|
+
|
|
259
|
+
### 不要导出组件类
|
|
260
|
+
|
|
261
|
+
为了防止用户绕过鉴权,建议不要导出组件类:
|
|
262
|
+
|
|
263
|
+
```javascript
|
|
264
|
+
// ✅ 推荐
|
|
265
|
+
import { RegComponents } from 'yx-core';
|
|
266
|
+
import YxVideo from './yx-video';
|
|
267
|
+
|
|
268
|
+
RegComponents('yx-video', YxVideo);
|
|
269
|
+
|
|
270
|
+
export const version = '1.0.0';
|
|
271
|
+
```
|
|
272
|
+
|
|
273
|
+
```javascript
|
|
274
|
+
// ❌ 不推荐
|
|
275
|
+
import { RegComponents } from 'yx-core';
|
|
276
|
+
import YxVideo from './yx-video';
|
|
277
|
+
|
|
278
|
+
RegComponents('yx-video', YxVideo);
|
|
279
|
+
|
|
280
|
+
export { YxVideo }; // 用户可以绕过鉴权直接注册
|
|
281
|
+
```
|
|
282
|
+
|
|
283
|
+
## 更新日志
|
|
284
|
+
|
|
285
|
+
### v2.0.0 (最新)
|
|
286
|
+
- 🎉 **重大重构** - 项目重命名为 yx-core
|
|
287
|
+
- 📦 **模块化架构** - 清晰的模块划分
|
|
288
|
+
- `core/` - 组件注册核心
|
|
289
|
+
- `modules/` - 功能模块(domain-check 等)
|
|
290
|
+
- `utils/` - 通用工具
|
|
291
|
+
- 🔧 **职责分离** - domain-check 只负责验证,不管理全局状态
|
|
292
|
+
- ✅ 84 个测试用例全部通过
|
|
293
|
+
- 📝 完善的文档和示例
|
|
294
|
+
|
|
295
|
+
### v1.0.6
|
|
296
|
+
- 🌟 核心重构 - 精简到只保留 4 个核心 API
|
|
297
|
+
- ✨ 新增 `RegComponents()` - 支持回调和组件两种方式
|
|
298
|
+
- ✨ 新增 `InitRegion()` - 统一初始化
|
|
299
|
+
- ✨ 新增 `isAuthed()` - 检查鉴权状态
|
|
300
|
+
- ✨ 新增 `getRegion()` - 获取当前区域
|
|
301
|
+
|
|
302
|
+
## License
|
|
303
|
+
|
|
304
|
+
Commercial
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* YxCore
|
|
3
|
+
* @version 1.0.0
|
|
4
|
+
* @author zhanshen
|
|
5
|
+
* @License: Commercial
|
|
6
|
+
* @description 印象核心库,提供组件注册、域名鉴权等核心功能
|
|
7
|
+
* Unauthorized copying, distribution, or modification is prohibited.
|
|
8
|
+
*/
|
|
9
|
+
|
|
10
|
+
const _0x354ba1=_0x44c3;(function(_0x5e4d36,_0x360727){const _0x53bbcd=_0x44c3,_0x2a9307=_0x5e4d36();while(!![]){try{const _0x4b26ab=parseInt(_0x53bbcd(0x172))/0x1*(parseInt(_0x53bbcd(0x193))/0x2)+-parseInt(_0x53bbcd(0x1a9))/0x3+parseInt(_0x53bbcd(0x162))/0x4*(-parseInt(_0x53bbcd(0x195))/0x5)+parseInt(_0x53bbcd(0x185))/0x6+parseInt(_0x53bbcd(0x164))/0x7+parseInt(_0x53bbcd(0x175))/0x8*(parseInt(_0x53bbcd(0x16a))/0x9)+parseInt(_0x53bbcd(0x156))/0xa*(-parseInt(_0x53bbcd(0x19e))/0xb);if(_0x4b26ab===_0x360727)break;else _0x2a9307['push'](_0x2a9307['shift']());}catch(_0xbbb41f){_0x2a9307['push'](_0x2a9307['shift']());}}}(_0x4b96,0xb4c4b));var callbacks=[],initialized=![],initData=null;function register(_0x580ad7,_0x6adcf7){const _0x27ac0f=_0x44c3,_0xf7a873={'XHazY':function(_0x19f9c3,_0x1b8cd2){return _0x19f9c3===_0x1b8cd2;},'NppCv':_0x27ac0f(0x158),'SQLes':_0x27ac0f(0x150),'HsztF':function(_0x18ad1d,_0x2560c6){return _0x18ad1d===_0x2560c6;},'WTluB':_0x27ac0f(0x180),'unYyu':function(_0x320b03,_0x349ff5){return _0x320b03!==_0x349ff5;},'jZVbV':function(_0x561471){return _0x561471();},'SGBeu':_0x27ac0f(0x190)};if(_0xf7a873[_0x27ac0f(0x1b5)](typeof _0x580ad7,_0xf7a873[_0x27ac0f(0x177)])){const _0x3cef50=_0x580ad7;if(initialized){try{_0x3cef50(initData);}catch(_0x3947d1){console[_0x27ac0f(0x188)](_0xf7a873[_0x27ac0f(0x154)],_0x3947d1);}return;}callbacks[_0x27ac0f(0x169)](_0x3cef50);return;}if(_0xf7a873[_0x27ac0f(0x15c)](typeof _0x580ad7,_0xf7a873[_0x27ac0f(0x17d)])&&_0x6adcf7){const _0x147af9=_0x580ad7;if(_0xf7a873[_0x27ac0f(0x194)](typeof _0x6adcf7,_0xf7a873[_0x27ac0f(0x177)])){console[_0x27ac0f(0x18f)](_0x27ac0f(0x1af));return;}const _0x564fcc=()=>{const _0x54f773=_0x27ac0f;customElements[_0x54f773(0x18e)](_0x147af9,_0x6adcf7),console[_0x54f773(0x17b)](_0x147af9+_0x54f773(0x1a5));};if(initialized){try{_0xf7a873[_0x27ac0f(0x189)](_0x564fcc);}catch(_0x4f5d21){console[_0x27ac0f(0x188)](_0xf7a873[_0x27ac0f(0x154)],_0x4f5d21);}return;}callbacks[_0x27ac0f(0x169)](_0x564fcc);return;}console[_0x27ac0f(0x18f)](_0xf7a873[_0x27ac0f(0x1a0)]);}function _0x44c3(_0x4213f0,_0x562e7c){_0x4213f0=_0x4213f0-0x150;const _0x4b968e=_0x4b96();let _0x44c3f3=_0x4b968e[_0x4213f0];if(_0x44c3['YubnjF']===undefined){var _0x107cba=function(_0x331111){const _0x17e3c1='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x646f40='',_0x3997c2='';for(let _0x561755=0x0,_0x530bfc,_0x4bf3f9,_0x2194d9=0x0;_0x4bf3f9=_0x331111['charAt'](_0x2194d9++);~_0x4bf3f9&&(_0x530bfc=_0x561755%0x4?_0x530bfc*0x40+_0x4bf3f9:_0x4bf3f9,_0x561755++%0x4)?_0x646f40+=String['fromCharCode'](0xff&_0x530bfc>>(-0x2*_0x561755&0x6)):0x0){_0x4bf3f9=_0x17e3c1['indexOf'](_0x4bf3f9);}for(let _0x498357=0x0,_0x2fa212=_0x646f40['length'];_0x498357<_0x2fa212;_0x498357++){_0x3997c2+='%'+('00'+_0x646f40['charCodeAt'](_0x498357)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x3997c2);};_0x44c3['kiCWPf']=_0x107cba,_0x44c3['euDbrT']={},_0x44c3['YubnjF']=!![];}const _0x3b80e5=_0x4b968e[0x0],_0x536b94=_0x4213f0+_0x3b80e5,_0x5a7d89=_0x44c3['euDbrT'][_0x536b94];return!_0x5a7d89?(_0x44c3f3=_0x44c3['kiCWPf'](_0x44c3f3),_0x44c3['euDbrT'][_0x536b94]=_0x44c3f3):_0x44c3f3=_0x5a7d89,_0x44c3f3;}function initialize(_0x7793ab){const _0x31a09e=_0x44c3,_0x201988={'YGjUZ':function(_0x238ca2,_0x5d46b5){return _0x238ca2(_0x5d46b5);},'jwfHJ':_0x31a09e(0x150),'yWjxK':_0x31a09e(0x18c),'UEiVR':_0x31a09e(0x159)};if(initialized){console[_0x31a09e(0x18f)](_0x201988[_0x31a09e(0x151)]);return;}initialized=!![],initData=_0x7793ab,console[_0x31a09e(0x17b)](_0x31a09e(0x199)+callbacks[_0x31a09e(0x18b)]+_0x31a09e(0x17e)),callbacks[_0x31a09e(0x16d)](_0x28bd2a=>{const _0x11e32a=_0x31a09e;try{_0x201988[_0x11e32a(0x19d)](_0x28bd2a,_0x7793ab);}catch(_0x386a85){console[_0x11e32a(0x188)](_0x201988[_0x11e32a(0x1b1)],_0x386a85);}}),callbacks[_0x31a09e(0x18b)]=0x0,console[_0x31a09e(0x17b)](_0x201988[_0x31a09e(0x196)]);}function isInitialized(){return initialized;}var REGION_WHITELIST={'cn':_0x354ba1(0x16e),'foreign':_0x354ba1(0x17a)},PREFIX=_0x354ba1(0x171),TTL_DEFAULT=0x2d0*0x3c*0x3c*0x3e8;function buildKey(_0x5c8090){return''+PREFIX+_0x5c8090;}function setCache(_0x3db34e,_0x2ec047,_0x278241=TTL_DEFAULT){const _0x45046d=_0x354ba1,_0x42b34d={'DMGIp':function(_0x260697,_0x161523){return _0x260697+_0x161523;},'XAvgD':function(_0x27c4bd,_0x54ca9d){return _0x27c4bd(_0x54ca9d);}},_0x15a452={'value':_0x2ec047,'expiresAt':_0x42b34d[_0x45046d(0x16b)](Date[_0x45046d(0x187)](),_0x278241)};localStorage[_0x45046d(0x17c)](_0x42b34d[_0x45046d(0x1b6)](buildKey,_0x3db34e),JSON[_0x45046d(0x183)](_0x15a452));}function getCache(_0xee331f){const _0x176402=_0x354ba1,_0x192d5a={'dbZIa':function(_0x51c0eb,_0x5f0e69){return _0x51c0eb(_0x5f0e69);}},_0x38c063=localStorage[_0x176402(0x19c)](_0x192d5a[_0x176402(0x19f)](buildKey,_0xee331f));if(!_0x38c063)return null;try{const {value:_0x1b979c,expiresAt:_0x334764}=JSON[_0x176402(0x1ac)](_0x38c063);if(Date[_0x176402(0x187)]()>_0x334764)return localStorage[_0x176402(0x1ab)](buildKey(_0xee331f)),null;return _0x1b979c;}catch{return localStorage[_0x176402(0x1ab)](buildKey(_0xee331f)),null;}}var pkgname=_0x354ba1(0x15f),WHITELIST_KEY=_0x354ba1(0x15b),REFRESH_KEY=_0x354ba1(0x168),REFRESH_TTL=0x12c*0x3e8,WHITELIST_TTL=0x2760*0x3c*0x3e8;function isLocalIP(_0x1fcaa4){const _0x5b762d=_0x354ba1,_0x1c16c6={'FkkoX':function(_0x1a62ef,_0xbc233b){return _0x1a62ef===_0xbc233b;},'PVpTd':_0x5b762d(0x192),'GQHxV':function(_0x585266,_0x1e3491){return _0x585266(_0x1e3491);},'udYRV':function(_0x566135,_0x8bd40b){return _0x566135>=_0x8bd40b;},'nPWht':function(_0x544cc7,_0x3b5a07){return _0x544cc7===_0x3b5a07;}};if(_0x1c16c6[_0x5b762d(0x1a4)](_0x1fcaa4,_0x5b762d(0x1a8))||_0x1c16c6[_0x5b762d(0x1a4)](_0x1fcaa4,_0x1c16c6[_0x5b762d(0x1ad)]))return!![];const _0x31a2a8=_0x1fcaa4[_0x5b762d(0x166)](/^(\d+)\.(\d+)\.(\d+)\.(\d+)$/);if(!_0x31a2a8)return![];const _0x468c16=_0x1c16c6[_0x5b762d(0x1a7)](Number,_0x31a2a8[0x1]),_0x1fcdbf=_0x1c16c6[_0x5b762d(0x1a7)](Number,_0x31a2a8[0x2]);if(_0x468c16===0xa)return!![];if(_0x1c16c6[_0x5b762d(0x1a4)](_0x468c16,0xac)&&_0x1c16c6[_0x5b762d(0x1b4)](_0x1fcdbf,0x10)&&_0x1fcdbf<=0x1f)return!![];if(_0x468c16===0xc0&&_0x1c16c6[_0x5b762d(0x182)](_0x1fcdbf,0xa8))return!![];return![];}async function _checkDomainWhitelist(_0x4eec0b='cn'){const _0x441b10=_0x354ba1,_0x4f918={'coSWv':function(_0x16f6ad,_0x24c5e4,_0x42f503,_0x33184d){return _0x16f6ad(_0x24c5e4,_0x42f503,_0x33184d);},'UFzzh':function(_0x4f0d06,_0x2ff1dc){return _0x4f0d06(_0x2ff1dc);},'kQJiu':function(_0x135de0,_0x558afa){return _0x135de0!==_0x558afa;},'Qkuvd':_0x441b10(0x17f),'nQfMn':function(_0x4f7184,_0x4678e9,_0x43e2b5){return _0x4f7184(_0x4678e9,_0x43e2b5);},'UqlkQ':_0x441b10(0x1a1),'OKtGw':function(_0x3508c0,_0x49b17a,_0x1121c3,_0x186a33){return _0x3508c0(_0x49b17a,_0x1121c3,_0x186a33);},'yuqXe':function(_0xf9ea7a,_0x59a9c8){return _0xf9ea7a>=_0x59a9c8;},'YWfCB':function(_0x33b187,_0x7c5a2a){return _0x33b187-_0x7c5a2a;},'lvJuG':function(_0xc88654,_0x4edd30,_0x5f34bd){return _0xc88654(_0x4edd30,_0x5f34bd);}},_0x490e4f=REGION_WHITELIST[_0x4eec0b];if(!_0x490e4f)throw new Error(pkgname+_0x441b10(0x152)+_0x4eec0b+'\x22');const _0x54eef4=WHITELIST_KEY+'_'+_0x4eec0b,_0x576c18=REFRESH_KEY+'_'+_0x4eec0b;let _0x1017b7=_0x4f918[_0x441b10(0x178)](getCache,_0x54eef4);if(!_0x1017b7||_0x4f918[_0x441b10(0x186)](typeof _0x1017b7,_0x4f918[_0x441b10(0x170)])||Array[_0x441b10(0x1a3)](_0x1017b7))try{const _0x46016d=await _0x4f918[_0x441b10(0x198)](fetch,_0x490e4f,{'cache':_0x4f918[_0x441b10(0x1b2)]});if(!_0x46016d['ok'])throw new Error(pkgname+_0x441b10(0x16f)+_0x46016d[_0x441b10(0x174)]+')');const _0x33ecc3=await _0x46016d[_0x441b10(0x184)]();return _0x4f918[_0x441b10(0x165)](setCache,_0x54eef4,_0x33ecc3,WHITELIST_TTL),_0x4f918[_0x441b10(0x160)](setCache,_0x576c18,Date[_0x441b10(0x187)](),REFRESH_TTL),_0x4f918[_0x441b10(0x198)](applyWhitelist,_0x33ecc3,_0x4eec0b);}catch(_0x1e96a5){console[_0x441b10(0x188)](pkgname+_0x441b10(0x153),_0x1e96a5);throw _0x1e96a5;}const _0x2a158f=_0x4f918[_0x441b10(0x178)](getCache,_0x576c18);if(!_0x2a158f||_0x4f918[_0x441b10(0x176)](_0x4f918[_0x441b10(0x1b0)](Date[_0x441b10(0x187)](),_0x2a158f),REFRESH_TTL))fetch(_0x490e4f,{'cache':_0x441b10(0x1a1)})[_0x441b10(0x1a2)](async _0xd277d4=>{const _0x55e61d=_0x441b10;if(!_0xd277d4['ok'])throw new Error(_0x55e61d(0x157));setCache(_0x54eef4,await _0xd277d4[_0x55e61d(0x184)](),WHITELIST_TTL),_0x4f918[_0x55e61d(0x160)](setCache,_0x576c18,Date[_0x55e61d(0x187)](),REFRESH_TTL);})[_0x441b10(0x1ae)](_0x4e4eb9=>{const _0x3af15c=_0x441b10;console[_0x3af15c(0x18f)](pkgname+_0x3af15c(0x167),_0x4e4eb9);});return _0x4f918[_0x441b10(0x15a)](applyWhitelist,_0x1017b7,_0x4eec0b);}var initPromises={};async function checkDomainWhitelist(_0x316cfe='cn'){const _0x2c6a91=_0x354ba1,_0xb8805b={'hcOyC':function(_0x54d7b2,_0x815120){return _0x54d7b2(_0x815120);}};if(!initPromises[_0x316cfe])initPromises[_0x316cfe]=_0xb8805b[_0x2c6a91(0x197)](_checkDomainWhitelist,_0x316cfe)[_0x2c6a91(0x1ae)](_0x5ab5af=>{delete initPromises[_0x316cfe];throw _0x5ab5af;});return initPromises[_0x316cfe];}function applyWhitelist(_0x183592,_0x1fe1b3){const _0x50e317=_0x354ba1,_0x4011ad={'tQpFX':function(_0x48143d,_0x2f8f3b){return _0x48143d(_0x2f8f3b);},'fSprX':function(_0x460aca,_0x15dc3e){return _0x460aca&&_0x15dc3e;},'cZLmw':_0x50e317(0x1a8)},_0x1e9f1b=window[_0x50e317(0x163)][_0x50e317(0x15d)],_0x114a3a=_0x4011ad[_0x50e317(0x1a6)](isLocalIP,_0x1e9f1b);let _0x1e2295=_0x183592[_0x1e9f1b];if(_0x4011ad[_0x50e317(0x1b3)](!_0x1e2295,_0x114a3a))_0x1e2295=_0x183592[_0x4011ad[_0x50e317(0x19b)]];if(!_0x1e2295)throw new Error(pkgname+_0x50e317(0x16c)+_0x1e9f1b);return{'siteid':_0x1e2295[_0x50e317(0x173)],'hostname':_0x1e9f1b,'region':_0x1fe1b3};}var authPromise=null,currentRegion=null;async function initDomainCheck(_0x525657='cn'){const _0x3605fe=_0x354ba1,_0x53a061={'Corcg':function(_0x14b1fa,_0x1d6d4e){return _0x14b1fa===_0x1d6d4e;},'CARaD':function(_0x556730,_0x26f6eb){return _0x556730(_0x26f6eb);}};if(authPromise&&_0x53a061[_0x3605fe(0x181)](currentRegion,_0x525657))return await authPromise;if(currentRegion&¤tRegion!==_0x525657)console[_0x3605fe(0x18f)](_0x3605fe(0x1b7)+currentRegion+_0x3605fe(0x161)+_0x525657);currentRegion=_0x525657,authPromise=_0x53a061[_0x3605fe(0x18a)](checkDomainWhitelist,_0x525657)[_0x3605fe(0x1ae)](_0xf26528=>{authPromise=null,currentRegion=null;throw _0xf26528;});const _0x4ce477=await authPromise;return window[_0x3605fe(0x191)]=_0x4ce477,_0x4ce477;}function getCurrentRegion(){return currentRegion;}var RegComponents=register;async function InitRegion(_0x45940a='cn'){const _0x169bd1=_0x354ba1,_0x531748={'LAGOK':function(_0x2e8d67){return _0x2e8d67();},'KsgRX':function(_0x4f6fdb,_0x7cf179){return _0x4f6fdb(_0x7cf179);},'lJlxv':function(_0xe9d0a7,_0x2aa9e1){return _0xe9d0a7(_0x2aa9e1);}};if(_0x531748[_0x169bd1(0x179)](isInitialized)){console[_0x169bd1(0x18f)](_0x169bd1(0x19a));return;}try{await _0x531748[_0x169bd1(0x1aa)](initDomainCheck,_0x45940a),_0x531748[_0x169bd1(0x155)](initialize,_0x45940a);}catch(_0x233ff5){console[_0x169bd1(0x188)](_0x169bd1(0x18d),_0x233ff5);throw _0x233ff5;}}function _0x4b96(){const _0x3d7bd2=['mtaWmtHSCvjdswC','Dw5zExu','nZmWr1PXrwHr','vuvPvLi','AgnpEum','BLfMtw4','w3L4lwnVCMvDieLUAxrPywXPEMLUzYa','w3L4lwnVCMvDieLUAxrszwDPB24GywXYzwfKEsbJywXSzwq','y1PmBxC','z2v0sxrLBq','wuDQvvO','mtKXody2ntfPzuLXww0','zgjAswe','u0Dczxu','BM8TC3rVCMu','DgHLBG','AxnbCNjHEq','rMTRB1G','ioE7Hos7TU+8Jow3SUAZQowgJa','DffWrLG','r1fiEfy','Bg9JywXOB3n0','mJaYnJu5oxfZr2vOwG','s3nNuLG','CMvTB3zLsxrLBq','CgfYC2u','ufzWvgq','y2f0y2G','w3L4lwnVCMvDihjLz2LZDgvYoIbJB21WB25LBNqGBxvZDcbIzsbHignVBNn0CNvJDg9Y','wvDMq0i','ANDMseO','vxfSA1e','zLnWCLG','DwrzuLy','weHHELK','wef2z0q','w3L4lwnVCMvDifjLz2LVBIbJAgfUz2vKigzYB20G','w3L4lwnVCMvDienVBxbVBMvUDcbYzwDPC3rYyxrPB24GzxjYB3i6','EvDQEeS','77YAihvUA25VD24GCMvNAw9Uici','77YAihDOAxrLBgLZDcbSB2fKigzHAwXLza','u1fmzxm','BePSEhy','mtb2tfLHyMK','CMvMCMvZAcbMywLSzwq','zNvUy3rPB24','w3L4lwnVCMvDiefSBcbJB21WB25LBNrZigLUAxrPywXPEMvKihn1y2nLC3nMDwXSEq','BhzkDuC','v0Hjvevmsvnu','shn6Dey','Ag9ZDg5HBwu','BKHHr2u','zg9TywLUq2HLy2S','y29tv3y','ihrVia','mZm5ndbWD1njzfm','Bg9JyxrPB24','otGYnZK4nNDiBw1Tyq','t0T0r3C','Bwf0y2G','77YAihDOAxrLBgLZDcbYzwzYzxnOigzHAwXLza','v0Hjvevmsvnux1jfrLjfu0G','ChvZAa','mJGYmJC2A29hCuTM','re1hsxa','77YAihvUyxv0Ag9YAxPLzcbKB21HAw4G','zM9YrwfJAa','Ahr0Chm6lY9JB25MAwCTmti1mtm1mJiZms5JB3mUyxaTC2HHBMDOywKUBxLXy2XVDwqUy29Tl0rVBwfPBKnVBMzPzY5QC29U','77YAigzLDgnOihDOAxrLBgLZDcbMywLSzwqGka','uwT1DMq','x19zwf9msvzfxW','mJe4uMTJB1Ls','C2L0zwLK','C3rHDhvZ','mZy4DfzVCvH3','ExvXwgu','tNbWq3y','vuz6EMG','tefht0S','Ahr0Chm6lY9JB25MAwCTzM9YzwLNBI0XmZe4nJC4odm5lMnVCY5HCc1ZAw5NyxbVCMuUBxLXy2XVDwqUy29Tl0rVBwfPBKnVBMzPz0zVCMvPz24UANnVBG','Bg9N','C2v0sxrLBq','v1rSDui','ignVBxbVBMvUDhmUlI4','B2jQzwn0','C3rYAw5N','q29Yy2C','BLbxAhq','C3rYAw5NAwz5','ANnVBG','mJC2mtG0mMv3ruTSrW','A1fkAxu','BM93','zxjYB3i','ALPwyLy','q0fsyuq','BgvUz3rO','w3L4lwnVCMvDiefSCMvHzhKGAw5PDgLHBgL6zwq','w3L4lwnVCMvDieLUAxrszwDPB24GzMfPBgvKoG','zgvMAw5L','D2fYBG','w3L4lwnVCMvDihjLz2LZDgvYoIbPBNzHBgLKigfYz3vTzw50CW','x19zwf9msvzfx0fvveHFxW','mti3lJaUmc4X'];_0x4b96=function(){return _0x3d7bd2;};return _0x4b96();}function isAuthed(){const _0xb89213=_0x354ba1,_0x17e053={'nHaGe':function(_0x5a51d5){return _0x5a51d5();}};return _0x17e053[_0xb89213(0x15e)](isInitialized);}function getRegion(){return getCurrentRegion();}export{InitRegion,RegComponents,getRegion,isAuthed};
|
package/package.json
ADDED
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "@yxlib/core",
|
|
3
|
+
"version": "1.0.0",
|
|
4
|
+
"description": "印象核心库,提供组件注册、域名鉴权等核心功能",
|
|
5
|
+
"main": "dist/yx-core.es.js",
|
|
6
|
+
"files": [
|
|
7
|
+
"dist"
|
|
8
|
+
],
|
|
9
|
+
"scripts": {
|
|
10
|
+
"build": "vite build && zscli build --confuse",
|
|
11
|
+
"debug": "vite build",
|
|
12
|
+
"test": "vitest",
|
|
13
|
+
"test:ui": "vitest --ui",
|
|
14
|
+
"test:run": "vitest run",
|
|
15
|
+
"up": "npm version patch && npm run build && npm publish",
|
|
16
|
+
"beta": "npm version prerelease --preid=beta && npm run build && npm publish --tag beta"
|
|
17
|
+
},
|
|
18
|
+
"keywords": [
|
|
19
|
+
"yx-core",
|
|
20
|
+
"component-registry",
|
|
21
|
+
"domain-check",
|
|
22
|
+
"whitelist",
|
|
23
|
+
"auth",
|
|
24
|
+
"validation"
|
|
25
|
+
],
|
|
26
|
+
"author": "",
|
|
27
|
+
"license": "Commercial",
|
|
28
|
+
"type": "module",
|
|
29
|
+
"publishConfig": {
|
|
30
|
+
"access": "public"
|
|
31
|
+
},
|
|
32
|
+
"devDependencies": {
|
|
33
|
+
"@rollup/plugin-terser": "^1.0.0",
|
|
34
|
+
"@vitest/ui": "^2.1.8",
|
|
35
|
+
"happy-dom": "^15.11.7",
|
|
36
|
+
"javascript-obfuscator": "^5.4.1",
|
|
37
|
+
"terser": "^5.46.1",
|
|
38
|
+
"vite": "^8.0.8",
|
|
39
|
+
"vitest": "^2.1.8"
|
|
40
|
+
},
|
|
41
|
+
"dependencies": {
|
|
42
|
+
"@yzqc/zscli": "^1.0.3"
|
|
43
|
+
}
|
|
44
|
+
}
|