@leemour/cli-messaging 0.97.0 → 0.98.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (193) hide show
  1. package/README.md +2 -1
  2. package/dist/cli/bot/admins.d.ts +10 -0
  3. package/dist/cli/bot/admins.d.ts.map +1 -0
  4. package/dist/cli/bot/admins.js +114 -0
  5. package/dist/cli/bot/admins.js.map +1 -0
  6. package/dist/cli/bot/command.d.ts.map +1 -1
  7. package/dist/cli/bot/command.js +9 -13
  8. package/dist/cli/bot/command.js.map +1 -1
  9. package/dist/cli/bot/context.d.ts +2 -0
  10. package/dist/cli/bot/context.d.ts.map +1 -1
  11. package/dist/cli/bot/context.js +7 -0
  12. package/dist/cli/bot/context.js.map +1 -1
  13. package/dist/cli/bot/messages.d.ts.map +1 -1
  14. package/dist/cli/bot/messages.js +20 -10
  15. package/dist/cli/bot/messages.js.map +1 -1
  16. package/dist/cli/bot/port.d.ts +35 -2
  17. package/dist/cli/bot/port.d.ts.map +1 -1
  18. package/dist/cli/bot/port.js.map +1 -1
  19. package/dist/cli/config-command.js +1 -1
  20. package/dist/cli/config-command.js.map +1 -1
  21. package/dist/cli/deadline.d.ts.map +1 -1
  22. package/dist/cli/deadline.js +11 -2
  23. package/dist/cli/deadline.js.map +1 -1
  24. package/dist/cli/index.d.ts +4 -2
  25. package/dist/cli/index.d.ts.map +1 -1
  26. package/dist/cli/index.js +1 -0
  27. package/dist/cli/index.js.map +1 -1
  28. package/dist/cli/messenger/admin-moderation-command.js +2 -2
  29. package/dist/cli/messenger/admin-moderation-command.js.map +1 -1
  30. package/dist/cli/messenger/context.d.ts +18 -2
  31. package/dist/cli/messenger/context.d.ts.map +1 -1
  32. package/dist/cli/messenger/context.js +30 -8
  33. package/dist/cli/messenger/context.js.map +1 -1
  34. package/dist/cli/messenger/download-command.d.ts.map +1 -1
  35. package/dist/cli/messenger/download-command.js +97 -30
  36. package/dist/cli/messenger/download-command.js.map +1 -1
  37. package/dist/cli/messenger/guard-commands.js +3 -3
  38. package/dist/cli/messenger/guard-commands.js.map +1 -1
  39. package/dist/cli/messenger/port.d.ts +12 -1
  40. package/dist/cli/messenger/port.d.ts.map +1 -1
  41. package/dist/cli/messenger/port.js.map +1 -1
  42. package/dist/cli/messenger/stored.d.ts +3 -2
  43. package/dist/cli/messenger/stored.d.ts.map +1 -1
  44. package/dist/cli/messenger/stored.js +34 -4
  45. package/dist/cli/messenger/stored.js.map +1 -1
  46. package/dist/cli/messenger/watch-command.d.ts +2 -1
  47. package/dist/cli/messenger/watch-command.d.ts.map +1 -1
  48. package/dist/cli/messenger/watch-command.js +11 -2
  49. package/dist/cli/messenger/watch-command.js.map +1 -1
  50. package/dist/domain/capabilities.d.ts +3 -0
  51. package/dist/domain/capabilities.d.ts.map +1 -1
  52. package/dist/kit/contract.d.ts +37 -0
  53. package/dist/kit/contract.d.ts.map +1 -0
  54. package/dist/kit/contract.js +408 -0
  55. package/dist/kit/contract.js.map +1 -0
  56. package/dist/kit/fake.d.ts +16 -0
  57. package/dist/kit/fake.d.ts.map +1 -0
  58. package/dist/kit/fake.js +457 -0
  59. package/dist/kit/fake.js.map +1 -0
  60. package/dist/kit/index.d.ts +4 -0
  61. package/dist/kit/index.d.ts.map +1 -0
  62. package/dist/kit/index.js +4 -0
  63. package/dist/kit/index.js.map +1 -0
  64. package/dist/kit/seed.d.ts +38 -0
  65. package/dist/kit/seed.d.ts.map +1 -0
  66. package/dist/kit/seed.js +83 -0
  67. package/dist/kit/seed.js.map +1 -0
  68. package/dist/mcp/resources.d.ts +6 -1
  69. package/dist/mcp/resources.d.ts.map +1 -1
  70. package/dist/mcp/resources.js +14 -5
  71. package/dist/mcp/resources.js.map +1 -1
  72. package/dist/mcp/server.d.ts.map +1 -1
  73. package/dist/mcp/server.js +3 -0
  74. package/dist/mcp/server.js.map +1 -1
  75. package/dist/mcp/tool.d.ts +12 -2
  76. package/dist/mcp/tool.d.ts.map +1 -1
  77. package/dist/mcp/tool.js +15 -8
  78. package/dist/mcp/tool.js.map +1 -1
  79. package/dist/mcp/tools/chats.js +3 -3
  80. package/dist/mcp/tools/chats.js.map +1 -1
  81. package/dist/mcp/tools/contacts.js +3 -3
  82. package/dist/mcp/tools/contacts.js.map +1 -1
  83. package/dist/mcp/tools/inbox.d.ts.map +1 -1
  84. package/dist/mcp/tools/inbox.js +3 -4
  85. package/dist/mcp/tools/inbox.js.map +1 -1
  86. package/dist/mcp/tools/messages.d.ts.map +1 -1
  87. package/dist/mcp/tools/messages.js +5 -8
  88. package/dist/mcp/tools/messages.js.map +1 -1
  89. package/dist/mcp/tools/review.d.ts.map +1 -1
  90. package/dist/mcp/tools/review.js +3 -4
  91. package/dist/mcp/tools/review.js.map +1 -1
  92. package/dist/moderation/check.d.ts +3 -1
  93. package/dist/moderation/check.d.ts.map +1 -1
  94. package/dist/moderation/check.js +3 -2
  95. package/dist/moderation/check.js.map +1 -1
  96. package/dist/parity/audit.d.ts +11 -9
  97. package/dist/parity/audit.d.ts.map +1 -1
  98. package/dist/parity/audit.js +63 -46
  99. package/dist/parity/audit.js.map +1 -1
  100. package/dist/parity/bin.js +17 -8
  101. package/dist/parity/bin.js.map +1 -1
  102. package/dist/parity/catalogue.d.ts.map +1 -1
  103. package/dist/parity/catalogue.js +7 -1
  104. package/dist/parity/catalogue.js.map +1 -1
  105. package/dist/parity/manifest.d.ts +19 -12
  106. package/dist/parity/manifest.d.ts.map +1 -1
  107. package/dist/parity/manifest.js +60 -37
  108. package/dist/parity/manifest.js.map +1 -1
  109. package/dist/parity/pages.d.ts +3 -3
  110. package/dist/parity/pages.d.ts.map +1 -1
  111. package/dist/parity/pages.js +4 -5
  112. package/dist/parity/pages.js.map +1 -1
  113. package/dist/parity/seed.d.ts +11 -0
  114. package/dist/parity/seed.d.ts.map +1 -0
  115. package/dist/parity/seed.js +99 -0
  116. package/dist/parity/seed.js.map +1 -0
  117. package/dist/parity/wording.d.ts +4 -3
  118. package/dist/parity/wording.d.ts.map +1 -1
  119. package/dist/parity/wording.js +21 -10
  120. package/dist/parity/wording.js.map +1 -1
  121. package/dist/search/correct.d.ts +25 -0
  122. package/dist/search/correct.d.ts.map +1 -0
  123. package/dist/search/correct.js +65 -0
  124. package/dist/search/correct.js.map +1 -0
  125. package/dist/search/query.d.ts +5 -2
  126. package/dist/search/query.d.ts.map +1 -1
  127. package/dist/search/query.js +5 -4
  128. package/dist/search/query.js.map +1 -1
  129. package/dist/search/search.d.ts +27 -0
  130. package/dist/search/search.d.ts.map +1 -0
  131. package/dist/search/search.js +65 -0
  132. package/dist/search/search.js.map +1 -0
  133. package/dist/sends/guarded.d.ts +12 -0
  134. package/dist/sends/guarded.d.ts.map +1 -1
  135. package/dist/sends/guarded.js +24 -2
  136. package/dist/sends/guarded.js.map +1 -1
  137. package/dist/services/archive.d.ts +8 -3
  138. package/dist/services/archive.d.ts.map +1 -1
  139. package/dist/services/archive.js +21 -2
  140. package/dist/services/archive.js.map +1 -1
  141. package/dist/services/chats.d.ts.map +1 -1
  142. package/dist/services/chats.js +11 -7
  143. package/dist/services/chats.js.map +1 -1
  144. package/dist/services/deps.d.ts +13 -0
  145. package/dist/services/deps.d.ts.map +1 -1
  146. package/dist/services/deps.js +12 -0
  147. package/dist/services/deps.js.map +1 -1
  148. package/dist/services/inbox.d.ts +13 -3
  149. package/dist/services/inbox.d.ts.map +1 -1
  150. package/dist/services/inbox.js +45 -15
  151. package/dist/services/inbox.js.map +1 -1
  152. package/dist/services/messages.d.ts +9 -2
  153. package/dist/services/messages.d.ts.map +1 -1
  154. package/dist/services/messages.js +27 -4
  155. package/dist/services/messages.js.map +1 -1
  156. package/dist/services/moderation.d.ts.map +1 -1
  157. package/dist/services/moderation.js +7 -1
  158. package/dist/services/moderation.js.map +1 -1
  159. package/dist/services/people.d.ts.map +1 -1
  160. package/dist/services/people.js +5 -4
  161. package/dist/services/people.js.map +1 -1
  162. package/dist/speech/hearing.d.ts +1 -1
  163. package/dist/speech/hearing.d.ts.map +1 -1
  164. package/dist/speech/hearing.js +2 -2
  165. package/dist/speech/hearing.js.map +1 -1
  166. package/dist/store/index.d.ts +1 -1
  167. package/dist/store/index.d.ts.map +1 -1
  168. package/dist/store/index.js.map +1 -1
  169. package/dist/store/sqlite/completeness.d.ts +17 -0
  170. package/dist/store/sqlite/completeness.d.ts.map +1 -0
  171. package/dist/store/sqlite/completeness.js +30 -0
  172. package/dist/store/sqlite/completeness.js.map +1 -0
  173. package/dist/store/sqlite/messages.d.ts +2 -2
  174. package/dist/store/sqlite/messages.d.ts.map +1 -1
  175. package/dist/store/sqlite/messages.js +14 -2
  176. package/dist/store/sqlite/messages.js.map +1 -1
  177. package/dist/store/sqlite/search-index.d.ts.map +1 -1
  178. package/dist/store/sqlite/search-index.js +45 -9
  179. package/dist/store/sqlite/search-index.js.map +1 -1
  180. package/dist/store/sqlite/search.d.ts +2 -0
  181. package/dist/store/sqlite/search.d.ts.map +1 -1
  182. package/dist/store/sqlite/search.js +27 -17
  183. package/dist/store/sqlite/search.js.map +1 -1
  184. package/dist/store/sqlite/words.d.ts +78 -0
  185. package/dist/store/sqlite/words.d.ts.map +1 -0
  186. package/dist/store/sqlite/words.js +237 -0
  187. package/dist/store/sqlite/words.js.map +1 -0
  188. package/dist/store/store.d.ts +35 -0
  189. package/dist/store/store.d.ts.map +1 -1
  190. package/dist/store/store.js +14 -2
  191. package/dist/store/store.js.map +1 -1
  192. package/package.json +8 -4
  193. package/parity.json +532 -387
@@ -1,22 +1,41 @@
1
- const STATES = ["both", "max-only", "tg-only", "planned"];
2
1
  export const longName = (flags) => flags.split(/[\s,|]+/).find((part) => part.startsWith("--")) ?? flags;
3
- const stateOf = (entry) => (typeof entry === "string" ? entry : entry.state);
4
- const entryProblems = (where, entry) => {
2
+ const presence = (entry) => (typeof entry === "string" ? { in: entry } : entry);
3
+ /** `true` the CLI must have it, `false` it must not, `undefined` it is planned and either passes. */
4
+ export const expected = (entry, cli) => {
5
+ const row = presence(entry);
6
+ if (row.in === "all" || row.in.includes(cli))
7
+ return true;
8
+ return row.planned?.[cli] === undefined ? false : undefined;
9
+ };
10
+ /** A row only one CLI has, for a stated reason: everything below it is that CLI's alone, and unrowed. */
11
+ export const solo = (row) => row.in !== "all" && row.in.length === 1 && row.reason !== undefined;
12
+ const describe = (row) => row.in === "all" ? "all" : row.in.length === 1 ? `${row.in[0]}-only` : row.in.join("+") || "in none";
13
+ const entryProblems = (clis, where, entry) => {
5
14
  if (typeof entry === "string")
6
- return entry === "both" ? [] : [`${where}: "${entry}" — only "both" stands alone`];
15
+ return entry === "all" ? [] : [`${where}: "${entry}" — only "all" stands alone`];
7
16
  const problems = [];
8
- if (!STATES.includes(entry.state))
9
- problems.push(`${where}: no such state "${entry.state}"`);
10
- if (entry.state === "max-only" || entry.state === "tg-only") {
11
- if (!entry.reason)
12
- problems.push(`${where}: ${entry.state} without a reason`);
17
+ const names = entry.in === "all" ? [] : Array.isArray(entry.in) ? entry.in : undefined;
18
+ if (names === undefined)
19
+ return [`${where}: "in" is neither "all" nor a list of CLIs`];
20
+ const planned = Object.entries(entry.planned ?? {});
21
+ for (const name of [...names, ...planned.map(([name]) => name)])
22
+ if (!clis.includes(name))
23
+ problems.push(`${where}: no such CLI "${name}" — the manifest's clis are ${clis.join(", ")}`);
24
+ if (new Set(names).size !== names.length)
25
+ problems.push(`${where}: a CLI named twice in "in"`);
26
+ if (names.length > 0 && clis.every((cli) => names.includes(cli)))
27
+ problems.push(`${where}: in every CLI — write "all"`);
28
+ for (const [name, by] of planned) {
29
+ if (names.includes(name) || entry.in === "all")
30
+ problems.push(`${where}: planned for ${name}, which has it`);
31
+ if (!by)
32
+ problems.push(`${where}: planned for ${name} without who closes it`);
13
33
  }
14
- else if (entry.reason)
15
- problems.push(`${where}: a reason on a ${entry.state} row`);
16
- if (entry.state === "planned" && !entry.by)
17
- problems.push(`${where}: planned without "by"`);
18
- if (entry.state !== "planned" && entry.by)
19
- problems.push(`${where}: "by" on a ${entry.state} row`);
34
+ const lacking = clis.filter((cli) => expected(entry, cli) === false);
35
+ if (lacking.length > 0 && !entry.reason)
36
+ problems.push(`${where}: not in ${lacking.join(", ")}, without a reason`);
37
+ if (lacking.length === 0 && entry.reason)
38
+ problems.push(`${where}: a reason, but no CLI lacks it unplanned`);
20
39
  return problems;
21
40
  };
22
41
  const unsorted = (where, keys) => {
@@ -24,21 +43,23 @@ const unsorted = (where, keys) => {
24
43
  const at = keys.findIndex((key, index) => key !== sorted[index]);
25
44
  return at === -1 ? [] : [`${where}: keys out of order at "${keys[at]}" — run the seed to sort`];
26
45
  };
27
- const oneSided = (state) => state === "max-only" || state === "tg-only";
28
- /** The row above `path` that covers it and everything else below it: one-sided, or planned as a subtree. */
46
+ /** The row above `path` that covers it and everything else below it: one CLI's alone, or planned as a subtree. */
29
47
  export const coveringRow = (manifest, path) => {
30
48
  const words = path.split(" ");
31
49
  for (let length = words.length - 1; length > 0; length--) {
32
50
  const parent = words.slice(0, length).join(" ");
33
51
  const row = manifest.commands[parent];
34
- if (row && (oneSided(row.state) || row.subtree))
52
+ if (row && (solo(row) || row.subtree))
35
53
  return parent;
36
54
  }
37
55
  return undefined;
38
56
  };
39
57
  /** Everything wrong with the manifest itself; empty when it is well-formed. */
40
58
  export const manifestProblems = (manifest) => {
59
+ const clis = Array.isArray(manifest.clis) ? manifest.clis : [];
41
60
  const problems = [
61
+ ...(clis.length === 0 ? ['clis: no CLIs — the manifest starts with "clis": ["max", "tg"]'] : []),
62
+ ...(new Set(clis).size === clis.length ? [] : ["clis: a CLI named twice"]),
42
63
  ...unsorted("options", Object.keys(manifest.options)),
43
64
  ...unsorted("globalOptions", Object.keys(manifest.globalOptions)),
44
65
  ...unsorted("commands", Object.keys(manifest.commands)),
@@ -50,20 +71,23 @@ export const manifestProblems = (manifest) => {
50
71
  used.add(name);
51
72
  if (!manifest.options[name])
52
73
  problems.push(`${where} ${name}: not in the option catalogue`);
53
- problems.push(...entryProblems(`${where} ${name}`, entry));
74
+ problems.push(...entryProblems(clis, `${where} ${name}`, entry));
54
75
  }
55
76
  };
56
77
  optionEntries("(global)", manifest.globalOptions);
57
78
  for (const [path, row] of Object.entries(manifest.commands)) {
58
- problems.push(...entryProblems(path, row));
59
- if (row.subtree && row.state !== "planned")
60
- problems.push(`${path}: subtree on a ${row.state} row`);
79
+ problems.push(...entryProblems(clis, path, row));
80
+ if (row.subtree && Object.keys(row.planned ?? {}).length === 0)
81
+ problems.push(`${path}: subtree on a row nobody plans`);
61
82
  const parent = path.split(" ").slice(0, -1).join(" ");
62
83
  if (parent && !manifest.commands[parent])
63
84
  problems.push(`${path}: no row for its parent "${parent}"`);
64
85
  const cover = coveringRow(manifest, path);
65
- if (cover)
66
- problems.push(`${path}: under "${cover}", which is ${manifest.commands[cover]?.state} and covers it`);
86
+ if (cover) {
87
+ const above = manifest.commands[cover];
88
+ const how = above?.subtree ? "planned" : above ? describe(above) : "";
89
+ problems.push(`${path}: under "${cover}", which is ${how} and covers it`);
90
+ }
67
91
  optionEntries(path, row.options ?? {});
68
92
  }
69
93
  for (const [name, option] of Object.entries(manifest.options)) {
@@ -74,24 +98,23 @@ export const manifestProblems = (manifest) => {
74
98
  }
75
99
  return problems;
76
100
  };
77
- const present = (cli, state) => state === "planned" ? undefined : state === "both" || state === `${cli}-only`;
78
- const compare = (cli, where, state, has) => {
79
- if (state === undefined)
101
+ const compare = (cli, where, entry, has) => {
102
+ if (entry === undefined)
80
103
  return has ? [`${where}: not in the manifest — add its row first`] : [];
81
- const expected = present(cli, state);
82
- if (expected === undefined || expected === has)
104
+ const want = expected(entry, cli);
105
+ if (want === undefined || want === has)
83
106
  return [];
107
+ const row = presence(entry);
84
108
  return has
85
- ? [`${where}: ${cli} has it, the manifest says ${state}`]
86
- : [`${where}: the manifest says ${state}, ${cli} lacks it`];
109
+ ? [`${where}: ${cli} has it, the manifest says ${describe(row)}`]
110
+ : [`${where}: the manifest says ${describe(row)}, ${cli} lacks it`];
87
111
  };
88
112
  const optionsOf = (options) => new Set(options.map((option) => longName(option.flags)));
89
113
  const compareOptions = (cli, where, entries, options) => {
90
114
  const has = optionsOf(options);
91
- return [...new Set([...has, ...Object.keys(entries)])].sort().flatMap((name) => {
92
- const entry = entries[name];
93
- return compare(cli, `${where} ${name}`, entry === undefined ? undefined : stateOf(entry), has.has(name));
94
- });
115
+ return [...new Set([...has, ...Object.keys(entries)])]
116
+ .sort()
117
+ .flatMap((name) => compare(cli, `${where} ${name}`, entries[name], has.has(name)));
95
118
  };
96
119
  /** Where a CLI's `commands --json` disagrees with its column of the manifest; empty when it agrees. */
97
120
  export const parityProblems = (manifest, cli, program) => {
@@ -108,8 +131,8 @@ export const parityProblems = (manifest, cli, program) => {
108
131
  continue;
109
132
  const row = manifest.commands[path];
110
133
  const command = found.get(path);
111
- problems.push(...compare(cli, path, row?.state, command !== undefined));
112
- if (row && command && present(cli, row.state) !== false && !oneSided(row.state))
134
+ problems.push(...compare(cli, path, row, command !== undefined));
135
+ if (row && command && expected(row, cli) !== false && !solo(row))
113
136
  problems.push(...compareOptions(cli, path, row.options ?? {}, command.options));
114
137
  }
115
138
  return problems;
@@ -1 +1 @@
1
- {"version":3,"file":"manifest.js","sourceRoot":"","sources":["../../src/parity/manifest.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"manifest.js","sourceRoot":"","sources":["../../src/parity/manifest.ts"],"names":[],"mappings":"AA6CA,MAAM,CAAC,MAAM,QAAQ,GAAG,CAAC,KAAa,EAAU,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,IAAI,KAAK,CAAA;AAExH,MAAM,QAAQ,GAAG,CAAC,KAAyB,EAAY,EAAE,CAAC,CAAC,OAAO,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,EAAE,EAAE,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,CAAA;AAE7G,qGAAqG;AACrG,MAAM,CAAC,MAAM,QAAQ,GAAG,CAAC,KAAyB,EAAE,GAAQ,EAAuB,EAAE;IACnF,MAAM,GAAG,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAA;IAC3B,IAAI,GAAG,CAAC,EAAE,KAAK,KAAK,IAAI,GAAG,CAAC,EAAE,CAAC,QAAQ,CAAC,GAAG,CAAC;QAAE,OAAO,IAAI,CAAA;IACzD,OAAO,GAAG,CAAC,OAAO,EAAE,CAAC,GAAG,CAAC,KAAK,SAAS,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,CAAA;AAC7D,CAAC,CAAA;AAED,yGAAyG;AACzG,MAAM,CAAC,MAAM,IAAI,GAAG,CAAC,GAAe,EAAE,EAAE,CAAC,GAAG,CAAC,EAAE,KAAK,KAAK,IAAI,GAAG,CAAC,EAAE,CAAC,MAAM,KAAK,CAAC,IAAI,GAAG,CAAC,MAAM,KAAK,SAAS,CAAA;AAE5G,MAAM,QAAQ,GAAG,CAAC,GAAa,EAAE,EAAE,CACjC,GAAG,CAAC,EAAE,KAAK,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,SAAS,CAAA;AAEtG,MAAM,aAAa,GAAG,CAAC,IAAoB,EAAE,KAAa,EAAE,KAAyB,EAAY,EAAE;IACjG,IAAI,OAAO,KAAK,KAAK,QAAQ;QAAE,OAAO,KAAK,KAAK,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG,KAAK,MAAM,KAAK,6BAA6B,CAAC,CAAA;IAC/G,MAAM,QAAQ,GAAa,EAAE,CAAA;IAC7B,MAAM,KAAK,GAAG,KAAK,CAAC,EAAE,KAAK,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC,SAAS,CAAA;IACtF,IAAI,KAAK,KAAK,SAAS;QAAE,OAAO,CAAC,GAAG,KAAK,4CAA4C,CAAC,CAAA;IACtF,MAAM,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,OAAO,IAAI,EAAE,CAAC,CAAA;IACnD,KAAK,MAAM,IAAI,IAAI,CAAC,GAAG,KAAK,EAAE,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,CAAC;QAC7D,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC;YACtB,QAAQ,CAAC,IAAI,CAAC,GAAG,KAAK,kBAAkB,IAAI,+BAA+B,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAA;IACjG,IAAI,IAAI,GAAG,CAAC,KAAK,CAAC,CAAC,IAAI,KAAK,KAAK,CAAC,MAAM;QAAE,QAAQ,CAAC,IAAI,CAAC,GAAG,KAAK,6BAA6B,CAAC,CAAA;IAC9F,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,IAAI,IAAI,CAAC,KAAK,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;QAC9D,QAAQ,CAAC,IAAI,CAAC,GAAG,KAAK,8BAA8B,CAAC,CAAA;IACvD,KAAK,MAAM,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,OAAO,EAAE,CAAC;QACjC,IAAI,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,KAAK,CAAC,EAAE,KAAK,KAAK;YAAE,QAAQ,CAAC,IAAI,CAAC,GAAG,KAAK,iBAAiB,IAAI,gBAAgB,CAAC,CAAA;QAC5G,IAAI,CAAC,EAAE;YAAE,QAAQ,CAAC,IAAI,CAAC,GAAG,KAAK,iBAAiB,IAAI,wBAAwB,CAAC,CAAA;IAC/E,CAAC;IACD,MAAM,OAAO,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,QAAQ,CAAC,KAAK,EAAE,GAAG,CAAC,KAAK,KAAK,CAAC,CAAA;IACpE,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM;QAAE,QAAQ,CAAC,IAAI,CAAC,GAAG,KAAK,YAAY,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,oBAAoB,CAAC,CAAA;IAClH,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,IAAI,KAAK,CAAC,MAAM;QAAE,QAAQ,CAAC,IAAI,CAAC,GAAG,KAAK,2CAA2C,CAAC,CAAA;IAC5G,OAAO,QAAQ,CAAA;AACjB,CAAC,CAAA;AAED,MAAM,QAAQ,GAAG,CAAC,KAAa,EAAE,IAAc,EAAY,EAAE;IAC3D,MAAM,MAAM,GAAG,CAAC,GAAG,IAAI,CAAC,CAAC,IAAI,EAAE,CAAA;IAC/B,MAAM,EAAE,GAAG,IAAI,CAAC,SAAS,CAAC,CAAC,GAAG,EAAE,KAAK,EAAE,EAAE,CAAC,GAAG,KAAK,MAAM,CAAC,KAAK,CAAC,CAAC,CAAA;IAChE,OAAO,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG,KAAK,2BAA2B,IAAI,CAAC,EAAE,CAAC,0BAA0B,CAAC,CAAA;AACjG,CAAC,CAAA;AAED,kHAAkH;AAClH,MAAM,CAAC,MAAM,WAAW,GAAG,CAAC,QAAkB,EAAE,IAAY,EAAsB,EAAE;IAClF,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAA;IAC7B,KAAK,IAAI,MAAM,GAAG,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,MAAM,GAAG,CAAC,EAAE,MAAM,EAAE,EAAE,CAAC;QACzD,MAAM,MAAM,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;QAC/C,MAAM,GAAG,GAAG,QAAQ,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAA;QACrC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,GAAG,CAAC,OAAO,CAAC;YAAE,OAAO,MAAM,CAAA;IACtD,CAAC;IACD,OAAO,SAAS,CAAA;AAClB,CAAC,CAAA;AAED,+EAA+E;AAC/E,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAAC,QAAkB,EAAY,EAAE;IAC/D,MAAM,IAAI,GAAG,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAA;IAC9D,MAAM,QAAQ,GAAa;QACzB,GAAG,CAAC,IAAI,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,gEAAgE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;QAChG,GAAG,CAAC,IAAI,GAAG,CAAC,IAAI,CAAC,CAAC,IAAI,KAAK,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,yBAAyB,CAAC,CAAC;QAC1E,GAAG,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;QACrD,GAAG,QAAQ,CAAC,eAAe,EAAE,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC;QACjE,GAAG,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;KACxD,CAAA;IACD,MAAM,IAAI,GAAG,IAAI,GAAG,EAAU,CAAA;IAC9B,MAAM,aAAa,GAAG,CAAC,KAAa,EAAE,OAA8B,EAAE,EAAE;QACtE,QAAQ,CAAC,IAAI,CAAC,GAAG,QAAQ,CAAC,GAAG,KAAK,UAAU,EAAE,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAA;QACpE,KAAK,MAAM,CAAC,IAAI,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC;YACpD,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAA;YACd,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC;gBAAE,QAAQ,CAAC,IAAI,CAAC,GAAG,KAAK,IAAI,IAAI,+BAA+B,CAAC,CAAA;YAC3F,QAAQ,CAAC,IAAI,CAAC,GAAG,aAAa,CAAC,IAAI,EAAE,GAAG,KAAK,IAAI,IAAI,EAAE,EAAE,KAAK,CAAC,CAAC,CAAA;QAClE,CAAC;IACH,CAAC,CAAA;IAED,aAAa,CAAC,UAAU,EAAE,QAAQ,CAAC,aAAa,CAAC,CAAA;IACjD,KAAK,MAAM,CAAC,IAAI,EAAE,GAAG,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC;QAC5D,QAAQ,CAAC,IAAI,CAAC,GAAG,aAAa,CAAC,IAAI,EAAE,IAAI,EAAE,GAAG,CAAC,CAAC,CAAA;QAChD,IAAI,GAAG,CAAC,OAAO,IAAI,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,OAAO,IAAI,EAAE,CAAC,CAAC,MAAM,KAAK,CAAC;YAC5D,QAAQ,CAAC,IAAI,CAAC,GAAG,IAAI,iCAAiC,CAAC,CAAA;QACzD,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;QACrD,IAAI,MAAM,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,MAAM,CAAC;YAAE,QAAQ,CAAC,IAAI,CAAC,GAAG,IAAI,4BAA4B,MAAM,GAAG,CAAC,CAAA;QACrG,MAAM,KAAK,GAAG,WAAW,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAA;QACzC,IAAI,KAAK,EAAE,CAAC;YACV,MAAM,KAAK,GAAG,QAAQ,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAA;YACtC,MAAM,GAAG,GAAG,KAAK,EAAE,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAA;YACrE,QAAQ,CAAC,IAAI,CAAC,GAAG,IAAI,YAAY,KAAK,eAAe,GAAG,gBAAgB,CAAC,CAAA;QAC3E,CAAC;QACD,aAAa,CAAC,IAAI,EAAE,GAAG,CAAC,OAAO,IAAI,EAAE,CAAC,CAAA;IACxC,CAAC;IAED,KAAK,MAAM,CAAC,IAAI,EAAE,MAAM,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC;QAC9D,IAAI,CAAC,MAAM,CAAC,OAAO;YAAE,QAAQ,CAAC,IAAI,CAAC,WAAW,IAAI,cAAc,CAAC,CAAA;QACjE,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC;YAAE,QAAQ,CAAC,IAAI,CAAC,WAAW,IAAI,mCAAmC,CAAC,CAAA;IACxF,CAAC;IACD,OAAO,QAAQ,CAAA;AACjB,CAAC,CAAA;AAED,MAAM,OAAO,GAAG,CAAC,GAAQ,EAAE,KAAa,EAAE,KAAqC,EAAE,GAAY,EAAY,EAAE;IACzG,IAAI,KAAK,KAAK,SAAS;QAAE,OAAO,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,KAAK,2CAA2C,CAAC,CAAC,CAAC,CAAC,EAAE,CAAA;IAChG,MAAM,IAAI,GAAG,QAAQ,CAAC,KAAK,EAAE,GAAG,CAAC,CAAA;IACjC,IAAI,IAAI,KAAK,SAAS,IAAI,IAAI,KAAK,GAAG;QAAE,OAAO,EAAE,CAAA;IACjD,MAAM,GAAG,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAA;IAC3B,OAAO,GAAG;QACR,CAAC,CAAC,CAAC,GAAG,KAAK,KAAK,GAAG,8BAA8B,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;QACjE,CAAC,CAAC,CAAC,GAAG,KAAK,uBAAuB,QAAQ,CAAC,GAAG,CAAC,KAAK,GAAG,WAAW,CAAC,CAAA;AACvE,CAAC,CAAA;AAED,MAAM,SAAS,GAAG,CAAC,OAA8B,EAAE,EAAE,CAAC,IAAI,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,QAAQ,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAA;AAE9G,MAAM,cAAc,GAAG,CAAC,GAAQ,EAAE,KAAa,EAAE,OAA8B,EAAE,OAA8B,EAAE,EAAE;IACjH,MAAM,GAAG,GAAG,SAAS,CAAC,OAAO,CAAC,CAAA;IAC9B,OAAO,CAAC,GAAG,IAAI,GAAG,CAAC,CAAC,GAAG,GAAG,EAAE,GAAG,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;SACnD,IAAI,EAAE;SACN,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,OAAO,CAAC,GAAG,EAAE,GAAG,KAAK,IAAI,IAAI,EAAE,EAAE,OAAO,CAAC,IAAI,CAAC,EAAE,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;AACtF,CAAC,CAAA;AAED,uGAAuG;AACvG,MAAM,CAAC,MAAM,cAAc,GAAG,CAAC,QAAkB,EAAE,GAAQ,EAAE,OAAqB,EAAY,EAAE;IAC9F,MAAM,KAAK,GAAG,IAAI,GAAG,EAAuB,CAAA;IAC5C,MAAM,IAAI,GAAG,CAAC,OAAoB,EAAE,EAAE;QACpC,KAAK,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,OAAO,CAAC,CAAA;QAC1C,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,CAAA;IAChC,CAAC,CAAA;IACD,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,CAAA;IAE9B,MAAM,QAAQ,GAAG,cAAc,CAAC,GAAG,EAAE,UAAU,EAAE,QAAQ,CAAC,aAAa,EAAE,OAAO,CAAC,aAAa,CAAC,CAAA;IAC/F,MAAM,KAAK,GAAG,CAAC,GAAG,IAAI,GAAG,CAAC,CAAC,GAAG,KAAK,CAAC,IAAI,EAAE,EAAE,GAAG,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAA;IACvF,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QACzB,IAAI,WAAW,CAAC,QAAQ,EAAE,IAAI,CAAC;YAAE,SAAQ;QACzC,MAAM,GAAG,GAAG,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAA;QACnC,MAAM,OAAO,GAAG,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,CAAA;QAC/B,QAAQ,CAAC,IAAI,CAAC,GAAG,OAAO,CAAC,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,OAAO,KAAK,SAAS,CAAC,CAAC,CAAA;QAChE,IAAI,GAAG,IAAI,OAAO,IAAI,QAAQ,CAAC,GAAG,EAAE,GAAG,CAAC,KAAK,KAAK,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC;YAC9D,QAAQ,CAAC,IAAI,CAAC,GAAG,cAAc,CAAC,GAAG,EAAE,IAAI,EAAE,GAAG,CAAC,OAAO,IAAI,EAAE,EAAE,OAAO,CAAC,OAAO,CAAC,CAAC,CAAA;IACnF,CAAC;IACD,OAAO,QAAQ,CAAA;AACjB,CAAC,CAAA"}
@@ -1,8 +1,8 @@
1
- import type { Cli, CommandsJson, Manifest } from "./manifest.js";
1
+ import { type Cli, type CommandsJson, type Manifest } from "./manifest.js";
2
2
  /**
3
3
  * Every `<cli> <command> --option` on a user page whose option the command does not have. An option
4
- * the manifest plans or shares for that command passes — docs come first, the code follows — and one
5
- * the manifest gives only to the other CLI does not.
4
+ * the manifest gives or plans for this CLI on that command passes — docs come first, the code follows —
5
+ * and one this CLI lacks does not.
6
6
  */
7
7
  export declare const pageProblems: (page: string, cli: Cli, manifest: Manifest, program: CommandsJson) => string[];
8
8
  //# sourceMappingURL=pages.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"pages.d.ts","sourceRoot":"","sources":["../../src/parity/pages.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,GAAG,EAAE,YAAY,EAAS,QAAQ,EAAE,MAAM,eAAe,CAAA;AAMvE;;;;GAIG;AACH,eAAO,MAAM,YAAY,SAAU,MAAM,OAAO,GAAG,YAAY,QAAQ,WAAW,YAAY,KAAG,MAAM,EA4BtG,CAAA"}
1
+ {"version":3,"file":"pages.d.ts","sourceRoot":"","sources":["../../src/parity/pages.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,GAAG,EAAE,KAAK,YAAY,EAAY,KAAK,QAAQ,EAAE,MAAM,eAAe,CAAA;AAIpF;;;;GAIG;AACH,eAAO,MAAM,YAAY,SAAU,MAAM,OAAO,GAAG,YAAY,QAAQ,WAAW,YAAY,KAAG,MAAM,EA2BtG,CAAA"}
@@ -1,9 +1,9 @@
1
+ import { expected } from "./manifest.js";
1
2
  const optionsOf = (flags) => flags.match(/--[a-z][a-z-]*/g) ?? [];
2
- const stateOf = (entry) => (typeof entry === "string" ? entry : entry.state);
3
3
  /**
4
4
  * Every `<cli> <command> --option` on a user page whose option the command does not have. An option
5
- * the manifest plans or shares for that command passes — docs come first, the code follows — and one
6
- * the manifest gives only to the other CLI does not.
5
+ * the manifest gives or plans for this CLI on that command passes — docs come first, the code follows —
6
+ * and one this CLI lacks does not.
7
7
  */
8
8
  export const pageProblems = (page, cli, manifest, program) => {
9
9
  const commands = new Map();
@@ -13,7 +13,6 @@ export const pageProblems = (page, cli, manifest, program) => {
13
13
  };
14
14
  program.commands.forEach(walk);
15
15
  const globals = new Set(program.globalOptions.flatMap((option) => optionsOf(option.flags)));
16
- const other = cli === "tg" ? "max-only" : "tg-only";
17
16
  const problems = [];
18
17
  const line = new RegExp(`\\b${cli} ((?:[a-z][a-z-]* ?)+)([^\\n\`#|]*)`, "g");
19
18
  for (const [, words, rest] of page.matchAll(line)) {
@@ -29,7 +28,7 @@ export const pageProblems = (page, cli, manifest, program) => {
29
28
  if (commands.get(command)?.has(option) || globals.has(option))
30
29
  continue;
31
30
  const entry = planned[option];
32
- if (entry !== undefined && stateOf(entry) !== other)
31
+ if (entry !== undefined && expected(entry, cli) !== false)
33
32
  continue;
34
33
  problems.push(`${cli} ${command} ${option}`);
35
34
  }
@@ -1 +1 @@
1
- {"version":3,"file":"pages.js","sourceRoot":"","sources":["../../src/parity/pages.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"pages.js","sourceRoot":"","sources":["../../src/parity/pages.ts"],"names":[],"mappings":"AACA,OAAO,EAA+B,QAAQ,EAAiB,MAAM,eAAe,CAAA;AAEpF,MAAM,SAAS,GAAG,CAAC,KAAa,EAAY,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,iBAAiB,CAAC,IAAI,EAAE,CAAA;AAEnF;;;;GAIG;AACH,MAAM,CAAC,MAAM,YAAY,GAAG,CAAC,IAAY,EAAE,GAAQ,EAAE,QAAkB,EAAE,OAAqB,EAAY,EAAE;IAC1G,MAAM,QAAQ,GAAG,IAAI,GAAG,EAAuB,CAAA;IAC/C,MAAM,IAAI,GAAG,CAAC,OAAoB,EAAE,EAAE;QACpC,QAAQ,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,IAAI,GAAG,CAAC,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,SAAS,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAA;QAC3G,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,CAAA;IAChC,CAAC,CAAA;IACD,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,CAAA;IAC9B,MAAM,OAAO,GAAG,IAAI,GAAG,CAAC,OAAO,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,SAAS,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAA;IAE3F,MAAM,QAAQ,GAAa,EAAE,CAAA;IAC7B,MAAM,IAAI,GAAG,IAAI,MAAM,CAAC,MAAM,GAAG,qCAAqC,EAAE,GAAG,CAAC,CAAA;IAC5E,KAAK,MAAM,CAAC,EAAE,KAAK,EAAE,IAAI,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC;QAClD,MAAM,KAAK,GAAG,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAAA;QAC7C,mDAAmD;QACnD,MAAM,OAAO,GAAG,CAAC,KAAK,EAAE,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;aACpC,OAAO,CAAC,CAAC,SAAS,EAAE,EAAE,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,EAAE,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,EAAE,SAAS,CAAC,MAAM,GAAG,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;aACvG,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAA;QACrC,IAAI,OAAO,KAAK,SAAS;YAAE,SAAQ;QACnC,MAAM,OAAO,GAAG,QAAQ,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,OAAO,IAAI,EAAE,CAAA;QACzD,KAAK,MAAM,MAAM,IAAI,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC,KAAK,CAAC,2BAA2B,CAAC,IAAI,EAAE,EAAE,CAAC;YAC3E,IAAI,QAAQ,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,GAAG,CAAC,MAAM,CAAC,IAAI,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC;gBAAE,SAAQ;YACvE,MAAM,KAAK,GAAG,OAAO,CAAC,MAAM,CAAC,CAAA;YAC7B,IAAI,KAAK,KAAK,SAAS,IAAI,QAAQ,CAAC,KAAK,EAAE,GAAG,CAAC,KAAK,KAAK;gBAAE,SAAQ;YACnE,QAAQ,CAAC,IAAI,CAAC,GAAG,GAAG,IAAI,OAAO,IAAI,MAAM,EAAE,CAAC,CAAA;QAC9C,CAAC;IACH,CAAC;IACD,OAAO,QAAQ,CAAA;AACjB,CAAC,CAAA"}
@@ -0,0 +1,11 @@
1
+ import { type Cli, type CommandsJson, type Manifest } from "./manifest.js";
2
+ /**
3
+ * `manifest` with every command and option the programs have and it lacks, sorted. A program per CLI
4
+ * of the manifest, known by its `cli`. A row that is there is left as it is.
5
+ */
6
+ export declare const seedPrograms: (manifest: Manifest, programs: readonly CommandsJson[]) => Manifest;
7
+ /** `manifest` with `cli` added to its CLIs and every command and option planned for it, by `"?"`. */
8
+ export declare const seedCli: (manifest: Manifest, cli: Cli) => Manifest;
9
+ /** `parity.json` as Biome formats it: two-space JSON, each list of CLIs on one line. */
10
+ export declare const formatManifest: (manifest: unknown) => string;
11
+ //# sourceMappingURL=seed.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"seed.d.ts","sourceRoot":"","sources":["../../src/parity/seed.ts"],"names":[],"mappings":"AACA,OAAO,EACL,KAAK,GAAG,EAER,KAAK,YAAY,EAIjB,KAAK,QAAQ,EAGd,MAAM,eAAe,CAAA;AAuBtB;;;GAGG;AACH,eAAO,MAAM,YAAY,aAAc,QAAQ,YAAY,SAAS,YAAY,EAAE,KAAG,QA6CpF,CAAA;AAED,qGAAqG;AACrG,eAAO,MAAM,OAAO,aAAc,QAAQ,OAAO,GAAG,KAAG,QA2BtD,CAAA;AAED,wFAAwF;AACxF,eAAO,MAAM,cAAc,aAAc,OAAO,KAAG,MACkG,CAAA"}
@@ -0,0 +1,99 @@
1
+ import { coveringRow, longName, solo, } from "./manifest.js";
2
+ const sorted = (record) => Object.fromEntries(Object.entries(record).sort(([a], [b]) => (a < b ? -1 : a > b ? 1 : 0)));
3
+ const commandsOf = (program) => {
4
+ const found = new Map();
5
+ const walk = (command) => {
6
+ found.set(command.path.join(" "), command);
7
+ command.commands.forEach(walk);
8
+ };
9
+ program.commands.forEach(walk);
10
+ return found;
11
+ };
12
+ const where = (clis, having) => having.length === clis.length
13
+ ? { in: "all" }
14
+ : {
15
+ in: [...having],
16
+ planned: Object.fromEntries(clis.filter((cli) => !having.includes(cli)).map((cli) => [cli, "?"])),
17
+ };
18
+ /**
19
+ * `manifest` with every command and option the programs have and it lacks, sorted. A program per CLI
20
+ * of the manifest, known by its `cli`. A row that is there is left as it is.
21
+ */
22
+ export const seedPrograms = (manifest, programs) => {
23
+ const missing = manifest.clis.filter((cli) => !programs.some((program) => program.cli === cli));
24
+ if (missing.length > 0)
25
+ throw new Error(`no commands --json for ${missing.join(", ")}`);
26
+ const next = structuredClone(manifest);
27
+ const trees = new Map(programs.map((program) => [program.cli, commandsOf(program)]));
28
+ const catalogue = (option) => {
29
+ const name = longName(option.flags);
30
+ if (next.options[name])
31
+ return;
32
+ const value = /[<[][^>\]]+[>\]]/.exec(option.flags)?.[0];
33
+ next.options[name] = {
34
+ ...(value ? { value } : {}),
35
+ meaning: option.description,
36
+ ...(option.default === undefined ? {} : { default: String(option.default) }),
37
+ };
38
+ };
39
+ const seedOptions = (entries, options) => {
40
+ for (const option of [...options.values()].flat()) {
41
+ catalogue(option);
42
+ const name = longName(option.flags);
43
+ const having = next.clis.filter((cli) => options.get(cli)?.some((one) => longName(one.flags) === name));
44
+ const place = where(next.clis, having);
45
+ entries[name] ??= place.in === "all" ? "all" : place;
46
+ }
47
+ };
48
+ seedOptions(next.globalOptions, new Map(programs.map((program) => [program.cli, program.globalOptions])));
49
+ const paths = new Set([...trees.values()].flatMap((tree) => [...tree.keys()]));
50
+ for (const path of [...paths].sort()) {
51
+ if (coveringRow(next, path))
52
+ continue;
53
+ const having = next.clis.filter((cli) => trees.get(cli)?.has(path));
54
+ next.commands[path] ??= where(next.clis, having);
55
+ const row = next.commands[path];
56
+ if (solo(row))
57
+ continue;
58
+ const options = { ...row.options };
59
+ seedOptions(options, new Map(having.map((cli) => [cli, trees.get(cli)?.get(path)?.options ?? []])));
60
+ if (Object.keys(options).length > 0)
61
+ row.options = sorted(options);
62
+ }
63
+ return {
64
+ ...next,
65
+ options: sorted(next.options),
66
+ globalOptions: sorted(next.globalOptions),
67
+ commands: sorted(next.commands),
68
+ };
69
+ };
70
+ /** `manifest` with `cli` added to its CLIs and every command and option planned for it, by `"?"`. */
71
+ export const seedCli = (manifest, cli) => {
72
+ if (manifest.clis.includes(cli))
73
+ throw new Error(`${cli} is in the parity manifest already`);
74
+ const plan = (entry) => {
75
+ const row = typeof entry === "string" ? { in: entry } : entry;
76
+ return {
77
+ in: row.in === "all" ? [...manifest.clis] : row.in,
78
+ ...(row.reason ? { reason: row.reason } : {}),
79
+ planned: { ...row.planned, [cli]: "?" },
80
+ };
81
+ };
82
+ const planAll = (entries) => Object.fromEntries(Object.entries(entries).map(([name, entry]) => [name, plan(entry)]));
83
+ return {
84
+ ...manifest,
85
+ clis: [...manifest.clis, cli],
86
+ globalOptions: planAll(manifest.globalOptions),
87
+ commands: Object.fromEntries(Object.entries(manifest.commands).map(([path, row]) => [
88
+ path,
89
+ {
90
+ ...plan(row),
91
+ ...(row.subtree ? { subtree: true } : {}),
92
+ ...(row.options ? { options: planAll(row.options) } : {}),
93
+ },
94
+ ])),
95
+ };
96
+ };
97
+ /** `parity.json` as Biome formats it: two-space JSON, each list of CLIs on one line. */
98
+ export const formatManifest = (manifest) => `${JSON.stringify(manifest, null, 2).replace(/\[\s+((?:"[^"]*",?\s*)+)\]/g, (_, items) => `[${items.trim().split(/,\s*/).join(", ")}]`)}\n`;
99
+ //# sourceMappingURL=seed.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"seed.js","sourceRoot":"","sources":["../../src/parity/seed.ts"],"names":[],"mappings":"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"}
@@ -1,7 +1,8 @@
1
1
  import { type CommandsJson, type Manifest } from "./manifest.js";
2
2
  /**
3
- * Every `both` option the two tools describe in different words. An option whose catalogue entry has a
4
- * `note` is a clash already written down, and is left to whoever the note names.
3
+ * Every shared option that the CLIs having it describe in different words; each program is known by
4
+ * its `cli`. An option whose catalogue entry has a `note` is a clash already written down, and is left
5
+ * to whoever the note names.
5
6
  */
6
- export declare const wordingProblems: (manifest: Manifest, max: CommandsJson, tg: CommandsJson) => string[];
7
+ export declare const wordingProblems: (manifest: Manifest, programs: readonly CommandsJson[]) => string[];
7
8
  //# sourceMappingURL=wording.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"wording.d.ts","sourceRoot":"","sources":["../../src/parity/wording.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,YAAY,EAAY,KAAK,QAAQ,EAAE,MAAM,eAAe,CAAA;AAc1E;;;GAGG;AACH,eAAO,MAAM,eAAe,aAAc,QAAQ,OAAO,YAAY,MAAM,YAAY,KAAG,MAAM,EAc/F,CAAA"}
1
+ {"version":3,"file":"wording.d.ts","sourceRoot":"","sources":["../../src/parity/wording.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,YAAY,EAAwB,KAAK,QAAQ,EAAE,MAAM,eAAe,CAAA;AAmBtF;;;;GAIG;AACH,eAAO,MAAM,eAAe,aAAc,QAAQ,YAAY,SAAS,YAAY,EAAE,KAAG,MAAM,EAiB7F,CAAA"}
@@ -11,21 +11,32 @@ const descriptions = (program) => {
11
11
  program.commands.forEach(walk);
12
12
  return found;
13
13
  };
14
+ const sharedBy = (manifest, entry) => {
15
+ const where = typeof entry === "string" ? entry : entry.in;
16
+ return where === "all" ? manifest.clis : where;
17
+ };
14
18
  /**
15
- * Every `both` option the two tools describe in different words. An option whose catalogue entry has a
16
- * `note` is a clash already written down, and is left to whoever the note names.
19
+ * Every shared option that the CLIs having it describe in different words; each program is known by
20
+ * its `cli`. An option whose catalogue entry has a `note` is a clash already written down, and is left
21
+ * to whoever the note names.
17
22
  */
18
- export const wordingProblems = (manifest, max, tg) => {
23
+ export const wordingProblems = (manifest, programs) => {
19
24
  const rows = [
20
25
  ...Object.entries(manifest.globalOptions).map(([name, entry]) => ["(global)", name, entry]),
21
26
  ...Object.entries(manifest.commands).flatMap(([path, row]) => Object.entries(row.options ?? {}).map(([name, entry]) => [path, name, entry])),
22
27
  ];
23
- const inMax = descriptions(max);
24
- const inTg = descriptions(tg);
25
- return rows
26
- .filter(([, name, entry]) => entry === "both" && !manifest.options[name]?.note)
27
- .map(([path, name]) => `${path} ${name}`)
28
- .filter((where) => inMax.get(where) !== inTg.get(where))
29
- .map((where) => `${where}: max says "${inMax.get(where)}", tg says "${inTg.get(where)}"`);
28
+ const said = new Map(programs.map((program) => [program.cli, descriptions(program)]));
29
+ return rows.flatMap(([path, name, entry]) => {
30
+ if (manifest.options[name]?.note)
31
+ return [];
32
+ const where = `${path} ${name}`;
33
+ const clis = sharedBy(manifest, entry).filter((cli) => said.has(cli));
34
+ if (clis.length < 2)
35
+ return [];
36
+ const sentences = clis.map((cli) => said.get(cli)?.get(where));
37
+ if (sentences.every((sentence) => sentence === sentences[0]))
38
+ return [];
39
+ return [`${where}: ${clis.map((cli, index) => `${cli} says "${sentences[index]}"`).join(", ")}`];
40
+ });
30
41
  };
31
42
  //# sourceMappingURL=wording.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"wording.js","sourceRoot":"","sources":["../../src/parity/wording.ts"],"names":[],"mappings":"AACA,OAAO,EAAqB,QAAQ,EAAiB,MAAM,eAAe,CAAA;AAE1E,MAAM,YAAY,GAAG,CAAC,OAAqB,EAAuB,EAAE;IAClE,MAAM,KAAK,GAAG,IAAI,GAAG,EAAkB,CAAA;IACvC,KAAK,MAAM,MAAM,IAAI,OAAO,CAAC,aAAa;QAAE,KAAK,CAAC,GAAG,CAAC,YAAY,QAAQ,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,EAAE,MAAM,CAAC,WAAW,CAAC,CAAA;IAC/G,MAAM,IAAI,GAAG,CAAC,OAAoB,EAAE,EAAE;QACpC,KAAK,MAAM,MAAM,IAAI,OAAO,CAAC,OAAO;YAClC,KAAK,CAAC,GAAG,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,QAAQ,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,EAAE,MAAM,CAAC,WAAW,CAAC,CAAA;QACtF,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,CAAA;IAChC,CAAC,CAAA;IACD,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,CAAA;IAC9B,OAAO,KAAK,CAAA;AACd,CAAC,CAAA;AAED;;;GAGG;AACH,MAAM,CAAC,MAAM,eAAe,GAAG,CAAC,QAAkB,EAAE,GAAiB,EAAE,EAAgB,EAAY,EAAE;IACnG,MAAM,IAAI,GAAG;QACX,GAAG,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,KAAK,CAAC,EAAE,EAAE,CAAC,CAAC,UAAU,EAAE,IAAI,EAAE,KAAK,CAAU,CAAC;QACpG,GAAG,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,EAAE,GAAG,CAAC,EAAE,EAAE,CAC3D,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,OAAO,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,KAAK,CAAC,EAAE,EAAE,CAAC,CAAC,IAAI,EAAE,IAAI,EAAE,KAAK,CAAU,CAAC,CACvF;KACF,CAAA;IACD,MAAM,KAAK,GAAG,YAAY,CAAC,GAAG,CAAC,CAAA;IAC/B,MAAM,IAAI,GAAG,YAAY,CAAC,EAAE,CAAC,CAAA;IAC7B,OAAO,IAAI;SACR,MAAM,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,CAAC,EAAE,EAAE,CAAC,KAAK,KAAK,MAAM,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,IAAI,CAAC;SAC9E,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,IAAI,CAAC,EAAE,EAAE,CAAC,GAAG,IAAI,IAAI,IAAI,EAAE,CAAC;SACxC,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;SACvD,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,GAAG,KAAK,eAAe,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC,eAAe,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAA;AAC7F,CAAC,CAAA"}
1
+ {"version":3,"file":"wording.js","sourceRoot":"","sources":["../../src/parity/wording.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,25 @@
1
+ /** What correction needs of the store: the vocabulary, never the messages. */
2
+ export interface Vocabulary {
3
+ knownTerms(terms: string[]): Promise<Set<string>>;
4
+ termCandidates(trigrams: string[], lengths: {
5
+ shortest: number;
6
+ longest: number;
7
+ }): Promise<{
8
+ term: string;
9
+ docs: number;
10
+ }[]>;
11
+ }
12
+ /** One edit for a word of up to four letters, two above: a short word has few letters to spare. */
13
+ export declare const maxEdits: (word: string) => number;
14
+ /**
15
+ * Optimal string alignment — Levenshtein plus a swap of two neighbours, the commonest typo — that
16
+ * gives up as soon as the distance passes `max`.
17
+ */
18
+ export declare const editDistance: (a: string, b: string, max: number) => number;
19
+ /**
20
+ * The words the store does not know, each with its nearest known words: the smallest distance wins,
21
+ * then the most frequent, at most five (as the prototype measured, `bench/search/common.ts`). A word
22
+ * with no close neighbour, or made of digits, is left as it is.
23
+ */
24
+ export declare const correctWords: (vocabulary: Vocabulary, words: string[]) => Promise<Map<string, string[]>>;
25
+ //# sourceMappingURL=correct.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"correct.d.ts","sourceRoot":"","sources":["../../src/search/correct.ts"],"names":[],"mappings":"AAGA,8EAA8E;AAC9E,MAAM,WAAW,UAAU;IACzB,UAAU,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAA;IACjD,cAAc,CACZ,QAAQ,EAAE,MAAM,EAAE,EAClB,OAAO,EAAE;QAAE,QAAQ,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE,GAC7C,OAAO,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,EAAE,CAAC,CAAA;CAC7C;AAKD,mGAAmG;AACnG,eAAO,MAAM,QAAQ,SAAU,MAAM,KAAG,MAAoC,CAAA;AAE5E;;;GAGG;AACH,eAAO,MAAM,YAAY,MAAO,MAAM,KAAK,MAAM,OAAO,MAAM,KAAG,MAyBhE,CAAA;AAED;;;;GAIG;AACH,eAAO,MAAM,YAAY,eAAsB,UAAU,SAAS,MAAM,EAAE,KAAG,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,CA2BzG,CAAA"}
@@ -0,0 +1,65 @@
1
+ import { normalize } from "../store/normalize.js";
2
+ import { trigrams } from "./trigrams.js";
3
+ /** Two-letter words are nearly all filler — en, de, to — and would turn `len` into `en`. */
4
+ const SHORTEST_CORRECTION = 3;
5
+ /** One edit for a word of up to four letters, two above: a short word has few letters to spare. */
6
+ export const maxEdits = (word) => (word.length <= 4 ? 1 : 2);
7
+ /**
8
+ * Optimal string alignment — Levenshtein plus a swap of two neighbours, the commonest typo — that
9
+ * gives up as soon as the distance passes `max`.
10
+ */
11
+ export const editDistance = (a, b, max) => {
12
+ if (Math.abs(a.length - b.length) > max)
13
+ return max + 1;
14
+ let before = new Array(b.length + 1).fill(0);
15
+ let previous = Array.from({ length: b.length + 1 }, (_, at) => at);
16
+ let current = new Array(b.length + 1).fill(0);
17
+ for (let i = 1; i <= a.length; i++) {
18
+ current[0] = i;
19
+ let lowest = i;
20
+ for (let j = 1; j <= b.length; j++) {
21
+ const cost = a[i - 1] === b[j - 1] ? 0 : 1;
22
+ let value = Math.min(previous[j] + 1, current[j - 1] + 1, previous[j - 1] + cost);
23
+ if (i > 1 && j > 1 && a[i - 1] === b[j - 2] && a[i - 2] === b[j - 1]) {
24
+ value = Math.min(value, before[j - 2] + 1);
25
+ }
26
+ current[j] = value;
27
+ lowest = Math.min(lowest, value);
28
+ }
29
+ if (lowest > max)
30
+ return max + 1;
31
+ [before, previous, current] = [previous, current, before];
32
+ }
33
+ return previous[b.length];
34
+ };
35
+ /**
36
+ * The words the store does not know, each with its nearest known words: the smallest distance wins,
37
+ * then the most frequent, at most five (as the prototype measured, `bench/search/common.ts`). A word
38
+ * with no close neighbour, or made of digits, is left as it is.
39
+ */
40
+ export const correctWords = async (vocabulary, words) => {
41
+ const corrections = new Map();
42
+ const known = await vocabulary.knownTerms(words);
43
+ for (const typed of words) {
44
+ const word = normalize(typed);
45
+ if (known.has(typed) || /^\d*$/.test(word))
46
+ continue;
47
+ const max = maxEdits(word);
48
+ const near = (await vocabulary.termCandidates(trigrams(word), {
49
+ shortest: Math.max(SHORTEST_CORRECTION, word.length - max),
50
+ longest: word.length + max,
51
+ }))
52
+ .map((candidate) => ({ ...candidate, distance: editDistance(word, candidate.term, max) }))
53
+ .filter((candidate) => candidate.distance <= max);
54
+ if (near.length === 0)
55
+ continue;
56
+ const nearest = Math.min(...near.map((candidate) => candidate.distance));
57
+ corrections.set(typed, near
58
+ .filter((candidate) => candidate.distance === nearest)
59
+ .sort((a, b) => b.docs - a.docs)
60
+ .slice(0, 5)
61
+ .map((candidate) => candidate.term));
62
+ }
63
+ return corrections;
64
+ };
65
+ //# sourceMappingURL=correct.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"correct.js","sourceRoot":"","sources":["../../src/search/correct.ts"],"names":[],"mappings":"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"}
@@ -1,3 +1,4 @@
1
+ import type { Provider } from "../domain/models.js";
1
2
  export type Term = {
2
3
  kind: "word";
3
4
  text: string;
@@ -5,7 +6,7 @@ export type Term = {
5
6
  kind: "phrase";
6
7
  words: string[];
7
8
  };
8
- export type Source = "telegram" | "max" | "all";
9
+ export type Source = Provider | "all";
9
10
  /**
10
11
  * A parsed search (phase 2 plan §4). `required` is AND of groups, each group OR of terms — OR binds
11
12
  * tighter than the implied AND. Words are as typed; normalizing them is the search's job.
@@ -22,7 +23,9 @@ export interface SearchQuery {
22
23
  has: string[];
23
24
  in?: Source;
24
25
  }
25
- export declare const parseQuery: (query: string, { now }?: {
26
+ /** `providers` are the messengers the store holds; `in:` takes one of them, or `all`. */
27
+ export declare const parseQuery: (query: string, { now, providers }?: {
26
28
  now?: number;
29
+ providers?: readonly Provider[];
27
30
  }) => SearchQuery;
28
31
  //# sourceMappingURL=query.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"query.d.ts","sourceRoot":"","sources":["../../src/search/query.ts"],"names":[],"mappings":"AAEA,MAAM,MAAM,IAAI,GAAG;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,GAAG;IAAE,IAAI,EAAE,QAAQ,CAAC;IAAC,KAAK,EAAE,MAAM,EAAE,CAAA;CAAE,CAAA;AAEvF,MAAM,MAAM,MAAM,GAAG,UAAU,GAAG,KAAK,GAAG,KAAK,CAAA;AAE/C;;;GAGG;AACH,MAAM,WAAW,WAAW;IAC1B,QAAQ,EAAE,IAAI,EAAE,EAAE,CAAA;IAClB,QAAQ,EAAE,IAAI,EAAE,CAAA;IAChB,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,2BAA2B;IAC3B,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,2BAA2B;IAC3B,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,GAAG,EAAE,MAAM,EAAE,CAAA;IACb,EAAE,CAAC,EAAE,MAAM,CAAA;CACZ;AAsED,eAAO,MAAM,UAAU,UAAW,MAAM,YAAwB;IAAE,GAAG,CAAC,EAAE,MAAM,CAAA;CAAE,KAAQ,WAuCvF,CAAA"}
1
+ {"version":3,"file":"query.d.ts","sourceRoot":"","sources":["../../src/search/query.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAA;AAEnD,MAAM,MAAM,IAAI,GAAG;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,GAAG;IAAE,IAAI,EAAE,QAAQ,CAAC;IAAC,KAAK,EAAE,MAAM,EAAE,CAAA;CAAE,CAAA;AAEvF,MAAM,MAAM,MAAM,GAAG,QAAQ,GAAG,KAAK,CAAA;AAErC;;;GAGG;AACH,MAAM,WAAW,WAAW;IAC1B,QAAQ,EAAE,IAAI,EAAE,EAAE,CAAA;IAClB,QAAQ,EAAE,IAAI,EAAE,CAAA;IAChB,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,2BAA2B;IAC3B,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,2BAA2B;IAC3B,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,GAAG,EAAE,MAAM,EAAE,CAAA;IACb,EAAE,CAAC,EAAE,MAAM,CAAA;CACZ;AAqED,yFAAyF;AACzF,eAAO,MAAM,UAAU,UACd,MAAM,uBACyB;IAAE,GAAG,CAAC,EAAE,MAAM,CAAC;IAAC,SAAS,CAAC,EAAE,SAAS,QAAQ,EAAE,CAAA;CAAE,KACtF,WAwCF,CAAA"}