xxf_react 0.6.6 → 0.6.8

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.
Files changed (71) hide show
  1. package/README.md +14 -48
  2. package/dist/foundation/Copy.d.ts +8 -0
  3. package/dist/foundation/Copy.d.ts.map +1 -0
  4. package/dist/foundation/Copy.js +21 -0
  5. package/dist/foundation/index.d.ts +2 -0
  6. package/dist/foundation/index.d.ts.map +1 -1
  7. package/dist/foundation/index.js +2 -0
  8. package/dist/http/api/ApiBuilder.d.ts +115 -0
  9. package/dist/http/api/ApiBuilder.d.ts.map +1 -0
  10. package/dist/http/api/ApiBuilder.js +128 -0
  11. package/dist/http/api/index.d.ts +2 -0
  12. package/dist/http/api/index.d.ts.map +1 -0
  13. package/dist/http/api/index.js +1 -0
  14. package/dist/http/cache/DiskLruCache.d.ts +66 -0
  15. package/dist/http/cache/DiskLruCache.d.ts.map +1 -0
  16. package/dist/http/cache/DiskLruCache.js +254 -0
  17. package/dist/http/cache/HttpCache.d.ts +59 -0
  18. package/dist/http/cache/HttpCache.d.ts.map +1 -0
  19. package/dist/http/cache/HttpCache.js +215 -0
  20. package/dist/http/cache/index.d.ts +3 -0
  21. package/dist/http/cache/index.d.ts.map +1 -0
  22. package/dist/http/cache/index.js +2 -0
  23. package/dist/http/client/ApiStream.d.ts +80 -0
  24. package/dist/http/client/ApiStream.d.ts.map +1 -0
  25. package/dist/http/client/ApiStream.js +190 -0
  26. package/dist/http/client/HttpClient.d.ts +88 -0
  27. package/dist/http/client/HttpClient.d.ts.map +1 -0
  28. package/dist/http/client/HttpClient.js +381 -0
  29. package/dist/http/client/index.d.ts +3 -0
  30. package/dist/http/client/index.d.ts.map +1 -0
  31. package/dist/http/client/index.js +2 -0
  32. package/dist/http/index.d.ts +42 -0
  33. package/dist/http/index.d.ts.map +1 -0
  34. package/dist/http/index.js +45 -0
  35. package/dist/http/models/ApiTypes.d.ts +54 -0
  36. package/dist/http/models/ApiTypes.d.ts.map +1 -0
  37. package/dist/http/models/ApiTypes.js +4 -0
  38. package/dist/http/models/CacheConfig.d.ts +58 -0
  39. package/dist/http/models/CacheConfig.d.ts.map +1 -0
  40. package/dist/http/models/CacheConfig.js +4 -0
  41. package/dist/http/models/CacheEntry.d.ts +28 -0
  42. package/dist/http/models/CacheEntry.d.ts.map +1 -0
  43. package/dist/http/models/CacheEntry.js +1 -0
  44. package/dist/http/models/CacheInterceptor.d.ts +112 -0
  45. package/dist/http/models/CacheInterceptor.d.ts.map +1 -0
  46. package/dist/http/models/CacheInterceptor.js +6 -0
  47. package/dist/http/models/CacheMode.d.ts +45 -0
  48. package/dist/http/models/CacheMode.d.ts.map +1 -0
  49. package/dist/http/models/CacheMode.js +45 -0
  50. package/dist/http/models/DiskCacheConfig.d.ts +56 -0
  51. package/dist/http/models/DiskCacheConfig.d.ts.map +1 -0
  52. package/dist/http/models/DiskCacheConfig.js +4 -0
  53. package/dist/http/models/HttpClientConfig.d.ts +77 -0
  54. package/dist/http/models/HttpClientConfig.d.ts.map +1 -0
  55. package/dist/http/models/HttpClientConfig.js +4 -0
  56. package/dist/http/models/LruMetadata.d.ts +28 -0
  57. package/dist/http/models/LruMetadata.d.ts.map +1 -0
  58. package/dist/http/models/LruMetadata.js +6 -0
  59. package/dist/http/models/RequestConfig.d.ts +67 -0
  60. package/dist/http/models/RequestConfig.d.ts.map +1 -0
  61. package/dist/http/models/RequestConfig.js +4 -0
  62. package/dist/http/models/index.d.ts +24 -0
  63. package/dist/http/models/index.d.ts.map +1 -0
  64. package/dist/http/models/index.js +16 -0
  65. package/dist/http/types.d.ts +13 -0
  66. package/dist/http/types.d.ts.map +1 -0
  67. package/dist/http/types.js +14 -0
  68. package/dist/index.d.ts +1 -0
  69. package/dist/index.d.ts.map +1 -1
  70. package/dist/index.js +3 -0
  71. package/package.json +14 -4
@@ -0,0 +1,67 @@
1
+ /**
2
+ * 请求配置相关类型
3
+ */
4
+ import type { CacheConfig } from './CacheConfig';
5
+ /**
6
+ * 请求配置
7
+ *
8
+ * 用于定义单个 API 端点的配置
9
+ *
10
+ * @example
11
+ * ```ts
12
+ * .get<User>('getUser', {
13
+ * path: '/users/{id}',
14
+ * headers: { 'Accept': 'application/json' },
15
+ * timeout: 5000,
16
+ * cache: { mode: CacheMode.IfCache, ttl: 60000 },
17
+ * })
18
+ * ```
19
+ */
20
+ export interface RequestConfig {
21
+ /** 请求方法 */
22
+ method: 'GET' | 'POST' | 'PUT' | 'DELETE' | 'PATCH';
23
+ /** 请求路径,支持路径参数如 /users/{id} */
24
+ path: string;
25
+ /** 请求头 */
26
+ headers?: Record<string, string>;
27
+ /** 超时时间 (ms) */
28
+ timeout?: number;
29
+ /** 缓存配置 */
30
+ cache?: CacheConfig;
31
+ /** 重试次数 */
32
+ retry?: number;
33
+ }
34
+ /**
35
+ * API 调用选项
36
+ *
37
+ * 用于调用 API 时传入的运行时参数
38
+ *
39
+ * @example
40
+ * ```ts
41
+ * // 完整示例
42
+ * await api.getUser({
43
+ * pathParams: { id: '123' },
44
+ * query: { include: 'profile' },
45
+ * headers: { 'X-Request-Id': 'abc' },
46
+ * cache: { mode: CacheMode.OnlyRemote }, // 本次调用强制不缓存
47
+ * })
48
+ *
49
+ * // POST 请求
50
+ * await api.createUser({
51
+ * body: { name: 'John', email: 'john@example.com' },
52
+ * })
53
+ * ```
54
+ */
55
+ export interface ApiOptions {
56
+ /** URL 路径参数,用于替换路径中的 {param} */
57
+ pathParams?: Record<string, string | number>;
58
+ /** 查询参数,会自动过滤 undefined 和 null */
59
+ query?: Record<string, string | number | boolean | undefined>;
60
+ /** 请求体(用于 POST/PUT/PATCH) */
61
+ body?: unknown;
62
+ /** 覆盖缓存配置(优先级最高) */
63
+ cache?: Partial<CacheConfig>;
64
+ /** 覆盖请求头 */
65
+ headers?: Record<string, string>;
66
+ }
67
+ //# sourceMappingURL=RequestConfig.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"RequestConfig.d.ts","sourceRoot":"","sources":["../../../src/http/models/RequestConfig.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,eAAe,CAAA;AAEhD;;;;;;;;;;;;;;GAcG;AACH,MAAM,WAAW,aAAa;IAC1B,WAAW;IACX,MAAM,EAAE,KAAK,GAAG,MAAM,GAAG,KAAK,GAAG,QAAQ,GAAG,OAAO,CAAA;IACnD,+BAA+B;IAC/B,IAAI,EAAE,MAAM,CAAA;IACZ,UAAU;IACV,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;IAChC,gBAAgB;IAChB,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,WAAW;IACX,KAAK,CAAC,EAAE,WAAW,CAAA;IACnB,WAAW;IACX,KAAK,CAAC,EAAE,MAAM,CAAA;CACjB;AAED;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,MAAM,WAAW,UAAU;IACvB,gCAAgC;IAChC,UAAU,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAAC,CAAA;IAC5C,kCAAkC;IAClC,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,SAAS,CAAC,CAAA;IAC7D,6BAA6B;IAC7B,IAAI,CAAC,EAAE,OAAO,CAAA;IACd,oBAAoB;IACpB,KAAK,CAAC,EAAE,OAAO,CAAC,WAAW,CAAC,CAAA;IAC5B,YAAY;IACZ,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;CACnC"}
@@ -0,0 +1,4 @@
1
+ /**
2
+ * 请求配置相关类型
3
+ */
4
+ export {};
@@ -0,0 +1,24 @@
1
+ /**
2
+ * HTTP 网络框架类型定义
3
+ *
4
+ * 按功能模块拆分:
5
+ * - CacheMode: 缓存模式枚举
6
+ * - CacheEntry: 缓存条目结构
7
+ * - ApiTypes: API 响应相关类型
8
+ * - CacheConfig: 缓存配置
9
+ * - CacheInterceptor: 缓存拦截器
10
+ * - HttpClientConfig: HTTP 客户端配置
11
+ * - RequestConfig: 请求配置
12
+ * - DiskCacheConfig: 磁盘缓存配置
13
+ * - LruMetadata: LRU 元数据
14
+ */
15
+ export { CacheMode } from './CacheMode';
16
+ export type { CacheEntry } from './CacheEntry';
17
+ export type { ApiResult, ApiCallback } from './ApiTypes';
18
+ export type { CacheConfig, CacheKeyRequest } from './CacheConfig';
19
+ export type { CacheInterceptor, CacheInterceptorContext, CacheInterceptorResult, } from './CacheInterceptor';
20
+ export type { HttpClientConfig } from './HttpClientConfig';
21
+ export type { RequestConfig, ApiOptions } from './RequestConfig';
22
+ export type { DiskLruCacheConfig, HttpCacheConfig } from './DiskCacheConfig';
23
+ export type { LruMetadataEntry, LruMetadata } from './LruMetadata';
24
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/http/models/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAGH,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAA;AAGvC,YAAY,EAAE,UAAU,EAAE,MAAM,cAAc,CAAA;AAG9C,YAAY,EAAE,SAAS,EAAE,WAAW,EAAE,MAAM,YAAY,CAAA;AAGxD,YAAY,EAAE,WAAW,EAAE,eAAe,EAAE,MAAM,eAAe,CAAA;AAGjE,YAAY,EACR,gBAAgB,EAChB,uBAAuB,EACvB,sBAAsB,GACzB,MAAM,oBAAoB,CAAA;AAG3B,YAAY,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAA;AAG1D,YAAY,EAAE,aAAa,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAA;AAGhE,YAAY,EAAE,kBAAkB,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAA;AAG5E,YAAY,EAAE,gBAAgB,EAAE,WAAW,EAAE,MAAM,eAAe,CAAA"}
@@ -0,0 +1,16 @@
1
+ /**
2
+ * HTTP 网络框架类型定义
3
+ *
4
+ * 按功能模块拆分:
5
+ * - CacheMode: 缓存模式枚举
6
+ * - CacheEntry: 缓存条目结构
7
+ * - ApiTypes: API 响应相关类型
8
+ * - CacheConfig: 缓存配置
9
+ * - CacheInterceptor: 缓存拦截器
10
+ * - HttpClientConfig: HTTP 客户端配置
11
+ * - RequestConfig: 请求配置
12
+ * - DiskCacheConfig: 磁盘缓存配置
13
+ * - LruMetadata: LRU 元数据
14
+ */
15
+ // 缓存模式
16
+ export { CacheMode } from './CacheMode';
@@ -0,0 +1,13 @@
1
+ /**
2
+ * HTTP 网络框架类型定义
3
+ *
4
+ * 统一导出入口,保持向后兼容
5
+ * 实际类型定义在 models/ 目录下按功能拆分
6
+ *
7
+ * @example
8
+ * ```ts
9
+ * import { CacheMode, type HttpClientConfig } from 'xxf_react/http'
10
+ * ```
11
+ */
12
+ export { CacheMode, type CacheEntry, type ApiResult, type ApiCallback, type CacheConfig, type CacheKeyRequest, type CacheInterceptor, type CacheInterceptorContext, type CacheInterceptorResult, type HttpClientConfig, type RequestConfig, type ApiOptions, type DiskLruCacheConfig, type HttpCacheConfig, type LruMetadataEntry, type LruMetadata, } from './models';
13
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/http/types.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,OAAO,EAEH,SAAS,EAET,KAAK,UAAU,EAEf,KAAK,SAAS,EACd,KAAK,WAAW,EAEhB,KAAK,WAAW,EAChB,KAAK,eAAe,EAEpB,KAAK,gBAAgB,EACrB,KAAK,uBAAuB,EAC5B,KAAK,sBAAsB,EAE3B,KAAK,gBAAgB,EAErB,KAAK,aAAa,EAClB,KAAK,UAAU,EAEf,KAAK,kBAAkB,EACvB,KAAK,eAAe,EAEpB,KAAK,gBAAgB,EACrB,KAAK,WAAW,GACnB,MAAM,UAAU,CAAA"}
@@ -0,0 +1,14 @@
1
+ /**
2
+ * HTTP 网络框架类型定义
3
+ *
4
+ * 统一导出入口,保持向后兼容
5
+ * 实际类型定义在 models/ 目录下按功能拆分
6
+ *
7
+ * @example
8
+ * ```ts
9
+ * import { CacheMode, type HttpClientConfig } from 'xxf_react/http'
10
+ * ```
11
+ */
12
+ export {
13
+ // 缓存模式枚举
14
+ CacheMode, } from './models';
package/dist/index.d.ts CHANGED
@@ -9,5 +9,6 @@ export * from './responsive';
9
9
  export * from './foundation';
10
10
  export * from './layout';
11
11
  export * from './event-bus';
12
+ export * from './http';
12
13
  export declare function initXXF(): void;
13
14
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAEA,cAAc,OAAO,CAAC;AACtB,cAAc,SAAS,CAAC;AACxB,cAAc,SAAS,CAAC;AACxB,cAAc,WAAW,CAAC;AAC1B,cAAc,UAAU,CAAC;AACzB,cAAc,SAAS,CAAC;AACxB,cAAc,QAAQ,CAAC;AACvB,cAAc,cAAc,CAAC;AAC7B,cAAc,cAAc,CAAC;AAC7B,cAAc,UAAU,CAAC;AACzB,cAAc,aAAa,CAAC;AAG5B,wBAAgB,OAAO,SAEtB"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAGA,cAAc,OAAO,CAAC;AACtB,cAAc,SAAS,CAAC;AACxB,cAAc,SAAS,CAAC;AACxB,cAAc,WAAW,CAAC;AAC1B,cAAc,UAAU,CAAC;AACzB,cAAc,SAAS,CAAC;AACxB,cAAc,QAAQ,CAAC;AACvB,cAAc,cAAc,CAAC;AAC7B,cAAc,cAAc,CAAC;AAC7B,cAAc,UAAU,CAAC;AACzB,cAAc,aAAa,CAAC;AAC5B,cAAc,QAAQ,CAAC;AAGvB,wBAAgB,OAAO,SAGtB"}
package/dist/index.js CHANGED
@@ -1,4 +1,5 @@
1
1
  import { initPromiseErrorExtension } from "./flow/PromiseExt";
2
+ import { extendVideoElement } from "./media";
2
3
  export * from './sse';
3
4
  export * from './fetch';
4
5
  export * from './utils';
@@ -10,7 +11,9 @@ export * from './responsive';
10
11
  export * from './foundation';
11
12
  export * from './layout';
12
13
  export * from './event-bus';
14
+ export * from './http';
13
15
  ///框架初始化函数,调用后会初始化一些全局功能
14
16
  export function initXXF() {
15
17
  initPromiseErrorExtension();
18
+ extendVideoElement();
16
19
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "xxf_react",
3
- "version": "0.6.6",
3
+ "version": "0.6.8",
4
4
  "private": false,
5
5
  "type": "module",
6
6
  "main": "dist/index.js",
@@ -53,6 +53,10 @@
53
53
  "./event-bus": {
54
54
  "types": "./dist/event-bus/index.d.ts",
55
55
  "import": "./dist/event-bus/index.js"
56
+ },
57
+ "./http": {
58
+ "types": "./dist/http/index.d.ts",
59
+ "import": "./dist/http/index.js"
56
60
  }
57
61
  },
58
62
  "files": [
@@ -65,23 +69,29 @@
65
69
  "react": ">=18"
66
70
  },
67
71
  "dependencies": {
68
- "zustand": "^5.0.11",
69
72
  "@microsoft/fetch-event-source": "^2.0.1",
70
73
  "@use-gesture/react": "^10.3.1",
71
74
  "bowser": "^2.14.1",
72
75
  "broadcast-channel": "^7.3.0",
73
76
  "dayjs": "^1.11.19",
77
+ "idb-keyval": "^6.2.2",
78
+ "ky": "^1.14.3",
74
79
  "react-async-hook": "^4.0.0",
75
80
  "react-resize-detector": "^12.3.0",
76
81
  "react-responsive": "^10.0.1",
77
82
  "react-toastify": "^11.0.5",
78
83
  "react-virtualized-auto-sizer": "^2.0.2",
79
84
  "react-virtuoso": "^4.17.0",
85
+ "rfdc": "^1.4.1",
80
86
  "tailwind-variants": "^3.2.2",
81
87
  "tiny-lru": "^11.4.7",
82
- "use-debounce": "^10.0.6"
88
+ "use-debounce": "^10.0.6",
89
+ "zustand": "^5.0.11"
83
90
  },
84
91
  "devDependencies": {
85
- "next": "^16.0.7"
92
+ "@types/node": "^25.3.0",
93
+ "@types/react": "^19.2.14",
94
+ "next": "^16.1.6",
95
+ "typescript": "^5.9.3"
86
96
  }
87
97
  }