swpp-backends 3.0.0-alpha.3 → 3.0.0-alpha.310
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/{types → dist}/index.d.ts +5 -4
- package/dist/index.js +25 -17
- package/{types → dist}/swpp/FileParser.d.ts +11 -6
- package/dist/swpp/FileParser.js +27 -13
- package/{types → dist}/swpp/JsonBuilder.d.ts +1 -3
- package/dist/swpp/JsonBuilder.js +3 -7
- package/dist/swpp/NetworkFileHandler.js +3 -3
- package/{types → dist}/swpp/ResourcesScanner.d.ts +11 -14
- package/dist/swpp/ResourcesScanner.js +94 -70
- package/{types → dist}/swpp/SwCompiler.d.ts +21 -8
- package/dist/swpp/SwCompiler.js +49 -15
- package/{types → dist}/swpp/config/ConfigCluster.d.ts +98 -63
- package/dist/swpp/config/ConfigCluster.js +60 -48
- package/dist/swpp/config/ConfigLoader.d.ts +78 -0
- package/dist/swpp/config/ConfigLoader.js +180 -89
- package/dist/swpp/config/SpecialConfig.d.ts +29 -0
- package/dist/swpp/config/SpecialConfig.js +53 -0
- package/{types → dist}/swpp/database/CompilationEnv.d.ts +19 -16
- package/dist/swpp/database/CompilationEnv.js +41 -197
- package/dist/swpp/database/CompilationFileParser.d.ts +81 -0
- package/dist/swpp/database/CompilationFileParser.js +267 -0
- package/{types → dist}/swpp/database/CrossDepCode.d.ts +4 -0
- package/dist/swpp/database/CrossDepCode.js +27 -1
- package/dist/swpp/database/CrossEnv.js +19 -2
- package/{types → dist}/swpp/database/DomCode.d.ts +4 -1
- package/dist/swpp/database/DomCode.js +34 -5
- package/dist/swpp/database/KeyValueDatabase.d.ts +72 -0
- package/dist/swpp/database/KeyValueDatabase.js +122 -27
- package/{types → dist}/swpp/database/RuntimeCoreCode.d.ts +2 -1
- package/dist/swpp/database/RuntimeCoreCode.js +6 -5
- package/{types → dist}/swpp/database/RuntimeDepCode.d.ts +8 -14
- package/dist/swpp/database/RuntimeDepCode.js +30 -50
- package/{types → dist}/swpp/database/RuntimeEventCode.d.ts +4 -0
- package/dist/swpp/database/RuntimeEventCode.js +8 -1
- package/{types → dist}/swpp/database/RuntimeKeyValueDatabase.d.ts +1 -1
- package/dist/swpp/database/RuntimeKeyValueDatabase.js +2 -2
- package/dist/swpp/debug/CallChainRecorder.d.ts +5 -0
- package/dist/swpp/debug/CallChainRecorder.js +29 -0
- package/{types → dist}/swpp/untils.d.ts +25 -18
- package/dist/swpp/untils.js +47 -53
- package/package.json +2 -2
- package/types/DomBuilder.d.ts +0 -6
- package/types/FileAnalyzer.d.ts +0 -96
- package/types/ServiceWorkerBuilder.d.ts +0 -7
- package/types/SwppConfig.d.ts +0 -139
- package/types/SwppRules.d.ts +0 -117
- package/types/UpdateJsonBuilder.d.ts +0 -44
- package/types/Utils.d.ts +0 -43
- package/types/Variant.d.ts +0 -58
- package/types/VersionAnalyzer.d.ts +0 -27
- package/types/browser/ServiceWorkerRuntimeTypes.d.ts +0 -18
- package/types/swpp/RuntimeEnv.d.ts +0 -39
- package/types/swpp/SwCodeInject.d.ts +0 -17
- package/types/swpp/config/ConfigLoader.d.ts +0 -53
- package/types/swpp/database/KeyValueDatabase.d.ts +0 -53
- package/types/swpp/database/RuntimeEnv.d.ts +0 -5
- /package/{types → dist}/swpp/NetworkFileHandler.d.ts +0 -0
- /package/{types → dist}/swpp/database/CrossEnv.d.ts +0 -0
package/types/SwppConfig.d.ts
DELETED
|
@@ -1,139 +0,0 @@
|
|
|
1
|
-
/** Service Worker Plus Plus 的配置项 */
|
|
2
|
-
export interface SwppConfig {
|
|
3
|
-
serviceWorker?: ServiceWorkerConfig;
|
|
4
|
-
register?: RegisterConfig;
|
|
5
|
-
dom?: DomConfig;
|
|
6
|
-
json?: VersionJsonConfig;
|
|
7
|
-
external?: ExternalMonitorConfig;
|
|
8
|
-
}
|
|
9
|
-
/** 与 ServiceWorker 有关的配置 */
|
|
10
|
-
export interface ServiceWorkerConfig {
|
|
11
|
-
/** 逃生门 */
|
|
12
|
-
escape: number;
|
|
13
|
-
/** 缓存库名称 */
|
|
14
|
-
cacheName: string;
|
|
15
|
-
/** 是否启用调试 */
|
|
16
|
-
debug: boolean;
|
|
17
|
-
}
|
|
18
|
-
/** 与 ServiceWorker 注册有关的配置 */
|
|
19
|
-
export interface RegisterConfig {
|
|
20
|
-
/** 注册成功后执行的代码 */
|
|
21
|
-
onsuccess?: VoidFunction;
|
|
22
|
-
/** 注册失败后执行的代码 */
|
|
23
|
-
onerror: VoidFunction;
|
|
24
|
-
/**
|
|
25
|
-
* 生成注册 ServiceWorker 的 HTML 代码片段
|
|
26
|
-
* @param root 网页根目录的 URL
|
|
27
|
-
* @param framework 框架对象
|
|
28
|
-
* @param pluginConfig swpp 插件配置项
|
|
29
|
-
*/
|
|
30
|
-
builder: (root: string, framework: any, pluginConfig: SwppConfig) => string;
|
|
31
|
-
}
|
|
32
|
-
/** 与 DOM 端有关的配置 */
|
|
33
|
-
export interface DomConfig {
|
|
34
|
-
/** 缓存更新成功后触发的操作 */
|
|
35
|
-
onsuccess?: VoidFunction;
|
|
36
|
-
}
|
|
37
|
-
/** 与版本文件相关的配置项 */
|
|
38
|
-
export interface VersionJsonConfig {
|
|
39
|
-
/** 更新缓存时允许更新的最大 HTML 数量 */
|
|
40
|
-
maxHtml: number;
|
|
41
|
-
/** update.json 文件的字符数量限制 */
|
|
42
|
-
charLimit: number;
|
|
43
|
-
/** 是否合并指定项目 */
|
|
44
|
-
merge: string[];
|
|
45
|
-
/** 生成版本信息时忽略的文件 */
|
|
46
|
-
exclude: {
|
|
47
|
-
localhost: RegExp[];
|
|
48
|
-
other: RegExp[];
|
|
49
|
-
};
|
|
50
|
-
}
|
|
51
|
-
/** 外部文件更新监听 */
|
|
52
|
-
export interface ExternalMonitorConfig {
|
|
53
|
-
/** 拉取网络文件的超时时间 */
|
|
54
|
-
timeout: number;
|
|
55
|
-
/** 拉取文件时的并发限制 */
|
|
56
|
-
concurrencyLimit: number;
|
|
57
|
-
/** 匹配 JS 代码中的 URL */
|
|
58
|
-
js: ({
|
|
59
|
-
head: string;
|
|
60
|
-
tail: string;
|
|
61
|
-
} | ((jsCode: string) => string[]))[];
|
|
62
|
-
/** 链接不变内容就不变的 URL */
|
|
63
|
-
stable: RegExp[];
|
|
64
|
-
/** 构建过程中将原始 URL 映射为新的 URL */
|
|
65
|
-
replacer: (srcUrl: string) => string[] | string;
|
|
66
|
-
}
|
|
67
|
-
/** Service Worker Plus Plus 的配置项模板 */
|
|
68
|
-
export interface SwppConfigTemplate {
|
|
69
|
-
/** 有关 ServiceWorker 的配置 */
|
|
70
|
-
serviceWorker?: boolean | {
|
|
71
|
-
/** 逃生门 */
|
|
72
|
-
escape?: number;
|
|
73
|
-
/** 缓存库名称 */
|
|
74
|
-
cacheName?: string;
|
|
75
|
-
/** 是否启用调试 */
|
|
76
|
-
debug?: boolean;
|
|
77
|
-
};
|
|
78
|
-
/** 与 ServiceWorker 注册有关的配置 */
|
|
79
|
-
register?: boolean | {
|
|
80
|
-
/** 注册成功后执行的代码 */
|
|
81
|
-
onsuccess?: VoidFunction;
|
|
82
|
-
/** 注册失败后执行的代码 */
|
|
83
|
-
onerror?: VoidFunction;
|
|
84
|
-
/**
|
|
85
|
-
* 生成注册 ServiceWorker 的 HTML 代码片段
|
|
86
|
-
* @param root 网页根目录的 URL
|
|
87
|
-
* @param framework 框架对象
|
|
88
|
-
* @param pluginConfig swpp 插件配置项
|
|
89
|
-
*/
|
|
90
|
-
builder?: ((root: string, framework: any, pluginConfig: SwppConfig) => string) | undefined;
|
|
91
|
-
};
|
|
92
|
-
/** 与 DOM 端有关的配置 */
|
|
93
|
-
dom?: boolean | {
|
|
94
|
-
/** 缓存更新成功后触发的操作 */
|
|
95
|
-
onsuccess?: VoidFunction;
|
|
96
|
-
};
|
|
97
|
-
/** 与版本文件相关的配置项 */
|
|
98
|
-
json?: boolean | {
|
|
99
|
-
/** 更新缓存时允许更新的最大 HTML 数量 */
|
|
100
|
-
maxHtml?: number;
|
|
101
|
-
/** update.json 文件的字符数量限制 */
|
|
102
|
-
charLimit?: number;
|
|
103
|
-
/** 是否合并指定项目 */
|
|
104
|
-
merge?: string[];
|
|
105
|
-
/** 生成版本信息时忽略的文件 */
|
|
106
|
-
exclude?: {
|
|
107
|
-
/** 当前网站的 URL */
|
|
108
|
-
localhost?: RegExp[];
|
|
109
|
-
/** 其它网站的 URL */
|
|
110
|
-
other?: RegExp[];
|
|
111
|
-
};
|
|
112
|
-
};
|
|
113
|
-
/** 外部文件更新监听 */
|
|
114
|
-
external?: boolean | {
|
|
115
|
-
/** 拉取网络文件的超时时间 */
|
|
116
|
-
timeout?: number;
|
|
117
|
-
/** 拉取文件时的并发限制 */
|
|
118
|
-
concurrencyLimit: number;
|
|
119
|
-
/** 匹配 JS 代码中的 URL */
|
|
120
|
-
js?: ({
|
|
121
|
-
head: string;
|
|
122
|
-
tail: string;
|
|
123
|
-
} | ((jsCode: string) => string[]))[];
|
|
124
|
-
/** 链接不变内容就不变的 URL */
|
|
125
|
-
stable?: RegExp[];
|
|
126
|
-
/** 构建过程中将原始 URL 映射为新的 URL */
|
|
127
|
-
replacer?: (srcUrl: string) => string[] | string;
|
|
128
|
-
};
|
|
129
|
-
}
|
|
130
|
-
/** 文件拉取模式等级 */
|
|
131
|
-
export declare enum FileFetchModeLevel {
|
|
132
|
-
/** 严格,不允许 404 */
|
|
133
|
-
STRICT = 0,
|
|
134
|
-
/** 普通,允许 404,但仅允许服务器返回 404 状态码 */
|
|
135
|
-
NORMAL = 1,
|
|
136
|
-
/** 宽松,允许任何形式的 404,包括服务器返回 404、DNS 解析失败等 */
|
|
137
|
-
LOOSE = 2
|
|
138
|
-
}
|
|
139
|
-
export declare const defConfig: SwppConfig;
|
package/types/SwppRules.d.ts
DELETED
|
@@ -1,117 +0,0 @@
|
|
|
1
|
-
import { Request, Response } from 'node-fetch';
|
|
2
|
-
import { SwppConfig } from './SwppConfig';
|
|
3
|
-
/**
|
|
4
|
-
* 加载 rules 文件
|
|
5
|
-
* @param root 项目根目录
|
|
6
|
-
* @param fileName rules 文件名称
|
|
7
|
-
* @param selects 附加的可选目录,优先级低于 [root]
|
|
8
|
-
*/
|
|
9
|
-
export declare function loadRules(root: string, fileName: string, selects: string[]): SwppRules;
|
|
10
|
-
/**
|
|
11
|
-
* 添加一个 rules 映射事件,这个事件允许用户修改 rules 的内容
|
|
12
|
-
*
|
|
13
|
-
* 执行时按照注册的顺序执行
|
|
14
|
-
*/
|
|
15
|
-
export declare function addRulesMapEvent(mapper: (rules: any) => void): void;
|
|
16
|
-
export interface SwppRules {
|
|
17
|
-
/** 配置项 */
|
|
18
|
-
config: SwppConfig;
|
|
19
|
-
/** 缓存规则 */
|
|
20
|
-
cacheRules?: {
|
|
21
|
-
[propName: string]: CacheRules;
|
|
22
|
-
};
|
|
23
|
-
/**
|
|
24
|
-
* 判断指定请求是否使用 CORS(必须启用 CORS 的请求将不通过该函数判断)
|
|
25
|
-
* @param request 当前请求的 request
|
|
26
|
-
*/
|
|
27
|
-
isCors?: (request: Request) => boolean;
|
|
28
|
-
/**
|
|
29
|
-
* 判断指定请求的是否启用内存队列(即请求合并)
|
|
30
|
-
*
|
|
31
|
-
* 当返回 true 时,SW 会将该请求放置到队列中,如果队列中已有 URL 相同的请求,
|
|
32
|
-
* 则不会发起新的网络请求,而是等待上一个请求结束后直接使用上一个请求的结果。
|
|
33
|
-
*
|
|
34
|
-
* @param request 当前请求的 request
|
|
35
|
-
*/
|
|
36
|
-
isMemoryQueue?: (request: Request) => boolean;
|
|
37
|
-
/**
|
|
38
|
-
* 修改 Request
|
|
39
|
-
* @param request 原始 request
|
|
40
|
-
* @param $eject 用于访问通过 [ejectValues] 函数插入的变量,变量名必须为 `$eject`
|
|
41
|
-
* @return 修改后的 Request,不修改的话返回 null 或不返回数据
|
|
42
|
-
*/
|
|
43
|
-
modifyRequest?: (request: Request, $eject: any) => Request | undefined;
|
|
44
|
-
/**
|
|
45
|
-
* 判断是否跳过处理指定的请求,返回 true 后将完全不对该请求进行任何处理
|
|
46
|
-
*
|
|
47
|
-
* 该方法会在 modifyRequest 执行后触发
|
|
48
|
-
*/
|
|
49
|
-
skipRequest?: (request: Request) => boolean;
|
|
50
|
-
/**
|
|
51
|
-
* 获取一个 URL 对应的多个 CDN 的 URL
|
|
52
|
-
*
|
|
53
|
-
* 竞速时除了 URL 外所有参数保持一致
|
|
54
|
-
*
|
|
55
|
-
* @param url 原始 URL
|
|
56
|
-
* @return {?string[]} 返回值不包含则表示去除对原始 URL 地访问。返回 undefined 表示该 URL 不启用竞速
|
|
57
|
-
*/
|
|
58
|
-
getRaceUrls?: (url: string) => string[] | undefined;
|
|
59
|
-
/**
|
|
60
|
-
* 获取一个 URL 对应的 URL 列表
|
|
61
|
-
*
|
|
62
|
-
* 访问顺序按列表顺序,所有 URL 访问时参数一致
|
|
63
|
-
*
|
|
64
|
-
* @param url 原始 URL
|
|
65
|
-
* @return {?SpareURLs} 返回 null 或不反悔表示对该 URL 不启用备用 URL 功能
|
|
66
|
-
*/
|
|
67
|
-
getSpareUrls?: (url: string) => SpareURLs | undefined;
|
|
68
|
-
/**
|
|
69
|
-
* 判断是否阻塞指定响应
|
|
70
|
-
* @return {boolean} 返回 true 表示阻塞,false 表示不阻塞
|
|
71
|
-
*/
|
|
72
|
-
blockRequest?: (url: URL) => boolean;
|
|
73
|
-
/** 插入到 sw 但不在 node 中执行的代码 */
|
|
74
|
-
afterJoin?: VoidFunction;
|
|
75
|
-
/** 插入到 sw 但不在 node 中执行的代码,框架主题禁止覆盖该项 */
|
|
76
|
-
afterTheme?: VoidFunction;
|
|
77
|
-
/** 获取要插入到 sw 中的变量和常量 */
|
|
78
|
-
ejectValues?: (framework: any, rules: SwppRules) => {
|
|
79
|
-
[propName: string]: EjectValue;
|
|
80
|
-
};
|
|
81
|
-
/** 允许插入到 sw 的值 */
|
|
82
|
-
external?: string[];
|
|
83
|
-
/**
|
|
84
|
-
* 向指定的 request 发起网络请求(GET)
|
|
85
|
-
*
|
|
86
|
-
* **注意:声明该项后 swpp 内置的“CDN 竞速”“备用 URL”都将失效**
|
|
87
|
-
*
|
|
88
|
-
* @param request 请求信息
|
|
89
|
-
* @param banCache 是否禁用缓存
|
|
90
|
-
* @param urls 备用 URL 或 URL 竞速的 URL 列表,为空表示需要手动获取
|
|
91
|
-
*/
|
|
92
|
-
fetchFile?: (request: Request, banCache: boolean, urls?: SpareURLs | string[]) => Promise<Response>;
|
|
93
|
-
/** 第三方添加的值 */
|
|
94
|
-
[propName: string]: any;
|
|
95
|
-
}
|
|
96
|
-
export interface CacheRules {
|
|
97
|
-
/** 符合该规则的缓存在进行全局清理时是否清除 */
|
|
98
|
-
clean: boolean;
|
|
99
|
-
/** 是否检查 URL 参数(问号及问号之后的内容) */
|
|
100
|
-
search?: boolean;
|
|
101
|
-
/**
|
|
102
|
-
* 规则匹配器
|
|
103
|
-
* @param url 链接的 URL 对象(对象包括 hash 和 search,但禁止使用 hash,search 为 false 或留空时禁止使用 search)
|
|
104
|
-
* @param $eject 用于访问通过 [ejectValues] 函数插入的变量,变量名必须为 `$eject`
|
|
105
|
-
*/
|
|
106
|
-
match: (url: URL, $eject?: any) => boolean;
|
|
107
|
-
}
|
|
108
|
-
export interface SpareURLs {
|
|
109
|
-
/** 超时时间 */
|
|
110
|
-
timeout: number;
|
|
111
|
-
/** URL 列表 */
|
|
112
|
-
list: string[];
|
|
113
|
-
}
|
|
114
|
-
export interface EjectValue {
|
|
115
|
-
prefix: string;
|
|
116
|
-
value: string | number | boolean | bigint | object | string[] | number[] | boolean[] | bigint[] | object[];
|
|
117
|
-
}
|
|
@@ -1,44 +0,0 @@
|
|
|
1
|
-
import { FileFetchModeLevel } from './SwppConfig';
|
|
2
|
-
import { AnalyzeResult } from './VersionAnalyzer';
|
|
3
|
-
/**
|
|
4
|
-
* 构建新的 update json
|
|
5
|
-
*
|
|
6
|
-
* + **执行该函数前必须调用过 [loadRules]**
|
|
7
|
-
* + **调用该函数前必须调用过 [loadCacheJson]**
|
|
8
|
-
* + **执行该函数前必须调用过 [buildVersionJson]**
|
|
9
|
-
* + **执行该函数前必须调用过 [calcEjectValues]**
|
|
10
|
-
*
|
|
11
|
-
* @param root 网站根路径(包括网络协议)
|
|
12
|
-
* @param dif 网站文件变化
|
|
13
|
-
*/
|
|
14
|
-
export declare function buildUpdateJson(root: string, dif?: AnalyzeResult): UpdateJson;
|
|
15
|
-
/** 提交修改 */
|
|
16
|
-
export declare function submitChange(...change: ChangeExpression[]): void;
|
|
17
|
-
/**
|
|
18
|
-
* 加载版本文件
|
|
19
|
-
*
|
|
20
|
-
* + **调用该函数前必须调用过 [loadRules]**
|
|
21
|
-
*/
|
|
22
|
-
export declare function loadUpdateJson(url: string, level?: FileFetchModeLevel): Promise<UpdateJson | null>;
|
|
23
|
-
/**
|
|
24
|
-
* 获取 URL 的缩写形式
|
|
25
|
-
*
|
|
26
|
-
* + **执行该函数前必须调用过 [loadRules]**
|
|
27
|
-
* + **调用该函数前必须调用过 [loadCacheJson]**
|
|
28
|
-
* + **执行该函数前必须调用过 [buildVersionJson]**
|
|
29
|
-
* + **执行该函数前必须调用过 [calcEjectValues]**
|
|
30
|
-
*/
|
|
31
|
-
export declare function getShorthand(url: string, offset?: number): string;
|
|
32
|
-
export interface UpdateJson {
|
|
33
|
-
global: number;
|
|
34
|
-
info: UpdateVersionInfo[];
|
|
35
|
-
}
|
|
36
|
-
export interface UpdateVersionInfo {
|
|
37
|
-
version: number;
|
|
38
|
-
change?: ChangeExpression[];
|
|
39
|
-
}
|
|
40
|
-
export interface ChangeExpression {
|
|
41
|
-
flag: FlagStr;
|
|
42
|
-
value?: string | string[];
|
|
43
|
-
}
|
|
44
|
-
export type FlagStr = 'html' | 'end' | 'begin' | 'str' | 'reg';
|
package/types/Utils.d.ts
DELETED
|
@@ -1,43 +0,0 @@
|
|
|
1
|
-
export declare function error(type: string, message: string): void;
|
|
2
|
-
export declare function warn(type: string, message: string): void;
|
|
3
|
-
export interface EjectCache {
|
|
4
|
-
strValue: string;
|
|
5
|
-
nodeEject: any;
|
|
6
|
-
}
|
|
7
|
-
/**
|
|
8
|
-
* 获取 eject values
|
|
9
|
-
*
|
|
10
|
-
* + **执行该函数前必须调用过 [loadRules]**
|
|
11
|
-
*
|
|
12
|
-
* @param framework 框架对象
|
|
13
|
-
*/
|
|
14
|
-
export declare function calcEjectValues(framework: any): void;
|
|
15
|
-
/**
|
|
16
|
-
* 读取最近的已计算的 eject 数据
|
|
17
|
-
*
|
|
18
|
-
* + **执行该函数前必须调用过 [loadRules]**
|
|
19
|
-
* + **执行该函数前必须调用过 [calcEjectValues]**
|
|
20
|
-
*/
|
|
21
|
-
export declare function readEjectData(): EjectCache | null;
|
|
22
|
-
/**
|
|
23
|
-
* 获取指定值的 js 源码表达形式
|
|
24
|
-
* @param obj 要转换的对象
|
|
25
|
-
* @param typeChecker 类型检查器,用于筛除不希望映射的类型
|
|
26
|
-
* @param whiteList 白名单,当 obj 为 Object 时将只转换在白名单中的值(不会传递)
|
|
27
|
-
* @param isTop 是否为顶层元素,为 true 且 obj 为 Object 时将去除最外层的大括号,改为 let(不会传递)
|
|
28
|
-
*/
|
|
29
|
-
export declare function getSource(obj: any, typeChecker?: ((name: string) => boolean) | undefined, whiteList?: string[] | undefined, isTop?: boolean): string;
|
|
30
|
-
/**
|
|
31
|
-
* 拉取文件
|
|
32
|
-
*
|
|
33
|
-
* **调用该函数前必须调用过 [loadRules]**
|
|
34
|
-
*/
|
|
35
|
-
export declare function fetchFile(link: string): Promise<Response>;
|
|
36
|
-
/**
|
|
37
|
-
* 替换编译期的 URL(CDN 竞速)
|
|
38
|
-
*
|
|
39
|
-
* **调用该函数前必须调用过 [loadRules]**
|
|
40
|
-
*/
|
|
41
|
-
export declare function replaceDevRequest(link: string): string[] | string;
|
|
42
|
-
/** 深度冻结一个对象,这将使得无法修改对象中的任何值,也无法添加新的值 */
|
|
43
|
-
export declare function deepFreeze<T>(obj: T): T;
|
package/types/Variant.d.ts
DELETED
|
@@ -1,58 +0,0 @@
|
|
|
1
|
-
import { VersionJson, VersionMap } from './FileAnalyzer';
|
|
2
|
-
import { SwppRules } from './SwppRules';
|
|
3
|
-
import { UpdateJson } from './UpdateJsonBuilder';
|
|
4
|
-
import { AnalyzeResult } from './VersionAnalyzer';
|
|
5
|
-
/** 创建一个变量 */
|
|
6
|
-
export declare function writeVariant<T>(key: string, value: T): T;
|
|
7
|
-
/** 读取一个变量 */
|
|
8
|
-
export declare function readVariant(key: string): any;
|
|
9
|
-
/** 移除一个变量 */
|
|
10
|
-
export declare function deleteVariant(key: string): void;
|
|
11
|
-
/**
|
|
12
|
-
* 读取最后一次构建的 rules
|
|
13
|
-
*
|
|
14
|
-
* **执行该函数前必须调用过 [loadRules]**
|
|
15
|
-
*/
|
|
16
|
-
export declare function readRules(): SwppRules;
|
|
17
|
-
/**
|
|
18
|
-
* 读取最后一次加载的 version json
|
|
19
|
-
*
|
|
20
|
-
* + **执行该函数前必须调用过 [loadRules]**
|
|
21
|
-
* + **调用该函数前必须调用过 [loadCacheJson]**
|
|
22
|
-
*/
|
|
23
|
-
export declare function readOldVersionJson(): VersionJson | null;
|
|
24
|
-
/**
|
|
25
|
-
* 读取最后一次构建的 VersionJson
|
|
26
|
-
*
|
|
27
|
-
* + **执行该函数前必须调用过 [loadRules]**
|
|
28
|
-
* + **调用该函数前必须调用过 [loadCacheJson]**
|
|
29
|
-
* + **执行该函数前必须调用过 [buildVersionJson]**
|
|
30
|
-
* + **执行该函数前必须调用过 [calcEjectValues]**
|
|
31
|
-
*/
|
|
32
|
-
export declare function readNewVersionJson(): VersionJson;
|
|
33
|
-
/**
|
|
34
|
-
* 读取新旧版本文件合并后的版本地图
|
|
35
|
-
*
|
|
36
|
-
* + **执行该函数前必须调用过 [loadRules]**
|
|
37
|
-
* + **调用该函数前必须调用过 [loadCacheJson]**
|
|
38
|
-
* + **执行该函数前必须调用过 [buildVersionJson]**
|
|
39
|
-
* + **执行该函数前必须调用过 [calcEjectValues]**
|
|
40
|
-
*/
|
|
41
|
-
export declare function readMergeVersionMap(): VersionMap;
|
|
42
|
-
/**
|
|
43
|
-
* 读取最后一次加载的版本文件
|
|
44
|
-
*
|
|
45
|
-
* + **调用该函数前必须调用过 [loadRules]**
|
|
46
|
-
* + **调用该函数前必须调用过 [loadUpdateJson]**
|
|
47
|
-
*/
|
|
48
|
-
export declare function readUpdateJson(): UpdateJson | null;
|
|
49
|
-
/**
|
|
50
|
-
* 读取分析结果
|
|
51
|
-
*
|
|
52
|
-
* + **执行该函数前必须调用过 [loadRules]**
|
|
53
|
-
* + **调用该函数前必须调用过 [loadCacheJson]**
|
|
54
|
-
* + **调用该函数前必须调用过 [analyze]**
|
|
55
|
-
*/
|
|
56
|
-
export declare function readAnalyzeResult(): AnalyzeResult;
|
|
57
|
-
/** 读取一个事件 */
|
|
58
|
-
export declare function readEvent<T>(key: string): T;
|
|
@@ -1,27 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* 分析两个版本信息的不同
|
|
3
|
-
*
|
|
4
|
-
* + **执行该函数前必须调用过 [loadRules]**
|
|
5
|
-
* + **调用该函数前必须调用过 [loadCacheJson]**
|
|
6
|
-
* + **调用该函数前必须调用过 [buildVersionJson]**
|
|
7
|
-
*/
|
|
8
|
-
export declare function analyzeVersion(): AnalyzeResult;
|
|
9
|
-
/** 手动添加一个要刷新的 URL */
|
|
10
|
-
export declare function refreshUrl(url: string): void;
|
|
11
|
-
export interface AnalyzeResult {
|
|
12
|
-
/** 是否强制刷新所有缓存 */
|
|
13
|
-
force: boolean;
|
|
14
|
-
/** 被删除的 URL */
|
|
15
|
-
deleted: string[];
|
|
16
|
-
/** 内容变化的 URL */
|
|
17
|
-
variational: string[];
|
|
18
|
-
/** 手动刷新的 URL */
|
|
19
|
-
refresh: string[];
|
|
20
|
-
/** 因 stable 规则变化导致数据变动的 URL */
|
|
21
|
-
rules: {
|
|
22
|
-
/** 新规则将其识别为 stable */
|
|
23
|
-
add: string[];
|
|
24
|
-
/** 新规则将其识别为非 stable */
|
|
25
|
-
remove: string[];
|
|
26
|
-
};
|
|
27
|
-
}
|
|
@@ -1,18 +0,0 @@
|
|
|
1
|
-
interface BrowserVersion {
|
|
2
|
-
/** 逃生门版本号 */
|
|
3
|
-
escape: number;
|
|
4
|
-
/** 静态版本号 */
|
|
5
|
-
global: number;
|
|
6
|
-
/** 动态版本号 */
|
|
7
|
-
local: number;
|
|
8
|
-
/** 时间戳 */
|
|
9
|
-
tp?: number;
|
|
10
|
-
}
|
|
11
|
-
interface UpdateInfo {
|
|
12
|
-
/** 新的版本号 */
|
|
13
|
-
new: BrowserVersion;
|
|
14
|
-
/** 旧的版本号 */
|
|
15
|
-
old?: BrowserVersion;
|
|
16
|
-
/** 刷新的 URL 列表 */
|
|
17
|
-
list?: string[];
|
|
18
|
-
}
|
|
@@ -1,39 +0,0 @@
|
|
|
1
|
-
export declare const runtimeEnv: {
|
|
2
|
-
/**
|
|
3
|
-
* 读取环境变量的值
|
|
4
|
-
* @throws RuntimeEnvException
|
|
5
|
-
*/
|
|
6
|
-
read(key: string): any;
|
|
7
|
-
/**
|
|
8
|
-
* 设置环境变量的值
|
|
9
|
-
* @throws RuntimeEnvException
|
|
10
|
-
*/
|
|
11
|
-
update(key: string, valueGetter: () => any): void;
|
|
12
|
-
/**
|
|
13
|
-
* 追加环境变量
|
|
14
|
-
* @throws RuntimeEnvException
|
|
15
|
-
*/
|
|
16
|
-
append<T>(key: string, env: RuntimeEnvValue<T>): void;
|
|
17
|
-
/** 获取所有键值对 */
|
|
18
|
-
entries(): {
|
|
19
|
-
[p: string]: any;
|
|
20
|
-
};
|
|
21
|
-
};
|
|
22
|
-
/** 运行时环境变量包含非法值时的警告 */
|
|
23
|
-
export interface RuntimeEnvException<T> {
|
|
24
|
-
/** 环境变量名 */
|
|
25
|
-
key: string;
|
|
26
|
-
/** 用户填写的值 */
|
|
27
|
-
value: T;
|
|
28
|
-
/** 错误提示 */
|
|
29
|
-
message: string;
|
|
30
|
-
}
|
|
31
|
-
export type RuntimeEnvErrorTemplate<T> = Omit<RuntimeEnvException<T>, 'key'>;
|
|
32
|
-
export interface RuntimeEnvValue<T> {
|
|
33
|
-
/** 缺省值 */
|
|
34
|
-
default: T;
|
|
35
|
-
/** 用户填入的值 */
|
|
36
|
-
getter?: () => T;
|
|
37
|
-
/** 检查器,返回 false 表示无错误 */
|
|
38
|
-
checker?: (value: T) => false | RuntimeEnvErrorTemplate<T>;
|
|
39
|
-
}
|
|
@@ -1,17 +0,0 @@
|
|
|
1
|
-
export declare class SwCodeInject {
|
|
2
|
-
private list;
|
|
3
|
-
/** 在指定位置前插入代码 */
|
|
4
|
-
injectBefore(key: InjectKey, code: () => void): void;
|
|
5
|
-
/** 在指定位置之后插入代码 */
|
|
6
|
-
injectAfter(key: InjectKey, code: () => void): void;
|
|
7
|
-
/**
|
|
8
|
-
* 处理代码
|
|
9
|
-
* @throws RuntimeException 若存在非法的 inject key / {code: 'invalid_inject_key'}
|
|
10
|
-
* @throws RuntimeException 若存在重复的 inject key / {code: 'repeat_inject_key'}
|
|
11
|
-
*/
|
|
12
|
-
handleCode(swCode: string): string;
|
|
13
|
-
/** 遍历所有元素 */
|
|
14
|
-
forEach(consumer: (key: InjectKey, pos: 'before' | 'after', code: string) => void): void;
|
|
15
|
-
}
|
|
16
|
-
export type InjectKey = 'var' | 'no_deps_fun';
|
|
17
|
-
export declare function isInjectKey(value: string): value is InjectKey;
|
|
@@ -1,53 +0,0 @@
|
|
|
1
|
-
import { CompilationData, RuntimeData } from '../SwCompiler';
|
|
2
|
-
import { IndivisibleConfig } from './ConfigCluster';
|
|
3
|
-
export declare const IndivisibleName = "1indivisible__";
|
|
4
|
-
export declare class ConfigLoader {
|
|
5
|
-
/** 支持的拓展名列表 */
|
|
6
|
-
private static readonly extensions;
|
|
7
|
-
private static jiti;
|
|
8
|
-
private config;
|
|
9
|
-
private modifierList;
|
|
10
|
-
private isBuilt;
|
|
11
|
-
/**
|
|
12
|
-
* 加载一个配置文件,越早加载的优先级越高
|
|
13
|
-
* @param file
|
|
14
|
-
*/
|
|
15
|
-
load(file: string): Promise<void>;
|
|
16
|
-
/** 将配置项的内容写入到环境中 */
|
|
17
|
-
generate(): Readonly<{
|
|
18
|
-
runtime: RuntimeData;
|
|
19
|
-
compilation: CompilationData;
|
|
20
|
-
}>;
|
|
21
|
-
/** 将新配置合并到已有配置中 */
|
|
22
|
-
private mergeConfig;
|
|
23
|
-
}
|
|
24
|
-
/**
|
|
25
|
-
* 配置编辑器
|
|
26
|
-
*/
|
|
27
|
-
export interface SwppConfigModifier {
|
|
28
|
-
/**
|
|
29
|
-
* 自定义运行时和编译期的属性表
|
|
30
|
-
*
|
|
31
|
-
* 优先级越高越优先生效
|
|
32
|
-
*/
|
|
33
|
-
build?: () => {
|
|
34
|
-
runtime: IndivisibleConfig<RuntimeData>;
|
|
35
|
-
compilation: IndivisibleConfig<CompilationData>;
|
|
36
|
-
};
|
|
37
|
-
/**
|
|
38
|
-
* 本函数用于向系统注册新的属性。
|
|
39
|
-
*
|
|
40
|
-
* 该函数内应当只调用 xxx.append 函数及其它工具函数,非必要不应当包含其它有副作用的操作。
|
|
41
|
-
*
|
|
42
|
-
* 优先级越低该函数越早执行。
|
|
43
|
-
*/
|
|
44
|
-
registry?: (runtime: RuntimeData, compilation: CompilationData) => void;
|
|
45
|
-
/**
|
|
46
|
-
* 本函数用于动态修改属性的值。
|
|
47
|
-
*
|
|
48
|
-
* 该函数内应当只调用 xxx.update 函数及其它工具函数,非必要不应当包含其它有副作用的操作。
|
|
49
|
-
*
|
|
50
|
-
* 优先级越低该函数越早执行
|
|
51
|
-
*/
|
|
52
|
-
dynamic?: (runtime: RuntimeData, compilation: CompilationData) => void;
|
|
53
|
-
}
|
|
@@ -1,53 +0,0 @@
|
|
|
1
|
-
/** 键值对存储器 */
|
|
2
|
-
export declare class KeyValueDatabase<T, C extends Record<string, DatabaseValue<T>>> {
|
|
3
|
-
private runtimeEnvMap;
|
|
4
|
-
constructor(map?: C);
|
|
5
|
-
/** 延迟初始化 */
|
|
6
|
-
protected lazyInit(map: C): void;
|
|
7
|
-
/**
|
|
8
|
-
* 读取指定键对应的值
|
|
9
|
-
* @throws RuntimeEnvException
|
|
10
|
-
*/
|
|
11
|
-
read<K extends keyof C | string>(key: K): K extends keyof C ? C[K]['default'] : T;
|
|
12
|
-
/**
|
|
13
|
-
* 设置指定键对应的值
|
|
14
|
-
* @throws RuntimeEnvException
|
|
15
|
-
*/
|
|
16
|
-
update<K extends keyof C | string>(key: K, valueGetter: () => T): void;
|
|
17
|
-
/**
|
|
18
|
-
* 追加键值对
|
|
19
|
-
* @throws RuntimeEnvException
|
|
20
|
-
*/
|
|
21
|
-
append(key: string, env: DatabaseValue<T>): void;
|
|
22
|
-
/** 判断是否存在指定的环境变量 */
|
|
23
|
-
hasKey<K extends keyof C | string>(key: K): (K extends keyof C ? true : boolean);
|
|
24
|
-
/** 判断指定键对应的环境变量是否存在用户设置的值 */
|
|
25
|
-
hasValue<K extends keyof C | string>(key: K): boolean;
|
|
26
|
-
/** 获取所有键值对 */
|
|
27
|
-
entries(): {
|
|
28
|
-
[p: string]: T;
|
|
29
|
-
};
|
|
30
|
-
}
|
|
31
|
-
/**
|
|
32
|
-
* 为优化 IDE 的类型推断提供的函数,直接返回传入的值
|
|
33
|
-
* @param env
|
|
34
|
-
*/
|
|
35
|
-
export declare function buildEnv<T>(env: DatabaseValue<T>): DatabaseValue<T>;
|
|
36
|
-
export interface DatabaseValue<T> {
|
|
37
|
-
/** 缺省值 */
|
|
38
|
-
default: T;
|
|
39
|
-
/** 用户填入的值 */
|
|
40
|
-
getter?: () => T;
|
|
41
|
-
/** 检查器,返回 false 表示无错误 */
|
|
42
|
-
checker?: (value: T) => false | RuntimeEnvErrorTemplate<T>;
|
|
43
|
-
}
|
|
44
|
-
/** 运行时环境变量包含非法值时的警告 */
|
|
45
|
-
export interface RuntimeEnvException<T> {
|
|
46
|
-
/** 环境变量名 */
|
|
47
|
-
key: string;
|
|
48
|
-
/** 用户填写的值 */
|
|
49
|
-
value: T;
|
|
50
|
-
/** 错误提示 */
|
|
51
|
-
message: string;
|
|
52
|
-
}
|
|
53
|
-
export type RuntimeEnvErrorTemplate<T> = Omit<RuntimeEnvException<T>, 'key'>;
|
|
File without changes
|
|
File without changes
|