@geoly-ai/social-hub-cli 0.3.40 → 0.3.42

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.
@@ -197,7 +197,12 @@ installed_apps 7 天。
197
197
  ## Watchlists
198
198
 
199
199
  ```bash
200
- social-hub intelligence watchlists-list [--campaign <uuid>]
200
+ social-hub intelligence watchlists-list [--campaign <uuid>] [--subreddit <name>] \
201
+ [--subreddit-query <text>] [--status active|paused|archived] [--brand <uuid>] \
202
+ [--industry-keys <k1,k2>] [--tag <tag>] \
203
+ [--monitor-state enabled|disabled|never] \
204
+ [--sort-by createdAt|subreddit|monitorLastObservedAt] [--sort-dir asc|desc] \
205
+ [-n 100] [--offset 0]
201
206
  social-hub intelligence watchlists-create -j '{"subreddit":"technology","tags":["core"]}'
202
207
  # 品牌洞察(VOC/SOV)用的监控池:显式绑定品牌 + 指定主行业
203
208
  social-hub intelligence watchlists-create -j '{"subreddit":"jewelry","primaryIndustryKey":"industry_pools__jewelry","brandIds":["<brand-uuid>"]}'
@@ -212,6 +217,174 @@ brand 池 > industry 池 > 其他,稳定排序;此前首匹配会把养号宠物
212
217
  品牌 VOC/SOV 扫描取"全局 + 绑定当前品牌"的池。做品牌洞察(如 Aporro)时创建
213
218
  watchlist 须显式传 `brandIds`。
214
219
 
220
+ **筛选一律在服务端**(分页是 `limit/offset` + `total`)。⛔ 不要"拉一页回来自己过滤":
221
+ 那只过滤到**当前页**,筛完看到 3 条会以为总共就 3 条。板块多时用 `--offset` 翻页。
222
+
223
+ **`--subreddit` 与 `--subreddit-query` 是两个谓词,别混**:前者**精确**匹配(板块详情
224
+ 聚合视图靠它拿到确定的那一行),后者是**子串**搜索(给"我想找个板块加监听"用)。
225
+ 两者都大小写不敏感、`r/` 前缀可省。`--tag` 是**精确包含**单个标签(不是子串)。
226
+ `--industry-keys` 逗号分隔可多个。`--brand` 只返回**显式绑定**该品牌的池,**不含全局池**
227
+ ——想要"这个品牌实际会扫到的池",还得再查一次不带 `--brand` 的全局池并合并。
228
+
229
+ ### 🔴 `--monitor-state` 是**三值**,不是布尔
230
+
231
+ 停止监听是**软停**(`enabled=false`,配置行和观察 ledger 都还在),所以"没在监听"
232
+ 在业务上是**两种截然不同**的状态,`--monitor-state` 必须分开表达:
233
+
234
+ | 值 | 含义 | 要做什么才能恢复监听 |
235
+ | ---------- | ---------------------- | ----------------------------------------------------------------- |
236
+ | `enabled` | 正在监听 | — |
237
+ | `disabled` | **加过监听、后来停了** | `monitors-enable` 直接重启;历史水位还在,不会重复报旧帖 |
238
+ | `never` | **压根没加过监听** | `monitors-enable` 会**新建**配置行;该板块历史帖会被当成新帖报一遍 |
239
+
240
+ ⛔ 不要把它当成 `--monitored true/false` 用——CLI 会直接报错。想要"所有没在监听的",
241
+ 得**分两次查**(`disabled` 一次、`never` 一次),因为对这两批要采取的动作不一样:
242
+ `disabled` 是"我停过它,要不要恢复";`never` 是"这个板块我还没碰过"。
243
+ ⚠️ 服务端也没有"合并版"的布尔筛选可用,别去猜一个 `--monitored`。
244
+
245
+ **权限**:`--monitor-state` 与 `--sort-by monitorLastObservedAt` 属**系统级运维配置**面,
246
+ 受限主体(client)传任一个都会 **403**;同一道门也把 `monitorLastObservedAt` 字段从
247
+ 受限主体的响应里摘掉了。排序也算旁路——按它排序等于把"在监听的"全顶到前面。
248
+
249
+ **排序**:`--sort-by createdAt|subreddit|monitorLastObservedAt`(缺省 `createdAt`)。
250
+ ⚠️ 不传 `--sort-dir` 时方向**随排序键而变**:`subreddit` 缺省 `asc`(字母序),
251
+ 其余缺省 `desc`(最新在前)。要稳定就显式传。
252
+ ⚠️ 分页仍是 offset,排序键的值在翻页期间变化时理论上会跨页漂移(当前规模几十行,可接受)。
253
+
254
+ ## 板块新帖监听(定时抓 `/new` → 飞书卡片 @ 负责人)
255
+
256
+ 系统级(与 watchlist 同源,**无 `-t/--team`**)。cron 每 12h 一轮:抓已启用板块的
257
+ `/new` listing → 入热帖库 → 写观察 ledger → 生成报告推飞书群并 @ 负责人。
258
+
259
+ ```bash
260
+ social-hub intelligence monitors-list [--enabled true|false] [--watchlist <uuid>]
261
+ social-hub intelligence monitors-enable --watchlist <uuid> [--fetch-limit 100]
262
+ social-hub intelligence monitors-disable --watchlist <uuid> [--purge]
263
+ social-hub intelligence monitors-run # 手工触发一轮(异步入队)
264
+ social-hub intelligence monitor-runs-list [--status degraded] [-n 20]
265
+ ```
266
+
267
+ **停止监听 = 软停**(`enabled=false`),保留观察 ledger,重启后已报告过的帖子不会重复报告。
268
+ `--purge` 是另一个动作:**连历史观察一起硬删**,只有要删掉整个 watchlist 时才需要
269
+ (monitor 配置对 watchlist 的外键是 RESTRICT,不先 purge 就删不掉)——purge 后重新监听
270
+ 会把该板块的历史帖子当成新帖再报一遍。
271
+
272
+ ### 关键词规则集(减少打扰)
273
+
274
+ 不配规则集 = **该板块的全部新帖都推给负责人**。规则集的作用是把噪声挡在通知之外。
275
+
276
+ ```bash
277
+ # 1) 建 draft(不会自动激活)
278
+ social-hub intelligence monitor-ruleset-create --monitor <uuid> --lookback 1440 \
279
+ --note "第一版:品牌词 + 竞品词" \
280
+ -j '[{"term":"aporro","scope":"both","matchMode":"word","weight":3},
281
+ {"term":"cold brew","scope":"body","matchMode":"phrase"}]'
282
+
283
+ # 2) 🔴 试跑:拿过去 24h 的历史帖子跑一遍,看会命中什么(只读,不发任何通知)
284
+ social-hub intelligence monitor-ruleset-dry-run --monitor <uuid> --rule-set <uuid> --lookback 1440
285
+
286
+ # 3) 改词(整批替换,只能改 draft)
287
+ social-hub intelligence monitor-ruleset-rules-set --monitor <uuid> --rule-set <uuid> -j '[...]'
288
+
289
+ # 4) 激活(当前 active 自动 retire)
290
+ social-hub intelligence monitor-ruleset-activate --monitor <uuid> --rule-set <uuid>
291
+
292
+ social-hub intelligence monitor-rulesets-list --monitor <uuid> [--status active]
293
+ social-hub intelligence monitor-ruleset-get --monitor <uuid> --rule-set <uuid>
294
+ social-hub intelligence monitor-ruleset-retire --monitor <uuid> --rule-set <uuid>
295
+ social-hub intelligence monitor-ruleset-delete --monitor <uuid> --rule-set <uuid> # 只能删 draft
296
+ social-hub intelligence monitor-brand-keyword-candidates --monitor <uuid> [--brands id1,id2]
297
+ ```
298
+
299
+ **必须知道的五条口径**:
300
+
301
+ 1. **active 之后不可原地修改,只能新建版本**(DB 触发器焊死)。改词的正确流程是
302
+ create draft → dry-run → activate,不是去改已激活的那一版。
303
+ 2. **激活/停用不会重发历史命中**。观察的水位在被评估的那一轮就推进了,**无论命中与否** ——
304
+ 否则调宽一次关键词,负责人就被历史帖子刷一次屏。要追溯旧帖需要显式 replay(尚未实现)。
305
+ 3. **停用 ≠ 静音**。retire 之后该监听回到「不设关键词门」,报告**恢复全量新帖**。
306
+ 要减少推送就改规则,不要指望 retire。
307
+ 4. **词边界**:`matchMode=word` 时 `art` **不会**命中 `earth`,但会命中 `art-house`。
308
+ CJK 没有词边界概念,`word` 在 CJK 上退化为子串(`咖啡` 能命中 `咖啡机`)。
309
+ 大小写 / 全半角 / 重音 / 合字都已归一(`Café`、`ART`、`find` 都能命中)。
310
+ 5. **正文拿不到 ≠ 不命中**。文字帖没采到正文时,带 `scope=body` 的规则会判
311
+ `indeterminate` —— 帖子**照发**,卡片上标注「正文缺失,关键词未能完整判定」。
312
+ link post 本来就没有正文,那是确定的不命中,不会被标出来。
313
+
314
+ **试跑结果怎么读**:先看 `sampled` —— 它是 0 时「0 命中」说明的是**库里没有样本**
315
+ (板块太冷 / 这段时间没采过),不是规则太窄,两者在结果列表里长得一模一样。
316
+ `termHitCounts` 里某个词命中了几乎所有帖子 ⇒ 该词过宽;`unusedTerms` 里的词一次都没命中
317
+ ⇒ 多半拼错或写法不对。
318
+
319
+ **品牌词导入是快照,不是订阅**:`monitor-brand-keyword-candidates` 只返回**候选**,
320
+ 拿到后自己塞进 draft。导入之后品牌词再改,已激活的规则集**不会**跟着变 —— 这是刻意的:
321
+ watchlist 与品牌是多对多,若监听直接读品牌词并集,「给某品牌加一个词」或「把品牌绑到
322
+ 这个 watchlist」都会让**监听范围悄然扩大**,而运营没做过任何监听侧的动作。
323
+
324
+ **卡片上「未发现新帖」要分三种读法**(0168 起卡片会自己区分,别再一律当成「没动静」):
325
+ 覆盖完整且没被过滤 ⇒ 真的没新帖;板块疑似截断 / 拿不到分页游标 ⇒ **采集没抓全**,
326
+ 按采集问题排查;全被关键词门筛掉 ⇒ 去看规则集。
327
+
328
+ ### 近义词扩展(0169)
329
+
330
+ 🔴 **四步缺一不可,少一步词就没生效**:
331
+
332
+ ```bash
333
+ # 1. 离线生成候选(或 monitor-expansion-create 手工录词)。产出恒为 proposed
334
+ social-hub intelligence monitor-expansion-generate --monitor <uuid> --term espresso --language en
335
+
336
+ # 2. 批准 —— 批准之后内容就冻住了,只能另提新候选
337
+ social-hub intelligence monitor-expansion-approve --monitor <uuid> --expansion-set <uuid> --note "看过了"
338
+
339
+ # 3. 物化:把 approved 的词**复制**进某个 draft 规则集(与品牌词导入同一手法)
340
+ social-hub intelligence monitor-ruleset-apply-expansions --monitor <uuid> --rule-set <draft-uuid>
341
+
342
+ # 4. 激活 —— 到这一步才真正生效
343
+ social-hub intelligence monitor-ruleset-activate --monitor <uuid> --rule-set <draft-uuid>
344
+
345
+ social-hub intelligence monitor-expansions-list --monitor <uuid> --status proposed # 待审队列
346
+ social-hub intelligence monitor-expansion-retire --monitor <uuid> --expansion-set <uuid>
347
+ ```
348
+
349
+ ⛔ **生产匹配路径上没有任何即时展开**。approved 的词是被**复制**成真实规则行的,
350
+ 运行时根本没有可展开的东西。理由:同一原词在不同时间可能得到不同词集(模型会漂、
351
+ prompt 会改),即时展开会让「昨天没命中、今天命中了」**无法解释** —— 而这个监听的
352
+ 全部价值就建立在「能说清为什么命中」上。
353
+
354
+ ⚠️ **否决与下架是两件事**:`proposed → retired` 是**否决**,那批词**永远**进不了
355
+ active 规则集(数据库激活闸会拦);`approved → retired` 是**下架**,只是不再供新的物化
356
+ 使用,已经复制进规则集的词不受影响 —— 它们拿的是拷贝。两者只有 `approvedAt` 分得开。
357
+
358
+ ⚠️ 物化时**同形词一律跳过**,保住你手工填的那条(它的权重/作用域是你的本意)。
359
+ 扩展词只**新增**、从不改写或删除任何既有规则行。
360
+
361
+ ### 轻量标签(0169)
362
+
363
+ 卡片上会多一行 `🏷️ 求推荐 / 对比 / 评测`。**有就显示,没有不占位**。
364
+
365
+ ```bash
366
+ social-hub intelligence monitor-label-spec-create \
367
+ --taxonomy monitor-intent-v1 --keys recommendation_request,comparison,review \
368
+ --prompt-version v1
369
+ social-hub intelligence monitor-label-spec-activate --spec <uuid>
370
+ social-hub intelligence monitor-label-specs-list [--status active]
371
+ social-hub intelligence monitor-label-spec-retire --spec <uuid>
372
+ ```
373
+
374
+ 🔴 **标签挂了不会让新帖提醒发不出去**。标注有独立的时间预算,且给 finalize 留了余量 ——
375
+ 离 run 截止太近时它**一个模型调用都不发**,直接跳过。任何失败(provider 挂、解析失败、
376
+ 写库失败)都只是让卡片少一行标签。
377
+
378
+ ⚠️ `taxonomyVersion` **全局唯一**:换 prompt / 换模型 / 加 key 都要起一个新值。
379
+ 标签行的唯一键带的是它 —— 复用同一个值会让新旧标签互相覆盖,
380
+ 「这个标签是哪版规则打的」当场失去答案。
381
+
382
+ ⚠️ 停用当前 spec = **标签功能整体关闭**(卡片不再显示标签行),新帖提醒本身不受影响。
383
+
384
+ ⚠️ 标签**不写**帖子的全局 `postIntent` 字段。那是全局列,一条帖子被多个监听引用只有
385
+ 一份值,直接写会让监听之间互相覆盖。既有 `postIntent` 只作**只读兜底**(模型没配时拿来
386
+ 显示),⛔ 不反向写回。
387
+
215
388
  ## 热帖
216
389
 
217
390
  ```bash
@@ -41,6 +41,7 @@ social-hub reddit stats -t <team-id> --aggregate --range 30
41
41
  social-hub reddit stats -t <team-id> --aggregate --range all
42
42
  social-hub reddit stats -t <team-id> --brand <uuid> --aggregate --range 90
43
43
  social-hub reddit stats -t <team-id> --ops-status risk --contains-brand-keyword true --primary-product "PLAUD Note"
44
+ social-hub reddit list -t <team-id> --seq-no-min 100 --seq-no-max 200
44
45
  social-hub reddit refresh-status -t <team-id>
45
46
  social-hub reddit refresh -t <team-id> --snapshot <snapshotId>
46
47
  social-hub reddit refresh-progress -t <team-id> --batch <batchId>
@@ -52,6 +53,8 @@ social-hub reddit refresh-logs -t <team-id> -n 20
52
53
 
53
54
  **`opsStatus` 约定(canonical,勿传中文):** `normal` | `risk` | `deleted` | `abnormal` | `banned` | `unknown`。⚠️ 把它改成 `deleted` / `banned` 时**必须**同时带必选项 `repostRequired`(见下方「需补发」),否则 400。列表与 stats 均支持 `--ops-status`;stats 同样支持 `--contains-brand-keyword` 与 `--primary-product`,筛选口径与 Web 帖子表现页一致。
54
55
 
56
+ **序列号范围(`--seq-no-min` / `--seq-no-max`,列表与 stats 都支持):** 闭区间 `min <= seqNo <= max`,两端各自可省(省掉 = 该端不限)。⚠️ 只要给了任一端,**`seqNo` 为空的帖会被排除**(没有编号的帖不属于任何区间);`min > max` 是 400,不是空结果。
57
+
55
58
  ## 单条写入与更新
56
59
 
57
60
  ```bash
@@ -1,8 +0,0 @@
1
- import type { Command } from "commander";
2
- /**
3
- * 板块运营数据 Phase 1 —— 热帖风格标注(subreddit_post_style_labels)CLI 读 + 单人复核。
4
- * SDK 未覆盖(同 subreddit-style/annotations 域约定,HTTP 走 hubRequest)。复核 user-only、
5
- * 单人(非四眼);accept 可修正 primary/secondary/other,写一条 team 级 human 行(不改 LLM 行)。
6
- */
7
- export declare function registerSubredditPostStyleCommands(program: Command): void;
8
- //# sourceMappingURL=register-subreddit-post-style.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"register-subreddit-post-style.d.ts","sourceRoot":"","sources":["../src/register-subreddit-post-style.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAMzC;;;;GAIG;AACH,wBAAgB,kCAAkC,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CA2LzE"}
@@ -1,161 +0,0 @@
1
- import { hubRequest, resolveTeamId } from "./client.js";
2
- import { assertApplyOrDryRun } from "./dry-run.js";
3
- import { printResult, withCliErrorBoundary } from "./output.js";
4
- import { withPermissionGates } from "./permission-runner.js";
5
- /**
6
- * 板块运营数据 Phase 1 —— 热帖风格标注(subreddit_post_style_labels)CLI 读 + 单人复核。
7
- * SDK 未覆盖(同 subreddit-style/annotations 域约定,HTTP 走 hubRequest)。复核 user-only、
8
- * 单人(非四眼);accept 可修正 primary/secondary/other,写一条 team 级 human 行(不改 LLM 行)。
9
- */
10
- export function registerSubredditPostStyleCommands(program) {
11
- const group = program
12
- .command("subreddit-post-styles")
13
- .description("Reddit 热帖风格标注(风格标签底座 Phase 1;分析数据,非发布 gate)");
14
- group
15
- .command("list")
16
- .description("GET /v1/teams/:teamId/subreddit-post-styles(本团队行+全局行;teamId=null 为全局)")
17
- .requiredOption("--subreddit <name>", "板块名")
18
- .option("-t, --team <teamId>", "Team UUID(缺省用当前 context)")
19
- .option("--taxonomy <v>", "taxonomyVersion 过滤")
20
- .option("--source <s>", "llm | human")
21
- .option("--review-status <s>", "proposed | accepted | rejected")
22
- .option("--no-global", "只看本团队行(排除全局)")
23
- .option("-n, --limit <n>", "limit", "50")
24
- .option("--offset <n>", "offset", "0")
25
- .action(async (opts) => {
26
- await withCliErrorBoundary(async () => {
27
- const teamId = resolveTeamId(opts.team);
28
- await withPermissionGates({
29
- command: "subreddit-post-styles list",
30
- gates: [{ resource: "subredditPostAnnotation", action: "read" }],
31
- teamId,
32
- }, async () => {
33
- const params = new URLSearchParams();
34
- params.set("subreddit", opts.subreddit);
35
- if (opts.taxonomy)
36
- params.set("taxonomyVersion", opts.taxonomy);
37
- if (opts.source)
38
- params.set("source", opts.source);
39
- if (opts.reviewStatus)
40
- params.set("reviewStatus", opts.reviewStatus);
41
- if (opts.global === false)
42
- params.set("includeGlobal", "false");
43
- params.set("limit", String(opts.limit));
44
- params.set("offset", String(opts.offset));
45
- printResult(await hubRequest(`/v1/teams/${encodeURIComponent(teamId)}/subreddit-post-styles?${params.toString()}`));
46
- });
47
- });
48
- });
49
- group
50
- .command("summary")
51
- .description("GET .../subreddit-post-styles/summary — 风格分布 + 覆盖率 + 表现关联(posted_at 窗口;human>llm、team>global)")
52
- .requiredOption("--subreddit <name>", "板块名")
53
- .option("-t, --team <teamId>", "Team UUID(缺省用当前 context)")
54
- .option("--taxonomy <v>", "taxonomyVersion 过滤")
55
- .option("--since <iso>", "posted_at 窗口起(ISO)")
56
- .option("--until <iso>", "posted_at 窗口止(ISO)")
57
- .option("--no-global", "只看本团队行(排除全局)")
58
- .action(async (opts) => {
59
- await withCliErrorBoundary(async () => {
60
- const teamId = resolveTeamId(opts.team);
61
- await withPermissionGates({
62
- command: "subreddit-post-styles summary",
63
- gates: [{ resource: "subredditPostAnnotation", action: "read" }],
64
- teamId,
65
- }, async () => {
66
- const params = new URLSearchParams();
67
- params.set("subreddit", opts.subreddit);
68
- if (opts.taxonomy)
69
- params.set("taxonomyVersion", opts.taxonomy);
70
- if (opts.since)
71
- params.set("since", opts.since);
72
- if (opts.until)
73
- params.set("until", opts.until);
74
- if (opts.global === false)
75
- params.set("includeGlobal", "false");
76
- printResult(await hubRequest(`/v1/teams/${encodeURIComponent(teamId)}/subreddit-post-styles/summary?${params.toString()}`));
77
- });
78
- });
79
- });
80
- group
81
- .command("accept")
82
- .description("POST .../subreddit-post-styles/accept — 单人接受一条 LLM proposed 标签(写 team 级 human accepted 行;可修正)")
83
- .requiredOption("--label-id <uuid>", "被接受的 LLM proposed 标签 id")
84
- .option("-t, --team <teamId>", "Team UUID(缺省用当前 context)")
85
- .option("--primary-style <s>", "修正主风格(省略则原样采纳)")
86
- .option("--secondary-styles <csv>", "修正副风格(逗号分隔,≤3)")
87
- .option("--other-label <text>", "primary=other 时的自由标签")
88
- .option("--note <text>", "备注(≤2000)")
89
- .option("--dry-run", "预览", false)
90
- .option("--apply", "执行写入", false)
91
- .action(async (opts) => {
92
- await withCliErrorBoundary(async () => {
93
- const teamId = resolveTeamId(opts.team);
94
- const body = { labelId: opts.labelId };
95
- if (opts.primaryStyle)
96
- body.primaryStyle = opts.primaryStyle;
97
- if (opts.secondaryStyles)
98
- body.secondaryStyles = String(opts.secondaryStyles)
99
- .split(",")
100
- .map((s) => s.trim())
101
- .filter(Boolean);
102
- if (opts.otherLabel !== undefined)
103
- body.otherLabel = opts.otherLabel;
104
- if (opts.note)
105
- body.note = opts.note;
106
- await withPermissionGates({
107
- command: "subreddit-post-styles accept",
108
- gates: [
109
- { resource: "subredditPostAnnotation", action: "create" },
110
- { resource: "subredditPostAnnotation", action: "update" },
111
- ],
112
- teamId,
113
- userOnly: true,
114
- }, async () => {
115
- if (!assertApplyOrDryRun(opts, {
116
- command: "subreddit-post-styles accept",
117
- danger: "write",
118
- summary: { teamId, ...body },
119
- })) {
120
- return;
121
- }
122
- printResult(await hubRequest(`/v1/teams/${encodeURIComponent(teamId)}/subreddit-post-styles/accept`, { method: "POST", body }));
123
- });
124
- });
125
- });
126
- group
127
- .command("reject")
128
- .description("POST .../subreddit-post-styles/reject — 单人拒绝一条 LLM proposed 标签(写 team 级 human rejected 行)")
129
- .requiredOption("--label-id <uuid>", "被拒绝的 LLM proposed 标签 id")
130
- .option("-t, --team <teamId>", "Team UUID(缺省用当前 context)")
131
- .option("--note <text>", "备注(≤2000)")
132
- .option("--dry-run", "预览", false)
133
- .option("--apply", "执行写入", false)
134
- .action(async (opts) => {
135
- await withCliErrorBoundary(async () => {
136
- const teamId = resolveTeamId(opts.team);
137
- const body = { labelId: opts.labelId };
138
- if (opts.note)
139
- body.note = opts.note;
140
- await withPermissionGates({
141
- command: "subreddit-post-styles reject",
142
- gates: [
143
- { resource: "subredditPostAnnotation", action: "create" },
144
- { resource: "subredditPostAnnotation", action: "update" },
145
- ],
146
- teamId,
147
- userOnly: true,
148
- }, async () => {
149
- if (!assertApplyOrDryRun(opts, {
150
- command: "subreddit-post-styles reject",
151
- danger: "write",
152
- summary: { teamId, ...body },
153
- })) {
154
- return;
155
- }
156
- printResult(await hubRequest(`/v1/teams/${encodeURIComponent(teamId)}/subreddit-post-styles/reject`, { method: "POST", body }));
157
- });
158
- });
159
- });
160
- }
161
- //# sourceMappingURL=register-subreddit-post-style.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"register-subreddit-post-style.js","sourceRoot":"","sources":["../src/register-subreddit-post-style.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,UAAU,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AACxD,OAAO,EAAE,mBAAmB,EAAE,MAAM,cAAc,CAAC;AACnD,OAAO,EAAE,WAAW,EAAE,oBAAoB,EAAE,MAAM,aAAa,CAAC;AAChE,OAAO,EAAE,mBAAmB,EAAE,MAAM,wBAAwB,CAAC;AAE7D;;;;GAIG;AACH,MAAM,UAAU,kCAAkC,CAAC,OAAgB;IACjE,MAAM,KAAK,GAAG,OAAO;SAClB,OAAO,CAAC,uBAAuB,CAAC;SAChC,WAAW,CACV,6CAA6C,CAC9C,CAAC;IAEJ,KAAK;SACF,OAAO,CAAC,MAAM,CAAC;SACf,WAAW,CACV,uEAAuE,CACxE;SACA,cAAc,CAAC,oBAAoB,EAAE,KAAK,CAAC;SAC3C,MAAM,CAAC,qBAAqB,EAAE,0BAA0B,CAAC;SACzD,MAAM,CAAC,gBAAgB,EAAE,oBAAoB,CAAC;SAC9C,MAAM,CAAC,cAAc,EAAE,aAAa,CAAC;SACrC,MAAM,CAAC,qBAAqB,EAAE,gCAAgC,CAAC;SAC/D,MAAM,CAAC,aAAa,EAAE,cAAc,CAAC;SACrC,MAAM,CAAC,iBAAiB,EAAE,OAAO,EAAE,IAAI,CAAC;SACxC,MAAM,CAAC,cAAc,EAAE,QAAQ,EAAE,GAAG,CAAC;SACrC,MAAM,CAAC,KAAK,EAAE,IAAI,EAAE,EAAE;QACrB,MAAM,oBAAoB,CAAC,KAAK,IAAI,EAAE;YACpC,MAAM,MAAM,GAAG,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YACxC,MAAM,mBAAmB,CACvB;gBACE,OAAO,EAAE,4BAA4B;gBACrC,KAAK,EAAE,CAAC,EAAE,QAAQ,EAAE,yBAAyB,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC;gBAChE,MAAM;aACP,EACD,KAAK,IAAI,EAAE;gBACT,MAAM,MAAM,GAAG,IAAI,eAAe,EAAE,CAAC;gBACrC,MAAM,CAAC,GAAG,CAAC,WAAW,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC;gBACxC,IAAI,IAAI,CAAC,QAAQ;oBAAE,MAAM,CAAC,GAAG,CAAC,iBAAiB,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC;gBAChE,IAAI,IAAI,CAAC,MAAM;oBAAE,MAAM,CAAC,GAAG,CAAC,QAAQ,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;gBACnD,IAAI,IAAI,CAAC,YAAY;oBACnB,MAAM,CAAC,GAAG,CAAC,cAAc,EAAE,IAAI,CAAC,YAAY,CAAC,CAAC;gBAChD,IAAI,IAAI,CAAC,MAAM,KAAK,KAAK;oBAAE,MAAM,CAAC,GAAG,CAAC,eAAe,EAAE,OAAO,CAAC,CAAC;gBAChE,MAAM,CAAC,GAAG,CAAC,OAAO,EAAE,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;gBACxC,MAAM,CAAC,GAAG,CAAC,QAAQ,EAAE,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC;gBAC1C,WAAW,CACT,MAAM,UAAU,CACd,aAAa,kBAAkB,CAAC,MAAM,CAAC,0BAA0B,MAAM,CAAC,QAAQ,EAAE,EAAE,CACrF,CACF,CAAC;YACJ,CAAC,CACF,CAAC;QACJ,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEL,KAAK;SACF,OAAO,CAAC,SAAS,CAAC;SAClB,WAAW,CACV,+FAA+F,CAChG;SACA,cAAc,CAAC,oBAAoB,EAAE,KAAK,CAAC;SAC3C,MAAM,CAAC,qBAAqB,EAAE,0BAA0B,CAAC;SACzD,MAAM,CAAC,gBAAgB,EAAE,oBAAoB,CAAC;SAC9C,MAAM,CAAC,eAAe,EAAE,oBAAoB,CAAC;SAC7C,MAAM,CAAC,eAAe,EAAE,oBAAoB,CAAC;SAC7C,MAAM,CAAC,aAAa,EAAE,cAAc,CAAC;SACrC,MAAM,CAAC,KAAK,EAAE,IAAI,EAAE,EAAE;QACrB,MAAM,oBAAoB,CAAC,KAAK,IAAI,EAAE;YACpC,MAAM,MAAM,GAAG,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YACxC,MAAM,mBAAmB,CACvB;gBACE,OAAO,EAAE,+BAA+B;gBACxC,KAAK,EAAE,CAAC,EAAE,QAAQ,EAAE,yBAAyB,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC;gBAChE,MAAM;aACP,EACD,KAAK,IAAI,EAAE;gBACT,MAAM,MAAM,GAAG,IAAI,eAAe,EAAE,CAAC;gBACrC,MAAM,CAAC,GAAG,CAAC,WAAW,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC;gBACxC,IAAI,IAAI,CAAC,QAAQ;oBAAE,MAAM,CAAC,GAAG,CAAC,iBAAiB,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC;gBAChE,IAAI,IAAI,CAAC,KAAK;oBAAE,MAAM,CAAC,GAAG,CAAC,OAAO,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC;gBAChD,IAAI,IAAI,CAAC,KAAK;oBAAE,MAAM,CAAC,GAAG,CAAC,OAAO,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC;gBAChD,IAAI,IAAI,CAAC,MAAM,KAAK,KAAK;oBAAE,MAAM,CAAC,GAAG,CAAC,eAAe,EAAE,OAAO,CAAC,CAAC;gBAChE,WAAW,CACT,MAAM,UAAU,CACd,aAAa,kBAAkB,CAAC,MAAM,CAAC,kCAAkC,MAAM,CAAC,QAAQ,EAAE,EAAE,CAC7F,CACF,CAAC;YACJ,CAAC,CACF,CAAC;QACJ,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEL,KAAK;SACF,OAAO,CAAC,QAAQ,CAAC;SACjB,WAAW,CACV,+FAA+F,CAChG;SACA,cAAc,CAAC,mBAAmB,EAAE,yBAAyB,CAAC;SAC9D,MAAM,CAAC,qBAAqB,EAAE,0BAA0B,CAAC;SACzD,MAAM,CAAC,qBAAqB,EAAE,gBAAgB,CAAC;SAC/C,MAAM,CAAC,0BAA0B,EAAE,gBAAgB,CAAC;SACpD,MAAM,CAAC,sBAAsB,EAAE,sBAAsB,CAAC;SACtD,MAAM,CAAC,eAAe,EAAE,WAAW,CAAC;SACpC,MAAM,CAAC,WAAW,EAAE,IAAI,EAAE,KAAK,CAAC;SAChC,MAAM,CAAC,SAAS,EAAE,MAAM,EAAE,KAAK,CAAC;SAChC,MAAM,CAAC,KAAK,EAAE,IAAI,EAAE,EAAE;QACrB,MAAM,oBAAoB,CAAC,KAAK,IAAI,EAAE;YACpC,MAAM,MAAM,GAAG,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YACxC,MAAM,IAAI,GAA4B,EAAE,OAAO,EAAE,IAAI,CAAC,OAAO,EAAE,CAAC;YAChE,IAAI,IAAI,CAAC,YAAY;gBAAE,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,YAAY,CAAC;YAC7D,IAAI,IAAI,CAAC,eAAe;gBACtB,IAAI,CAAC,eAAe,GAAG,MAAM,CAAC,IAAI,CAAC,eAAe,CAAC;qBAChD,KAAK,CAAC,GAAG,CAAC;qBACV,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;qBACpB,MAAM,CAAC,OAAO,CAAC,CAAC;YACrB,IAAI,IAAI,CAAC,UAAU,KAAK,SAAS;gBAAE,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,UAAU,CAAC;YACrE,IAAI,IAAI,CAAC,IAAI;gBAAE,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;YACrC,MAAM,mBAAmB,CACvB;gBACE,OAAO,EAAE,8BAA8B;gBACvC,KAAK,EAAE;oBACL,EAAE,QAAQ,EAAE,yBAAyB,EAAE,MAAM,EAAE,QAAQ,EAAE;oBACzD,EAAE,QAAQ,EAAE,yBAAyB,EAAE,MAAM,EAAE,QAAQ,EAAE;iBAC1D;gBACD,MAAM;gBACN,QAAQ,EAAE,IAAI;aACf,EACD,KAAK,IAAI,EAAE;gBACT,IACE,CAAC,mBAAmB,CAAC,IAAI,EAAE;oBACzB,OAAO,EAAE,8BAA8B;oBACvC,MAAM,EAAE,OAAO;oBACf,OAAO,EAAE,EAAE,MAAM,EAAE,GAAG,IAAI,EAAE;iBAC7B,CAAC,EACF,CAAC;oBACD,OAAO;gBACT,CAAC;gBACD,WAAW,CACT,MAAM,UAAU,CACd,aAAa,kBAAkB,CAAC,MAAM,CAAC,+BAA+B,EACtE,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,CACzB,CACF,CAAC;YACJ,CAAC,CACF,CAAC;QACJ,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEL,KAAK;SACF,OAAO,CAAC,QAAQ,CAAC;SACjB,WAAW,CACV,2FAA2F,CAC5F;SACA,cAAc,CAAC,mBAAmB,EAAE,yBAAyB,CAAC;SAC9D,MAAM,CAAC,qBAAqB,EAAE,0BAA0B,CAAC;SACzD,MAAM,CAAC,eAAe,EAAE,WAAW,CAAC;SACpC,MAAM,CAAC,WAAW,EAAE,IAAI,EAAE,KAAK,CAAC;SAChC,MAAM,CAAC,SAAS,EAAE,MAAM,EAAE,KAAK,CAAC;SAChC,MAAM,CAAC,KAAK,EAAE,IAAI,EAAE,EAAE;QACrB,MAAM,oBAAoB,CAAC,KAAK,IAAI,EAAE;YACpC,MAAM,MAAM,GAAG,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YACxC,MAAM,IAAI,GAA4B,EAAE,OAAO,EAAE,IAAI,CAAC,OAAO,EAAE,CAAC;YAChE,IAAI,IAAI,CAAC,IAAI;gBAAE,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;YACrC,MAAM,mBAAmB,CACvB;gBACE,OAAO,EAAE,8BAA8B;gBACvC,KAAK,EAAE;oBACL,EAAE,QAAQ,EAAE,yBAAyB,EAAE,MAAM,EAAE,QAAQ,EAAE;oBACzD,EAAE,QAAQ,EAAE,yBAAyB,EAAE,MAAM,EAAE,QAAQ,EAAE;iBAC1D;gBACD,MAAM;gBACN,QAAQ,EAAE,IAAI;aACf,EACD,KAAK,IAAI,EAAE;gBACT,IACE,CAAC,mBAAmB,CAAC,IAAI,EAAE;oBACzB,OAAO,EAAE,8BAA8B;oBACvC,MAAM,EAAE,OAAO;oBACf,OAAO,EAAE,EAAE,MAAM,EAAE,GAAG,IAAI,EAAE;iBAC7B,CAAC,EACF,CAAC;oBACD,OAAO;gBACT,CAAC;gBACD,WAAW,CACT,MAAM,UAAU,CACd,aAAa,kBAAkB,CAAC,MAAM,CAAC,+BAA+B,EACtE,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,CACzB,CACF,CAAC;YACJ,CAAC,CACF,CAAC;QACJ,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;AACP,CAAC"}