slackmark 0.5.0 → 0.6.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +29 -17
- package/dist/adapters/block-to-plain-text.d.ts +24 -0
- package/dist/adapters/block-to-plain-text.d.ts.map +1 -0
- package/dist/adapters/blockquote-adapter.d.ts.map +1 -1
- package/dist/adapters/code-fence-adapter.d.ts +1 -1
- package/dist/adapters/code-fence-adapter.d.ts.map +1 -1
- package/dist/adapters/inline.d.ts.map +1 -1
- package/dist/adapters/list-adapter.d.ts.map +1 -1
- package/dist/adapters/math-block-adapter.d.ts +1 -1
- package/dist/adapters/math-block-adapter.d.ts.map +1 -1
- package/dist/adapters/mermaid-fence-adapter.d.ts.map +1 -1
- package/dist/adapters/table-adapter.d.ts.map +1 -1
- package/dist/adapters/task-list-adapter.d.ts.map +1 -1
- package/dist/adapters/try-render-image.d.ts +9 -0
- package/dist/adapters/try-render-image.d.ts.map +1 -0
- package/dist/assemble/message-assembler.d.ts +10 -0
- package/dist/assemble/message-assembler.d.ts.map +1 -1
- package/dist/budget/conversion-context.d.ts +5 -1
- package/dist/budget/conversion-context.d.ts.map +1 -1
- package/dist/budget/operation-scope.d.ts +9 -0
- package/dist/budget/operation-scope.d.ts.map +1 -0
- package/dist/budget/recording-receipt-collector.d.ts +13 -0
- package/dist/budget/recording-receipt-collector.d.ts.map +1 -0
- package/dist/capabilities/capabilities.d.ts.map +1 -1
- package/dist/constants.d.ts +14 -0
- package/dist/constants.d.ts.map +1 -1
- package/dist/converter/create-converter.d.ts +1 -1
- package/dist/converter/create-converter.d.ts.map +1 -1
- package/dist/converter/resolve-config.d.ts +4 -2
- package/dist/converter/resolve-config.d.ts.map +1 -1
- package/dist/converter/slackmark-converter.d.ts +11 -1
- package/dist/converter/slackmark-converter.d.ts.map +1 -1
- package/dist/errors.d.ts +81 -3
- package/dist/errors.d.ts.map +1 -1
- package/dist/index.d.ts +6 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +5080 -3585
- package/dist/index.js.map +1 -1
- package/dist/receipts.d.ts +37 -0
- package/dist/receipts.d.ts.map +1 -0
- package/dist/renderers/codecogs-renderer.d.ts +5 -5
- package/dist/renderers/codecogs-renderer.d.ts.map +1 -1
- package/dist/renderers/kroki-renderer.d.ts +5 -5
- package/dist/renderers/kroki-renderer.d.ts.map +1 -1
- package/dist/renderers/mermaid-ink-renderer.d.ts +5 -5
- package/dist/renderers/mermaid-ink-renderer.d.ts.map +1 -1
- package/dist/renderers/quickchart-renderer.d.ts +5 -5
- package/dist/renderers/quickchart-renderer.d.ts.map +1 -1
- package/dist/renderers/renderer-options.d.ts +4 -0
- package/dist/renderers/renderer-options.d.ts.map +1 -0
- package/dist/renderers/url-utils.d.ts.map +1 -1
- package/dist/renderers.d.ts +1 -0
- package/dist/renderers.d.ts.map +1 -1
- package/dist/renderers.js +412 -248
- package/dist/renderers.js.map +1 -1
- package/dist/slack/fetch-slack-uploader.d.ts +11 -2
- package/dist/slack/fetch-slack-uploader.d.ts.map +1 -1
- package/dist/slack/slack-upload-error.d.ts +18 -2
- package/dist/slack/slack-upload-error.d.ts.map +1 -1
- package/dist/slack.d.ts +2 -1
- package/dist/slack.d.ts.map +1 -1
- package/dist/slack.js +753 -230
- package/dist/slack.js.map +1 -1
- package/dist/types.d.ts +93 -11
- package/dist/types.d.ts.map +1 -1
- package/dist/validate/validate-blocks.d.ts.map +1 -1
- package/package.json +5 -4
package/README.md
CHANGED
|
@@ -15,7 +15,7 @@ renders any Block Kit JSON and pairs perfectly with `slackmark`.
|
|
|
15
15
|
- Ordered fallback chains with `Degradation` records (never silent)
|
|
16
16
|
- Message budgets (50 blocks, table/markdown/chart caps)
|
|
17
17
|
- Mermaid `pie` / `xychart-beta` → native charts; other mermaid diagrams → configured `renderers` or preformatted fallback
|
|
18
|
-
-
|
|
18
|
+
- Display math and non-mermaid code fences → configured `renderers` or preformatted/code text
|
|
19
19
|
- OOP + constructor DI; `convert()` convenience for simple use
|
|
20
20
|
|
|
21
21
|
## Quickstart
|
|
@@ -24,15 +24,17 @@ renders any Block Kit JSON and pairs perfectly with `slackmark`.
|
|
|
24
24
|
pnpm add slackmark
|
|
25
25
|
```
|
|
26
26
|
|
|
27
|
-
```ts
|
|
27
|
+
```ts snippet=fragment note="assumes an options object shown in the prose above"
|
|
28
28
|
import { convert } from "slackmark";
|
|
29
29
|
|
|
30
|
-
const { blocks, text, degradations } = await convert("# Hello **Slack**"
|
|
30
|
+
const { blocks, text, degradations, receipts } = await convert("# Hello **Slack**", {
|
|
31
|
+
timeoutMs: 5_000,
|
|
32
|
+
});
|
|
31
33
|
```
|
|
32
34
|
|
|
33
35
|
Advanced (inject fakes / custom adapters):
|
|
34
36
|
|
|
35
|
-
```ts
|
|
37
|
+
```ts snippet=fragment note="assumes markdown"
|
|
36
38
|
import { createConverter } from "slackmark";
|
|
37
39
|
|
|
38
40
|
const converter = createConverter({
|
|
@@ -54,7 +56,8 @@ const result = await converter.convert(markdown);
|
|
|
54
56
|
| `ImageRenderer` / `SlackUploader` | Renderer and upload seams |
|
|
55
57
|
| `validateBlocks` | Limit validator |
|
|
56
58
|
|
|
57
|
-
Result shape: `{ blocks, text, degradations }
|
|
59
|
+
Result shape: `{ blocks, text, degradations, receipts }`. Receipts report external upload
|
|
60
|
+
effects separately from content fallbacks.
|
|
58
61
|
|
|
59
62
|
## Compat profiles
|
|
60
63
|
|
|
@@ -74,44 +77,53 @@ Pass a preset name, a flags object, and/or `capabilityOverrides`.
|
|
|
74
77
|
|
|
75
78
|
Built-in adapters cover the mapping matrix. Prepend custom `NodeAdapter`s via `createConverter({ adapters })`.
|
|
76
79
|
|
|
77
|
-
No renderer or uploader is enabled by default, so default conversion performs no network I/O.
|
|
80
|
+
No renderer or uploader is enabled by default, so default conversion performs no network I/O. Mermaid fences consult `config.renderers` after native `pie` / `xychart-beta` candidates. Display math and generic code fences consult the same ordered renderer list before their preformatted fallback. Each renderer's `canRender` method decides which normalized languages it accepts.
|
|
78
81
|
|
|
79
|
-
Hosted URL renderers compose durable public PNG URLs (no network I/O in core); they return `null` when Slack's 3,000-character `image_url` limit would be exceeded.
|
|
82
|
+
Hosted URL renderers compose durable public HTTPS PNG URLs (no network I/O in core); they return `null` when Slack's 3,000-character `image_url` limit would be exceeded. Renderer, uploader, and capability-check failures remain scoped to one Markdown node. Attempt failures are buffered while later renderers run: a later success emits no degradation, while an all-failed chain records structured details before text fallback.
|
|
80
83
|
|
|
81
84
|
Import first-party URL adapters from the dedicated subpath:
|
|
82
85
|
|
|
83
|
-
```ts
|
|
86
|
+
```ts snippet=fragment note="converter options shape"
|
|
84
87
|
import { createConverter } from "slackmark";
|
|
85
88
|
import { KrokiRenderer, MermaidInkRenderer } from "slackmark/renderers";
|
|
86
89
|
|
|
87
90
|
const converter = createConverter({
|
|
88
91
|
renderers: [new MermaidInkRenderer()],
|
|
89
|
-
// or: renderers: [new KrokiRenderer()],
|
|
92
|
+
// or: renderers: [new KrokiRenderer()],
|
|
90
93
|
});
|
|
91
94
|
```
|
|
92
95
|
|
|
93
96
|
- `MermaidInkRenderer` emits pako-state PNG URLs for mermaid fences with a non-transparent background by default.
|
|
94
|
-
- `KrokiRenderer`
|
|
95
|
-
- `CodeCogsRenderer`
|
|
97
|
+
- `KrokiRenderer` handles Mermaid and supported diagram fence languages such as `d2`, `dot`, and `plantuml`.
|
|
98
|
+
- `CodeCogsRenderer` handles display math and `katex`, `latex`, `math`, or `tex` fences.
|
|
99
|
+
- `QuickChartRenderer` handles `chart`, `chart.js`, `chartjs`, and `quickchart` fences.
|
|
100
|
+
|
|
101
|
+
For local Mermaid and KaTeX PNGs in a Node bot, install `slackmark-node` and use
|
|
102
|
+
its resource-owning helper. See the
|
|
103
|
+
[`slackmark-node` README](../node-renderers/README.md) and the
|
|
104
|
+
[Rasterize content guide](https://github.com/SirajChokshi/slackmark/blob/main/apps/site/src/docs/slackmark/rasterize-content/overview.mdx),
|
|
105
|
+
whose lifecycle example preserves both the primary error and a close error.
|
|
106
|
+
|
|
107
|
+
It reuses one lazy Chromium instance; the uploader lifetime and credentials stay
|
|
108
|
+
separate. `slackmark-node` requires Node 22.12+; core remains universal.
|
|
96
109
|
|
|
97
110
|
Hosted services receive the diagram source encoded in the URL when Slack fetches the image. Treat them as explicit data-egress opt-ins. Each adapter accepts `baseUrl` for a self-hosted deployment:
|
|
98
111
|
|
|
99
|
-
```ts
|
|
112
|
+
```ts snippet=fragment note="renderer list, not a program"
|
|
100
113
|
const privateRenderers = [
|
|
101
114
|
new KrokiRenderer({ baseUrl: "https://kroki.internal.example" }),
|
|
102
115
|
new MermaidInkRenderer({ baseUrl: "https://mermaid.internal.example" }),
|
|
103
116
|
];
|
|
104
117
|
```
|
|
105
118
|
|
|
106
|
-
Bytes
|
|
119
|
+
Bytes results use a `SlackUploader`. A missing uploader is deferred while later renderers can recover, then becomes a terminal `ConfigurationError` only if no renderer succeeds. Upload effects are returned separately in immutable `receipts`, including effects from failed attempts. The fetch implementation uses Slack's external upload flow:
|
|
107
120
|
|
|
108
|
-
```ts
|
|
121
|
+
```ts snippet=fragment note="assumes markdown"
|
|
109
122
|
import { createConverter } from "slackmark";
|
|
110
123
|
import { FetchSlackUploader } from "slackmark/slack";
|
|
111
124
|
|
|
112
125
|
const uploader = new FetchSlackUploader({
|
|
113
126
|
token: slackBotToken,
|
|
114
|
-
channelId: targetChannelId,
|
|
115
127
|
});
|
|
116
128
|
|
|
117
129
|
const converter = createConverter({
|
|
@@ -120,7 +132,7 @@ const converter = createConverter({
|
|
|
120
132
|
});
|
|
121
133
|
```
|
|
122
134
|
|
|
123
|
-
Inject `fetch`, sleep, and clock functions for deterministic tests. The Slack token needs `files:write`
|
|
135
|
+
Inject `fetch`, sleep, and clock functions for deterministic tests. The Slack token needs `files:write`. Optional `files.info` processing polling additionally needs `files:read`; explicit `channelId` sharing can create a separate file-share message.
|
|
124
136
|
|
|
125
137
|
## Raw Slack entities
|
|
126
138
|
|
|
@@ -132,7 +144,7 @@ syntax literal, wrap it in a code span (`` `<@U123>` ``).
|
|
|
132
144
|
|
|
133
145
|
## Optional remark plugins
|
|
134
146
|
|
|
135
|
-
`remark-math` and `remark-frontmatter` are dependencies; enable with `enableMath` / `enableFrontmatter`.
|
|
147
|
+
`remark-math` and `remark-frontmatter` are dependencies; enable with `enableMath` / `enableFrontmatter`. Display math is parsed when enabled, then offered to configured renderers before preformatted fallback. Single-dollar inline math is a separate opt-in (`enableInlineMath`): agent prose is far likelier to contain `$200/mo` than `$x$`, and reading the span between two dollar signs as math deletes both signs. When it is opted into, inline math stays code-styled text.
|
|
136
148
|
|
|
137
149
|
## License
|
|
138
150
|
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import type { Nodes } from "mdast";
|
|
2
|
+
/**
|
|
3
|
+
* Plain text for a block that had to be flattened into a single text run.
|
|
4
|
+
*
|
|
5
|
+
* `mdast-util-to-string` concatenates every descendant with no separator, so a
|
|
6
|
+
* table collapses to "ab12" and sibling paragraphs run together as
|
|
7
|
+
* "para onepara two". Flattening is already flagged as a degradation; the text
|
|
8
|
+
* it leaves behind still has to be readable, so re-insert the separators the
|
|
9
|
+
* structure carried.
|
|
10
|
+
*/
|
|
11
|
+
export declare function blockToPlainText(node: Nodes): string;
|
|
12
|
+
/** A link or image URL that flattening is about to discard. */
|
|
13
|
+
export interface FlattenedUrl {
|
|
14
|
+
readonly nodeType: "link" | "image";
|
|
15
|
+
readonly url: string;
|
|
16
|
+
}
|
|
17
|
+
/**
|
|
18
|
+
* Link and image URLs carried by a block that is about to be flattened.
|
|
19
|
+
* {@link blockToPlainText} keeps only labels and alt text, so callers must
|
|
20
|
+
* flag these before they disappear — silent omission is a bug even when the
|
|
21
|
+
* surrounding flattening is itself already flagged.
|
|
22
|
+
*/
|
|
23
|
+
export declare function collectFlattenedUrls(node: unknown, into: FlattenedUrl[]): void;
|
|
24
|
+
//# sourceMappingURL=block-to-plain-text.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"block-to-plain-text.d.ts","sourceRoot":"","sources":["../../src/adapters/block-to-plain-text.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,OAAO,CAAC;AAGnC;;;;;;;;GAQG;AACH,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,KAAK,GAAG,MAAM,CAmBpD;AAED,+DAA+D;AAC/D,MAAM,WAAW,YAAY;IAC3B,QAAQ,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC;IACpC,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;CACtB;AAED;;;;;GAKG;AACH,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,YAAY,EAAE,GAAG,IAAI,CAiB9E"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"blockquote-adapter.d.ts","sourceRoot":"","sources":["../../src/adapters/blockquote-adapter.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAc,WAAW,EAAE,MAAM,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"blockquote-adapter.d.ts","sourceRoot":"","sources":["../../src/adapters/blockquote-adapter.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAc,WAAW,EAAE,MAAM,OAAO,CAAC;AAGrD,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,iCAAiC,CAAC;AAQzE,OAAO,KAAK,EAAE,SAAS,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAYhE;;GAEG;AACH,qBAAa,iBAAkB,YAAW,WAAW;IACnD,KAAK,CAAC,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,iBAAiB,GAAG,OAAO,CAEzD;IAED,IAAI,CAAC,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,iBAAiB,GAAG,aAAa,CAAC,SAAS,CAAC,CAezE;CACF"}
|
|
@@ -2,7 +2,7 @@ import type { RootContent } from "mdast";
|
|
|
2
2
|
import type { ConversionContext } from "../budget/conversion-context.js";
|
|
3
3
|
import type { Candidate, NodeAdapter } from "./node-adapter.js";
|
|
4
4
|
/**
|
|
5
|
-
*
|
|
5
|
+
* Code fences → configured image renderer / rich_text_preformatted.
|
|
6
6
|
* Mermaid/math dialects are handled by more specific adapters that match first.
|
|
7
7
|
*/
|
|
8
8
|
export declare class CodeFenceAdapter implements NodeAdapter {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"code-fence-adapter.d.ts","sourceRoot":"","sources":["../../src/adapters/code-fence-adapter.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAQ,WAAW,EAAE,MAAM,OAAO,CAAC;AAG/C,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,iCAAiC,CAAC;AAGzE,OAAO,KAAK,EAAE,SAAS,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;
|
|
1
|
+
{"version":3,"file":"code-fence-adapter.d.ts","sourceRoot":"","sources":["../../src/adapters/code-fence-adapter.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAQ,WAAW,EAAE,MAAM,OAAO,CAAC;AAG/C,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,iCAAiC,CAAC;AAGzE,OAAO,KAAK,EAAE,SAAS,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAGhE;;;GAGG;AACH,qBAAa,gBAAiB,YAAW,WAAW;IAClD,KAAK,CAAC,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,iBAAiB,GAAG,OAAO,CAEzD;IAED,IAAI,CAAC,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,iBAAiB,GAAG,aAAa,CAAC,SAAS,CAAC,CAyCzE;CACF"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"inline.d.ts","sourceRoot":"","sources":["../../src/adapters/inline.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAiC,eAAe,EAAgB,MAAM,OAAO,CAAC;AAG1F,OAAO,KAAK,EACV,UAAU,EACV,aAAa,EAEb,cAAc,EAEd,aAAa,EAEd,MAAM,oBAAoB,CAAC;AAC5B,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,iCAAiC,CAAC;AAYzE,MAAM,MAAM,YAAY,GAAG;IACzB,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,KAAK,EAAE,MAAM,GAAG,SAAS,CAAC;CACpC,CAAC;AAEF,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,CAAC,QAAQ,EAAE,aAAa,CAAC,cAAc,CAAC,CAAC;IACjD,QAAQ,CAAC,aAAa,EAAE,aAAa,CAAC,YAAY,CAAC,CAAC;CACrD;AAED;;GAEG;AACH,wBAAgB,YAAY,CAC1B,KAAK,EAAE,aAAa,CAAC,eAAe,CAAC,EACrC,GAAG,EAAE,iBAAiB,EACtB,SAAS,GAAE,aAAkB,GAC5B,gBAAgB,CAiQlB;AAED;;GAEG;AACH,wBAAgB,eAAe,CAAC,KAAK,EAAE,aAAa,CAAC,eAAe,CAAC,GAAG,MAAM,CAE7E;AAED,wBAAgB,gBAAgB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAerD;AAED;;GAEG;AACH,wBAAgB,oBAAoB,CAClC,KAAK,EAAE,aAAa,CAAC,eAAe,CAAC,EACrC,GAAG,EAAE,iBAAiB,GACrB,MAAM,CAuCR;
|
|
1
|
+
{"version":3,"file":"inline.d.ts","sourceRoot":"","sources":["../../src/adapters/inline.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAiC,eAAe,EAAgB,MAAM,OAAO,CAAC;AAG1F,OAAO,KAAK,EACV,UAAU,EACV,aAAa,EAEb,cAAc,EAEd,aAAa,EAEd,MAAM,oBAAoB,CAAC;AAC5B,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,iCAAiC,CAAC;AAYzE,MAAM,MAAM,YAAY,GAAG;IACzB,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,KAAK,EAAE,MAAM,GAAG,SAAS,CAAC;CACpC,CAAC;AAEF,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,CAAC,QAAQ,EAAE,aAAa,CAAC,cAAc,CAAC,CAAC;IACjD,QAAQ,CAAC,aAAa,EAAE,aAAa,CAAC,YAAY,CAAC,CAAC;CACrD;AAED;;GAEG;AACH,wBAAgB,YAAY,CAC1B,KAAK,EAAE,aAAa,CAAC,eAAe,CAAC,EACrC,GAAG,EAAE,iBAAiB,EACtB,SAAS,GAAE,aAAkB,GAC5B,gBAAgB,CAiQlB;AAED;;GAEG;AACH,wBAAgB,eAAe,CAAC,KAAK,EAAE,aAAa,CAAC,eAAe,CAAC,GAAG,MAAM,CAE7E;AAED,wBAAgB,gBAAgB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAerD;AAED;;GAEG;AACH,wBAAgB,oBAAoB,CAClC,KAAK,EAAE,aAAa,CAAC,eAAe,CAAC,EACrC,GAAG,EAAE,iBAAiB,GACrB,MAAM,CAuCR;AAsDD,wBAAgB,aAAa,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,SAAS,EAAE,OAAO,CAAA;CAAE,CAK9F;AAED,2EAA2E;AAC3E,wBAAgB,iBAAiB,CAAC,CAAC,EAAE,YAAY,EAAE,GAAG,EAAE,iBAAiB,GAAG,UAAU,CAUrF;AAED,gFAAgF;AAChF,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,iBAAiB,EAAE,QAAQ,EAAE,MAAM,GAAG,MAAM,CAY/F;AAED,gFAAgF;AAChF,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,SAAS,GAAG,aAAa,CAY9F;AAED,mFAAmF;AACnF,wBAAgB,cAAc,CAC5B,KAAK,EAAE,MAAM,EACb,GAAG,EAAE,iBAAiB,EACtB,KAAK,EAAE,UAAU,GAAG,OAAO,GAC1B,MAAM,CAYR;AA0LD;;;GAGG;AACH,wBAAgB,0BAA0B,CACxC,KAAK,EAAE,MAAM,EACb,KAAK,EAAE,aAAa,GACnB,aAAa,CAAC,cAAc,CAAC,GAAG,SAAS,CAI3C;AAED,gGAAgG;AAChG,wBAAgB,8BAA8B,CAC5C,KAAK,EAAE,aAAa,CAAC,eAAe,CAAC,EACrC,GAAG,EAAE,iBAAiB,GACrB,OAAO,CAQT;AA8HD;;;;GAIG;AACH,wBAAgB,cAAc,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAKnD"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"list-adapter.d.ts","sourceRoot":"","sources":["../../src/adapters/list-adapter.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAA6B,WAAW,EAAE,MAAM,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"list-adapter.d.ts","sourceRoot":"","sources":["../../src/adapters/list-adapter.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAA6B,WAAW,EAAE,MAAM,OAAO,CAAC;AAG1E,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,iCAAiC,CAAC;AAczE,OAAO,KAAK,EAAE,SAAS,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAEhE;;GAEG;AACH,qBAAa,WAAY,YAAW,WAAW;IAC7C,KAAK,CAAC,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,iBAAiB,GAAG,OAAO,CAKzD;IAED,IAAI,CAAC,IAAI,EAAE,WAAW,EAAE,GAAG,EAAE,iBAAiB,GAAG,aAAa,CAAC,SAAS,CAAC,CA2BxE;CACF;AAmBD,wBAAgB,UAAU,CAAC,IAAI,EAAE,IAAI,GAAG,OAAO,CAE9C"}
|
|
@@ -2,7 +2,7 @@ import type { RootContent } from "mdast";
|
|
|
2
2
|
import type { ConversionContext } from "../budget/conversion-context.js";
|
|
3
3
|
import type { Candidate, NodeAdapter } from "./node-adapter.js";
|
|
4
4
|
/**
|
|
5
|
-
* Display math →
|
|
5
|
+
* Display math → configured image renderer / preformatted TeX.
|
|
6
6
|
*/
|
|
7
7
|
export declare class MathBlockAdapter implements NodeAdapter {
|
|
8
8
|
match(node: RootContent, _ctx: ConversionContext): boolean;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"math-block-adapter.d.ts","sourceRoot":"","sources":["../../src/adapters/math-block-adapter.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,OAAO,CAAC;AAGzC,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,iCAAiC,CAAC;AAGzE,OAAO,KAAK,EAAE,SAAS,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;
|
|
1
|
+
{"version":3,"file":"math-block-adapter.d.ts","sourceRoot":"","sources":["../../src/adapters/math-block-adapter.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,OAAO,CAAC;AAGzC,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,iCAAiC,CAAC;AAGzE,OAAO,KAAK,EAAE,SAAS,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAGhE;;GAEG;AACH,qBAAa,gBAAiB,YAAW,WAAW;IAClD,KAAK,CAAC,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,iBAAiB,GAAG,OAAO,CAEzD;IAED,IAAI,CAAC,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,iBAAiB,GAAG,aAAa,CAAC,SAAS,CAAC,CAuCzE;CACF"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mermaid-fence-adapter.d.ts","sourceRoot":"","sources":["../../src/adapters/mermaid-fence-adapter.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAQ,WAAW,EAAE,MAAM,OAAO,CAAC;AAG/C,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,iCAAiC,CAAC;
|
|
1
|
+
{"version":3,"file":"mermaid-fence-adapter.d.ts","sourceRoot":"","sources":["../../src/adapters/mermaid-fence-adapter.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAQ,WAAW,EAAE,MAAM,OAAO,CAAC;AAG/C,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,iCAAiC,CAAC;AASzE,OAAO,KAAK,EAAE,kBAAkB,EAAoC,MAAM,aAAa,CAAC;AAGxF,OAAO,KAAK,EAAE,SAAS,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAGhE,MAAM,WAAW,uBAAuB;IACtC,QAAQ,CAAC,SAAS,EAAE,kBAAkB,CAAC;IACvC,QAAQ,CAAC,QAAQ,EAAE,kBAAkB,CAAC;CACvC;AAED;;GAEG;AACH,qBAAa,mBAAoB,YAAW,WAAW;IACrD,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAqB;IAC/C,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAqB;IAE9C,YAAY,IAAI,EAAE,uBAAuB,EAGxC;IAED,KAAK,CAAC,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,iBAAiB,GAAG,OAAO,CAEzD;IAED,IAAI,CAAC,IAAI,EAAE,WAAW,EAAE,GAAG,EAAE,iBAAiB,GAAG,aAAa,CAAC,SAAS,CAAC,CA+ExE;CACF"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"table-adapter.d.ts","sourceRoot":"","sources":["../../src/adapters/table-adapter.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAa,WAAW,EAAsC,MAAM,OAAO,CAAC;AAYxF,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,iCAAiC,CAAC;
|
|
1
|
+
{"version":3,"file":"table-adapter.d.ts","sourceRoot":"","sources":["../../src/adapters/table-adapter.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAa,WAAW,EAAsC,MAAM,OAAO,CAAC;AAYxF,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,iCAAiC,CAAC;AAazE,OAAO,KAAK,EAAE,SAAS,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAEhE;;GAEG;AACH,qBAAa,YAAa,YAAW,WAAW;IAC9C,KAAK,CAAC,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,iBAAiB,GAAG,OAAO,CAEzD;IAED,IAAI,CAAC,IAAI,EAAE,WAAW,EAAE,GAAG,EAAE,iBAAiB,GAAG,aAAa,CAAC,SAAS,CAAC,CAqFxE;CACF"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"task-list-adapter.d.ts","sourceRoot":"","sources":["../../src/adapters/task-list-adapter.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAkB,WAAW,EAAE,MAAM,OAAO,CAAC;AAUzD,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,iCAAiC,CAAC;
|
|
1
|
+
{"version":3,"file":"task-list-adapter.d.ts","sourceRoot":"","sources":["../../src/adapters/task-list-adapter.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAkB,WAAW,EAAE,MAAM,OAAO,CAAC;AAUzD,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,iCAAiC,CAAC;AAKzE,OAAO,KAAK,EAAE,SAAS,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAEhE;;GAEG;AACH,qBAAa,eAAgB,YAAW,WAAW;IACjD,KAAK,CAAC,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,iBAAiB,GAAG,OAAO,CAEzD;IAED,IAAI,CAAC,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,iBAAiB,GAAG,aAAa,CAAC,SAAS,CAAC,CA4BzE;CACF"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import type { ImageBlock } from "../blocks/types.js";
|
|
2
|
+
import type { ConversionContext } from "../budget/conversion-context.js";
|
|
3
|
+
import { type RenderRequest } from "../types.js";
|
|
4
|
+
/**
|
|
5
|
+
* Try configured renderers in order and turn the first successful result into
|
|
6
|
+
* a Slack image block. Attempt failures are emitted only on terminal fallback.
|
|
7
|
+
*/
|
|
8
|
+
export declare function tryRenderImage(request: RenderRequest, nodeType: string, ctx: ConversionContext): Promise<ImageBlock | undefined>;
|
|
9
|
+
//# sourceMappingURL=try-render-image.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"try-render-image.d.ts","sourceRoot":"","sources":["../../src/adapters/try-render-image.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AACrD,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,iCAAiC,CAAC;AAiBzE,OAAO,EAOL,KAAK,aAAa,EAInB,MAAM,aAAa,CAAC;AA4BrB;;;GAGG;AACH,wBAAsB,cAAc,CAClC,OAAO,EAAE,aAAa,EACtB,QAAQ,EAAE,MAAM,EAChB,GAAG,EAAE,iBAAiB,GACrB,OAAO,CAAC,UAAU,GAAG,SAAS,CAAC,CAqIjC"}
|
|
@@ -21,4 +21,14 @@ export declare function buildFootnoteBlocks(entries: ReadonlyArray<{
|
|
|
21
21
|
readonly n: number;
|
|
22
22
|
readonly text: string;
|
|
23
23
|
}>, degradations?: DegradationCollector): ReadonlyArray<Block>;
|
|
24
|
+
/**
|
|
25
|
+
* How many blocks `blocks` adds to a message whose last block is `previous`, once
|
|
26
|
+
* {@link MessageAssembler.assemble} has merged adjacent rich_text sections.
|
|
27
|
+
*
|
|
28
|
+
* Emission reserves one block per source node before it knows what the node produces, so
|
|
29
|
+
* without this a run of 60 paragraphs exhausts the 50-block budget even though it
|
|
30
|
+
* coalesces into a single block. The converter reconciles the reservation against this
|
|
31
|
+
* count so the budget tracks what is actually emitted.
|
|
32
|
+
*/
|
|
33
|
+
export declare function coalescedBlockCount(previous: Block | undefined, blocks: ReadonlyArray<Block>): number;
|
|
24
34
|
//# sourceMappingURL=message-assembler.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"message-assembler.d.ts","sourceRoot":"","sources":["../../src/assemble/message-assembler.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EACV,KAAK,EAMN,MAAM,oBAAoB,CAAC;AAE5B,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,iCAAiC,CAAC;AAOzE,OAAO,KAAK,EAEV,iBAAiB,EACjB,oBAAoB,EACpB,iBAAiB,EAClB,MAAM,aAAa,CAAC;AAIrB,MAAM,WAAW,oBAAoB;IACnC,QAAQ,CAAC,SAAS,EAAE,iBAAiB,CAAC;CACvC;AAED;;GAEG;AACH,qBAAa,gBAAgB;IAC3B,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAoB;IAE9C,YAAY,IAAI,EAAE,oBAAoB,EAErC;IAED,QAAQ,CACN,MAAM,EAAE,aAAa,CAAC,KAAK,CAAC,EAC5B,GAAG,EAAE,iBAAiB,EACtB,cAAc,EAAE,aAAa,CAAC,KAAK,CAAC,GACnC,aAAa,CAAC,iBAAiB,CAAC,CAsClC;IAED,OAAO,CAAC,aAAa;IAkDrB,OAAO,CAAC,SAAS;CAclB;AAED;;GAEG;AACH,wBAAgB,mBAAmB,CACjC,OAAO,EAAE,aAAa,CAAC;IAAE,QAAQ,CAAC,CAAC,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;CAAE,CAAC,EACrE,YAAY,CAAC,EAAE,oBAAoB,GAClC,aAAa,CAAC,KAAK,CAAC,CA0BtB"}
|
|
1
|
+
{"version":3,"file":"message-assembler.d.ts","sourceRoot":"","sources":["../../src/assemble/message-assembler.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EACV,KAAK,EAMN,MAAM,oBAAoB,CAAC;AAE5B,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,iCAAiC,CAAC;AAOzE,OAAO,KAAK,EAEV,iBAAiB,EACjB,oBAAoB,EACpB,iBAAiB,EAClB,MAAM,aAAa,CAAC;AAIrB,MAAM,WAAW,oBAAoB;IACnC,QAAQ,CAAC,SAAS,EAAE,iBAAiB,CAAC;CACvC;AAED;;GAEG;AACH,qBAAa,gBAAgB;IAC3B,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAoB;IAE9C,YAAY,IAAI,EAAE,oBAAoB,EAErC;IAED,QAAQ,CACN,MAAM,EAAE,aAAa,CAAC,KAAK,CAAC,EAC5B,GAAG,EAAE,iBAAiB,EACtB,cAAc,EAAE,aAAa,CAAC,KAAK,CAAC,GACnC,aAAa,CAAC,iBAAiB,CAAC,CAsClC;IAED,OAAO,CAAC,aAAa;IAkDrB,OAAO,CAAC,SAAS;CAclB;AAED;;GAEG;AACH,wBAAgB,mBAAmB,CACjC,OAAO,EAAE,aAAa,CAAC;IAAE,QAAQ,CAAC,CAAC,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;CAAE,CAAC,EACrE,YAAY,CAAC,EAAE,oBAAoB,GAClC,aAAa,CAAC,KAAK,CAAC,CA0BtB;AA6CD;;;;;;;;GAQG;AACH,wBAAgB,mBAAmB,CACjC,QAAQ,EAAE,KAAK,GAAG,SAAS,EAC3B,MAAM,EAAE,aAAa,CAAC,KAAK,CAAC,GAC3B,MAAM,CAUR"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import type { Definition, FootnoteDefinition } from "mdast";
|
|
2
2
|
import type { CapabilityFlags } from "../capabilities/capabilities.js";
|
|
3
|
-
import type { BudgetLedger, ConversionStrategy, DegradationCollector, ImageRenderer, MentionResolvers, OverflowMode, SlackUploader } from "../types.js";
|
|
3
|
+
import type { BudgetLedger, ConversionStrategy, DegradationCollector, ImageRenderer, MentionResolvers, OperationContext, OverflowMode, ReceiptCollector, SlackUploader } from "../types.js";
|
|
4
4
|
/**
|
|
5
5
|
* Immutable resolved config for one conversion.
|
|
6
6
|
*/
|
|
@@ -11,13 +11,16 @@ export interface ResolvedConfig {
|
|
|
11
11
|
readonly renderers: ReadonlyArray<ImageRenderer>;
|
|
12
12
|
readonly uploader: SlackUploader | undefined;
|
|
13
13
|
readonly enableMath: boolean;
|
|
14
|
+
readonly enableInlineMath: boolean;
|
|
14
15
|
readonly enableFrontmatter: boolean;
|
|
15
16
|
readonly mentionResolvers: MentionResolvers | undefined;
|
|
17
|
+
readonly operation: OperationContext;
|
|
16
18
|
}
|
|
17
19
|
export interface ConversionContextDeps {
|
|
18
20
|
readonly config: ResolvedConfig;
|
|
19
21
|
readonly budget: BudgetLedger;
|
|
20
22
|
readonly degradations: DegradationCollector;
|
|
23
|
+
readonly receipts: ReceiptCollector;
|
|
21
24
|
readonly definitions: ReadonlyMap<string, Definition>;
|
|
22
25
|
readonly footnotes: ReadonlyMap<string, FootnoteDefinition>;
|
|
23
26
|
readonly footnoteOrder: ReadonlyArray<string>;
|
|
@@ -31,6 +34,7 @@ export declare class ConversionContext {
|
|
|
31
34
|
readonly config: ResolvedConfig;
|
|
32
35
|
readonly budget: BudgetLedger;
|
|
33
36
|
readonly degradations: DegradationCollector;
|
|
37
|
+
readonly receipts: ReceiptCollector;
|
|
34
38
|
readonly definitions: ReadonlyMap<string, Definition>;
|
|
35
39
|
readonly footnotes: ReadonlyMap<string, FootnoteDefinition>;
|
|
36
40
|
readonly footnoteOrder: ReadonlyArray<string>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"conversion-context.d.ts","sourceRoot":"","sources":["../../src/budget/conversion-context.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,kBAAkB,EAAE,MAAM,OAAO,CAAC;AAE5D,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,iCAAiC,CAAC;AACvE,OAAO,KAAK,EACV,YAAY,EACZ,kBAAkB,EAClB,oBAAoB,EACpB,aAAa,EACb,gBAAgB,EAChB,YAAY,EACZ,aAAa,EACd,MAAM,aAAa,CAAC;AAErB;;GAEG;AACH,MAAM,WAAW,cAAc;IAC7B,QAAQ,CAAC,YAAY,EAAE,eAAe,CAAC;IACvC,QAAQ,CAAC,QAAQ,EAAE,YAAY,CAAC;IAChC,QAAQ,CAAC,QAAQ,EAAE,kBAAkB,CAAC;IACtC,QAAQ,CAAC,SAAS,EAAE,aAAa,CAAC,aAAa,CAAC,CAAC;IACjD,QAAQ,CAAC,QAAQ,EAAE,aAAa,GAAG,SAAS,CAAC;IAC7C,QAAQ,CAAC,UAAU,EAAE,OAAO,CAAC;IAC7B,QAAQ,CAAC,iBAAiB,EAAE,OAAO,CAAC;IACpC,QAAQ,CAAC,gBAAgB,EAAE,gBAAgB,GAAG,SAAS,CAAC;
|
|
1
|
+
{"version":3,"file":"conversion-context.d.ts","sourceRoot":"","sources":["../../src/budget/conversion-context.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,kBAAkB,EAAE,MAAM,OAAO,CAAC;AAE5D,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,iCAAiC,CAAC;AACvE,OAAO,KAAK,EACV,YAAY,EACZ,kBAAkB,EAClB,oBAAoB,EACpB,aAAa,EACb,gBAAgB,EAChB,gBAAgB,EAChB,YAAY,EACZ,gBAAgB,EAChB,aAAa,EACd,MAAM,aAAa,CAAC;AAErB;;GAEG;AACH,MAAM,WAAW,cAAc;IAC7B,QAAQ,CAAC,YAAY,EAAE,eAAe,CAAC;IACvC,QAAQ,CAAC,QAAQ,EAAE,YAAY,CAAC;IAChC,QAAQ,CAAC,QAAQ,EAAE,kBAAkB,CAAC;IACtC,QAAQ,CAAC,SAAS,EAAE,aAAa,CAAC,aAAa,CAAC,CAAC;IACjD,QAAQ,CAAC,QAAQ,EAAE,aAAa,GAAG,SAAS,CAAC;IAC7C,QAAQ,CAAC,UAAU,EAAE,OAAO,CAAC;IAC7B,QAAQ,CAAC,gBAAgB,EAAE,OAAO,CAAC;IACnC,QAAQ,CAAC,iBAAiB,EAAE,OAAO,CAAC;IACpC,QAAQ,CAAC,gBAAgB,EAAE,gBAAgB,GAAG,SAAS,CAAC;IACxD,QAAQ,CAAC,SAAS,EAAE,gBAAgB,CAAC;CACtC;AAED,MAAM,WAAW,qBAAqB;IACpC,QAAQ,CAAC,MAAM,EAAE,cAAc,CAAC;IAChC,QAAQ,CAAC,MAAM,EAAE,YAAY,CAAC;IAC9B,QAAQ,CAAC,YAAY,EAAE,oBAAoB,CAAC;IAC5C,QAAQ,CAAC,QAAQ,EAAE,gBAAgB,CAAC;IACpC,QAAQ,CAAC,WAAW,EAAE,WAAW,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC;IACtD,QAAQ,CAAC,SAAS,EAAE,WAAW,CAAC,MAAM,EAAE,kBAAkB,CAAC,CAAC;IAC5D,QAAQ,CAAC,aAAa,EAAE,aAAa,CAAC,MAAM,CAAC,CAAC;IAC9C,QAAQ,CAAC,gBAAgB,EAAE,MAAM,GAAG,SAAS,CAAC;IAC9C,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;CACvB;AAED;;GAEG;AACH,qBAAa,iBAAiB;IAC5B,QAAQ,CAAC,MAAM,EAAE,cAAc,CAAC;IAChC,QAAQ,CAAC,MAAM,EAAE,YAAY,CAAC;IAC9B,QAAQ,CAAC,YAAY,EAAE,oBAAoB,CAAC;IAC5C,QAAQ,CAAC,QAAQ,EAAE,gBAAgB,CAAC;IACpC,QAAQ,CAAC,WAAW,EAAE,WAAW,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC;IACtD,QAAQ,CAAC,SAAS,EAAE,WAAW,CAAC,MAAM,EAAE,kBAAkB,CAAC,CAAC;IAC5D,QAAQ,CAAC,aAAa,EAAE,aAAa,CAAC,MAAM,CAAC,CAAC;IAC9C,QAAQ,CAAC,gBAAgB,EAAE,MAAM,GAAG,SAAS,CAAC;IAC9C,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IAEtB,YAAY,IAAI,EAAE,qBAAqB,EAUtC;IAED,gBAAgB,CAAC,YAAY,EAAE,oBAAoB,GAAG,iBAAiB,CAYtE;CACF"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import type { OperationContext, OperationOptions } from "../types.js";
|
|
2
|
+
export interface OperationScope {
|
|
3
|
+
readonly context: OperationContext;
|
|
4
|
+
race<T>(promise: Promise<T>): Promise<T>;
|
|
5
|
+
cleanup(): void;
|
|
6
|
+
}
|
|
7
|
+
export declare function createOperationScope(options: OperationOptions, stage: string): OperationScope;
|
|
8
|
+
export declare function throwIfOperationEnded(context: OperationContext, stage: string): void;
|
|
9
|
+
//# sourceMappingURL=operation-scope.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"operation-scope.d.ts","sourceRoot":"","sources":["../../src/budget/operation-scope.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAEtE,MAAM,WAAW,cAAc;IAC7B,QAAQ,CAAC,OAAO,EAAE,gBAAgB,CAAC;IACnC,IAAI,CAAC,CAAC,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;IACzC,OAAO,IAAI,IAAI,CAAC;CACjB;AAED,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,gBAAgB,EAAE,KAAK,EAAE,MAAM,GAAG,cAAc,CAqC7F;AAED,wBAAgB,qBAAqB,CAAC,OAAO,EAAE,gBAAgB,EAAE,KAAK,EAAE,MAAM,GAAG,IAAI,CAQpF"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import type { ReceiptCollector, UploadReceipt } from "../types.js";
|
|
2
|
+
export declare class RecordingReceiptCollector implements ReceiptCollector {
|
|
3
|
+
private readonly items;
|
|
4
|
+
private readonly settledPromise;
|
|
5
|
+
private readonly resolveSettled;
|
|
6
|
+
private isSettled;
|
|
7
|
+
constructor();
|
|
8
|
+
add(receipt: UploadReceipt): void;
|
|
9
|
+
all(): ReadonlyArray<UploadReceipt>;
|
|
10
|
+
settle(): void;
|
|
11
|
+
settled(): Promise<ReadonlyArray<UploadReceipt>>;
|
|
12
|
+
}
|
|
13
|
+
//# sourceMappingURL=recording-receipt-collector.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"recording-receipt-collector.d.ts","sourceRoot":"","sources":["../../src/budget/recording-receipt-collector.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAEnE,qBAAa,yBAA0B,YAAW,gBAAgB;IAChE,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAkB;IACxC,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAwC;IACvE,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAmD;IAClF,OAAO,CAAC,SAAS,CAAU;IAE3B,cAUC;IAED,GAAG,CAAC,OAAO,EAAE,aAAa,GAAG,IAAI,CAEhC;IAED,GAAG,IAAI,aAAa,CAAC,aAAa,CAAC,CAElC;IAED,MAAM,IAAI,IAAI,CAMb;IAED,OAAO,IAAI,OAAO,CAAC,aAAa,CAAC,aAAa,CAAC,CAAC,CAE/C;CACF"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"capabilities.d.ts","sourceRoot":"","sources":["../../src/capabilities/capabilities.ts"],"names":[],"mappings":"AAMA,MAAM,WAAW,eAAe;IAC9B,QAAQ,CAAC,aAAa,EAAE,OAAO,CAAC;IAChC,QAAQ,CAAC,UAAU,EAAE,OAAO,CAAC;IAC7B,QAAQ,CAAC,oBAAoB,EAAE,OAAO,CAAC;IACvC,QAAQ,CAAC,WAAW,EAAE,OAAO,CAAC;IAC9B,QAAQ,CAAC,SAAS,EAAE,OAAO,CAAC;IAC5B,QAAQ,CAAC,iBAAiB,EAAE,OAAO,CAAC;IACpC,QAAQ,CAAC,cAAc,EAAE,OAAO,CAAC;CAClC;AAED,MAAM,MAAM,cAAc,GAAG,MAAM,eAAe,CAAC;
|
|
1
|
+
{"version":3,"file":"capabilities.d.ts","sourceRoot":"","sources":["../../src/capabilities/capabilities.ts"],"names":[],"mappings":"AAMA,MAAM,WAAW,eAAe;IAC9B,QAAQ,CAAC,aAAa,EAAE,OAAO,CAAC;IAChC,QAAQ,CAAC,UAAU,EAAE,OAAO,CAAC;IAC7B,QAAQ,CAAC,oBAAoB,EAAE,OAAO,CAAC;IACvC,QAAQ,CAAC,WAAW,EAAE,OAAO,CAAC;IAC9B,QAAQ,CAAC,SAAS,EAAE,OAAO,CAAC;IAC5B,QAAQ,CAAC,iBAAiB,EAAE,OAAO,CAAC;IACpC,QAAQ,CAAC,cAAc,EAAE,OAAO,CAAC;CAClC;AAED,MAAM,MAAM,cAAc,GAAG,MAAM,eAAe,CAAC;AAWnD,eAAO,MAAM,oBAAoB;aAC/B,MAAM,EAAE,QAAQ;aAChB,YAAY,EAAE,cAAc;aAC5B,QAAQ,EAAE,SAAS;aACnB,QAAQ,EAAE,SAAS;aACnB,QAAQ,EAAE,SAAS;aACnB,QAAQ,EAAE,SAAS;aACnB,QAAQ,EAAE,SAAS;CACX,CAAC;AAEX,MAAM,MAAM,oBAAoB,GAAG,CAAC,OAAO,oBAAoB,CAAC,CAAC,MAAM,OAAO,oBAAoB,CAAC,CAAC;AA4CpG,eAAO,MAAM,kBAAkB,EAAE;IAC/B,QAAQ,CAAC,MAAM,EAAE,eAAe,CAAC;IACjC,QAAQ,CAAC,YAAY,EAAE,eAAe,CAAC;IACvC,QAAQ,CAAC,SAAS,EAAE,eAAe,CAAC;IACpC,QAAQ,CAAC,SAAS,EAAE,eAAe,CAAC;IACpC,QAAQ,CAAC,SAAS,EAAE,eAAe,CAAC;IACpC,QAAQ,CAAC,SAAS,EAAE,eAAe,CAAC;IACpC,QAAQ,CAAC,SAAS,EAAE,eAAe,CAAC;CASrC,CAAC;AAEF,MAAM,MAAM,sBAAsB,GAAG;IACnC,QAAQ,EAAE,CAAC,IAAI,cAAc,CAAC,CAAC,EAAE,OAAO;CACzC,CAAC;AAEF;;;;GAIG;AACH,wBAAgB,mBAAmB,CACjC,KAAK,EAAE,oBAAoB,GAAG,eAAe,GAAG,sBAAsB,GAAG,SAAS,EAClF,SAAS,CAAC,EAAE,sBAAsB,GACjC,eAAe,CAuBjB"}
|
package/dist/constants.d.ts
CHANGED
|
@@ -14,6 +14,12 @@ export declare const HEADER_LEVEL_MAX = 4;
|
|
|
14
14
|
export declare const IMAGE_URL_MAX_CHARS = 3000;
|
|
15
15
|
/** https://docs.slack.dev/reference/block-kit/blocks/image-block */
|
|
16
16
|
export declare const IMAGE_ALT_MAX_CHARS = 2000;
|
|
17
|
+
/** slackmark renderer safety limit for retained/uploaded image bytes. */
|
|
18
|
+
export declare const RENDERED_IMAGE_MAX_BYTES: number;
|
|
19
|
+
/** Portable filename component limit used by renderer output validation. */
|
|
20
|
+
export declare const RENDERED_IMAGE_FILENAME_MAX_CHARS = 255;
|
|
21
|
+
/** Defensive upper bound for Slack file IDs returned by uploaders. */
|
|
22
|
+
export declare const SLACK_FILE_ID_MAX_CHARS = 255;
|
|
17
23
|
/** https://docs.slack.dev/reference/block-kit/blocks/context-block */
|
|
18
24
|
export declare const CONTEXT_ELEMENTS_MAX = 10;
|
|
19
25
|
/** https://docs.slack.dev/reference/block-kit/blocks/markdown-block */
|
|
@@ -24,12 +30,20 @@ export declare const TABLE_MAX_ROWS = 100;
|
|
|
24
30
|
export declare const TABLE_MAX_COLS = 20;
|
|
25
31
|
/** https://docs.slack.dev/reference/block-kit/blocks/table-block */
|
|
26
32
|
export declare const TABLE_CELL_CHARS_MAX = 10000;
|
|
33
|
+
/**
|
|
34
|
+
* `raw_text.text` / `raw_number.text` declare `minLength: 1`; a blank markdown
|
|
35
|
+
* cell must be padded or Slack rejects the payload with `invalid_blocks`.
|
|
36
|
+
* https://docs.slack.dev/reference/block-kit/blocks/data-table-block
|
|
37
|
+
*/
|
|
38
|
+
export declare const TABLE_CELL_MIN_CHARS = 1;
|
|
27
39
|
/** Spec decision: prefer `table` up to this many rows (incl. header). */
|
|
28
40
|
export declare const TABLE_PREFERRED_MAX_ROWS = 50;
|
|
29
41
|
/** https://docs.slack.dev/reference/block-kit/blocks/data-table-block */
|
|
30
42
|
export declare const DATA_TABLE_MAX_DATA_ROWS = 200;
|
|
31
43
|
/** https://docs.slack.dev/reference/block-kit/blocks/data-table-block */
|
|
32
44
|
export declare const DATA_TABLE_CELL_CHARS_MAX = 20000;
|
|
45
|
+
/** Spec decision: caption is required but unbounded in Slack's docs; match header. */
|
|
46
|
+
export declare const DATA_TABLE_CAPTION_MAX_CHARS = 150;
|
|
33
47
|
/** https://docs.slack.dev/reference/block-kit/blocks/data-visualization-block */
|
|
34
48
|
export declare const CHART_TITLE_MAX_CHARS = 50;
|
|
35
49
|
/** https://docs.slack.dev/reference/block-kit/blocks/data-visualization-block */
|
package/dist/constants.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../src/constants.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,uCAAuC;AACvC,eAAO,MAAM,sBAAsB,KAAK,CAAC;AAEzC,sEAAsE;AACtE,eAAO,MAAM,sBAAsB,OAAO,CAAC;AAE3C,qEAAqE;AACrE,eAAO,MAAM,qBAAqB,MAAM,CAAC;AAEzC,qEAAqE;AACrE,eAAO,MAAM,gBAAgB,IAAI,CAAC;AAElC,oEAAoE;AACpE,eAAO,MAAM,mBAAmB,OAAO,CAAC;AAExC,oEAAoE;AACpE,eAAO,MAAM,mBAAmB,OAAO,CAAC;AAExC,sEAAsE;AACtE,eAAO,MAAM,oBAAoB,KAAK,CAAC;AAEvC,uEAAuE;AACvE,eAAO,MAAM,6BAA6B,QAAS,CAAC;AAEpD,oEAAoE;AACpE,eAAO,MAAM,cAAc,MAAM,CAAC;AAElC,oEAAoE;AACpE,eAAO,MAAM,cAAc,KAAK,CAAC;AAEjC,oEAAoE;AACpE,eAAO,MAAM,oBAAoB,QAAS,CAAC;AAE3C,yEAAyE;AACzE,eAAO,MAAM,wBAAwB,KAAK,CAAC;AAE3C,yEAAyE;AACzE,eAAO,MAAM,wBAAwB,MAAM,CAAC;AAE5C,yEAAyE;AACzE,eAAO,MAAM,yBAAyB,QAAS,CAAC;AAEhD,iFAAiF;AACjF,eAAO,MAAM,qBAAqB,KAAK,CAAC;AAExC,iFAAiF;AACjF,eAAO,MAAM,qBAAqB,KAAK,CAAC;AAExC,iFAAiF;AACjF,eAAO,MAAM,kBAAkB,KAAK,CAAC;AAErC,iFAAiF;AACjF,eAAO,MAAM,gBAAgB,KAAK,CAAC;AAEnC,iFAAiF;AACjF,eAAO,MAAM,gBAAgB,KAAK,CAAC;AAEnC;;;GAGG;AACH,eAAO,MAAM,kCAAkC,IAAI,CAAC;AAEpD,2EAA2E;AAC3E,eAAO,MAAM,6BAA6B,QAAS,CAAC;AAEpD,+DAA+D;AAC/D,eAAO,MAAM,yBAAyB,IAAI,CAAC;AAE3C,wEAAwE;AACxE,eAAO,MAAM,sBAAsB,KAAK,CAAC;AAEzC,wEAAwE;AACxE,eAAO,MAAM,yBAAyB,MAAM,CAAC;AAE7C,gEAAgE;AAChE,eAAO,MAAM,yBAAyB,KAAK,CAAC;AAE5C,eAAO,MAAM,QAAQ,WAAM,CAAC"}
|
|
1
|
+
{"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../src/constants.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,uCAAuC;AACvC,eAAO,MAAM,sBAAsB,KAAK,CAAC;AAEzC,sEAAsE;AACtE,eAAO,MAAM,sBAAsB,OAAO,CAAC;AAE3C,qEAAqE;AACrE,eAAO,MAAM,qBAAqB,MAAM,CAAC;AAEzC,qEAAqE;AACrE,eAAO,MAAM,gBAAgB,IAAI,CAAC;AAElC,oEAAoE;AACpE,eAAO,MAAM,mBAAmB,OAAO,CAAC;AAExC,oEAAoE;AACpE,eAAO,MAAM,mBAAmB,OAAO,CAAC;AAExC,yEAAyE;AACzE,eAAO,MAAM,wBAAwB,EAAE,MAAyB,CAAC;AAEjE,4EAA4E;AAC5E,eAAO,MAAM,iCAAiC,MAAM,CAAC;AAErD,sEAAsE;AACtE,eAAO,MAAM,uBAAuB,MAAM,CAAC;AAE3C,sEAAsE;AACtE,eAAO,MAAM,oBAAoB,KAAK,CAAC;AAEvC,uEAAuE;AACvE,eAAO,MAAM,6BAA6B,QAAS,CAAC;AAEpD,oEAAoE;AACpE,eAAO,MAAM,cAAc,MAAM,CAAC;AAElC,oEAAoE;AACpE,eAAO,MAAM,cAAc,KAAK,CAAC;AAEjC,oEAAoE;AACpE,eAAO,MAAM,oBAAoB,QAAS,CAAC;AAE3C;;;;GAIG;AACH,eAAO,MAAM,oBAAoB,IAAI,CAAC;AAEtC,yEAAyE;AACzE,eAAO,MAAM,wBAAwB,KAAK,CAAC;AAE3C,yEAAyE;AACzE,eAAO,MAAM,wBAAwB,MAAM,CAAC;AAE5C,yEAAyE;AACzE,eAAO,MAAM,yBAAyB,QAAS,CAAC;AAEhD,sFAAsF;AACtF,eAAO,MAAM,4BAA4B,MAAM,CAAC;AAEhD,iFAAiF;AACjF,eAAO,MAAM,qBAAqB,KAAK,CAAC;AAExC,iFAAiF;AACjF,eAAO,MAAM,qBAAqB,KAAK,CAAC;AAExC,iFAAiF;AACjF,eAAO,MAAM,kBAAkB,KAAK,CAAC;AAErC,iFAAiF;AACjF,eAAO,MAAM,gBAAgB,KAAK,CAAC;AAEnC,iFAAiF;AACjF,eAAO,MAAM,gBAAgB,KAAK,CAAC;AAEnC;;;GAGG;AACH,eAAO,MAAM,kCAAkC,IAAI,CAAC;AAEpD,2EAA2E;AAC3E,eAAO,MAAM,6BAA6B,QAAS,CAAC;AAEpD,+DAA+D;AAC/D,eAAO,MAAM,yBAAyB,IAAI,CAAC;AAE3C,wEAAwE;AACxE,eAAO,MAAM,sBAAsB,KAAK,CAAC;AAEzC,wEAAwE;AACxE,eAAO,MAAM,yBAAyB,MAAM,CAAC;AAE7C,gEAAgE;AAChE,eAAO,MAAM,yBAAyB,KAAK,CAAC;AAE5C,eAAO,MAAM,QAAQ,WAAM,CAAC"}
|
|
@@ -5,7 +5,7 @@ import { SlackMarkConverter } from "./slackmark-converter.js";
|
|
|
5
5
|
* Options for the composition root. Extends per-call {@link ConvertOptions}
|
|
6
6
|
* with injectable collaborators and user adapters (prepended).
|
|
7
7
|
*/
|
|
8
|
-
export interface CreateConverterOptions extends ConvertOptions {
|
|
8
|
+
export interface CreateConverterOptions extends Omit<ConvertOptions, "signal" | "timeoutMs"> {
|
|
9
9
|
readonly adapters?: ReadonlyArray<NodeAdapter>;
|
|
10
10
|
readonly parser?: MarkdownParser;
|
|
11
11
|
readonly plainText?: PlainTextRenderer;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"create-converter.d.ts","sourceRoot":"","sources":["../../src/converter/create-converter.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,6BAA6B,CAAC;
|
|
1
|
+
{"version":3,"file":"create-converter.d.ts","sourceRoot":"","sources":["../../src/converter/create-converter.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,6BAA6B,CAAC;AAa/D,OAAO,KAAK,EACV,wBAAwB,EACxB,gBAAgB,EAChB,cAAc,EACd,cAAc,EAEd,iBAAiB,EAClB,MAAM,aAAa,CAAC;AAGrB,OAAO,EAAE,kBAAkB,EAAE,MAAM,0BAA0B,CAAC;AAmB9D;;;GAGG;AACH,MAAM,WAAW,sBAAuB,SAAQ,IAAI,CAAC,cAAc,EAAE,QAAQ,GAAG,WAAW,CAAC;IAC1F,QAAQ,CAAC,QAAQ,CAAC,EAAE,aAAa,CAAC,WAAW,CAAC,CAAC;IAC/C,QAAQ,CAAC,MAAM,CAAC,EAAE,cAAc,CAAC;IACjC,QAAQ,CAAC,SAAS,CAAC,EAAE,iBAAiB,CAAC;CACxC;AAED;;GAEG;AACH,wBAAgB,eAAe,CAAC,OAAO,GAAE,sBAA2B,GAAG,kBAAkB,CA8ExF;AAsID;;GAEG;AACH,wBAAgB,OAAO,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,cAAc,GAAG,OAAO,CAAC,gBAAgB,CAAC,CAE7F;AAED;;GAEG;AACH,wBAAgB,iBAAiB,CAC/B,QAAQ,EAAE,MAAM,EAChB,OAAO,CAAC,EAAE,cAAc,GACvB,OAAO,CAAC,wBAAwB,CAAC,CAEnC"}
|
|
@@ -1,7 +1,9 @@
|
|
|
1
1
|
import type { ResolvedConfig } from "../budget/conversion-context.js";
|
|
2
|
-
import { type ConvertOptions } from "../types.js";
|
|
2
|
+
import { type ConvertOptions, type ImageRenderer, type OperationContext, type OperationOptions } from "../types.js";
|
|
3
|
+
export declare function readOperationOptions(options: ConvertOptions | undefined): OperationOptions;
|
|
3
4
|
/**
|
|
4
5
|
* Merge defaults + per-call options into a frozen ResolvedConfig.
|
|
5
6
|
*/
|
|
6
|
-
export declare function resolveConfig(defaults: ConvertOptions, overrides: ConvertOptions | undefined): ResolvedConfig;
|
|
7
|
+
export declare function resolveConfig(defaults: ConvertOptions, overrides: ConvertOptions | undefined, operation: OperationContext): ResolvedConfig;
|
|
8
|
+
export declare function resolveRendererDescriptors(configured: ReadonlyArray<ImageRenderer> | undefined): ReadonlyArray<ImageRenderer>;
|
|
7
9
|
//# sourceMappingURL=resolve-config.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"resolve-config.d.ts","sourceRoot":"","sources":["../../src/converter/resolve-config.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,iCAAiC,CAAC;AAEtE,OAAO,EAGL,KAAK,cAAc,
|
|
1
|
+
{"version":3,"file":"resolve-config.d.ts","sourceRoot":"","sources":["../../src/converter/resolve-config.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,iCAAiC,CAAC;AAEtE,OAAO,EAGL,KAAK,cAAc,EACnB,KAAK,aAAa,EAElB,KAAK,gBAAgB,EACrB,KAAK,gBAAgB,EAGtB,MAAM,aAAa,CAAC;AAkBrB,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,cAAc,GAAG,SAAS,GAAG,gBAAgB,CAiB1F;AAED;;GAEG;AACH,wBAAgB,aAAa,CAC3B,QAAQ,EAAE,cAAc,EACxB,SAAS,EAAE,cAAc,GAAG,SAAS,EACrC,SAAS,EAAE,gBAAgB,GAC1B,cAAc,CA+FhB;AAuDD,wBAAgB,0BAA0B,CACxC,UAAU,EAAE,aAAa,CAAC,aAAa,CAAC,GAAG,SAAS,GACnD,aAAa,CAAC,aAAa,CAAC,CAoE9B"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { type MessageAssembler } from "../assemble/message-assembler.js";
|
|
2
2
|
import type { AdapterRegistry } from "../registry/adapter-registry.js";
|
|
3
|
-
import type { ConversionMessagesResult, ConversionResult, ConvertOptions, MarkdownParser, PlainTextRenderer } from "../types.js";
|
|
3
|
+
import type { ConversionMessagesResult, ConversionResult, ConvertOptions, MarkdownParser, OperationContext, PlainTextRenderer, ReceiptCollector } from "../types.js";
|
|
4
4
|
export interface SlackMarkConverterDeps {
|
|
5
5
|
readonly parser: MarkdownParser;
|
|
6
6
|
readonly registry: AdapterRegistry;
|
|
@@ -24,10 +24,20 @@ export declare class SlackMarkConverter {
|
|
|
24
24
|
* Callers that need multi-message output should use {@link convertToMessages}.
|
|
25
25
|
*/
|
|
26
26
|
convert(markdown: string, options?: ConvertOptions): Promise<ConversionResult>;
|
|
27
|
+
/**
|
|
28
|
+
* Advanced execution seam for orchestrators that already own an absolute
|
|
29
|
+
* operation context. The returned promise tracks underlying conversion work.
|
|
30
|
+
*/
|
|
31
|
+
convertWithContext(markdown: string, options: ConvertOptions | undefined, operation: OperationContext, receipts?: ReceiptCollector): Promise<ConversionResult>;
|
|
27
32
|
/**
|
|
28
33
|
* Convert markdown into one or more messages at semantic boundaries.
|
|
29
34
|
*/
|
|
30
35
|
convertToMessages(markdown: string, options?: ConvertOptions): Promise<ConversionMessagesResult>;
|
|
36
|
+
/**
|
|
37
|
+
* Advanced multi-message seam paired with {@link convertWithContext}.
|
|
38
|
+
*/
|
|
39
|
+
convertToMessagesWithContext(markdown: string, options: ConvertOptions | undefined, operation: OperationContext, receipts?: ReceiptCollector): Promise<ConversionMessagesResult>;
|
|
40
|
+
private convertUnderOperation;
|
|
31
41
|
private emitAsMarkdownBlocks;
|
|
32
42
|
}
|
|
33
43
|
//# sourceMappingURL=slackmark-converter.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"slackmark-converter.d.ts","sourceRoot":"","sources":["../../src/converter/slackmark-converter.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"slackmark-converter.d.ts","sourceRoot":"","sources":["../../src/converter/slackmark-converter.ts"],"names":[],"mappings":"AAUA,OAAO,EAGL,KAAK,gBAAgB,EACtB,MAAM,kCAAkC,CAAC;AAC1C,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,iCAAiC,CAAC;AAiBvE,OAAO,KAAK,EACV,wBAAwB,EACxB,gBAAgB,EAChB,cAAc,EAEd,cAAc,EACd,gBAAgB,EAChB,iBAAiB,EACjB,gBAAgB,EACjB,MAAM,aAAa,CAAC;AAKrB,MAAM,WAAW,sBAAsB;IACrC,QAAQ,CAAC,MAAM,EAAE,cAAc,CAAC;IAChC,QAAQ,CAAC,QAAQ,EAAE,eAAe,CAAC;IACnC,QAAQ,CAAC,SAAS,EAAE,gBAAgB,CAAC;IACrC,QAAQ,CAAC,SAAS,EAAE,iBAAiB,CAAC;IACtC,QAAQ,CAAC,cAAc,EAAE,cAAc,CAAC;CACzC;AAED;;GAEG;AACH,qBAAa,kBAAkB;IAC7B,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAiB;IACxC,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAkB;IAC3C,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAmB;IAC7C,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAoB;IAC9C,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAiB;IAEhD,YAAY,IAAI,EAAE,sBAAsB,EAMvC;IAED;;;;OAIG;IACG,OAAO,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,cAAc,GAAG,OAAO,CAAC,gBAAgB,CAAC,CAwBnF;IAED;;;OAGG;IACG,kBAAkB,CACtB,QAAQ,EAAE,MAAM,EAChB,OAAO,EAAE,cAAc,GAAG,SAAS,EACnC,SAAS,EAAE,gBAAgB,EAC3B,QAAQ,GAAE,gBAAkD,GAC3D,OAAO,CAAC,gBAAgB,CAAC,CAiB3B;IAED;;OAEG;IACG,iBAAiB,CACrB,QAAQ,EAAE,MAAM,EAChB,OAAO,CAAC,EAAE,cAAc,GACvB,OAAO,CAAC,wBAAwB,CAAC,CAYnC;IAED;;OAEG;IACG,4BAA4B,CAChC,QAAQ,EAAE,MAAM,EAChB,OAAO,EAAE,cAAc,GAAG,SAAS,EACnC,SAAS,EAAE,gBAAgB,EAC3B,QAAQ,GAAE,gBAAkD,GAC3D,OAAO,CAAC,wBAAwB,CAAC,CAQnC;YAEa,qBAAqB;IAqJnC,OAAO,CAAC,oBAAoB;CA8D7B"}
|
package/dist/errors.d.ts
CHANGED
|
@@ -1,10 +1,88 @@
|
|
|
1
|
+
import type { UploadReceipt } from "./receipts.js";
|
|
2
|
+
/**
|
|
3
|
+
* Marks a class prototype so instances from any bundled copy answer to one identity.
|
|
4
|
+
* Subclasses inherit the brand, and instances carry no extra own property.
|
|
5
|
+
*/
|
|
6
|
+
export declare function brandErrorPrototype(prototype: object, brand: symbol): void;
|
|
7
|
+
/**
|
|
8
|
+
* Reads a brand without trusting the value: a hostile getter must not escape a guard.
|
|
9
|
+
*/
|
|
10
|
+
export declare function hasErrorBrand(value: unknown, brand: symbol): boolean;
|
|
1
11
|
/**
|
|
2
12
|
* Programmer/configuration error thrown only from the composition root.
|
|
3
13
|
*/
|
|
14
|
+
export interface ConfigurationErrorOptions {
|
|
15
|
+
readonly code?: string | undefined;
|
|
16
|
+
readonly stage?: string | undefined;
|
|
17
|
+
readonly receipts?: ReadonlyArray<UploadReceipt> | undefined;
|
|
18
|
+
readonly settledReceipts?: Promise<ReadonlyArray<UploadReceipt>> | undefined;
|
|
19
|
+
readonly cause?: unknown;
|
|
20
|
+
}
|
|
4
21
|
export declare class ConfigurationError extends Error {
|
|
5
22
|
readonly name: string;
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
23
|
+
readonly code: string;
|
|
24
|
+
readonly stage: string | undefined;
|
|
25
|
+
readonly retryable: false;
|
|
26
|
+
readonly receipts: ReadonlyArray<UploadReceipt>;
|
|
27
|
+
readonly settledReceipts: Promise<ReadonlyArray<UploadReceipt>>;
|
|
28
|
+
constructor(message: string, options?: ConfigurationErrorOptions);
|
|
29
|
+
}
|
|
30
|
+
export declare const OperationErrorCode: {
|
|
31
|
+
readonly Aborted: "operation_aborted";
|
|
32
|
+
readonly DeadlineExceeded: "operation_deadline_exceeded";
|
|
33
|
+
readonly Shutdown: "operation_shutdown";
|
|
34
|
+
};
|
|
35
|
+
export type OperationErrorCode = (typeof OperationErrorCode)[keyof typeof OperationErrorCode];
|
|
36
|
+
export interface OperationErrorOptions {
|
|
37
|
+
readonly receipts?: ReadonlyArray<UploadReceipt> | undefined;
|
|
38
|
+
readonly settledReceipts?: Promise<ReadonlyArray<UploadReceipt>> | undefined;
|
|
39
|
+
readonly cause?: unknown;
|
|
40
|
+
}
|
|
41
|
+
/**
|
|
42
|
+
* Operational control-flow error. These failures are never degradations.
|
|
43
|
+
*/
|
|
44
|
+
export declare class OperationError extends Error {
|
|
45
|
+
readonly name: string;
|
|
46
|
+
readonly code: OperationErrorCode;
|
|
47
|
+
readonly stage: string;
|
|
48
|
+
readonly retryable: boolean;
|
|
49
|
+
readonly receipts: ReadonlyArray<UploadReceipt>;
|
|
50
|
+
readonly settledReceipts: Promise<ReadonlyArray<UploadReceipt>>;
|
|
51
|
+
constructor(message: string, code: OperationErrorCode, stage: string, retryable: boolean, options?: OperationErrorOptions);
|
|
9
52
|
}
|
|
53
|
+
export declare class OperationAbortedError extends OperationError {
|
|
54
|
+
readonly name: string;
|
|
55
|
+
constructor(stage: string, options?: OperationErrorOptions);
|
|
56
|
+
}
|
|
57
|
+
export declare class OperationDeadlineExceededError extends OperationError {
|
|
58
|
+
readonly name: string;
|
|
59
|
+
constructor(stage: string, options?: OperationErrorOptions);
|
|
60
|
+
}
|
|
61
|
+
export declare class OperationShutdownError extends OperationError {
|
|
62
|
+
readonly name: string;
|
|
63
|
+
constructor(stage: string, options?: OperationErrorOptions);
|
|
64
|
+
}
|
|
65
|
+
/**
|
|
66
|
+
* Identifies a {@link ConfigurationError} from any entry of this package.
|
|
67
|
+
*
|
|
68
|
+
* Use this instead of `instanceof` when the error may have been thrown by a different
|
|
69
|
+
* entry — for example a `ConfigurationError` from `slackmark/renderers` caught by code
|
|
70
|
+
* that imported the class from `slackmark`.
|
|
71
|
+
*/
|
|
72
|
+
export declare function isConfigurationError(value: unknown): value is ConfigurationError;
|
|
73
|
+
/**
|
|
74
|
+
* Identifies an {@link OperationError} — abort, deadline, or shutdown — from any entry of
|
|
75
|
+
* this package, including its subclasses.
|
|
76
|
+
*
|
|
77
|
+
* Use this instead of `instanceof` when the error may have been thrown by a different
|
|
78
|
+
* entry — for example an abort raised inside `FetchSlackUploader` from `slackmark/slack`
|
|
79
|
+
* caught by code that imported the class from `slackmark`. Narrow further with `code`
|
|
80
|
+
* against {@link OperationErrorCode} rather than testing a subclass with `instanceof`.
|
|
81
|
+
*/
|
|
82
|
+
export declare function isOperationError(value: unknown): value is OperationError;
|
|
83
|
+
export declare function cloneOperationError(error: OperationError, fallbackStage: string): OperationError;
|
|
84
|
+
export declare function isOperationErrorCarrier(error: OperationError): boolean;
|
|
85
|
+
export declare function cloneConfigurationError(error: ConfigurationError): ConfigurationError;
|
|
86
|
+
export declare function attachReceipts(error: unknown, receipts: ReadonlyArray<UploadReceipt>, settledReceipts?: Promise<ReadonlyArray<UploadReceipt>>): unknown;
|
|
87
|
+
export declare function lockReceiptSnapshot(error: unknown): unknown;
|
|
10
88
|
//# 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;;GAEG;AACH,qBAAa,kBAAmB,SAAQ,KAAK;
|
|
1
|
+
{"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../src/errors.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AAgBnD;;;GAGG;AACH,wBAAgB,mBAAmB,CAAC,SAAS,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,IAAI,CAO1E;AAED;;GAEG;AACH,wBAAgB,aAAa,CAAC,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CASpE;AAED;;GAEG;AACH,MAAM,WAAW,yBAAyB;IACxC,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IACnC,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IACpC,QAAQ,CAAC,QAAQ,CAAC,EAAE,aAAa,CAAC,aAAa,CAAC,GAAG,SAAS,CAAC;IAC7D,QAAQ,CAAC,eAAe,CAAC,EAAE,OAAO,CAAC,aAAa,CAAC,aAAa,CAAC,CAAC,GAAG,SAAS,CAAC;IAC7E,QAAQ,CAAC,KAAK,CAAC,EAAE,OAAO,CAAC;CAC1B;AAED,qBAAa,kBAAmB,SAAQ,KAAK;IAK3C,SAAkB,IAAI,EAAE,MAAM,CAAC;IAC/B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,KAAK,EAAE,MAAM,GAAG,SAAS,CAAC;IACnC,QAAQ,CAAC,SAAS,EAAE,KAAK,CAAC;IAC1B,QAAQ,CAAC,QAAQ,EAAE,aAAa,CAAC,aAAa,CAAC,CAAC;IAChD,QAAQ,CAAC,eAAe,EAAE,OAAO,CAAC,aAAa,CAAC,aAAa,CAAC,CAAC,CAAC;IAEhE,YAAY,OAAO,EAAE,MAAM,EAAE,OAAO,GAAE,yBAA8B,EAQnE;CACF;AAED,eAAO,MAAM,kBAAkB;aAC7B,OAAO,EAAE,mBAAmB;aAC5B,gBAAgB,EAAE,6BAA6B;aAC/C,QAAQ,EAAE,oBAAoB;CACtB,CAAC;AAEX,MAAM,MAAM,kBAAkB,GAAG,CAAC,OAAO,kBAAkB,CAAC,CAAC,MAAM,OAAO,kBAAkB,CAAC,CAAC;AAE9F,MAAM,WAAW,qBAAqB;IACpC,QAAQ,CAAC,QAAQ,CAAC,EAAE,aAAa,CAAC,aAAa,CAAC,GAAG,SAAS,CAAC;IAC7D,QAAQ,CAAC,eAAe,CAAC,EAAE,OAAO,CAAC,aAAa,CAAC,aAAa,CAAC,CAAC,GAAG,SAAS,CAAC;IAC7E,QAAQ,CAAC,KAAK,CAAC,EAAE,OAAO,CAAC;CAC1B;AAED;;GAEG;AACH,qBAAa,cAAe,SAAQ,KAAK;IAKvC,SAAkB,IAAI,EAAE,MAAM,CAAC;IAC/B,QAAQ,CAAC,IAAI,EAAE,kBAAkB,CAAC;IAClC,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,SAAS,EAAE,OAAO,CAAC;IAC5B,QAAQ,CAAC,QAAQ,EAAE,aAAa,CAAC,aAAa,CAAC,CAAC;IAChD,QAAQ,CAAC,eAAe,EAAE,OAAO,CAAC,aAAa,CAAC,aAAa,CAAC,CAAC,CAAC;IAEhE,YACE,OAAO,EAAE,MAAM,EACf,IAAI,EAAE,kBAAkB,EACxB,KAAK,EAAE,MAAM,EACb,SAAS,EAAE,OAAO,EAClB,OAAO,GAAE,qBAA0B,EASpC;CACF;AAED,qBAAa,qBAAsB,SAAQ,cAAc;IACvD,SAAkB,IAAI,EAAE,MAAM,CAAC;IAE/B,YAAY,KAAK,EAAE,MAAM,EAAE,OAAO,GAAE,qBAA0B,EAG7D;CACF;AAED,qBAAa,8BAA+B,SAAQ,cAAc;IAChE,SAAkB,IAAI,EAAE,MAAM,CAAC;IAE/B,YAAY,KAAK,EAAE,MAAM,EAAE,OAAO,GAAE,qBAA0B,EAG7D;CACF;AAED,qBAAa,sBAAuB,SAAQ,cAAc;IACxD,SAAkB,IAAI,EAAE,MAAM,CAAC;IAE/B,YAAY,KAAK,EAAE,MAAM,EAAE,OAAO,GAAE,qBAA0B,EAG7D;CACF;AAED;;;;;;GAMG;AACH,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,kBAAkB,CAEhF;AAED;;;;;;;;GAQG;AACH,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,cAAc,CAExE;AAED,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,cAAc,EAAE,aAAa,EAAE,MAAM,GAAG,cAAc,CA0BhG;AAED,wBAAgB,uBAAuB,CAAC,KAAK,EAAE,cAAc,GAAG,OAAO,CAEtE;AAED,wBAAgB,uBAAuB,CAAC,KAAK,EAAE,kBAAkB,GAAG,kBAAkB,CAQrF;AAED,wBAAgB,cAAc,CAC5B,KAAK,EAAE,OAAO,EACd,QAAQ,EAAE,aAAa,CAAC,aAAa,CAAC,EACtC,eAAe,CAAC,EAAE,OAAO,CAAC,aAAa,CAAC,aAAa,CAAC,CAAC,GACtD,OAAO,CAoCT;AAED,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,OAAO,GAAG,OAAO,CAU3D"}
|