@route-forge/core 3.0.0 → 3.1.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/dist/codegen.cjs +89 -61
- package/dist/codegen.cjs.map +1 -1
- package/dist/codegen.d.cts +22 -13
- package/dist/codegen.d.ts +22 -13
- package/dist/codegen.js +89 -61
- package/dist/codegen.js.map +1 -1
- package/dist/index.cjs +308 -153
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +498 -19
- package/dist/index.d.ts +498 -19
- package/dist/index.js +308 -154
- package/dist/index.js.map +1 -1
- package/dist/manifest-bjy4P_B4.d.cts +76 -0
- package/dist/manifest-bjy4P_B4.d.ts +76 -0
- package/dist/route-forge.global.js +308 -153
- package/dist/route-forge.global.js.map +1 -1
- package/dist/route-forge.global.min.js +2 -2
- package/package.json +1 -1
- package/dist/types-B_vdcRqx.d.cts +0 -501
- package/dist/types-B_vdcRqx.d.ts +0 -501
|
@@ -0,0 +1,76 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* 后端 manifest 契约类型(HTTP 层拉取的数据结构)
|
|
3
|
+
* @see .docs/SPEC.md §3.1
|
|
4
|
+
*/
|
|
5
|
+
/**
|
|
6
|
+
* 路由元信息(后端 /_forge/routes/{level} 返回的单条路由结构)
|
|
7
|
+
*/
|
|
8
|
+
interface RouteMeta {
|
|
9
|
+
/** 路由名,如 'admin.users.show' */
|
|
10
|
+
name: string;
|
|
11
|
+
/** 路由 URI 模板,如 'admin/users/{user}' */
|
|
12
|
+
uri: string;
|
|
13
|
+
/** 支持的 HTTP 方法集合,如 ['GET','HEAD'] */
|
|
14
|
+
methods: string[];
|
|
15
|
+
/** 路径参数名列表,如 ['user'] */
|
|
16
|
+
parameters: string[];
|
|
17
|
+
/** 路径参数默认值(Laravel ->defaults()),key 为参数名,value 为默认值 */
|
|
18
|
+
parameter_defaults?: Record<string, unknown>;
|
|
19
|
+
/** 所属层级(前端填充,便于隔离缓存) */
|
|
20
|
+
level?: string;
|
|
21
|
+
/**
|
|
22
|
+
* 后端 manifest 契约预留字段:路由级缓存 TTL(秒)。
|
|
23
|
+
* 当前后端层级表响应(LevelRoutesResponse)不下发此字段,缓存 TTL 统一由摘要
|
|
24
|
+
* `config.cache_ttl`(全局,见 cache.ts / auto-discovery)驱动;保留字段位以便将来支持路由级缓存时不改类型。
|
|
25
|
+
*/
|
|
26
|
+
cache?: number | null;
|
|
27
|
+
}
|
|
28
|
+
/**
|
|
29
|
+
* 某层级下的全部路由元信息响应(后端 GET {levels[level].route.uri} 返回)。
|
|
30
|
+
* 结构为 `{ level, routes }`,缓存 TTL 不在层级表内下发,统一取自摘要 config.cache_ttl。
|
|
31
|
+
*/
|
|
32
|
+
interface LevelRoutesResponse {
|
|
33
|
+
level: string;
|
|
34
|
+
/** 路由名 → 路由元信息;后端空层级序列化为 `{}`(对象契约,非数组) */
|
|
35
|
+
routes: Record<string, RouteMeta>;
|
|
36
|
+
}
|
|
37
|
+
/**
|
|
38
|
+
* 摘要端点响应(SPEC §3.1.6)
|
|
39
|
+
* GET {endpoint_prefix} 返回此结构;同时是 @forgeSummary 注入 window.__ROUTE_FORGE__ 的值。
|
|
40
|
+
*
|
|
41
|
+
* unassigned 不是顶层字段,而是 `levels` 中一个恒存在的特殊层级,
|
|
42
|
+
* 前端按其 route.uri 走 HTTP 懒加载获取未分配路由明细。
|
|
43
|
+
*/
|
|
44
|
+
interface SummaryResponse {
|
|
45
|
+
/**
|
|
46
|
+
* manifest 协议版本号(拼写为 scheme「方案」而非 schema;DESIGN.md §6.3),必填,默认 1;
|
|
47
|
+
* 前端据此做向前兼容(>1 时告警)。
|
|
48
|
+
*/
|
|
49
|
+
schemeVersion: number;
|
|
50
|
+
levels: Record<string, {
|
|
51
|
+
description: string;
|
|
52
|
+
load: 'lazy' | 'eager';
|
|
53
|
+
route_count: number;
|
|
54
|
+
/** 该层级明细端点的自描述,前端据此拼 URL 懒加载(endpoint_prefix 仅作兜底) */
|
|
55
|
+
route: {
|
|
56
|
+
/** 层级明细端点绝对路径,如 '/_forge/routes/admin' */
|
|
57
|
+
uri: string;
|
|
58
|
+
/** 恒为 ['GET','HEAD'] */
|
|
59
|
+
methods: string[];
|
|
60
|
+
};
|
|
61
|
+
}>;
|
|
62
|
+
config: {
|
|
63
|
+
strict_mode: boolean;
|
|
64
|
+
endpoint_prefix: string;
|
|
65
|
+
/** 后端下发的 URL 前缀,生成业务 URL 时拼接到路由 URI 前;未配置为 null(SPEC §3.1.6) */
|
|
66
|
+
url_prefix: string | null;
|
|
67
|
+
/** 全局统一缓存 TTL(秒):null=不缓存、0=永久、正整数=N 秒;后端已把负值归一为 null */
|
|
68
|
+
cache_ttl: number | null;
|
|
69
|
+
};
|
|
70
|
+
}
|
|
71
|
+
/**
|
|
72
|
+
* 缓存存储介质
|
|
73
|
+
*/
|
|
74
|
+
type CacheStorage = 'memory' | 'sessionStorage' | 'localStorage';
|
|
75
|
+
|
|
76
|
+
export type { CacheStorage as C, LevelRoutesResponse as L, RouteMeta as R, SummaryResponse as S };
|
|
@@ -0,0 +1,76 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* 后端 manifest 契约类型(HTTP 层拉取的数据结构)
|
|
3
|
+
* @see .docs/SPEC.md §3.1
|
|
4
|
+
*/
|
|
5
|
+
/**
|
|
6
|
+
* 路由元信息(后端 /_forge/routes/{level} 返回的单条路由结构)
|
|
7
|
+
*/
|
|
8
|
+
interface RouteMeta {
|
|
9
|
+
/** 路由名,如 'admin.users.show' */
|
|
10
|
+
name: string;
|
|
11
|
+
/** 路由 URI 模板,如 'admin/users/{user}' */
|
|
12
|
+
uri: string;
|
|
13
|
+
/** 支持的 HTTP 方法集合,如 ['GET','HEAD'] */
|
|
14
|
+
methods: string[];
|
|
15
|
+
/** 路径参数名列表,如 ['user'] */
|
|
16
|
+
parameters: string[];
|
|
17
|
+
/** 路径参数默认值(Laravel ->defaults()),key 为参数名,value 为默认值 */
|
|
18
|
+
parameter_defaults?: Record<string, unknown>;
|
|
19
|
+
/** 所属层级(前端填充,便于隔离缓存) */
|
|
20
|
+
level?: string;
|
|
21
|
+
/**
|
|
22
|
+
* 后端 manifest 契约预留字段:路由级缓存 TTL(秒)。
|
|
23
|
+
* 当前后端层级表响应(LevelRoutesResponse)不下发此字段,缓存 TTL 统一由摘要
|
|
24
|
+
* `config.cache_ttl`(全局,见 cache.ts / auto-discovery)驱动;保留字段位以便将来支持路由级缓存时不改类型。
|
|
25
|
+
*/
|
|
26
|
+
cache?: number | null;
|
|
27
|
+
}
|
|
28
|
+
/**
|
|
29
|
+
* 某层级下的全部路由元信息响应(后端 GET {levels[level].route.uri} 返回)。
|
|
30
|
+
* 结构为 `{ level, routes }`,缓存 TTL 不在层级表内下发,统一取自摘要 config.cache_ttl。
|
|
31
|
+
*/
|
|
32
|
+
interface LevelRoutesResponse {
|
|
33
|
+
level: string;
|
|
34
|
+
/** 路由名 → 路由元信息;后端空层级序列化为 `{}`(对象契约,非数组) */
|
|
35
|
+
routes: Record<string, RouteMeta>;
|
|
36
|
+
}
|
|
37
|
+
/**
|
|
38
|
+
* 摘要端点响应(SPEC §3.1.6)
|
|
39
|
+
* GET {endpoint_prefix} 返回此结构;同时是 @forgeSummary 注入 window.__ROUTE_FORGE__ 的值。
|
|
40
|
+
*
|
|
41
|
+
* unassigned 不是顶层字段,而是 `levels` 中一个恒存在的特殊层级,
|
|
42
|
+
* 前端按其 route.uri 走 HTTP 懒加载获取未分配路由明细。
|
|
43
|
+
*/
|
|
44
|
+
interface SummaryResponse {
|
|
45
|
+
/**
|
|
46
|
+
* manifest 协议版本号(拼写为 scheme「方案」而非 schema;DESIGN.md §6.3),必填,默认 1;
|
|
47
|
+
* 前端据此做向前兼容(>1 时告警)。
|
|
48
|
+
*/
|
|
49
|
+
schemeVersion: number;
|
|
50
|
+
levels: Record<string, {
|
|
51
|
+
description: string;
|
|
52
|
+
load: 'lazy' | 'eager';
|
|
53
|
+
route_count: number;
|
|
54
|
+
/** 该层级明细端点的自描述,前端据此拼 URL 懒加载(endpoint_prefix 仅作兜底) */
|
|
55
|
+
route: {
|
|
56
|
+
/** 层级明细端点绝对路径,如 '/_forge/routes/admin' */
|
|
57
|
+
uri: string;
|
|
58
|
+
/** 恒为 ['GET','HEAD'] */
|
|
59
|
+
methods: string[];
|
|
60
|
+
};
|
|
61
|
+
}>;
|
|
62
|
+
config: {
|
|
63
|
+
strict_mode: boolean;
|
|
64
|
+
endpoint_prefix: string;
|
|
65
|
+
/** 后端下发的 URL 前缀,生成业务 URL 时拼接到路由 URI 前;未配置为 null(SPEC §3.1.6) */
|
|
66
|
+
url_prefix: string | null;
|
|
67
|
+
/** 全局统一缓存 TTL(秒):null=不缓存、0=永久、正整数=N 秒;后端已把负值归一为 null */
|
|
68
|
+
cache_ttl: number | null;
|
|
69
|
+
};
|
|
70
|
+
}
|
|
71
|
+
/**
|
|
72
|
+
* 缓存存储介质
|
|
73
|
+
*/
|
|
74
|
+
type CacheStorage = 'memory' | 'sessionStorage' | 'localStorage';
|
|
75
|
+
|
|
76
|
+
export type { CacheStorage as C, LevelRoutesResponse as L, RouteMeta as R, SummaryResponse as S };
|