dsh-session-guard 3.2.5 → 4.0.1
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/CHANGELOG.ja.md +159 -143
- package/CHANGELOG.ko.md +159 -143
- package/CHANGELOG.md +232 -216
- package/INSTALL.ja.md +5 -0
- package/INSTALL.ko.md +5 -0
- package/INSTALL.md +5 -0
- package/INSTALL.zh.md +5 -0
- package/LICENSE +21 -21
- package/README.de.md +375 -0
- package/README.en.md +16 -1
- package/README.es.md +374 -0
- package/README.fr.md +373 -0
- package/README.it.md +374 -0
- package/README.ja.md +16 -1
- package/README.ko.md +16 -1
- package/README.md +30 -6
- package/README.ru.md +374 -0
- package/cordis.patch.yml +10 -10
- package/dsh.plugin.json +16 -16
- package/lib/client.js +0 -345
- package/lib/client.js.map +1 -1
- package/package.json +8 -10
- package/src/bridge.js +136 -136
- package/src/client/index.ts +156 -168
- package/src/client/locales.ts +1 -199
- package/src/client/pause-button-text.ts +60 -60
- package/src/client/pause-button.tsx +129 -129
- package/src/client/scope-face.ts +20 -20
- package/src/client/settings-card.tsx +391 -391
- package/src/client/styles.ts +30 -30
- package/src/detect.js +27 -27
- package/src/gate.js +93 -93
- package/src/pause-gate.js +544 -544
- package/src/pause-store.js +101 -101
- package/src/retry.js +227 -227
- package/src/scheduler.js +42 -42
- package/src/step-gate.js +399 -399
- package/src/store.js +77 -77
- package/src/wiring.js +305 -305
- package/locale/de.json +0 -6
- package/locale/en.json +0 -6
- package/locale/es.json +0 -6
- package/locale/fr.json +0 -6
- package/locale/it.json +0 -6
- package/locale/ja.json +0 -6
- package/locale/ko.json +0 -6
- package/locale/ru.json +0 -6
- package/locale/zh.json +0 -6
- package/src/client/shims.d.ts +0 -21
package/src/scheduler.js
CHANGED
|
@@ -1,42 +1,42 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* dsh-session-guard — 纯状态机(可单测,零依赖)。
|
|
3
|
-
*
|
|
4
|
-
* 状态:NORMAL ↔ PAUSED_PEAK。
|
|
5
|
-
* 副作用(暂停/恢复具体会话)由 host 的 tick 执行,这里只做判定与迁移检测。
|
|
6
|
-
*/
|
|
7
|
-
import { shouldPause } from './time.js'
|
|
8
|
-
|
|
9
|
-
export const STATES = {
|
|
10
|
-
NORMAL: 'NORMAL',
|
|
11
|
-
PAUSED_PEAK: 'PAUSED_PEAK',
|
|
12
|
-
}
|
|
13
|
-
|
|
14
|
-
/**
|
|
15
|
-
* 计算当前状态。
|
|
16
|
-
* @param {object} settings 同 time.shouldPause 的 settings
|
|
17
|
-
* @param {Date|number} now
|
|
18
|
-
* @returns {{state:string, reason:string, at:number}}
|
|
19
|
-
*/
|
|
20
|
-
export function computeState(settings, now) {
|
|
21
|
-
const date = now instanceof Date ? now : new Date(now)
|
|
22
|
-
const d = shouldPause(settings, date)
|
|
23
|
-
return {
|
|
24
|
-
state: d.pause ? STATES.PAUSED_PEAK : STATES.NORMAL,
|
|
25
|
-
reason: d.reason,
|
|
26
|
-
at: date.getTime(),
|
|
27
|
-
}
|
|
28
|
-
}
|
|
29
|
-
|
|
30
|
-
/**
|
|
31
|
-
* 迁移检测:从 prev 到 next 是否发生了 入峰(enter) / 退峰(leave)。
|
|
32
|
-
* @param {{state:string}|null} prev
|
|
33
|
-
* @param {{state:string}} next
|
|
34
|
-
* @returns {{enter:boolean, leave:boolean}}
|
|
35
|
-
*/
|
|
36
|
-
export function transition(prev, next) {
|
|
37
|
-
const was = prev && prev.state
|
|
38
|
-
return {
|
|
39
|
-
enter: next.state === STATES.PAUSED_PEAK && was !== STATES.PAUSED_PEAK,
|
|
40
|
-
leave: was === STATES.PAUSED_PEAK && next.state !== STATES.PAUSED_PEAK,
|
|
41
|
-
}
|
|
42
|
-
}
|
|
1
|
+
/**
|
|
2
|
+
* dsh-session-guard — 纯状态机(可单测,零依赖)。
|
|
3
|
+
*
|
|
4
|
+
* 状态:NORMAL ↔ PAUSED_PEAK。
|
|
5
|
+
* 副作用(暂停/恢复具体会话)由 host 的 tick 执行,这里只做判定与迁移检测。
|
|
6
|
+
*/
|
|
7
|
+
import { shouldPause } from './time.js'
|
|
8
|
+
|
|
9
|
+
export const STATES = {
|
|
10
|
+
NORMAL: 'NORMAL',
|
|
11
|
+
PAUSED_PEAK: 'PAUSED_PEAK',
|
|
12
|
+
}
|
|
13
|
+
|
|
14
|
+
/**
|
|
15
|
+
* 计算当前状态。
|
|
16
|
+
* @param {object} settings 同 time.shouldPause 的 settings
|
|
17
|
+
* @param {Date|number} now
|
|
18
|
+
* @returns {{state:string, reason:string, at:number}}
|
|
19
|
+
*/
|
|
20
|
+
export function computeState(settings, now) {
|
|
21
|
+
const date = now instanceof Date ? now : new Date(now)
|
|
22
|
+
const d = shouldPause(settings, date)
|
|
23
|
+
return {
|
|
24
|
+
state: d.pause ? STATES.PAUSED_PEAK : STATES.NORMAL,
|
|
25
|
+
reason: d.reason,
|
|
26
|
+
at: date.getTime(),
|
|
27
|
+
}
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
/**
|
|
31
|
+
* 迁移检测:从 prev 到 next 是否发生了 入峰(enter) / 退峰(leave)。
|
|
32
|
+
* @param {{state:string}|null} prev
|
|
33
|
+
* @param {{state:string}} next
|
|
34
|
+
* @returns {{enter:boolean, leave:boolean}}
|
|
35
|
+
*/
|
|
36
|
+
export function transition(prev, next) {
|
|
37
|
+
const was = prev && prev.state
|
|
38
|
+
return {
|
|
39
|
+
enter: next.state === STATES.PAUSED_PEAK && was !== STATES.PAUSED_PEAK,
|
|
40
|
+
leave: was === STATES.PAUSED_PEAK && next.state !== STATES.PAUSED_PEAK,
|
|
41
|
+
}
|
|
42
|
+
}
|