@geoly-ai/social-hub-core 0.0.6 → 0.0.7
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/activity.d.ts +18 -2
- package/dist/activity.d.ts.map +1 -1
- package/dist/activity.js +47 -13
- package/dist/activity.js.map +1 -1
- package/dist/activity.test.js +109 -0
- package/dist/activity.test.js.map +1 -1
- package/dist/content-review-scoring.d.ts +82 -2
- package/dist/content-review-scoring.d.ts.map +1 -1
- package/dist/content-review-scoring.js +99 -3
- package/dist/content-review-scoring.js.map +1 -1
- package/dist/errors.d.ts +53 -0
- package/dist/errors.d.ts.map +1 -1
- package/dist/errors.js +63 -0
- package/dist/errors.js.map +1 -1
- package/dist/index.d.ts +2 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +7 -0
- package/dist/index.js.map +1 -1
- package/dist/notification-sources/field-paths.d.ts +25 -5
- package/dist/notification-sources/field-paths.d.ts.map +1 -1
- package/dist/notification-sources/field-paths.js +11 -0
- package/dist/notification-sources/field-paths.js.map +1 -1
- package/dist/notification-sources/field-set.d.ts +9 -7
- package/dist/notification-sources/field-set.d.ts.map +1 -1
- package/dist/notification-sources/field-set.js +9 -3
- package/dist/notification-sources/field-set.js.map +1 -1
- package/dist/notification-sources/index.d.ts +1 -0
- package/dist/notification-sources/index.d.ts.map +1 -1
- package/dist/notification-sources/index.js +1 -0
- package/dist/notification-sources/index.js.map +1 -1
- package/dist/notification-sources/notification-sources.test.js +43 -3
- package/dist/notification-sources/notification-sources.test.js.map +1 -1
- package/dist/notification-sources/post-performance-node.d.ts.map +1 -1
- package/dist/notification-sources/post-performance-node.js +1 -0
- package/dist/notification-sources/post-performance-node.js.map +1 -1
- package/dist/notification-sources/publishing-calendar-directive.d.ts +61 -0
- package/dist/notification-sources/publishing-calendar-directive.d.ts.map +1 -0
- package/dist/notification-sources/publishing-calendar-directive.js +230 -0
- package/dist/notification-sources/publishing-calendar-directive.js.map +1 -0
- package/dist/notification-sources/registry.d.ts +6 -6
- package/dist/notification-sources/registry.d.ts.map +1 -1
- package/dist/notification-sources/registry.js +50 -19
- package/dist/notification-sources/registry.js.map +1 -1
- package/dist/notification-sources/source-definition.d.ts +69 -12
- package/dist/notification-sources/source-definition.d.ts.map +1 -1
- package/dist/notification-sources/source-definition.js +20 -4
- package/dist/notification-sources/source-definition.js.map +1 -1
- package/dist/openclaw-config.d.ts +84 -0
- package/dist/openclaw-config.d.ts.map +1 -1
- package/dist/openclaw-config.js +129 -0
- package/dist/openclaw-config.js.map +1 -1
- package/dist/openclaw-config.test.js +190 -1
- package/dist/openclaw-config.test.js.map +1 -1
- package/dist/reddit-risk-events.d.ts +168 -0
- package/dist/reddit-risk-events.d.ts.map +1 -0
- package/dist/reddit-risk-events.js +260 -0
- package/dist/reddit-risk-events.js.map +1 -0
- package/dist/reddit-risk-events.test.d.ts +2 -0
- package/dist/reddit-risk-events.test.d.ts.map +1 -0
- package/dist/reddit-risk-events.test.js +277 -0
- package/dist/reddit-risk-events.test.js.map +1 -0
- package/dist/reddit-topic-taxonomy.d.ts.map +1 -1
- package/dist/reddit-topic-taxonomy.js +10 -2
- package/dist/reddit-topic-taxonomy.js.map +1 -1
- package/dist/side-effect-gate.d.ts +157 -0
- package/dist/side-effect-gate.d.ts.map +1 -0
- package/dist/side-effect-gate.js +231 -0
- package/dist/side-effect-gate.js.map +1 -0
- package/dist/side-effect-gate.test.d.ts +2 -0
- package/dist/side-effect-gate.test.d.ts.map +1 -0
- package/dist/side-effect-gate.test.js +193 -0
- package/dist/side-effect-gate.test.js.map +1 -0
- package/dist/subreddit-monitor-matching.d.ts +154 -0
- package/dist/subreddit-monitor-matching.d.ts.map +1 -0
- package/dist/subreddit-monitor-matching.js +336 -0
- package/dist/subreddit-monitor-matching.js.map +1 -0
- package/dist/subreddit-monitor-matching.test.d.ts +2 -0
- package/dist/subreddit-monitor-matching.test.d.ts.map +1 -0
- package/dist/subreddit-monitor-matching.test.js +315 -0
- package/dist/subreddit-monitor-matching.test.js.map +1 -0
- package/package.json +5 -1
|
@@ -6,7 +6,50 @@
|
|
|
6
6
|
* 变化不影响阈值语义)。策略可整体替换(system_settings 覆盖默认),每次
|
|
7
7
|
* 复审记录 thresholdSnapshot 供金丝雀跨版本对比。
|
|
8
8
|
*/
|
|
9
|
-
|
|
9
|
+
/**
|
|
10
|
+
* rubric 版本(**无板块画像**的基础代次)。形式与 post-review 对齐:
|
|
11
|
+
* `content-review.v5` / `content-review.v5.style` —— 同一代次号、只差 `.style` 后缀。
|
|
12
|
+
*
|
|
13
|
+
* ⚠️ 历史值 `v1`(无画像)/`v2`(有画像)把「基础代次」和「是否应用 style profile」混在
|
|
14
|
+
* 同一个数字序列里,**不得复用**(审计重放会撞车),故当初直接跳到 v3。
|
|
15
|
+
*
|
|
16
|
+
* v3 变更点(作者关系轴):context_anchoring / ai_tone / burstiness 三个维度的评价边界改了
|
|
17
|
+
* ——相同文本可能得到不同维度分。不 bump 会让历史的 84 和新版的 89 看似同口径,
|
|
18
|
+
* 破坏趋势与金丝雀比较。
|
|
19
|
+
*
|
|
20
|
+
* v4 变更点(Account stage 段两处 wiring 修复,见 content-review/prompt.ts):
|
|
21
|
+
* 1. prompt 改读服务端 canonical `command.stage`(此前只读原始请求体 `request.stage`,
|
|
22
|
+
* 服务端派生值进不了模型上下文);
|
|
23
|
+
* 2. 「必须更短更克制」的收紧指令只发给 `静默期`,`互动期`/`活跃期`改发中性限定
|
|
24
|
+
* (此前任何非空 stage 都被贴上 quiet-stage 指令)。
|
|
25
|
+
* 第 2 条会真实改变显式传非静默期 stage 的调用方所拿到的模型指令 ⇒ 同一文本可能得到不同
|
|
26
|
+
* 维度分,按仓库纪律必须 bump。
|
|
27
|
+
* v5 变更点(维度适用性修复,帖评同期):
|
|
28
|
+
* 1. prompt —— `persona_voice` 不再在无 persona 时被偷换成 "generic-human plausibility"
|
|
29
|
+
* (那是改判另一件事却仍按 1.5 权重计分),`self_repetition` 补「无历史样本不可评」;
|
|
30
|
+
* 2. 计分 —— 不可评维度**剔除权重**(加权均分的分母变了)。persona-less 下原本有
|
|
31
|
+
* (1.5+1)/10 = 25% 的权重建立在无依据的判断上,修完这批稿会普遍升分。
|
|
32
|
+
* 同一组维度分在 v4 与 v5 下会算出不同 computedScore ⇒ 跨版本不可直接比较
|
|
33
|
+
* (须按 rubricVersion + thresholdSnapshot.applicabilitySignature 分组)。
|
|
34
|
+
* ⚠️ 升版理由**不是**"加了新维度"(本次一维未加),而是 prompt 边界 + 分母双变。
|
|
35
|
+
*
|
|
36
|
+
* ⚠️ v3 是否已在生产发射过无法用只读面权威证实(`content_review_records` 无 GET 读面,
|
|
37
|
+
* interaction event 又是 best-effort/worker 路径根本不发),且 v3 代码已在生产分支 HEAD 上、
|
|
38
|
+
* 随时可能发射 ⇒ 不赌「v3 零发射」,直接 bump v4。
|
|
39
|
+
*/
|
|
40
|
+
export const CONTENT_REVIEW_RUBRIC_VERSION = "content-review.v5";
|
|
41
|
+
/** rubric 版本(**有画像计分路径**:软维度计分生效)。 */
|
|
42
|
+
export const CONTENT_REVIEW_RUBRIC_VERSION_STYLE = "content-review.v5.style";
|
|
43
|
+
/**
|
|
44
|
+
* 版本选择的**单一真源**:run / deterministic / degraded 三条分支都走它,
|
|
45
|
+
* 防各分支各自选版本导致漂移(deterministic 分支此前硬编码 v1 = 已有漂移)。
|
|
46
|
+
* @param styleProfileApplied 服务端权威判定的「画像已注入且软维度适用」。
|
|
47
|
+
*/
|
|
48
|
+
export function resolveContentReviewRubricVersion(styleProfileApplied) {
|
|
49
|
+
return styleProfileApplied
|
|
50
|
+
? CONTENT_REVIEW_RUBRIC_VERSION_STYLE
|
|
51
|
+
: CONTENT_REVIEW_RUBRIC_VERSION;
|
|
52
|
+
}
|
|
10
53
|
export const DEFAULT_CONTENT_REVIEW_POLICY = {
|
|
11
54
|
policyVersion: "v1",
|
|
12
55
|
weights: {
|
|
@@ -24,9 +67,23 @@ export const DEFAULT_CONTENT_REVIEW_POLICY = {
|
|
|
24
67
|
complianceBlockBelow: 60,
|
|
25
68
|
quietStageThresholdBonus: 10,
|
|
26
69
|
};
|
|
70
|
+
/**
|
|
71
|
+
* **可剔除**维度的封闭集合(类型层 allowlist;与 contracts 的
|
|
72
|
+
* `CONTENT_REVIEW_EXCLUDABLE_DIMENSIONS` 同一口径,core 不 hard-dep contracts)。
|
|
73
|
+
* `compliance` / `context_anchoring` 是一票否决的红线,**永不可剔**——
|
|
74
|
+
* 可剔就等于给出一条构造性绕过 block 的路径。
|
|
75
|
+
*/
|
|
76
|
+
export const CONTENT_REVIEW_EXCLUDABLE_DIMENSION_KEYS = [
|
|
77
|
+
"persona_voice",
|
|
78
|
+
"self_repetition",
|
|
79
|
+
];
|
|
27
80
|
/** 本次请求实际生效的策略快照(degraded/deterministic 分支也要完整留档)。 */
|
|
28
|
-
export function getContentReviewThresholdSnapshot(policy, stage) {
|
|
81
|
+
export function getContentReviewThresholdSnapshot(policy, stage, notAssessed) {
|
|
29
82
|
const stageBonus = stage === "静默期" ? policy.quietStageThresholdBonus : 0;
|
|
83
|
+
const excluded = normalizeNotAssessed(notAssessed);
|
|
84
|
+
const excludedKeys = excluded.map((e) => e.dimension);
|
|
85
|
+
const scoredKeys = Object.keys(policy.weights).filter((k) => !excludedKeys.includes(k));
|
|
86
|
+
const denominator = scoredKeys.reduce((sum, k) => sum + (policy.weights[k] ?? 0), 0);
|
|
30
87
|
return {
|
|
31
88
|
policyVersion: policy.policyVersion,
|
|
32
89
|
weights: policy.weights,
|
|
@@ -36,8 +93,39 @@ export function getContentReviewThresholdSnapshot(policy, stage) {
|
|
|
36
93
|
complianceBlockBelow: policy.complianceBlockBelow + stageBonus,
|
|
37
94
|
stageBonusApplied: stageBonus,
|
|
38
95
|
stage: stage ?? null,
|
|
96
|
+
// 默认 true;deterministic / degraded 分支由 runner 覆写成 false。
|
|
97
|
+
dimensionsEvaluated: true,
|
|
98
|
+
scoredDimensions: scoredKeys,
|
|
99
|
+
excludedDimensions: excluded,
|
|
100
|
+
denominator,
|
|
101
|
+
// 分母指纹:同 rubricVersion 下缺 persona / 缺历史都会让分母不同,
|
|
102
|
+
// 两次审核的 82 分不代表同一通过率 ⇒ 报表须按此分组。
|
|
103
|
+
//
|
|
104
|
+
// **权重必须进签名**(Codex 评审 P1;方案 §4.4 的 signature 是
|
|
105
|
+
// `{scored, weights, denominator}` 三元组):`mergeContentReviewPolicy` 允许
|
|
106
|
+
// system_settings 逐维改写权重,于是同一组可评维度 + 同一权重和完全可能来自
|
|
107
|
+
// 不同的权重分布(1.5/1.0 与 1.0/1.5 互换)。只签维度与分母会把它们判成同口径。
|
|
108
|
+
applicabilitySignature: `${[...scoredKeys]
|
|
109
|
+
.sort()
|
|
110
|
+
.map((k) => `${k}=${policy.weights[k] ?? 0}`)
|
|
111
|
+
.join(",")}@${denominator}`,
|
|
39
112
|
};
|
|
40
113
|
}
|
|
114
|
+
/**
|
|
115
|
+
* 只保留 allowlist 内的键并去重(去序:签名侧再排序)。
|
|
116
|
+
* 调用方传入红线维度时**静默丢弃**——计分器绝不接受任意 excluded 集合。
|
|
117
|
+
*/
|
|
118
|
+
function normalizeNotAssessed(notAssessed) {
|
|
119
|
+
if (!notAssessed?.length)
|
|
120
|
+
return [];
|
|
121
|
+
const out = [];
|
|
122
|
+
for (const key of CONTENT_REVIEW_EXCLUDABLE_DIMENSION_KEYS) {
|
|
123
|
+
const hit = notAssessed.find((n) => n.dimension === key);
|
|
124
|
+
if (hit)
|
|
125
|
+
out.push({ dimension: key, reason: hit.reason });
|
|
126
|
+
}
|
|
127
|
+
return out;
|
|
128
|
+
}
|
|
41
129
|
/** system_settings 覆盖默认策略时的合并(部分覆盖,未给字段用默认)。 */
|
|
42
130
|
export function mergeContentReviewPolicy(override) {
|
|
43
131
|
if (!override)
|
|
@@ -59,15 +147,23 @@ export function scoreContentReview(input) {
|
|
|
59
147
|
const anchorBlockBelow = policy.contextAnchoringBlockBelow + stageBonus;
|
|
60
148
|
const complianceBlockBelow = policy.complianceBlockBelow + stageBonus;
|
|
61
149
|
const clamp = (n) => Math.max(0, Math.min(100, n));
|
|
150
|
+
// rubric v5:不可评维度**剔除权重**——既不进分子也不进分母。红线维度不在
|
|
151
|
+
// allowlist 内,任何调用方都剔不掉(normalizeNotAssessed 静默丢弃非法键)。
|
|
152
|
+
const excluded = normalizeNotAssessed(input.notAssessed);
|
|
153
|
+
const excludedKeys = excluded.map((e) => e.dimension);
|
|
62
154
|
let weightSum = 0;
|
|
63
155
|
let weighted = 0;
|
|
64
156
|
for (const [key, weight] of Object.entries(policy.weights)) {
|
|
157
|
+
if (excludedKeys.includes(key)) {
|
|
158
|
+
continue;
|
|
159
|
+
}
|
|
65
160
|
weightSum += weight;
|
|
66
161
|
weighted += clamp(input.dimensions[key].score) * weight;
|
|
67
162
|
}
|
|
163
|
+
// `|| 1` 兜底:红线维度不可剔 ⇒ weightSum 恒 > 0,这里只防配置把权重全配成 0。
|
|
68
164
|
const computedScore = Math.round(weighted / (weightSum || 1));
|
|
69
165
|
// 与 deterministic/degraded 分支共用同一 snapshot 结构。
|
|
70
|
-
const thresholdSnapshot = getContentReviewThresholdSnapshot(policy, input.stage);
|
|
166
|
+
const thresholdSnapshot = getContentReviewThresholdSnapshot(policy, input.stage, excluded);
|
|
71
167
|
// Precedence: 合规红线 > 情境锚定一票否决 > 综合分阈值。
|
|
72
168
|
if (clamp(input.dimensions.compliance.score) < complianceBlockBelow) {
|
|
73
169
|
return {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"content-review-scoring.js","sourceRoot":"","sources":["../src/content-review-scoring.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AA8BH,MAAM,CAAC,MAAM,6BAA6B,GAAG,
|
|
1
|
+
{"version":3,"file":"content-review-scoring.js","sourceRoot":"","sources":["../src/content-review-scoring.ts"],"names":[],"mappings":"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"}
|
package/dist/errors.d.ts
CHANGED
|
@@ -14,5 +14,58 @@ export declare function notFound(message?: string): AppError;
|
|
|
14
14
|
/** 语义上无法处理的请求(字段互相矛盾等),区别于 400 的"格式不对"。 */
|
|
15
15
|
export declare function unprocessable(message?: string): AppError;
|
|
16
16
|
export declare function conflict(message?: string, details?: unknown): AppError;
|
|
17
|
+
/**
|
|
18
|
+
* 排期入口专用:选中账号**没有真配置过时区**,无法按「账号本地时间」解释用户
|
|
19
|
+
* 输入的排期时刻。
|
|
20
|
+
*
|
|
21
|
+
* 🔴 刻意**不复用** `validationError`(`VALIDATION_ERROR` 400):那个码同时覆盖
|
|
22
|
+
* 字段格式错、guardrail 命中账号状态/板块封禁等一大片,调用方(CLI / 外部 agent /
|
|
23
|
+
* 前端)无法据它分流,只能拿人类文案做子串匹配。这里给一个稳定、可编程判别的码。
|
|
24
|
+
*
|
|
25
|
+
* 422 而不是 400:请求本身格式完全合法,是**账号侧配置缺失**导致语义上无法处理。
|
|
26
|
+
*/
|
|
27
|
+
export declare function accountTimezoneNotConfigured(message: string, details?: unknown): AppError;
|
|
28
|
+
/**
|
|
29
|
+
* R2 草稿幂等键专用:`sourceRef` 已被用过,但**这次的创建请求与首次不是同一个**。
|
|
30
|
+
*
|
|
31
|
+
* 🔴 刻意**不复用** `conflict()`(`CONFLICT` 409):同一条草稿路径上已经有另一个 409
|
|
32
|
+
* ——`expectedVersion` 的乐观并发冲突(`packages/db/src/content-drafts.ts`)。两者的
|
|
33
|
+
* 正确处置**完全相反**:乐观并发冲突要「重新拉取再改」,而本冲突要「换一个 key,
|
|
34
|
+
* 或者你其实是想 PATCH」。同码会逼调用方拿人类文案做子串匹配来分流。
|
|
35
|
+
* 同理由的先例见上面的 `accountTimezoneNotConfigured`。
|
|
36
|
+
*
|
|
37
|
+
* details 里带 `existingDraftId`,让调用方无需再查一次就能决定改走 PATCH。
|
|
38
|
+
*/
|
|
39
|
+
export declare function contentDraftSourceRefConflict(message: string, details?: unknown): AppError;
|
|
17
40
|
export declare function internalError(message?: string): AppError;
|
|
41
|
+
/**
|
|
42
|
+
* Reddit 账号验证状态观测 —— 幂等键专用:同 `(accountId, requestId)` 但内容不同。
|
|
43
|
+
*
|
|
44
|
+
* 🔴 刻意**不复用**通用 `conflict()`(`CONFLICT` 409):`packages/db/src/reddit-account-
|
|
45
|
+
* verification.ts` 的 `recordRedditAccountVerificationObservationInTx` 对两种完全不同
|
|
46
|
+
* 的冲突都抛通用 `conflict()`——同 requestId 换内容、与同一时刻状态矛盾。调用方(矩阵/
|
|
47
|
+
* CLI)需要能把「重放但内容变了」和「乱序但语义矛盾」分开处理,同码逼它们做人类文案子
|
|
48
|
+
* 串匹配。API 路由层按 `details.existingObservationId` 是否存在区分这两种情形,分别重
|
|
49
|
+
* 映射到本码与 {@link redditAccountVerificationObservedAtConflict}。
|
|
50
|
+
*
|
|
51
|
+
* details 里带 `existingObservationId`,调用方无需再查一次即可决定要不要改走别的 requestId。
|
|
52
|
+
*/
|
|
53
|
+
export declare function redditAccountVerificationRequestIdConflict(message: string, details?: unknown): AppError;
|
|
54
|
+
/**
|
|
55
|
+
* Reddit 账号验证状态观测 —— 同一时刻(`observedAt` 与 current 的 `stateObservedAt` 相
|
|
56
|
+
* 等)但 `observedState` 不同。⛔ 与 {@link redditAccountVerificationRequestIdConflict}
|
|
57
|
+
* 是两个不同的失败面,⛔ 不合并:前者是「重放载荷变了」,后者是「两条不同 requestId
|
|
58
|
+
* 的观测互相矛盾」,正确处置完全不同(前者应换 requestId 或改走 PATCH 语义;后者需要
|
|
59
|
+
* 人工核对哪条观测才是真的)。
|
|
60
|
+
*/
|
|
61
|
+
export declare function redditAccountVerificationObservedAtConflict(message: string, details?: unknown): AppError;
|
|
62
|
+
/**
|
|
63
|
+
* Reddit 账号验证状态观测 —— PATCH evidence availability 时,请求的 `checkedAt`
|
|
64
|
+
* 早于库里已有的 `availabilityCheckedAt`(较旧的检查试图覆盖较新的结果)。
|
|
65
|
+
*
|
|
66
|
+
* 🔴 与上面两个幂等冲突码是**三个不同的失败面**,⛔ 不合并:这个不是 requestId/
|
|
67
|
+
* observedAt 的写冲突,是「你带来的检查时间点比库里已知的更旧」——正确处置是让
|
|
68
|
+
* 调用方拿最新数据重新核实,不是重试写入。
|
|
69
|
+
*/
|
|
70
|
+
export declare function redditAccountVerificationEvidenceStaleCheck(message: string, details?: unknown): AppError;
|
|
18
71
|
//# sourceMappingURL=errors.d.ts.map
|
package/dist/errors.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../src/errors.ts"],"names":[],"mappings":"AAAA,mBAAmB;AACnB,qBAAa,QAAS,SAAQ,KAAK;aAEf,IAAI,EAAE,MAAM;aACZ,UAAU,EAAE,MAAM;aAElB,OAAO,CAAC,EAAE,OAAO;gBAHjB,IAAI,EAAE,MAAM,EACZ,UAAU,EAAE,MAAM,EAClC,OAAO,EAAE,MAAM,EACC,OAAO,CAAC,EAAE,OAAO,YAAA;CAKpC;AAED,wBAAgB,eAAe,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,OAAO,GAAG,QAAQ,CAE5E;AAED,wBAAgB,UAAU,CAAC,OAAO,SAAgB,GAAG,QAAQ,CAE5D;AAED,wBAAgB,eAAe,CAAC,OAAO,SAAsB,GAAG,QAAQ,CAEvE;AAED,wBAAgB,YAAY,CAAC,OAAO,SAAiB,GAAG,QAAQ,CAE/D;AAED,wBAAgB,SAAS,CAAC,OAAO,SAAc,GAAG,QAAQ,CAEzD;AAED,wBAAgB,QAAQ,CAAC,OAAO,SAAc,GAAG,QAAQ,CAExD;AAED,2CAA2C;AAC3C,wBAAgB,aAAa,CAAC,OAAO,SAAyB,GAAG,QAAQ,CAExE;AAED,wBAAgB,QAAQ,CAAC,OAAO,SAAa,EAAE,OAAO,CAAC,EAAE,OAAO,GAAG,QAAQ,CAE1E;AAED,wBAAgB,aAAa,CAAC,OAAO,SAAmB,GAAG,QAAQ,CAElE"}
|
|
1
|
+
{"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../src/errors.ts"],"names":[],"mappings":"AAAA,mBAAmB;AACnB,qBAAa,QAAS,SAAQ,KAAK;aAEf,IAAI,EAAE,MAAM;aACZ,UAAU,EAAE,MAAM;aAElB,OAAO,CAAC,EAAE,OAAO;gBAHjB,IAAI,EAAE,MAAM,EACZ,UAAU,EAAE,MAAM,EAClC,OAAO,EAAE,MAAM,EACC,OAAO,CAAC,EAAE,OAAO,YAAA;CAKpC;AAED,wBAAgB,eAAe,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,OAAO,GAAG,QAAQ,CAE5E;AAED,wBAAgB,UAAU,CAAC,OAAO,SAAgB,GAAG,QAAQ,CAE5D;AAED,wBAAgB,eAAe,CAAC,OAAO,SAAsB,GAAG,QAAQ,CAEvE;AAED,wBAAgB,YAAY,CAAC,OAAO,SAAiB,GAAG,QAAQ,CAE/D;AAED,wBAAgB,SAAS,CAAC,OAAO,SAAc,GAAG,QAAQ,CAEzD;AAED,wBAAgB,QAAQ,CAAC,OAAO,SAAc,GAAG,QAAQ,CAExD;AAED,2CAA2C;AAC3C,wBAAgB,aAAa,CAAC,OAAO,SAAyB,GAAG,QAAQ,CAExE;AAED,wBAAgB,QAAQ,CAAC,OAAO,SAAa,EAAE,OAAO,CAAC,EAAE,OAAO,GAAG,QAAQ,CAE1E;AAED;;;;;;;;;GASG;AACH,wBAAgB,4BAA4B,CAC1C,OAAO,EAAE,MAAM,EACf,OAAO,CAAC,EAAE,OAAO,GAChB,QAAQ,CAEV;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,6BAA6B,CAC3C,OAAO,EAAE,MAAM,EACf,OAAO,CAAC,EAAE,OAAO,GAChB,QAAQ,CAOV;AAED,wBAAgB,aAAa,CAAC,OAAO,SAAmB,GAAG,QAAQ,CAElE;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,0CAA0C,CACxD,OAAO,EAAE,MAAM,EACf,OAAO,CAAC,EAAE,OAAO,GAChB,QAAQ,CAOV;AAED;;;;;;GAMG;AACH,wBAAgB,2CAA2C,CACzD,OAAO,EAAE,MAAM,EACf,OAAO,CAAC,EAAE,OAAO,GAChB,QAAQ,CAOV;AAED;;;;;;;GAOG;AACH,wBAAgB,2CAA2C,CACzD,OAAO,EAAE,MAAM,EACf,OAAO,CAAC,EAAE,OAAO,GAChB,QAAQ,CAOV"}
|
package/dist/errors.js
CHANGED
|
@@ -36,7 +36,70 @@ export function unprocessable(message = "Unprocessable entity") {
|
|
|
36
36
|
export function conflict(message = "Conflict", details) {
|
|
37
37
|
return new AppError("CONFLICT", 409, message, details);
|
|
38
38
|
}
|
|
39
|
+
/**
|
|
40
|
+
* 排期入口专用:选中账号**没有真配置过时区**,无法按「账号本地时间」解释用户
|
|
41
|
+
* 输入的排期时刻。
|
|
42
|
+
*
|
|
43
|
+
* 🔴 刻意**不复用** `validationError`(`VALIDATION_ERROR` 400):那个码同时覆盖
|
|
44
|
+
* 字段格式错、guardrail 命中账号状态/板块封禁等一大片,调用方(CLI / 外部 agent /
|
|
45
|
+
* 前端)无法据它分流,只能拿人类文案做子串匹配。这里给一个稳定、可编程判别的码。
|
|
46
|
+
*
|
|
47
|
+
* 422 而不是 400:请求本身格式完全合法,是**账号侧配置缺失**导致语义上无法处理。
|
|
48
|
+
*/
|
|
49
|
+
export function accountTimezoneNotConfigured(message, details) {
|
|
50
|
+
return new AppError("ACCOUNT_TIMEZONE_NOT_CONFIGURED", 422, message, details);
|
|
51
|
+
}
|
|
52
|
+
/**
|
|
53
|
+
* R2 草稿幂等键专用:`sourceRef` 已被用过,但**这次的创建请求与首次不是同一个**。
|
|
54
|
+
*
|
|
55
|
+
* 🔴 刻意**不复用** `conflict()`(`CONFLICT` 409):同一条草稿路径上已经有另一个 409
|
|
56
|
+
* ——`expectedVersion` 的乐观并发冲突(`packages/db/src/content-drafts.ts`)。两者的
|
|
57
|
+
* 正确处置**完全相反**:乐观并发冲突要「重新拉取再改」,而本冲突要「换一个 key,
|
|
58
|
+
* 或者你其实是想 PATCH」。同码会逼调用方拿人类文案做子串匹配来分流。
|
|
59
|
+
* 同理由的先例见上面的 `accountTimezoneNotConfigured`。
|
|
60
|
+
*
|
|
61
|
+
* details 里带 `existingDraftId`,让调用方无需再查一次就能决定改走 PATCH。
|
|
62
|
+
*/
|
|
63
|
+
export function contentDraftSourceRefConflict(message, details) {
|
|
64
|
+
return new AppError("CONTENT_DRAFT_SOURCE_REF_CONFLICT", 409, message, details);
|
|
65
|
+
}
|
|
39
66
|
export function internalError(message = "Internal error") {
|
|
40
67
|
return new AppError("INTERNAL_ERROR", 500, message);
|
|
41
68
|
}
|
|
69
|
+
/**
|
|
70
|
+
* Reddit 账号验证状态观测 —— 幂等键专用:同 `(accountId, requestId)` 但内容不同。
|
|
71
|
+
*
|
|
72
|
+
* 🔴 刻意**不复用**通用 `conflict()`(`CONFLICT` 409):`packages/db/src/reddit-account-
|
|
73
|
+
* verification.ts` 的 `recordRedditAccountVerificationObservationInTx` 对两种完全不同
|
|
74
|
+
* 的冲突都抛通用 `conflict()`——同 requestId 换内容、与同一时刻状态矛盾。调用方(矩阵/
|
|
75
|
+
* CLI)需要能把「重放但内容变了」和「乱序但语义矛盾」分开处理,同码逼它们做人类文案子
|
|
76
|
+
* 串匹配。API 路由层按 `details.existingObservationId` 是否存在区分这两种情形,分别重
|
|
77
|
+
* 映射到本码与 {@link redditAccountVerificationObservedAtConflict}。
|
|
78
|
+
*
|
|
79
|
+
* details 里带 `existingObservationId`,调用方无需再查一次即可决定要不要改走别的 requestId。
|
|
80
|
+
*/
|
|
81
|
+
export function redditAccountVerificationRequestIdConflict(message, details) {
|
|
82
|
+
return new AppError("REDDIT_ACCOUNT_VERIFICATION_REQUEST_ID_CONFLICT", 409, message, details);
|
|
83
|
+
}
|
|
84
|
+
/**
|
|
85
|
+
* Reddit 账号验证状态观测 —— 同一时刻(`observedAt` 与 current 的 `stateObservedAt` 相
|
|
86
|
+
* 等)但 `observedState` 不同。⛔ 与 {@link redditAccountVerificationRequestIdConflict}
|
|
87
|
+
* 是两个不同的失败面,⛔ 不合并:前者是「重放载荷变了」,后者是「两条不同 requestId
|
|
88
|
+
* 的观测互相矛盾」,正确处置完全不同(前者应换 requestId 或改走 PATCH 语义;后者需要
|
|
89
|
+
* 人工核对哪条观测才是真的)。
|
|
90
|
+
*/
|
|
91
|
+
export function redditAccountVerificationObservedAtConflict(message, details) {
|
|
92
|
+
return new AppError("REDDIT_ACCOUNT_VERIFICATION_OBSERVED_AT_CONFLICT", 409, message, details);
|
|
93
|
+
}
|
|
94
|
+
/**
|
|
95
|
+
* Reddit 账号验证状态观测 —— PATCH evidence availability 时,请求的 `checkedAt`
|
|
96
|
+
* 早于库里已有的 `availabilityCheckedAt`(较旧的检查试图覆盖较新的结果)。
|
|
97
|
+
*
|
|
98
|
+
* 🔴 与上面两个幂等冲突码是**三个不同的失败面**,⛔ 不合并:这个不是 requestId/
|
|
99
|
+
* observedAt 的写冲突,是「你带来的检查时间点比库里已知的更旧」——正确处置是让
|
|
100
|
+
* 调用方拿最新数据重新核实,不是重试写入。
|
|
101
|
+
*/
|
|
102
|
+
export function redditAccountVerificationEvidenceStaleCheck(message, details) {
|
|
103
|
+
return new AppError("REDDIT_ACCOUNT_VERIFICATION_EVIDENCE_STALE_CHECK", 409, message, details);
|
|
104
|
+
}
|
|
42
105
|
//# sourceMappingURL=errors.js.map
|
package/dist/errors.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"errors.js","sourceRoot":"","sources":["../src/errors.ts"],"names":[],"mappings":"AAAA,mBAAmB;AACnB,MAAM,OAAO,QAAS,SAAQ,KAAK;IAEf;IACA;IAEA;IAJlB,YACkB,IAAY,EACZ,UAAkB,EAClC,OAAe,EACC,OAAiB;QAEjC,KAAK,CAAC,OAAO,CAAC,CAAC;QALC,SAAI,GAAJ,IAAI,CAAQ;QACZ,eAAU,GAAV,UAAU,CAAQ;QAElB,YAAO,GAAP,OAAO,CAAU;QAGjC,IAAI,CAAC,IAAI,GAAG,UAAU,CAAC;IACzB,CAAC;CACF;AAED,MAAM,UAAU,eAAe,CAAC,OAAe,EAAE,OAAiB;IAChE,OAAO,IAAI,QAAQ,CAAC,kBAAkB,EAAE,GAAG,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;AACjE,CAAC;AAED,MAAM,UAAU,UAAU,CAAC,OAAO,GAAG,aAAa;IAChD,OAAO,IAAI,QAAQ,CAAC,aAAa,EAAE,GAAG,EAAE,OAAO,CAAC,CAAC;AACnD,CAAC;AAED,MAAM,UAAU,eAAe,CAAC,OAAO,GAAG,mBAAmB;IAC3D,OAAO,IAAI,QAAQ,CAAC,mBAAmB,EAAE,GAAG,EAAE,OAAO,CAAC,CAAC;AACzD,CAAC;AAED,MAAM,UAAU,YAAY,CAAC,OAAO,GAAG,cAAc;IACnD,OAAO,IAAI,QAAQ,CAAC,cAAc,EAAE,GAAG,EAAE,OAAO,CAAC,CAAC;AACpD,CAAC;AAED,MAAM,UAAU,SAAS,CAAC,OAAO,GAAG,WAAW;IAC7C,OAAO,IAAI,QAAQ,CAAC,WAAW,EAAE,GAAG,EAAE,OAAO,CAAC,CAAC;AACjD,CAAC;AAED,MAAM,UAAU,QAAQ,CAAC,OAAO,GAAG,WAAW;IAC5C,OAAO,IAAI,QAAQ,CAAC,WAAW,EAAE,GAAG,EAAE,OAAO,CAAC,CAAC;AACjD,CAAC;AAED,2CAA2C;AAC3C,MAAM,UAAU,aAAa,CAAC,OAAO,GAAG,sBAAsB;IAC5D,OAAO,IAAI,QAAQ,CAAC,sBAAsB,EAAE,GAAG,EAAE,OAAO,CAAC,CAAC;AAC5D,CAAC;AAED,MAAM,UAAU,QAAQ,CAAC,OAAO,GAAG,UAAU,EAAE,OAAiB;IAC9D,OAAO,IAAI,QAAQ,CAAC,UAAU,EAAE,GAAG,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;AACzD,CAAC;AAED,MAAM,UAAU,aAAa,CAAC,OAAO,GAAG,gBAAgB;IACtD,OAAO,IAAI,QAAQ,CAAC,gBAAgB,EAAE,GAAG,EAAE,OAAO,CAAC,CAAC;AACtD,CAAC"}
|
|
1
|
+
{"version":3,"file":"errors.js","sourceRoot":"","sources":["../src/errors.ts"],"names":[],"mappings":"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"}
|
package/dist/index.d.ts
CHANGED
|
@@ -6,5 +6,7 @@ export * from "./openclaw-config.js";
|
|
|
6
6
|
export * from "./client-delivery-config.js";
|
|
7
7
|
export * from "./content-review-scoring.js";
|
|
8
8
|
export * from "./activity.js";
|
|
9
|
+
export * from "./reddit-risk-events.js";
|
|
10
|
+
export * from "./subreddit-monitor-matching.js";
|
|
9
11
|
export * from "./notification-sources/index.js";
|
|
10
12
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,yBAAyB,CAAC;AACxC,cAAc,mBAAmB,CAAC;AAClC,cAAc,aAAa,CAAC;AAC5B,cAAc,4BAA4B,CAAC;AAC3C,cAAc,sBAAsB,CAAC;AACrC,cAAc,6BAA6B,CAAC;AAC5C,cAAc,6BAA6B,CAAC;AAC5C,cAAc,eAAe,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,yBAAyB,CAAC;AACxC,cAAc,mBAAmB,CAAC;AAClC,cAAc,aAAa,CAAC;AAC5B,cAAc,4BAA4B,CAAC;AAC3C,cAAc,sBAAsB,CAAC;AACrC,cAAc,6BAA6B,CAAC;AAC5C,cAAc,6BAA6B,CAAC;AAC5C,cAAc,eAAe,CAAC;AAC9B,cAAc,yBAAyB,CAAC;AAGxC,cAAc,iCAAiC,CAAC;AAGhD,cAAc,iCAAiC,CAAC"}
|
package/dist/index.js
CHANGED
|
@@ -6,7 +6,14 @@ export * from "./openclaw-config.js";
|
|
|
6
6
|
export * from "./client-delivery-config.js";
|
|
7
7
|
export * from "./content-review-scoring.js";
|
|
8
8
|
export * from "./activity.js";
|
|
9
|
+
export * from "./reddit-risk-events.js";
|
|
10
|
+
// 板块新帖监听的关键词匹配器。worker(写命中账本)、API(试跑预览)必须共用同一份判定,
|
|
11
|
+
// 否则试跑给出的预览就不是上线后的真实行为。零依赖纯 TS,可安全进浏览器包。
|
|
12
|
+
export * from "./subreddit-monitor-matching.js";
|
|
9
13
|
// 事件订阅通知能力:registry 是 db/worker/api 的暴露面推导单点,必须能跨包 import。
|
|
10
14
|
// core 的 exports map 只有 ".",没有 subpath,故在此 re-export(零依赖纯 TS,不引 node:*)。
|
|
11
15
|
export * from "./notification-sources/index.js";
|
|
16
|
+
// ⛔ `side-effect-gate.ts` **故意不在这里 re-export**:它 import `node:async_hooks`,
|
|
17
|
+
// 而本 barrel 被 `apps/web-brand`(Vite 浏览器构建)import —— 加进来会炸浏览器打包。
|
|
18
|
+
// 服务端用 subpath:`import { ... } from "@geoly-ai/social-hub-core/side-effect-gate"`。
|
|
12
19
|
//# sourceMappingURL=index.js.map
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,yBAAyB,CAAC;AACxC,cAAc,mBAAmB,CAAC;AAClC,cAAc,aAAa,CAAC;AAC5B,cAAc,4BAA4B,CAAC;AAC3C,cAAc,sBAAsB,CAAC;AACrC,cAAc,6BAA6B,CAAC;AAC5C,cAAc,6BAA6B,CAAC;AAC5C,cAAc,eAAe,CAAC;AAC9B,2DAA2D;AAC3D,yEAAyE;AACzE,cAAc,iCAAiC,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,yBAAyB,CAAC;AACxC,cAAc,mBAAmB,CAAC;AAClC,cAAc,aAAa,CAAC;AAC5B,cAAc,4BAA4B,CAAC;AAC3C,cAAc,sBAAsB,CAAC;AACrC,cAAc,6BAA6B,CAAC;AAC5C,cAAc,6BAA6B,CAAC;AAC5C,cAAc,eAAe,CAAC;AAC9B,cAAc,yBAAyB,CAAC;AACxC,kDAAkD;AAClD,yCAAyC;AACzC,cAAc,iCAAiC,CAAC;AAChD,2DAA2D;AAC3D,yEAAyE;AACzE,cAAc,iCAAiC,CAAC;AAChD,4EAA4E;AAC5E,gEAAgE;AAChE,mFAAmF"}
|
|
@@ -26,7 +26,7 @@ export declare function isNotificationFieldPath(value: unknown): value is string
|
|
|
26
26
|
* 由于路径语法已限制为 ASCII,三者在本域内结果相同;显式写出来是为了让
|
|
27
27
|
* 其它语言/其它层(SQL、Go agent)能一字不差地复现 fieldSetVersion。
|
|
28
28
|
*/
|
|
29
|
-
export declare function compareNotificationFieldPaths(left: string, right: string):
|
|
29
|
+
export declare function compareNotificationFieldPaths(left: string, right: string): 1 | 0 | -1;
|
|
30
30
|
/** 排序(不去重、不校验;调用方负责先 assert)。返回新数组。 */
|
|
31
31
|
export declare function sortNotificationFieldPaths(paths: readonly string[]): readonly string[];
|
|
32
32
|
/**
|
|
@@ -37,6 +37,24 @@ export declare function sortNotificationFieldPaths(paths: readonly string[]): re
|
|
|
37
37
|
*/
|
|
38
38
|
export declare const NOTIFICATION_TRIGGER_MODES: readonly ["scheduled_node", "catchup"];
|
|
39
39
|
export type NotificationTriggerMode = (typeof NOTIFICATION_TRIGGER_MODES)[number];
|
|
40
|
+
/**
|
|
41
|
+
* `state_change` 型 source 的变体(Phase 2,`publishing-calendar-directive.v1` 起)。
|
|
42
|
+
* - `upsert`:当前的期望发布状态(agent 据此建/改 cron)。
|
|
43
|
+
* - `cancel`:撤销该条目的期望状态(agent 据此删 cron)。
|
|
44
|
+
*
|
|
45
|
+
* **与 {@link NOTIFICATION_TRIGGER_MODES} 是两套不相交的值域**,不是它的扩展:
|
|
46
|
+
* node 的 `scheduled_node`/`catchup` 描述「这条到期事件为什么此刻发出」,
|
|
47
|
+
* directive 的 `upsert`/`cancel` 描述「这条状态指令要 agent 做什么」。
|
|
48
|
+
* 合成一个枚举会让「日历指令居然有 catchup 模式」这种无意义组合在类型上合法。
|
|
49
|
+
*/
|
|
50
|
+
export declare const NOTIFICATION_DIRECTIVE_MODES: readonly ["upsert", "cancel"];
|
|
51
|
+
export type NotificationDirectiveMode = (typeof NOTIFICATION_DIRECTIVE_MODES)[number];
|
|
52
|
+
/**
|
|
53
|
+
* 任一 source 的变体键。**变体值域是 per-source 的**(由 source 声明的 `variants`
|
|
54
|
+
* 决定),因此这里只能是 string —— registry 自检负责把每个 source 的字段 `variants`
|
|
55
|
+
* 与它自己的变体集合对齐,拼错照样在声明期炸掉。
|
|
56
|
+
*/
|
|
57
|
+
export type NotificationVariantKey = string;
|
|
40
58
|
/** 字段敏感度。后台**永远不能**改这个值——它是代码侧声明的暴露面等级。 */
|
|
41
59
|
export declare const NOTIFICATION_FIELD_SENSITIVITIES: readonly ["public", "internal", "restricted"];
|
|
42
60
|
export type NotificationFieldSensitivity = (typeof NOTIFICATION_FIELD_SENSITIVITIES)[number];
|
|
@@ -79,12 +97,14 @@ export interface NotificationFieldDefinition {
|
|
|
79
97
|
*/
|
|
80
98
|
readonly requires?: readonly string[];
|
|
81
99
|
/**
|
|
82
|
-
*
|
|
100
|
+
* 仅对这些变体有意义(省略 = **所有**变体)。
|
|
83
101
|
* catchup 专属字段(winnerScheduleId 等)用它标注,避免污染正常节点事件。
|
|
84
|
-
*
|
|
85
|
-
*
|
|
102
|
+
* 值域是**所属 source 自己的变体集合**(node 型 = {@link NOTIFICATION_TRIGGER_MODES},
|
|
103
|
+
* state_change 型 = {@link NOTIFICATION_DIRECTIVE_MODES}),由 registry 自检逐 source 校验:
|
|
104
|
+
* 拼错成 `"catcup"` 会让字段进了 configuredFields 却在所有变体事件里消失
|
|
105
|
+
*(静默丢字段),必须在声明期就炸掉。
|
|
86
106
|
*/
|
|
87
|
-
readonly variants?: readonly
|
|
107
|
+
readonly variants?: readonly NotificationVariantKey[];
|
|
88
108
|
/** 后台展示用中文说明。 */
|
|
89
109
|
readonly description: string;
|
|
90
110
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"field-paths.d.ts","sourceRoot":"","sources":["../../src/notification-sources/field-paths.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAEH;;;;GAIG;AACH,eAAO,MAAM,+BAA+B,QACG,CAAC;AAEhD,wBAAgB,uBAAuB,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,MAAM,CAIvE;AAED;;;;;;;GAOG;AACH,wBAAgB,6BAA6B,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,cAExE;AAED,uCAAuC;AACvC,wBAAgB,0BAA0B,CACxC,KAAK,EAAE,SAAS,MAAM,EAAE,GACvB,SAAS,MAAM,EAAE,CAEnB;AAED;;;;;GAKG;AACH,eAAO,MAAM,0BAA0B,wCAG7B,CAAC;AACX,MAAM,MAAM,uBAAuB,GACjC,CAAC,OAAO,0BAA0B,CAAC,CAAC,MAAM,CAAC,CAAC;AAE9C,2CAA2C;AAC3C,eAAO,MAAM,gCAAgC,+CAInC,CAAC;AACX,MAAM,MAAM,4BAA4B,GACtC,CAAC,OAAO,gCAAgC,CAAC,CAAC,MAAM,CAAC,CAAC;AAEpD;;;GAGG;AACH,eAAO,MAAM,8BAA8B,2FASjC,CAAC;AACX,MAAM,MAAM,0BAA0B,GACpC,CAAC,OAAO,8BAA8B,CAAC,CAAC,MAAM,CAAC,CAAC;AAElD;;;GAGG;AACH,MAAM,WAAW,2BAA2B;IAC1C,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAAC;CAClC;AAED,sCAAsC;AACtC,wBAAgB,iCAAiC,CAC/C,UAAU,EAAE,2BAA2B,GACtC,MAAM,CAER;AAED;;;GAGG;AACH,MAAM,WAAW,2BAA2B;IAC1C,yDAAyD;IACzD,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,WAAW,EAAE,4BAA4B,CAAC;IACnD,QAAQ,CAAC,SAAS,EAAE,0BAA0B,CAAC;IAC/C;;;;OAIG;IACH,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAC;IAC3B,2CAA2C;IAC3C,QAAQ,CAAC,mBAAmB,EAAE,SAAS,2BAA2B,EAAE,CAAC;IACrE;;;OAGG;IACH,QAAQ,CAAC,QAAQ,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IACtC
|
|
1
|
+
{"version":3,"file":"field-paths.d.ts","sourceRoot":"","sources":["../../src/notification-sources/field-paths.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAEH;;;;GAIG;AACH,eAAO,MAAM,+BAA+B,QACG,CAAC;AAEhD,wBAAgB,uBAAuB,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,MAAM,CAIvE;AAED;;;;;;;GAOG;AACH,wBAAgB,6BAA6B,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,cAExE;AAED,uCAAuC;AACvC,wBAAgB,0BAA0B,CACxC,KAAK,EAAE,SAAS,MAAM,EAAE,GACvB,SAAS,MAAM,EAAE,CAEnB;AAED;;;;;GAKG;AACH,eAAO,MAAM,0BAA0B,wCAG7B,CAAC;AACX,MAAM,MAAM,uBAAuB,GACjC,CAAC,OAAO,0BAA0B,CAAC,CAAC,MAAM,CAAC,CAAC;AAE9C;;;;;;;;;GASG;AACH,eAAO,MAAM,4BAA4B,+BAAgC,CAAC;AAC1E,MAAM,MAAM,yBAAyB,GACnC,CAAC,OAAO,4BAA4B,CAAC,CAAC,MAAM,CAAC,CAAC;AAEhD;;;;GAIG;AACH,MAAM,MAAM,sBAAsB,GAAG,MAAM,CAAC;AAE5C,2CAA2C;AAC3C,eAAO,MAAM,gCAAgC,+CAInC,CAAC;AACX,MAAM,MAAM,4BAA4B,GACtC,CAAC,OAAO,gCAAgC,CAAC,CAAC,MAAM,CAAC,CAAC;AAEpD;;;GAGG;AACH,eAAO,MAAM,8BAA8B,2FASjC,CAAC;AACX,MAAM,MAAM,0BAA0B,GACpC,CAAC,OAAO,8BAA8B,CAAC,CAAC,MAAM,CAAC,CAAC;AAElD;;;GAGG;AACH,MAAM,WAAW,2BAA2B;IAC1C,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAAC;CAClC;AAED,sCAAsC;AACtC,wBAAgB,iCAAiC,CAC/C,UAAU,EAAE,2BAA2B,GACtC,MAAM,CAER;AAED;;;GAGG;AACH,MAAM,WAAW,2BAA2B;IAC1C,yDAAyD;IACzD,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,WAAW,EAAE,4BAA4B,CAAC;IACnD,QAAQ,CAAC,SAAS,EAAE,0BAA0B,CAAC;IAC/C;;;;OAIG;IACH,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAC;IAC3B,2CAA2C;IAC3C,QAAQ,CAAC,mBAAmB,EAAE,SAAS,2BAA2B,EAAE,CAAC;IACrE;;;OAGG;IACH,QAAQ,CAAC,QAAQ,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IACtC;;;;;;;OAOG;IACH,QAAQ,CAAC,QAAQ,CAAC,EAAE,SAAS,sBAAsB,EAAE,CAAC;IACtD,iBAAiB;IACjB,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;CAC9B;AAED,4BAA4B;AAC5B,wBAAgB,uBAAuB,CACrC,MAAM,EAAE,SAAS,2BAA2B,EAAE,GAC7C,WAAW,CAAC,MAAM,EAAE,2BAA2B,CAAC,CAYlD"}
|
|
@@ -45,6 +45,17 @@ export const NOTIFICATION_TRIGGER_MODES = [
|
|
|
45
45
|
"scheduled_node",
|
|
46
46
|
"catchup",
|
|
47
47
|
];
|
|
48
|
+
/**
|
|
49
|
+
* `state_change` 型 source 的变体(Phase 2,`publishing-calendar-directive.v1` 起)。
|
|
50
|
+
* - `upsert`:当前的期望发布状态(agent 据此建/改 cron)。
|
|
51
|
+
* - `cancel`:撤销该条目的期望状态(agent 据此删 cron)。
|
|
52
|
+
*
|
|
53
|
+
* **与 {@link NOTIFICATION_TRIGGER_MODES} 是两套不相交的值域**,不是它的扩展:
|
|
54
|
+
* node 的 `scheduled_node`/`catchup` 描述「这条到期事件为什么此刻发出」,
|
|
55
|
+
* directive 的 `upsert`/`cancel` 描述「这条状态指令要 agent 做什么」。
|
|
56
|
+
* 合成一个枚举会让「日历指令居然有 catchup 模式」这种无意义组合在类型上合法。
|
|
57
|
+
*/
|
|
58
|
+
export const NOTIFICATION_DIRECTIVE_MODES = ["upsert", "cancel"];
|
|
48
59
|
/** 字段敏感度。后台**永远不能**改这个值——它是代码侧声明的暴露面等级。 */
|
|
49
60
|
export const NOTIFICATION_FIELD_SENSITIVITIES = [
|
|
50
61
|
"public",
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"field-paths.js","sourceRoot":"","sources":["../../src/notification-sources/field-paths.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAEH;;;;GAIG;AACH,MAAM,CAAC,MAAM,+BAA+B,GAC1C,6CAA6C,CAAC;AAEhD,MAAM,UAAU,uBAAuB,CAAC,KAAc;IACpD,OAAO,CACL,OAAO,KAAK,KAAK,QAAQ,IAAI,+BAA+B,CAAC,IAAI,CAAC,KAAK,CAAC,CACzE,CAAC;AACJ,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,UAAU,6BAA6B,CAAC,IAAY,EAAE,KAAa;IACvE,OAAO,IAAI,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AAClD,CAAC;AAED,uCAAuC;AACvC,MAAM,UAAU,0BAA0B,CACxC,KAAwB;IAExB,OAAO,CAAC,GAAG,KAAK,CAAC,CAAC,IAAI,CAAC,6BAA6B,CAAC,CAAC;AACxD,CAAC;AAED;;;;;GAKG;AACH,MAAM,CAAC,MAAM,0BAA0B,GAAG;IACxC,gBAAgB;IAChB,SAAS;CACD,CAAC;AAIX,2CAA2C;AAC3C,MAAM,CAAC,MAAM,gCAAgC,GAAG;IAC9C,QAAQ;IACR,UAAU;IACV,YAAY;CACJ,CAAC;AAIX;;;GAGG;AACH,MAAM,CAAC,MAAM,8BAA8B,GAAG;IAC5C,QAAQ;IACR,MAAM;IACN,KAAK;IACL,UAAU;IACV,SAAS;IACT,OAAO;IACP,MAAM;IACN,aAAa;CACL,CAAC;AAaX,sCAAsC;AACtC,MAAM,UAAU,iCAAiC,CAC/C,UAAuC;IAEvC,OAAO,GAAG,UAAU,CAAC,QAAQ,IAAI,UAAU,CAAC,MAAM,EAAE,CAAC;AACvD,CAAC;
|
|
1
|
+
{"version":3,"file":"field-paths.js","sourceRoot":"","sources":["../../src/notification-sources/field-paths.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAEH;;;;GAIG;AACH,MAAM,CAAC,MAAM,+BAA+B,GAC1C,6CAA6C,CAAC;AAEhD,MAAM,UAAU,uBAAuB,CAAC,KAAc;IACpD,OAAO,CACL,OAAO,KAAK,KAAK,QAAQ,IAAI,+BAA+B,CAAC,IAAI,CAAC,KAAK,CAAC,CACzE,CAAC;AACJ,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,UAAU,6BAA6B,CAAC,IAAY,EAAE,KAAa;IACvE,OAAO,IAAI,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AAClD,CAAC;AAED,uCAAuC;AACvC,MAAM,UAAU,0BAA0B,CACxC,KAAwB;IAExB,OAAO,CAAC,GAAG,KAAK,CAAC,CAAC,IAAI,CAAC,6BAA6B,CAAC,CAAC;AACxD,CAAC;AAED;;;;;GAKG;AACH,MAAM,CAAC,MAAM,0BAA0B,GAAG;IACxC,gBAAgB;IAChB,SAAS;CACD,CAAC;AAIX;;;;;;;;;GASG;AACH,MAAM,CAAC,MAAM,4BAA4B,GAAG,CAAC,QAAQ,EAAE,QAAQ,CAAU,CAAC;AAW1E,2CAA2C;AAC3C,MAAM,CAAC,MAAM,gCAAgC,GAAG;IAC9C,QAAQ;IACR,UAAU;IACV,YAAY;CACJ,CAAC;AAIX;;;GAGG;AACH,MAAM,CAAC,MAAM,8BAA8B,GAAG;IAC5C,QAAQ;IACR,MAAM;IACN,KAAK;IACL,UAAU;IACV,SAAS;IACT,OAAO;IACP,MAAM;IACN,aAAa;CACL,CAAC;AAaX,sCAAsC;AACtC,MAAM,UAAU,iCAAiC,CAC/C,UAAuC;IAEvC,OAAO,GAAG,UAAU,CAAC,QAAQ,IAAI,UAAU,CAAC,MAAM,EAAE,CAAC;AACvD,CAAC;AAqCD,4BAA4B;AAC5B,MAAM,UAAU,uBAAuB,CACrC,MAA8C;IAE9C,MAAM,GAAG,GAAG,IAAI,GAAG,EAAuC,CAAC;IAC3D,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;QAC3B,IAAI,CAAC,uBAAuB,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC;YACzC,MAAM,IAAI,KAAK,CAAC,oCAAoC,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC;QACpE,CAAC;QACD,IAAI,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC;YACxB,MAAM,IAAI,KAAK,CAAC,sCAAsC,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC;QACtE,CAAC;QACD,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;IAC7B,CAAC;IACD,OAAO,GAAG,CAAC;AACb,CAAC"}
|
|
@@ -12,24 +12,24 @@
|
|
|
12
12
|
* 多带折叠身份字段,若强求相等,同一份 config 就要有两个 fieldSetVersion,
|
|
13
13
|
* DTO 与 DB 都得双份。分开后 catchup / 字段依赖 / 配置切换的语义才自洽。
|
|
14
14
|
*/
|
|
15
|
-
import { type NotificationFieldDefinition, type
|
|
16
|
-
import type {
|
|
15
|
+
import { type NotificationFieldDefinition, type NotificationVariantKey } from "./field-paths.js";
|
|
16
|
+
import type { NotificationEventSourceDefinition } from "./source-definition.js";
|
|
17
17
|
export declare class NotificationFieldSetError extends Error {
|
|
18
18
|
readonly reason: "unknown_field" | "duplicate_field" | "required_field_selected" | "required_field_not_declared" | "empty_field_set" | "configured_set_not_closed";
|
|
19
19
|
constructor(reason: "unknown_field" | "duplicate_field" | "required_field_selected" | "required_field_not_declared" | "empty_field_set" | "configured_set_not_closed", message: string);
|
|
20
20
|
}
|
|
21
21
|
/** required + optional 合并索引(source 声明期一次性建好;重复路径直接抛)。 */
|
|
22
|
-
export declare function indexSourceFields(definition:
|
|
22
|
+
export declare function indexSourceFields(definition: NotificationEventSourceDefinition): ReadonlyMap<string, NotificationFieldDefinition>;
|
|
23
23
|
/**
|
|
24
24
|
* 后台勾选校验 —— **早拒**,绝不静默去重/静默丢弃。
|
|
25
25
|
* 拒绝理由(Codex 复审明确冻结):未知路径、重复路径、把 required 当 optional 勾选。
|
|
26
26
|
*/
|
|
27
|
-
export declare function assertSelectableFields(definition:
|
|
27
|
+
export declare function assertSelectableFields(definition: NotificationEventSourceDefinition, selectedFields: readonly string[]): void;
|
|
28
28
|
/**
|
|
29
29
|
* 推导**配置级**字段全集(fieldSetVersion 的输入)。
|
|
30
30
|
* 空 selectedFields 合法(结果仍含 required);空结果集非法(registry 声明有误)。
|
|
31
31
|
*/
|
|
32
|
-
export declare function deriveConfiguredFields(definition:
|
|
32
|
+
export declare function deriveConfiguredFields(definition: NotificationEventSourceDefinition, selectedFields: readonly string[]): readonly string[];
|
|
33
33
|
/**
|
|
34
34
|
* 推导**某条事件**的 includedFields。
|
|
35
35
|
* = configuredFields 中「适用于本 variant」的部分 ∪ 本 variant 的必填(再闭包一次)。
|
|
@@ -37,10 +37,12 @@ export declare function deriveConfiguredFields(definition: NodeEventSourceDefini
|
|
|
37
37
|
* 调用方(payload builder / DB 写入)**必须**用本函数的返回值,不得自造 includedFields —
|
|
38
38
|
* 否则「payload 多一个 restricted 字段 + includedFields 也多写一行」即可一起通过精确集校验。
|
|
39
39
|
*/
|
|
40
|
-
export declare function deriveIncludedFields(definition:
|
|
40
|
+
export declare function deriveIncludedFields(definition: NotificationEventSourceDefinition, configuredFields: readonly string[],
|
|
41
|
+
/** 变体键:node 型是 `scheduled_node`/`catchup`,state_change 型是 `upsert`/`cancel`。 */
|
|
42
|
+
variant: NotificationVariantKey): readonly string[];
|
|
41
43
|
/**
|
|
42
44
|
* 汇总一组字段所需的全部 authz 权限(AND 语义,去重后稳定排序)。
|
|
43
45
|
* 权限不足 → **整个 subscription 403**,不做字段级动态脱敏(设计文档 §9)。
|
|
44
46
|
*/
|
|
45
|
-
export declare function collectRequiredPermissions(definition:
|
|
47
|
+
export declare function collectRequiredPermissions(definition: NotificationEventSourceDefinition, fields: readonly string[]): readonly string[];
|
|
46
48
|
//# sourceMappingURL=field-set.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"field-set.d.ts","sourceRoot":"","sources":["../../src/notification-sources/field-set.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAEH,OAAO,EAIL,KAAK,2BAA2B,EAChC,KAAK,
|
|
1
|
+
{"version":3,"file":"field-set.d.ts","sourceRoot":"","sources":["../../src/notification-sources/field-set.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAEH,OAAO,EAIL,KAAK,2BAA2B,EAChC,KAAK,sBAAsB,EAC5B,MAAM,kBAAkB,CAAC;AAC1B,OAAO,KAAK,EAAE,iCAAiC,EAAE,MAAM,wBAAwB,CAAC;AAEhF,qBAAa,yBAA0B,SAAQ,KAAK;IAEhD,QAAQ,CAAC,MAAM,EACX,eAAe,GACf,iBAAiB,GACjB,yBAAyB,GACzB,6BAA6B,GAC7B,iBAAiB,GACjB,2BAA2B;gBANtB,MAAM,EACX,eAAe,GACf,iBAAiB,GACjB,yBAAyB,GACzB,6BAA6B,GAC7B,iBAAiB,GACjB,2BAA2B,EAC/B,OAAO,EAAE,MAAM;CAKlB;AAED,yDAAyD;AACzD,wBAAgB,iBAAiB,CAC/B,UAAU,EAAE,iCAAiC,GAC5C,WAAW,CAAC,MAAM,EAAE,2BAA2B,CAAC,CAKlD;AAwBD;;;GAGG;AACH,wBAAgB,sBAAsB,CACpC,UAAU,EAAE,iCAAiC,EAC7C,cAAc,EAAE,SAAS,MAAM,EAAE,GAChC,IAAI,CAmCN;AAED;;;GAGG;AACH,wBAAgB,sBAAsB,CACpC,UAAU,EAAE,iCAAiC,EAC7C,cAAc,EAAE,SAAS,MAAM,EAAE,GAChC,SAAS,MAAM,EAAE,CA0BnB;AAED;;;;;;GAMG;AACH,wBAAgB,oBAAoB,CAClC,UAAU,EAAE,iCAAiC,EAC7C,gBAAgB,EAAE,SAAS,MAAM,EAAE;AACnC,gFAAgF;AAChF,OAAO,EAAE,sBAAsB,GAC9B,SAAS,MAAM,EAAE,CAkFnB;AAED;;;GAGG;AACH,wBAAgB,0BAA0B,CACxC,UAAU,EAAE,iCAAiC,EAC7C,MAAM,EAAE,SAAS,MAAM,EAAE,GACxB,SAAS,MAAM,EAAE,CAgBnB"}
|
|
@@ -104,7 +104,9 @@ export function deriveConfiguredFields(definition, selectedFields) {
|
|
|
104
104
|
* 调用方(payload builder / DB 写入)**必须**用本函数的返回值,不得自造 includedFields —
|
|
105
105
|
* 否则「payload 多一个 restricted 字段 + includedFields 也多写一行」即可一起通过精确集校验。
|
|
106
106
|
*/
|
|
107
|
-
export function deriveIncludedFields(definition, configuredFields,
|
|
107
|
+
export function deriveIncludedFields(definition, configuredFields,
|
|
108
|
+
/** 变体键:node 型是 `scheduled_node`/`catchup`,state_change 型是 `upsert`/`cancel`。 */
|
|
109
|
+
variant) {
|
|
108
110
|
const index = indexSourceFields(definition);
|
|
109
111
|
const configured = new Set(configuredFields);
|
|
110
112
|
// fail-closed 前置:configuredFields 必须是**闭包完备**的合法配置集
|
|
@@ -138,11 +140,15 @@ export function deriveIncludedFields(definition, configuredFields, triggerMode)
|
|
|
138
140
|
if (!field) {
|
|
139
141
|
throw new NotificationFieldSetError("unknown_field", `unknown notification field path: ${path}`);
|
|
140
142
|
}
|
|
141
|
-
if (field.variants && !field.variants.includes(
|
|
143
|
+
if (field.variants && !field.variants.includes(variant))
|
|
142
144
|
continue;
|
|
143
145
|
applicable.push(path);
|
|
144
146
|
}
|
|
145
|
-
|
|
147
|
+
const variantSpec = definition.variants[variant];
|
|
148
|
+
if (!variantSpec) {
|
|
149
|
+
throw new NotificationFieldSetError("unknown_field", `unknown variant for ${definition.sourceId}: ${variant}`);
|
|
150
|
+
}
|
|
151
|
+
for (const path of variantSpec.requiredFields) {
|
|
146
152
|
if (!configured.has(path)) {
|
|
147
153
|
throw new NotificationFieldSetError("required_field_not_declared", `variant required field missing from configured set: ${path}`);
|
|
148
154
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"field-set.js","sourceRoot":"","sources":["../../src/notification-sources/field-set.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAEH,OAAO,EACL,6BAA6B,EAC7B,uBAAuB,EACvB,uBAAuB,GAGxB,MAAM,kBAAkB,CAAC;AAG1B,MAAM,OAAO,yBAA0B,SAAQ,KAAK;IAEvC;IADX,YACW,MAMsB,EAC/B,OAAe;QAEf,KAAK,CAAC,OAAO,CAAC,CAAC;QATN,WAAM,GAAN,MAAM,CAMgB;QAI/B,IAAI,CAAC,IAAI,GAAG,2BAA2B,CAAC;IAC1C,CAAC;CACF;AAED,yDAAyD;AACzD,MAAM,UAAU,iBAAiB,CAC/B,
|
|
1
|
+
{"version":3,"file":"field-set.js","sourceRoot":"","sources":["../../src/notification-sources/field-set.ts"],"names":[],"mappings":"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"}
|
|
@@ -9,5 +9,6 @@ export * from "./source-definition.js";
|
|
|
9
9
|
export * from "./field-set.js";
|
|
10
10
|
export * from "./post-performance-node.js";
|
|
11
11
|
export * from "./post-performance-node-runtime.js";
|
|
12
|
+
export * from "./publishing-calendar-directive.js";
|
|
12
13
|
export * from "./registry.js";
|
|
13
14
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/notification-sources/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,cAAc,kBAAkB,CAAC;AACjC,cAAc,wBAAwB,CAAC;AACvC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,4BAA4B,CAAC;AAC3C,cAAc,oCAAoC,CAAC;AACnD,cAAc,eAAe,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/notification-sources/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,cAAc,kBAAkB,CAAC;AACjC,cAAc,wBAAwB,CAAC;AACvC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,4BAA4B,CAAC;AAC3C,cAAc,oCAAoC,CAAC;AACnD,cAAc,oCAAoC,CAAC;AACnD,cAAc,eAAe,CAAC"}
|
|
@@ -9,5 +9,6 @@ export * from "./source-definition.js";
|
|
|
9
9
|
export * from "./field-set.js";
|
|
10
10
|
export * from "./post-performance-node.js";
|
|
11
11
|
export * from "./post-performance-node-runtime.js";
|
|
12
|
+
export * from "./publishing-calendar-directive.js";
|
|
12
13
|
export * from "./registry.js";
|
|
13
14
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/notification-sources/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,cAAc,kBAAkB,CAAC;AACjC,cAAc,wBAAwB,CAAC;AACvC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,4BAA4B,CAAC;AAC3C,cAAc,oCAAoC,CAAC;AACnD,cAAc,eAAe,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/notification-sources/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,cAAc,kBAAkB,CAAC;AACjC,cAAc,wBAAwB,CAAC;AACvC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,4BAA4B,CAAC;AAC3C,cAAc,oCAAoC,CAAC;AACnD,cAAc,oCAAoC,CAAC;AACnD,cAAc,eAAe,CAAC"}
|