@bendyline/docblocks-cli 2.3.3 → 2.4.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.
- package/README.md +7 -3
- package/THIRD_PARTY_NOTICES.txt +39 -39
- package/dist/bin.js +230 -6
- package/dist/index.d.ts +12 -0
- package/dist/index.js +92 -2
- package/package.json +7 -7
package/README.md
CHANGED
|
@@ -54,6 +54,9 @@ docblocks convert report.docx --formats md,pdf,pptx --output-dir ./exports
|
|
|
54
54
|
# Render MP4 with explicit media controls
|
|
55
55
|
docblocks video story.md --quality high --orientation portrait
|
|
56
56
|
|
|
57
|
+
# Render the Dashboard rendition to a square image with accent cards
|
|
58
|
+
docblocks convert report.md --formats png --image-resolution square --image-style accent
|
|
59
|
+
|
|
57
60
|
# Discover authoring vocabulary from linked Squisq
|
|
58
61
|
docblocks themes
|
|
59
62
|
docblocks transforms
|
|
@@ -93,9 +96,10 @@ The package root is a side-effect-free programmatic API for `runBuild`, `runConv
|
|
|
93
96
|
the separate `docblocks` bin entry.
|
|
94
97
|
|
|
95
98
|
The live linked registry currently covers Markdown, DOCX, PDF, PPTX, XLSX, CSV,
|
|
96
|
-
HTML, HTML ZIP, EPUB, DBK, MP4, and
|
|
97
|
-
CLI reference or MCP `list_formats` rather than assuming every format imports.
|
|
99
|
+
HTML, HTML ZIP, EPUB, DBK, MP4, GIF, and PNG. Direction varies by format, so use
|
|
100
|
+
the CLI reference or MCP `list_formats` rather than assuming every format imports.
|
|
98
101
|
|
|
99
102
|
MP4/GIF rendering requires Chromium and FFmpeg. Install Chromium with
|
|
100
103
|
`npx playwright install chromium`; Squisq resolves FFmpeg from `SQUISQ_FFMPEG`,
|
|
101
|
-
`PATH`, or `ffmpeg-static`, in that order.
|
|
104
|
+
`PATH`, or `ffmpeg-static`, in that order. PNG renders the document's Dashboard
|
|
105
|
+
rendition to a single image and needs Chromium only.
|
package/THIRD_PARTY_NOTICES.txt
CHANGED
|
@@ -15,11 +15,11 @@ This notice is included in the published npm tarball. Transitive packages instal
|
|
|
15
15
|
| Package | Version | License | Source |
|
|
16
16
|
| --- | --- | --- | --- |
|
|
17
17
|
| @antfu/install-pkg | 1.1.0 | MIT | https://github.com/antfu/install-pkg |
|
|
18
|
-
| @bendyline/squisq | 2.
|
|
19
|
-
| @bendyline/squisq-cli | 2.
|
|
20
|
-
| @bendyline/squisq-formats | 2.4.
|
|
21
|
-
| @bendyline/squisq-react | 2.
|
|
22
|
-
| @bendyline/squisq-video | 2.
|
|
18
|
+
| @bendyline/squisq | 2.8.0 | MIT | https://github.com/bendyline/squisq |
|
|
19
|
+
| @bendyline/squisq-cli | 2.6.0 | MIT | https://github.com/bendyline/squisq |
|
|
20
|
+
| @bendyline/squisq-formats | 2.4.5 | MIT | https://github.com/bendyline/squisq |
|
|
21
|
+
| @bendyline/squisq-react | 2.8.0 | MIT | https://github.com/bendyline/squisq |
|
|
22
|
+
| @bendyline/squisq-video | 2.3.0 | MIT | https://github.com/bendyline/squisq |
|
|
23
23
|
| @braintree/sanitize-url | 7.1.2 | MIT | https://github.com/braintree/sanitize-url |
|
|
24
24
|
| @chevrotain/types | 11.1.2 | Apache-2.0 | https://github.com/Chevrotain/chevrotain |
|
|
25
25
|
| @ffmpeg/ffmpeg | 0.12.15 | MIT | https://github.com/ffmpegwasm/ffmpeg.wasm |
|
|
@@ -61,7 +61,7 @@ This notice is included in the published npm tarball. Transitive packages instal
|
|
|
61
61
|
| @types/d3-fetch | 3.0.7 | MIT | https://github.com/DefinitelyTyped/DefinitelyTyped |
|
|
62
62
|
| @types/d3-force | 3.0.10 | MIT | https://github.com/DefinitelyTyped/DefinitelyTyped |
|
|
63
63
|
| @types/d3-format | 3.0.4 | MIT | https://github.com/DefinitelyTyped/DefinitelyTyped |
|
|
64
|
-
| @types/d3-geo | 3.1.
|
|
64
|
+
| @types/d3-geo | 3.1.1 | MIT | https://github.com/DefinitelyTyped/DefinitelyTyped |
|
|
65
65
|
| @types/d3-hierarchy | 3.1.7 | MIT | https://github.com/DefinitelyTyped/DefinitelyTyped |
|
|
66
66
|
| @types/d3-interpolate | 3.0.4 | MIT | https://github.com/DefinitelyTyped/DefinitelyTyped |
|
|
67
67
|
| @types/d3-path | 3.1.1 | MIT | https://github.com/DefinitelyTyped/DefinitelyTyped |
|
|
@@ -87,7 +87,7 @@ This notice is included in the published npm tarball. Transitive packages instal
|
|
|
87
87
|
| @types/unist | 2.0.11 | MIT | https://github.com/DefinitelyTyped/DefinitelyTyped |
|
|
88
88
|
| @types/unist | 3.0.3 | MIT | https://github.com/DefinitelyTyped/DefinitelyTyped |
|
|
89
89
|
| @upsetjs/venn.js | 2.0.0 | MIT | https://github.com/upsetjs/venn.js |
|
|
90
|
-
| @xmldom/xmldom | 0.9.
|
|
90
|
+
| @xmldom/xmldom | 0.9.11 | MIT | https://github.com/xmldom/xmldom |
|
|
91
91
|
| accepts | 2.0.0 | MIT | https://github.com/jshttp/accepts |
|
|
92
92
|
| ajv | 8.20.0 | MIT | https://github.com/ajv-validator/ajv |
|
|
93
93
|
| ajv-formats | 3.0.1 | MIT | https://github.com/ajv-validator/ajv-formats |
|
|
@@ -115,7 +115,7 @@ This notice is included in the published npm tarball. Transitive packages instal
|
|
|
115
115
|
| cose-base | 1.0.3 | MIT | https://github.com/iVis-at-Bilkent/cose-base |
|
|
116
116
|
| cose-base | 2.2.0 | MIT | https://github.com/iVis-at-Bilkent/cose-base |
|
|
117
117
|
| cross-spawn | 7.0.6 | MIT | git@github.com:moxystudio/node-cross-spawn |
|
|
118
|
-
| cytoscape | 3.34.
|
|
118
|
+
| cytoscape | 3.34.1 | MIT | https://github.com/cytoscape/cytoscape.js |
|
|
119
119
|
| cytoscape-cose-bilkent | 4.1.0 | MIT | https://github.com/cytoscape/cytoscape.js-cose-bilkent |
|
|
120
120
|
| cytoscape-fcose | 2.2.0 | MIT | https://github.com/iVis-at-Bilkent/cytoscape.js-fcose |
|
|
121
121
|
| d3 | 7.9.0 | ISC | https://github.com/d3/d3 |
|
|
@@ -161,7 +161,7 @@ This notice is included in the published npm tarball. Transitive packages instal
|
|
|
161
161
|
| depd | 2.0.0 | MIT | https://github.com/dougwilson/nodejs-depd |
|
|
162
162
|
| dequal | 2.0.3 | MIT | https://github.com/lukeed/dequal |
|
|
163
163
|
| devlop | 1.1.0 | MIT | https://github.com/wooorm/devlop |
|
|
164
|
-
| dompurify | 3.4.
|
|
164
|
+
| dompurify | 3.4.13 | (MPL-2.0 OR Apache-2.0) | https://github.com/cure53/DOMPurify |
|
|
165
165
|
| dunder-proto | 1.0.1 | MIT | https://github.com/es-shims/dunder-proto |
|
|
166
166
|
| ee-first | 1.1.1 | MIT | https://github.com/jonathanong/ee-first |
|
|
167
167
|
| encodeurl | 2.0.0 | MIT | https://github.com/pillarjs/encodeurl |
|
|
@@ -169,7 +169,7 @@ This notice is included in the published npm tarball. Transitive packages instal
|
|
|
169
169
|
| es-define-property | 1.0.1 | MIT | https://github.com/ljharb/es-define-property |
|
|
170
170
|
| es-errors | 1.3.0 | MIT | https://github.com/ljharb/es-errors |
|
|
171
171
|
| es-object-atoms | 1.1.2 | MIT | https://github.com/ljharb/es-object-atoms |
|
|
172
|
-
| es-toolkit | 1.
|
|
172
|
+
| es-toolkit | 1.50.0 | MIT | https://github.com/toss/es-toolkit |
|
|
173
173
|
| escape-html | 1.0.3 | MIT | https://github.com/component/escape-html |
|
|
174
174
|
| escape-string-regexp | 5.0.0 | MIT | https://github.com/sindresorhus/escape-string-regexp |
|
|
175
175
|
| etag | 1.8.1 | MIT | https://github.com/jshttp/etag |
|
|
@@ -248,7 +248,7 @@ This notice is included in the published npm tarball. Transitive packages instal
|
|
|
248
248
|
| mdast-util-to-string | 4.0.0 | MIT | https://github.com/syntax-tree/mdast-util-to-string |
|
|
249
249
|
| media-typer | 1.1.0 | MIT | https://github.com/jshttp/media-typer |
|
|
250
250
|
| merge-descriptors | 2.0.0 | MIT | https://github.com/sindresorhus/merge-descriptors |
|
|
251
|
-
| mermaid | 11.16.
|
|
251
|
+
| mermaid | 11.16.1 | MIT | https://github.com/mermaid-js/mermaid |
|
|
252
252
|
| micromark | 4.0.2 | MIT | https://github.com/micromark/micromark/tree/main/packages/micromark |
|
|
253
253
|
| micromark-core-commonmark | 2.0.3 | MIT | https://github.com/micromark/micromark/tree/main/packages/micromark-core-commonmark |
|
|
254
254
|
| micromark-extension-directive | 3.0.2 | MIT | https://github.com/micromark/micromark-extension-directive |
|
|
@@ -289,7 +289,7 @@ This notice is included in the published npm tarball. Transitive packages instal
|
|
|
289
289
|
| object-inspect | 1.13.4 | MIT | https://github.com/inspect-js/object-inspect |
|
|
290
290
|
| on-finished | 2.4.1 | MIT | https://github.com/jshttp/on-finished |
|
|
291
291
|
| once | 1.4.0 | ISC | https://github.com/isaacs/once |
|
|
292
|
-
| package-manager-detector | 1.
|
|
292
|
+
| package-manager-detector | 1.8.0 | MIT | https://github.com/antfu-collective/package-manager-detector |
|
|
293
293
|
| pako | 1.0.11 | (MIT AND Zlib) | https://github.com/nodeca/pako |
|
|
294
294
|
| parse-entities | 4.0.2 | MIT | https://github.com/wooorm/parse-entities |
|
|
295
295
|
| parse5 | 7.3.0 | MIT | https://github.com/inikulin/parse5 |
|
|
@@ -403,7 +403,7 @@ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
|
403
403
|
SOFTWARE.
|
|
404
404
|
|
|
405
405
|
==============================================================================
|
|
406
|
-
Components: @bendyline/squisq-cli@2.
|
|
406
|
+
Components: @bendyline/squisq-cli@2.6.0, @bendyline/squisq-formats@2.4.5, @bendyline/squisq-react@2.8.0, @bendyline/squisq-video@2.3.0, @bendyline/squisq@2.8.0
|
|
407
407
|
Source files: node_modules/@bendyline/squisq-cli/LICENSE, node_modules/@bendyline/squisq-formats/LICENSE, node_modules/@bendyline/squisq-react/LICENSE, node_modules/@bendyline/squisq-video/LICENSE, node_modules/@bendyline/squisq/LICENSE
|
|
408
408
|
==============================================================================
|
|
409
409
|
MIT License
|
|
@@ -673,7 +673,7 @@ This software contains code derived from the Puppeteer project (https://github.c
|
|
|
673
673
|
available under the Apache 2.0 license (https://github.com/puppeteer/puppeteer/blob/master/LICENSE).
|
|
674
674
|
|
|
675
675
|
==============================================================================
|
|
676
|
-
Components: @bendyline/squisq-cli@2.
|
|
676
|
+
Components: @bendyline/squisq-cli@2.6.0
|
|
677
677
|
Source files: node_modules/@bendyline/squisq-cli/NOTICE.md
|
|
678
678
|
==============================================================================
|
|
679
679
|
# Third-Party Notices for @bendyline/squisq-cli
|
|
@@ -693,7 +693,7 @@ Copyright and complete license texts for these dependencies are included in
|
|
|
693
693
|
their respective npm distributions and source repositories.
|
|
694
694
|
|
|
695
695
|
==============================================================================
|
|
696
|
-
Components: @bendyline/squisq-cli@2.
|
|
696
|
+
Components: @bendyline/squisq-cli@2.6.0
|
|
697
697
|
Source files: node_modules/@bendyline/squisq-cli/THIRD_PARTY_LICENSES.txt
|
|
698
698
|
==============================================================================
|
|
699
699
|
THIRD-PARTY LICENSES FOR @bendyline/squisq-cli
|
|
@@ -800,7 +800,7 @@ COMPONENTS
|
|
|
800
800
|
- mdast-util-phrasing@4.1.0 (MIT); files: license
|
|
801
801
|
- mdast-util-to-markdown@2.1.2 (MIT); files: license
|
|
802
802
|
- mdast-util-to-string@4.0.0 (MIT); files: license
|
|
803
|
-
- mermaid@11.16.
|
|
803
|
+
- mermaid@11.16.1 (MIT); files: LICENSE
|
|
804
804
|
- micromark-core-commonmark@2.0.3 (MIT); files: license
|
|
805
805
|
- micromark-extension-directive@3.0.2 (MIT); files: license
|
|
806
806
|
- micromark-extension-frontmatter@2.0.0 (MIT); files: license
|
|
@@ -3685,7 +3685,7 @@ TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
|
|
|
3685
3685
|
SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
|
3686
3686
|
|
|
3687
3687
|
==============================================================================
|
|
3688
|
-
mermaid@11.16.
|
|
3688
|
+
mermaid@11.16.1 - LICENSE
|
|
3689
3689
|
==============================================================================
|
|
3690
3690
|
The MIT License (MIT)
|
|
3691
3691
|
|
|
@@ -5168,7 +5168,7 @@ TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
|
|
|
5168
5168
|
SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
|
5169
5169
|
|
|
5170
5170
|
==============================================================================
|
|
5171
|
-
Components: @xmldom/xmldom@0.9.
|
|
5171
|
+
Components: @xmldom/xmldom@0.9.11
|
|
5172
5172
|
Source files: node_modules/@bendyline/squisq-formats/node_modules/@xmldom/xmldom/LICENSE
|
|
5173
5173
|
==============================================================================
|
|
5174
5174
|
Copyright 2019 - present Christopher J. Brody and other contributors, as listed in: https://github.com/xmldom/xmldom/graphs/contributors
|
|
@@ -5181,7 +5181,7 @@ The above copyright notice and this permission notice shall be included in all c
|
|
|
5181
5181
|
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
|
5182
5182
|
|
|
5183
5183
|
==============================================================================
|
|
5184
|
-
Components: @bendyline/squisq-formats@2.4.
|
|
5184
|
+
Components: @bendyline/squisq-formats@2.4.5
|
|
5185
5185
|
Source files: node_modules/@bendyline/squisq-formats/NOTICE.md
|
|
5186
5186
|
==============================================================================
|
|
5187
5187
|
# Third-Party Notices for @bendyline/squisq-formats
|
|
@@ -5196,7 +5196,7 @@ Third-party components remain under their respective license terms.
|
|
|
5196
5196
|
| ---------------- | ------- | ----------------------- | ---------------------------------- |
|
|
5197
5197
|
| @pdf-lib/fontkit | 1.1.1 | MIT | https://github.com/Hopding/fontkit |
|
|
5198
5198
|
| @pdf-lib/upng | 1.0.1 | MIT | https://github.com/Hopding/upng |
|
|
5199
|
-
| @xmldom/xmldom | 0.9.
|
|
5199
|
+
| @xmldom/xmldom | 0.9.11 | MIT | https://github.com/xmldom/xmldom |
|
|
5200
5200
|
| jszip | 3.10.1 | MIT OR GPL-3.0-or-later | https://github.com/Stuk/jszip |
|
|
5201
5201
|
| pdf-lib | 1.17.1 | MIT | https://pdf-lib.js.org |
|
|
5202
5202
|
| pdfjs-dist | 4.10.38 | Apache-2.0 | https://mozilla.github.io/pdf.js |
|
|
@@ -5206,7 +5206,7 @@ texts for these dependencies are included in their respective npm
|
|
|
5206
5206
|
distributions and source repositories.
|
|
5207
5207
|
|
|
5208
5208
|
==============================================================================
|
|
5209
|
-
Components: @bendyline/squisq-formats@2.4.
|
|
5209
|
+
Components: @bendyline/squisq-formats@2.4.5
|
|
5210
5210
|
Source files: node_modules/@bendyline/squisq-formats/THIRD_PARTY_LICENSES.txt
|
|
5211
5211
|
==============================================================================
|
|
5212
5212
|
THIRD-PARTY LICENSES FOR @bendyline/squisq-formats
|
|
@@ -5388,7 +5388,7 @@ Awesome, nor vice versa. **Please do not use brand logos for any purpose except
|
|
|
5388
5388
|
to represent the company, product, or service to which they refer.**
|
|
5389
5389
|
|
|
5390
5390
|
==============================================================================
|
|
5391
|
-
Components: @bendyline/squisq-react@2.
|
|
5391
|
+
Components: @bendyline/squisq-react@2.8.0
|
|
5392
5392
|
Source files: node_modules/@bendyline/squisq-react/NOTICE.md
|
|
5393
5393
|
==============================================================================
|
|
5394
5394
|
# Third-Party Notices for @bendyline/squisq-react
|
|
@@ -5402,7 +5402,7 @@ Third-party components remain under their respective license terms.
|
|
|
5402
5402
|
| Package | Version | License | Repository |
|
|
5403
5403
|
| ----------------------------- | -------------------- | ----------------------------- | ------------------------------------------- |
|
|
5404
5404
|
| @fortawesome/fontawesome-free | 7.2.0 | CC-BY-4.0 AND OFL-1.1 AND MIT | https://github.com/FortAwesome/Font-Awesome |
|
|
5405
|
-
| mermaid | 11.16.
|
|
5405
|
+
| mermaid | 11.16.1 | MIT | https://github.com/mermaid-js/mermaid |
|
|
5406
5406
|
| preact _(bundled)_ | 10.29.0 | MIT | https://github.com/preactjs/preact |
|
|
5407
5407
|
| react _(peer)_ | ^18.0.0 \|\| ^19.0.0 | MIT | https://github.com/facebook/react |
|
|
5408
5408
|
| react-dom _(peer)_ | ^18.0.0 \|\| ^19.0.0 | MIT | https://github.com/facebook/react |
|
|
@@ -5413,7 +5413,7 @@ third-party license texts for the complete standalone bundle graph are shipped
|
|
|
5413
5413
|
in THIRD_PARTY_LICENSES.txt.
|
|
5414
5414
|
|
|
5415
5415
|
==============================================================================
|
|
5416
|
-
Components: @bendyline/squisq-react@2.
|
|
5416
|
+
Components: @bendyline/squisq-react@2.8.0
|
|
5417
5417
|
Source files: node_modules/@bendyline/squisq-react/THIRD_PARTY_LICENSES.txt
|
|
5418
5418
|
==============================================================================
|
|
5419
5419
|
THIRD-PARTY LICENSES FOR @bendyline/squisq-react
|
|
@@ -5518,7 +5518,7 @@ COMPONENTS
|
|
|
5518
5518
|
- mdast-util-phrasing@4.1.0 (MIT); files: license
|
|
5519
5519
|
- mdast-util-to-markdown@2.1.2 (MIT); files: license
|
|
5520
5520
|
- mdast-util-to-string@4.0.0 (MIT); files: license
|
|
5521
|
-
- mermaid@11.16.
|
|
5521
|
+
- mermaid@11.16.1 (MIT); files: LICENSE
|
|
5522
5522
|
- micromark-core-commonmark@2.0.3 (MIT); files: license
|
|
5523
5523
|
- micromark-extension-directive@3.0.2 (MIT); files: license
|
|
5524
5524
|
- micromark-extension-frontmatter@2.0.0 (MIT); files: license
|
|
@@ -8403,7 +8403,7 @@ TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
|
|
|
8403
8403
|
SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
|
8404
8404
|
|
|
8405
8405
|
==============================================================================
|
|
8406
|
-
mermaid@11.16.
|
|
8406
|
+
mermaid@11.16.1 - LICENSE
|
|
8407
8407
|
==============================================================================
|
|
8408
8408
|
The MIT License (MIT)
|
|
8409
8409
|
|
|
@@ -9950,7 +9950,7 @@ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
|
9950
9950
|
SOFTWARE.
|
|
9951
9951
|
|
|
9952
9952
|
==============================================================================
|
|
9953
|
-
Components: @bendyline/squisq-video@2.
|
|
9953
|
+
Components: @bendyline/squisq-video@2.3.0
|
|
9954
9954
|
Source files: node_modules/@bendyline/squisq-video/NOTICE.md
|
|
9955
9955
|
==============================================================================
|
|
9956
9956
|
# Third-Party Notices for @bendyline/squisq-video
|
|
@@ -9975,7 +9975,7 @@ Copyright and complete license texts for the listed dependencies are included
|
|
|
9975
9975
|
in their respective npm distributions and source repositories.
|
|
9976
9976
|
|
|
9977
9977
|
==============================================================================
|
|
9978
|
-
Components: @bendyline/squisq-video@2.
|
|
9978
|
+
Components: @bendyline/squisq-video@2.3.0
|
|
9979
9979
|
Source files: node_modules/@bendyline/squisq-video/THIRD_PARTY_LICENSES.txt
|
|
9980
9980
|
==============================================================================
|
|
9981
9981
|
THIRD-PARTY LICENSES FOR @bendyline/squisq-video
|
|
@@ -9987,7 +9987,7 @@ repository license, the pinned upstream copy is vendored and identified below.
|
|
|
9987
9987
|
COMPONENTS
|
|
9988
9988
|
|
|
9989
9989
|
==============================================================================
|
|
9990
|
-
Components: @bendyline/squisq@2.
|
|
9990
|
+
Components: @bendyline/squisq@2.8.0
|
|
9991
9991
|
Source files: node_modules/@bendyline/squisq/NOTICE.md
|
|
9992
9992
|
==============================================================================
|
|
9993
9993
|
# Third-Party Notices for @bendyline/squisq
|
|
@@ -10018,7 +10018,7 @@ third-party license texts for bundled code and data are shipped in
|
|
|
10018
10018
|
THIRD_PARTY_LICENSES.txt.
|
|
10019
10019
|
|
|
10020
10020
|
==============================================================================
|
|
10021
|
-
Components: @bendyline/squisq@2.
|
|
10021
|
+
Components: @bendyline/squisq@2.8.0
|
|
10022
10022
|
Source files: node_modules/@bendyline/squisq/THIRD_PARTY_LICENSES.txt
|
|
10023
10023
|
==============================================================================
|
|
10024
10024
|
THIRD-PARTY LICENSES FOR @bendyline/squisq
|
|
@@ -10226,7 +10226,7 @@ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
|
10226
10226
|
SOFTWARE.
|
|
10227
10227
|
|
|
10228
10228
|
==============================================================================
|
|
10229
|
-
Components: @chevrotain/types@11.1.2, dompurify@3.4.
|
|
10229
|
+
Components: @chevrotain/types@11.1.2, dompurify@3.4.13
|
|
10230
10230
|
Source files: node_modules/@chevrotain/types/LICENSE.txt, node_modules/dompurify/LICENSE
|
|
10231
10231
|
==============================================================================
|
|
10232
10232
|
|
|
@@ -10811,8 +10811,8 @@ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
|
10811
10811
|
SOFTWARE.
|
|
10812
10812
|
|
|
10813
10813
|
==============================================================================
|
|
10814
|
-
Components: @types/d3-array@3.2.2, @types/d3-axis@3.0.6, @types/d3-brush@3.0.6, @types/d3-chord@3.0.6, @types/d3-color@3.1.3, @types/d3-contour@3.0.6, @types/d3-delaunay@6.0.4, @types/d3-dispatch@3.0.7, @types/d3-drag@3.0.7, @types/d3-dsv@3.0.7, @types/d3-ease@3.0.2, @types/d3-fetch@3.0.7, @types/d3-force@3.0.10, @types/d3-format@3.0.4, @types/d3-geo@3.1.
|
|
10815
|
-
Source files: node_modules/@types/d3-array/LICENSE, node_modules/@types/d3-axis/LICENSE, node_modules/@types/d3-brush/LICENSE, node_modules/@types/d3-chord/LICENSE, node_modules/@types/d3-color/LICENSE, node_modules/@types/d3-contour/LICENSE, node_modules/@types/d3-delaunay/LICENSE, node_modules/@types/d3-dispatch/LICENSE, node_modules/@types/d3-drag/LICENSE, node_modules/@types/d3-dsv/LICENSE, node_modules/@types/d3-ease/LICENSE, node_modules/@types/d3-fetch/LICENSE, node_modules/@types/d3-force/LICENSE, node_modules/@types/d3-format/LICENSE, node_modules/@types/d3-geo/LICENSE, node_modules/@types/d3-hierarchy/LICENSE, node_modules/@types/d3-interpolate/LICENSE, node_modules/@types/d3-path/LICENSE, node_modules/@types/d3-polygon/LICENSE, node_modules/@types/d3-quadtree/LICENSE, node_modules/@types/d3-random/LICENSE, node_modules/@types/d3-scale-chromatic/LICENSE, node_modules/@types/d3-scale/LICENSE, node_modules/@types/d3-selection/LICENSE, node_modules/@types/d3-shape/LICENSE, node_modules/@types/d3-time-format/LICENSE, node_modules/@types/d3-time/LICENSE, node_modules/@types/d3-timer/LICENSE, node_modules/@types/d3-transition/LICENSE, node_modules/@types/d3-zoom/LICENSE, node_modules/@types/d3/LICENSE, node_modules/@types/debug/LICENSE, node_modules/@types/geojson/LICENSE, node_modules/@types/hast/LICENSE, node_modules/@types/katex/LICENSE, node_modules/@types/mdast/LICENSE, node_modules/@types/ms/LICENSE, node_modules/@types/
|
|
10814
|
+
Components: @types/d3-array@3.2.2, @types/d3-axis@3.0.6, @types/d3-brush@3.0.6, @types/d3-chord@3.0.6, @types/d3-color@3.1.3, @types/d3-contour@3.0.6, @types/d3-delaunay@6.0.4, @types/d3-dispatch@3.0.7, @types/d3-drag@3.0.7, @types/d3-dsv@3.0.7, @types/d3-ease@3.0.2, @types/d3-fetch@3.0.7, @types/d3-force@3.0.10, @types/d3-format@3.0.4, @types/d3-geo@3.1.1, @types/d3-hierarchy@3.1.7, @types/d3-interpolate@3.0.4, @types/d3-path@3.1.1, @types/d3-polygon@3.0.2, @types/d3-quadtree@3.0.6, @types/d3-random@3.0.4, @types/d3-scale-chromatic@3.1.0, @types/d3-scale@4.0.9, @types/d3-selection@3.0.11, @types/d3-shape@3.1.8, @types/d3-time-format@4.0.3, @types/d3-time@3.0.4, @types/d3-timer@3.0.2, @types/d3-transition@3.0.9, @types/d3-zoom@3.0.8, @types/d3@7.4.3, @types/debug@4.1.12, @types/geojson@7946.0.16, @types/hast@3.0.4, @types/katex@0.16.8, @types/mdast@4.0.4, @types/ms@2.1.0, @types/trusted-types@2.0.7, @types/unist@2.0.11, @types/unist@3.0.3
|
|
10815
|
+
Source files: node_modules/@types/d3-array/LICENSE, node_modules/@types/d3-axis/LICENSE, node_modules/@types/d3-brush/LICENSE, node_modules/@types/d3-chord/LICENSE, node_modules/@types/d3-color/LICENSE, node_modules/@types/d3-contour/LICENSE, node_modules/@types/d3-delaunay/LICENSE, node_modules/@types/d3-dispatch/LICENSE, node_modules/@types/d3-drag/LICENSE, node_modules/@types/d3-dsv/LICENSE, node_modules/@types/d3-ease/LICENSE, node_modules/@types/d3-fetch/LICENSE, node_modules/@types/d3-force/LICENSE, node_modules/@types/d3-format/LICENSE, node_modules/@types/d3-geo/LICENSE, node_modules/@types/d3-hierarchy/LICENSE, node_modules/@types/d3-interpolate/LICENSE, node_modules/@types/d3-path/LICENSE, node_modules/@types/d3-polygon/LICENSE, node_modules/@types/d3-quadtree/LICENSE, node_modules/@types/d3-random/LICENSE, node_modules/@types/d3-scale-chromatic/LICENSE, node_modules/@types/d3-scale/LICENSE, node_modules/@types/d3-selection/LICENSE, node_modules/@types/d3-shape/LICENSE, node_modules/@types/d3-time-format/LICENSE, node_modules/@types/d3-time/LICENSE, node_modules/@types/d3-timer/LICENSE, node_modules/@types/d3-transition/LICENSE, node_modules/@types/d3-zoom/LICENSE, node_modules/@types/d3/LICENSE, node_modules/@types/debug/LICENSE, node_modules/@types/geojson/LICENSE, node_modules/@types/hast/LICENSE, node_modules/@types/katex/LICENSE, node_modules/@types/mdast/LICENSE, node_modules/@types/ms/LICENSE, node_modules/@types/trusted-types/LICENSE, node_modules/@types/unist/LICENSE, node_modules/parse-entities/node_modules/@types/unist/LICENSE
|
|
10816
10816
|
==============================================================================
|
|
10817
10817
|
MIT License
|
|
10818
10818
|
|
|
@@ -11368,7 +11368,7 @@ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
|
11368
11368
|
SOFTWARE.
|
|
11369
11369
|
|
|
11370
11370
|
==============================================================================
|
|
11371
|
-
Components: cytoscape@3.34.
|
|
11371
|
+
Components: cytoscape@3.34.1
|
|
11372
11372
|
Source files: node_modules/cytoscape/LICENSE
|
|
11373
11373
|
==============================================================================
|
|
11374
11374
|
Copyright (c) 2016-2026, The Cytoscape Consortium.
|
|
@@ -11392,7 +11392,7 @@ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
|
11392
11392
|
SOFTWARE.
|
|
11393
11393
|
|
|
11394
11394
|
==============================================================================
|
|
11395
|
-
Components: cytoscape@3.34.
|
|
11395
|
+
Components: cytoscape@3.34.1
|
|
11396
11396
|
Source files: node_modules/cytoscape/license-update.mjs
|
|
11397
11397
|
==============================================================================
|
|
11398
11398
|
import fs from 'fs';
|
|
@@ -12073,7 +12073,7 @@ TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
|
|
|
12073
12073
|
SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
|
12074
12074
|
|
|
12075
12075
|
==============================================================================
|
|
12076
|
-
Components: dompurify@3.4.
|
|
12076
|
+
Components: dompurify@3.4.13
|
|
12077
12077
|
Source files: node_modules/dompurify/LICENSE-MPL
|
|
12078
12078
|
==============================================================================
|
|
12079
12079
|
Mozilla Public License Version 2.0
|
|
@@ -12547,7 +12547,7 @@ THIS IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRE
|
|
|
12547
12547
|
EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
|
12548
12548
|
|
|
12549
12549
|
==============================================================================
|
|
12550
|
-
Components: es-toolkit@1.
|
|
12550
|
+
Components: es-toolkit@1.50.0
|
|
12551
12551
|
Source files: node_modules/es-toolkit/LICENSE
|
|
12552
12552
|
==============================================================================
|
|
12553
12553
|
MIT License
|
|
@@ -14867,7 +14867,7 @@ The above copyright notice and this permission notice shall be included in all c
|
|
|
14867
14867
|
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
|
14868
14868
|
|
|
14869
14869
|
==============================================================================
|
|
14870
|
-
Components: mermaid@11.16.
|
|
14870
|
+
Components: mermaid@11.16.1
|
|
14871
14871
|
Source files: node_modules/mermaid/LICENSE
|
|
14872
14872
|
==============================================================================
|
|
14873
14873
|
The MIT License (MIT)
|
|
@@ -15156,7 +15156,7 @@ TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
|
|
|
15156
15156
|
SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
|
15157
15157
|
|
|
15158
15158
|
==============================================================================
|
|
15159
|
-
Components: package-manager-detector@1.
|
|
15159
|
+
Components: package-manager-detector@1.8.0
|
|
15160
15160
|
Source files: node_modules/package-manager-detector/LICENSE
|
|
15161
15161
|
==============================================================================
|
|
15162
15162
|
MIT License
|
package/dist/bin.js
CHANGED
|
@@ -3224,7 +3224,16 @@ Placeholder`).join("\n\n");
|
|
|
3224
3224
|
const converted = await convert(
|
|
3225
3225
|
{ kind: "markdown", markdown: scaffold, baseName: "rendered" },
|
|
3226
3226
|
"pptx",
|
|
3227
|
-
{
|
|
3227
|
+
{
|
|
3228
|
+
...title === void 0 ? {} : { title },
|
|
3229
|
+
signal,
|
|
3230
|
+
// The scaffold is a throwaway 1:1 frame->slide vehicle whose slides are
|
|
3231
|
+
// all overwritten below with captured images. Squisq's cover slide is on
|
|
3232
|
+
// by default; here it would prepend a slide built from the placeholder
|
|
3233
|
+
// text, shifting every frame by one and leaving the last scaffold slide
|
|
3234
|
+
// un-overwritten as a visible "Rendered slide N / Placeholder" page.
|
|
3235
|
+
formatOptions: { pptx: { includeCoverSlide: false } }
|
|
3236
|
+
}
|
|
3228
3237
|
);
|
|
3229
3238
|
throwIfAborted5(signal);
|
|
3230
3239
|
const archive = await JSZip.loadAsync(converted.bytes);
|
|
@@ -3451,6 +3460,7 @@ import {
|
|
|
3451
3460
|
createCliRegistry,
|
|
3452
3461
|
prepareConversion as prepareLinkedConversion
|
|
3453
3462
|
} from "@bendyline/squisq-cli/api";
|
|
3463
|
+
import { DASHBOARD_STYLE_IDS } from "@bendyline/squisq/doc";
|
|
3454
3464
|
import { getDocPlaybackDuration } from "@bendyline/squisq/schemas";
|
|
3455
3465
|
async function convertPreparedDocument(artifacts, prepared, request, signal, progress, dependencies = DEFAULT_CONVERSION_SERVICE_DEPENDENCIES) {
|
|
3456
3466
|
if (request.targets.length < 1 || request.targets.length > 12) {
|
|
@@ -3713,13 +3723,17 @@ function canonicalJson(value) {
|
|
|
3713
3723
|
return `{${entries.map(([key, entry]) => `${JSON.stringify(key)}:${canonicalJson(entry)}`).join(",")}}`;
|
|
3714
3724
|
}
|
|
3715
3725
|
function defaultFidelity(format) {
|
|
3716
|
-
if (format === "mp4" || format === "gif") return "rendered-fidelity";
|
|
3726
|
+
if (format === "mp4" || format === "gif" || format === "png") return "rendered-fidelity";
|
|
3717
3727
|
return format === "docx" || format === "pptx" ? "editable-native" : "semantic";
|
|
3718
3728
|
}
|
|
3719
3729
|
function usesDocumentRasterizer(format, fidelity) {
|
|
3720
3730
|
return (format === "pdf" || format === "pptx") && (fidelity === "rendered-fidelity" || fidelity === "hybrid");
|
|
3721
3731
|
}
|
|
3722
3732
|
function assertMediaRenderBudget(prepared, target) {
|
|
3733
|
+
if (target.format === "png") {
|
|
3734
|
+
assertDashboardImageBudget(target);
|
|
3735
|
+
return;
|
|
3736
|
+
}
|
|
3723
3737
|
if (target.format !== "mp4" && target.format !== "gif") return;
|
|
3724
3738
|
const format = target.format;
|
|
3725
3739
|
const limits = MCP_MEDIA_RENDER_LIMITS[format];
|
|
@@ -3754,6 +3768,35 @@ function assertMediaRenderBudget(prepared, target) {
|
|
|
3754
3768
|
}
|
|
3755
3769
|
if (violations.length > 0) throw new MediaRenderBudgetError(format, violations, limits);
|
|
3756
3770
|
}
|
|
3771
|
+
function assertDashboardImageBudget(target) {
|
|
3772
|
+
const options = target.options ?? {};
|
|
3773
|
+
const hasCustom = options.width !== void 0 || options.height !== void 0;
|
|
3774
|
+
if (!hasCustom) return;
|
|
3775
|
+
if (options.resolution !== void 0) {
|
|
3776
|
+
throw new DashboardImageBudgetError(
|
|
3777
|
+
"Pass either a resolution preset or custom width and height, not both."
|
|
3778
|
+
);
|
|
3779
|
+
}
|
|
3780
|
+
if (options.width === void 0 || options.height === void 0) {
|
|
3781
|
+
throw new DashboardImageBudgetError("Custom dimensions require both width and height.");
|
|
3782
|
+
}
|
|
3783
|
+
const width = numericOption2(options.width, 0);
|
|
3784
|
+
const height = numericOption2(options.height, 0);
|
|
3785
|
+
const limits = MCP_DASHBOARD_IMAGE_LIMITS;
|
|
3786
|
+
if (!Number.isSafeInteger(width) || !Number.isSafeInteger(height)) {
|
|
3787
|
+
throw new DashboardImageBudgetError("Width and height must be whole pixel counts.");
|
|
3788
|
+
}
|
|
3789
|
+
if (width < limits.minimumDimension || height < limits.minimumDimension || width > limits.maximumDimension || height > limits.maximumDimension) {
|
|
3790
|
+
throw new DashboardImageBudgetError(
|
|
3791
|
+
`Each dimension must be between ${limits.minimumDimension} and ${limits.maximumDimension} pixels; received ${width}x${height}.`
|
|
3792
|
+
);
|
|
3793
|
+
}
|
|
3794
|
+
if (width * height > limits.maximumPixels) {
|
|
3795
|
+
throw new DashboardImageBudgetError(
|
|
3796
|
+
`The image may not exceed ${limits.maximumPixels} total pixels; ${width}x${height} is ${width * height}.`
|
|
3797
|
+
);
|
|
3798
|
+
}
|
|
3799
|
+
}
|
|
3757
3800
|
function numericOption2(value, fallback) {
|
|
3758
3801
|
return typeof value === "number" && Number.isFinite(value) ? value : fallback;
|
|
3759
3802
|
}
|
|
@@ -3820,7 +3863,7 @@ function firstDuplicate2(values) {
|
|
|
3820
3863
|
}
|
|
3821
3864
|
return void 0;
|
|
3822
3865
|
}
|
|
3823
|
-
var MCP_FORMAT_FIDELITIES, MCP_MEDIA_RENDER_LIMITS, COMPLETED_CONVERSION_CACHE_LIMIT, completedConversionCaches, linkedRegistry, DEFAULT_CONVERSION_SERVICE_DEPENDENCIES, MCP_FORMAT_CAPABILITIES, CompletedConversionCache, MediaRenderBudgetError, UnsupportedFidelityError, UnknownTransformError, UnknownThemeError;
|
|
3866
|
+
var MCP_FORMAT_FIDELITIES, MCP_DASHBOARD_IMAGE_LIMITS, MCP_DASHBOARD_STYLE_IDS, MCP_DASHBOARD_RESOLUTION_IDS, MCP_MEDIA_RENDER_LIMITS, COMPLETED_CONVERSION_CACHE_LIMIT, completedConversionCaches, linkedRegistry, DEFAULT_CONVERSION_SERVICE_DEPENDENCIES, MCP_FORMAT_CAPABILITIES, CompletedConversionCache, MediaRenderBudgetError, DashboardImageBudgetError, UnsupportedFidelityError, UnknownTransformError, UnknownThemeError;
|
|
3824
3867
|
var init_conversion_service = __esm({
|
|
3825
3868
|
"src/mcp/conversion-service.ts"() {
|
|
3826
3869
|
"use strict";
|
|
@@ -3840,8 +3883,25 @@ var init_conversion_service = __esm({
|
|
|
3840
3883
|
epub: ["semantic"],
|
|
3841
3884
|
dbk: ["semantic", "editable-native"],
|
|
3842
3885
|
mp4: ["rendered-fidelity"],
|
|
3843
|
-
gif: ["rendered-fidelity"]
|
|
3886
|
+
gif: ["rendered-fidelity"],
|
|
3887
|
+
png: ["rendered-fidelity"]
|
|
3844
3888
|
};
|
|
3889
|
+
MCP_DASHBOARD_IMAGE_LIMITS = Object.freeze({
|
|
3890
|
+
minimumDimension: 64,
|
|
3891
|
+
maximumDimension: 7680,
|
|
3892
|
+
maximumPixels: 33177600
|
|
3893
|
+
});
|
|
3894
|
+
MCP_DASHBOARD_STYLE_IDS = DASHBOARD_STYLE_IDS;
|
|
3895
|
+
MCP_DASHBOARD_RESOLUTION_IDS = [
|
|
3896
|
+
"hd",
|
|
3897
|
+
"fhd",
|
|
3898
|
+
"4k",
|
|
3899
|
+
"square",
|
|
3900
|
+
"square-2k",
|
|
3901
|
+
"portrait",
|
|
3902
|
+
"portrait-4k",
|
|
3903
|
+
"standard"
|
|
3904
|
+
];
|
|
3845
3905
|
MCP_MEDIA_RENDER_LIMITS = Object.freeze({
|
|
3846
3906
|
mp4: Object.freeze({
|
|
3847
3907
|
maximumFps: 60,
|
|
@@ -3924,6 +3984,16 @@ var init_conversion_service = __esm({
|
|
|
3924
3984
|
this.hint = `Reduce duration, FPS, or dimensions. ${format.toUpperCase()} permits at most ${limits.maximumDurationSeconds}s, ${limits.maximumFps} fps, ${limits.maximumPixelsPerFrame} pixels/frame, ${limits.maximumPixelFrames} frame-pixels, and ${limits.maximumCapturedFrameBytes} retained captured-PNG bytes.`;
|
|
3925
3985
|
}
|
|
3926
3986
|
};
|
|
3987
|
+
DashboardImageBudgetError = class extends Error {
|
|
3988
|
+
constructor(message) {
|
|
3989
|
+
super(`The Dashboard image render exceeds MCP raster budgets: ${message}`);
|
|
3990
|
+
this.code = "media-budget-exceeded";
|
|
3991
|
+
this.retryable = false;
|
|
3992
|
+
this.format = "png";
|
|
3993
|
+
this.name = "DashboardImageBudgetError";
|
|
3994
|
+
this.hint = `Use a named resolution preset, or custom dimensions between ${MCP_DASHBOARD_IMAGE_LIMITS.minimumDimension} and ${MCP_DASHBOARD_IMAGE_LIMITS.maximumDimension} pixels per edge totaling at most ${MCP_DASHBOARD_IMAGE_LIMITS.maximumPixels} pixels.`;
|
|
3995
|
+
}
|
|
3996
|
+
};
|
|
3927
3997
|
UnsupportedFidelityError = class extends Error {
|
|
3928
3998
|
constructor(format, fidelity, supported) {
|
|
3929
3999
|
const choices = supported.length > 0 ? supported.join(", ") : "none";
|
|
@@ -5341,6 +5411,22 @@ var init_agentic_tools = __esm({
|
|
|
5341
5411
|
maxColors: z.number().int().min(2).max(256).optional(),
|
|
5342
5412
|
dither: z.enum(["none", "bayer", "heckbert", "floyd_steinberg", "sierra2", "sierra2_4a"]).optional(),
|
|
5343
5413
|
bayerScale: z.number().int().min(0).max(5).optional()
|
|
5414
|
+
}).strict(),
|
|
5415
|
+
z.object({
|
|
5416
|
+
format: z.literal("png"),
|
|
5417
|
+
fidelity: z.enum(MCP_FORMAT_FIDELITIES.png).optional(),
|
|
5418
|
+
resolution: z.enum(MCP_DASHBOARD_RESOLUTION_IDS).optional().describe(
|
|
5419
|
+
"Named output size for the Dashboard image. Mutually exclusive with width/height."
|
|
5420
|
+
),
|
|
5421
|
+
width: z.number().int().min(64).max(7680).optional().describe("Custom pixel width. Requires height and excludes resolution."),
|
|
5422
|
+
height: z.number().int().min(64).max(7680).optional().describe("Custom pixel height. Requires width and excludes resolution."),
|
|
5423
|
+
layout: z.string().max(64).optional().describe(
|
|
5424
|
+
`Dashboard layout id, or "auto" to pick by block count. Omit to honor the document's own squisq-dashboard-layout frontmatter.`
|
|
5425
|
+
),
|
|
5426
|
+
style: z.enum(MCP_DASHBOARD_STYLE_IDS).optional().describe(
|
|
5427
|
+
"Cell dressing around each block. Omit to honor the document's own squisq-dashboard-style frontmatter."
|
|
5428
|
+
),
|
|
5429
|
+
title: z.boolean().optional().describe("Render the document-title band. Omit to honor the document\u2019s own setting.")
|
|
5344
5430
|
}).strict()
|
|
5345
5431
|
]);
|
|
5346
5432
|
MCP_CONVERSION_TARGET_FORMATS = Object.freeze(
|
|
@@ -5558,6 +5644,38 @@ function registerAuthoringPrompts(server) {
|
|
|
5558
5644
|
})
|
|
5559
5645
|
);
|
|
5560
5646
|
video.argsSchema = videoArgs;
|
|
5647
|
+
const dashboardArgs = z3.object({
|
|
5648
|
+
topic: z3.string().max(MAX_TOPIC_CHARACTERS).describe("Dashboard topic or subject."),
|
|
5649
|
+
resolution: z3.enum(MCP_DASHBOARD_RESOLUTION_IDS).optional().describe("Named output size for the image."),
|
|
5650
|
+
style: z3.enum(MCP_DASHBOARD_STYLE_IDS).optional().describe("Cell dressing around each block."),
|
|
5651
|
+
theme,
|
|
5652
|
+
template
|
|
5653
|
+
}).strict();
|
|
5654
|
+
const dashboard = server.registerPrompt(
|
|
5655
|
+
"create-dashboard",
|
|
5656
|
+
{
|
|
5657
|
+
description: "Convert model-authored Markdown into an artifact-first dashboard image.",
|
|
5658
|
+
argsSchema: dashboardArgs.shape
|
|
5659
|
+
},
|
|
5660
|
+
async (args) => ({
|
|
5661
|
+
messages: [
|
|
5662
|
+
{
|
|
5663
|
+
role: "user",
|
|
5664
|
+
content: {
|
|
5665
|
+
type: "text",
|
|
5666
|
+
text: dashboardPrompt(
|
|
5667
|
+
args.topic,
|
|
5668
|
+
args.resolution,
|
|
5669
|
+
args.style,
|
|
5670
|
+
args.theme,
|
|
5671
|
+
args.template
|
|
5672
|
+
)
|
|
5673
|
+
}
|
|
5674
|
+
}
|
|
5675
|
+
]
|
|
5676
|
+
})
|
|
5677
|
+
);
|
|
5678
|
+
dashboard.argsSchema = dashboardArgs;
|
|
5561
5679
|
const documentArgs = z3.object({
|
|
5562
5680
|
topic: z3.string().max(MAX_TOPIC_CHARACTERS).describe("Document topic or subject."),
|
|
5563
5681
|
format: z3.enum(["docx", "pdf"]).optional(),
|
|
@@ -5609,6 +5727,19 @@ function videoPrompt(topic, orientation, theme, template) {
|
|
|
5609
5727
|
4. Use preview_document only when the user explicitly asks for visual evidence.
|
|
5610
5728
|
5. Call save_artifact only when a durable file is required.`;
|
|
5611
5729
|
}
|
|
5730
|
+
function dashboardPrompt(topic, resolution, style, theme, template) {
|
|
5731
|
+
const templateHint = template ? ` Use the requested \`${template}\` annotation where appropriate.` : "";
|
|
5732
|
+
const themeHint = theme ? ` and themeId \`${theme}\`` : "";
|
|
5733
|
+
const sizeHint = resolution ? `, resolution "${resolution}"` : "";
|
|
5734
|
+
const styleHint = style ? `, style "${style}"` : "";
|
|
5735
|
+
return `Create a dashboard image about: ${topic}
|
|
5736
|
+
|
|
5737
|
+
1. For durable output, call list_roots before drafting and stop if no root is write-enabled; do not use a shell or CLI converter.
|
|
5738
|
+
2. A dashboard renders the WHOLE document onto one canvas, one block per cell, so write for a single screen. Aim for four to eight short, self-contained blocks \u2014 a lead statement, a table or metric, a short list, a closing note. Long prose does not fit a cell and will be clipped.${templateHint} Call get_authoring_context only when exact annotation examples or theme details would help.
|
|
5739
|
+
3. Pass the Markdown directly to convert_document with a png target${sizeHint}${styleHint}${themeHint}. Omit layout to let the block count pick one. Use a bundle source only when assets must travel with the document. No validation, inspection, or preview is required.
|
|
5740
|
+
4. Use preview_document only when the user explicitly asks for visual evidence.
|
|
5741
|
+
5. Call save_artifact only when a durable file is required.`;
|
|
5742
|
+
}
|
|
5612
5743
|
function documentPrompt(topic, format, theme, template) {
|
|
5613
5744
|
const target = format ?? "pdf";
|
|
5614
5745
|
const templateHint = template ? ` Use the requested \`${template}\` annotation where appropriate.` : "";
|
|
@@ -5629,6 +5760,7 @@ var MAX_ID_CHARACTERS, MAX_TOPIC_CHARACTERS;
|
|
|
5629
5760
|
var init_prompts = __esm({
|
|
5630
5761
|
"src/mcp/prompts.ts"() {
|
|
5631
5762
|
"use strict";
|
|
5763
|
+
init_conversion_service();
|
|
5632
5764
|
init_style_guidance();
|
|
5633
5765
|
MAX_ID_CHARACTERS = 256;
|
|
5634
5766
|
MAX_TOPIC_CHARACTERS = 1e4;
|
|
@@ -6732,7 +6864,70 @@ import { Command as Command3 } from "commander";
|
|
|
6732
6864
|
init_link_support();
|
|
6733
6865
|
init_node_error();
|
|
6734
6866
|
init_cancellation();
|
|
6867
|
+
|
|
6868
|
+
// src/internal/dashboard-image.ts
|
|
6869
|
+
function hasDashboardImageInput(input) {
|
|
6870
|
+
return input.resolution !== void 0 || input.width !== void 0 || input.height !== void 0 || input.layout !== void 0 || input.style !== void 0 || input.title !== void 0;
|
|
6871
|
+
}
|
|
6872
|
+
function pixelCount(value, flag) {
|
|
6873
|
+
if (value === void 0) return void 0;
|
|
6874
|
+
const parsed = typeof value === "number" ? value : Number(value.trim());
|
|
6875
|
+
if (!Number.isFinite(parsed)) {
|
|
6876
|
+
throw new Error(`The ${flag} must be a whole number of pixels.`);
|
|
6877
|
+
}
|
|
6878
|
+
return parsed;
|
|
6879
|
+
}
|
|
6880
|
+
async function resolveDashboardImageOptions(input) {
|
|
6881
|
+
const [{ resolveDashboardStyleId, DASHBOARD_STYLE_IDS: DASHBOARD_STYLE_IDS2 }, video] = await Promise.all([
|
|
6882
|
+
import("@bendyline/squisq/doc"),
|
|
6883
|
+
import("@bendyline/squisq-video")
|
|
6884
|
+
]);
|
|
6885
|
+
const width = pixelCount(input.width, "--image-width");
|
|
6886
|
+
const height = pixelCount(input.height, "--image-height");
|
|
6887
|
+
const dimensions = video.resolveDashboardDimensions({
|
|
6888
|
+
resolution: input.resolution,
|
|
6889
|
+
width,
|
|
6890
|
+
height
|
|
6891
|
+
});
|
|
6892
|
+
const options = {};
|
|
6893
|
+
if (input.resolution !== void 0) {
|
|
6894
|
+
options.resolution = input.resolution;
|
|
6895
|
+
} else if (width !== void 0 && height !== void 0) {
|
|
6896
|
+
options.width = dimensions.width;
|
|
6897
|
+
options.height = dimensions.height;
|
|
6898
|
+
}
|
|
6899
|
+
if (input.layout !== void 0) {
|
|
6900
|
+
const layout = input.layout.trim().toLowerCase();
|
|
6901
|
+
if (!layout) throw new Error("The --image-layout id must be a non-empty string.");
|
|
6902
|
+
options.layout = layout;
|
|
6903
|
+
}
|
|
6904
|
+
if (input.style !== void 0) {
|
|
6905
|
+
const style = resolveDashboardStyleId(input.style);
|
|
6906
|
+
if (!style) {
|
|
6907
|
+
throw new Error(
|
|
6908
|
+
`Unknown dashboard style "${input.style}". Valid: ${DASHBOARD_STYLE_IDS2.join(", ")}`
|
|
6909
|
+
);
|
|
6910
|
+
}
|
|
6911
|
+
options.style = style;
|
|
6912
|
+
}
|
|
6913
|
+
if (input.title !== void 0) options.title = input.title;
|
|
6914
|
+
return options;
|
|
6915
|
+
}
|
|
6916
|
+
async function assertKnownDashboardLayout(layout, doc) {
|
|
6917
|
+
if (!layout) return;
|
|
6918
|
+
const { DASHBOARD_AUTO_LAYOUT_ID, listDashboardLayouts } = await import("@bendyline/squisq/doc");
|
|
6919
|
+
if (layout === DASHBOARD_AUTO_LAYOUT_ID) return;
|
|
6920
|
+
const available = listDashboardLayouts(doc);
|
|
6921
|
+
if (available.some((entry) => entry.id === layout)) return;
|
|
6922
|
+
const known = available.map((entry) => entry.id).join(", ");
|
|
6923
|
+
throw new Error(
|
|
6924
|
+
`Unknown dashboard layout "${layout}". Valid: ${DASHBOARD_AUTO_LAYOUT_ID}, ${known}`
|
|
6925
|
+
);
|
|
6926
|
+
}
|
|
6927
|
+
|
|
6928
|
+
// src/commands/convert.ts
|
|
6735
6929
|
var DEFAULT_FORMATS = ["docx", "pptx", "pdf", "html", "dbk"];
|
|
6930
|
+
var DASHBOARD_IMAGE_FORMAT = "png";
|
|
6736
6931
|
var DEFAULT_MAX_CONVERT_INPUT_BYTES = 1024 * 1024 * 1024;
|
|
6737
6932
|
var DEFAULT_MAX_CONVERT_INPUT_ENTRIES = 2e4;
|
|
6738
6933
|
var DEFAULT_MAX_CONVERT_OUTPUT_BYTES = 512 * 1024 * 1024;
|
|
@@ -6805,6 +7000,24 @@ async function runConvert(inputPath, opts) {
|
|
|
6805
7000
|
{ format: requested[0], hint: registryHint }
|
|
6806
7001
|
);
|
|
6807
7002
|
}
|
|
7003
|
+
const dashboardImageInput = {
|
|
7004
|
+
resolution: opts.imageResolution,
|
|
7005
|
+
width: opts.imageWidth,
|
|
7006
|
+
height: opts.imageHeight,
|
|
7007
|
+
layout: opts.imageLayout,
|
|
7008
|
+
style: opts.imageStyle,
|
|
7009
|
+
title: opts.imageTitle
|
|
7010
|
+
};
|
|
7011
|
+
const wantsDashboardImage = formats.includes(DASHBOARD_IMAGE_FORMAT);
|
|
7012
|
+
if (hasDashboardImageInput(dashboardImageInput) && !wantsDashboardImage) {
|
|
7013
|
+
throw new squisq.ConversionError(
|
|
7014
|
+
"unknown-format",
|
|
7015
|
+
`The --image-* options only apply to the "${DASHBOARD_IMAGE_FORMAT}" target. Add it to --formats.`,
|
|
7016
|
+
{ format: DASHBOARD_IMAGE_FORMAT, hint: registryHint }
|
|
7017
|
+
);
|
|
7018
|
+
}
|
|
7019
|
+
const dashboardImageOptions = wantsDashboardImage ? await resolveDashboardImageOptions(dashboardImageInput) : void 0;
|
|
7020
|
+
throwIfAborted2(opts.signal);
|
|
6808
7021
|
if (opts.transform) {
|
|
6809
7022
|
const { getTransformStyleIds } = await import("@bendyline/squisq/transform");
|
|
6810
7023
|
throwIfAborted2(opts.signal);
|
|
@@ -6830,6 +7043,7 @@ async function runConvert(inputPath, opts) {
|
|
|
6830
7043
|
opts.theme,
|
|
6831
7044
|
result.doc.customThemes?.map((theme) => theme.id)
|
|
6832
7045
|
);
|
|
7046
|
+
await assertKnownDashboardLayout(dashboardImageOptions?.layout, result.doc);
|
|
6833
7047
|
throwIfAborted2(opts.signal);
|
|
6834
7048
|
let exportMarkdownDoc = result.markdownDoc;
|
|
6835
7049
|
if (opts.transform && exportMarkdownDoc) {
|
|
@@ -6853,7 +7067,8 @@ async function runConvert(inputPath, opts) {
|
|
|
6853
7067
|
registry,
|
|
6854
7068
|
title: baseName,
|
|
6855
7069
|
themeId: opts.theme,
|
|
6856
|
-
...!exportMarkdownDoc && opts.transform ? { transformStyle: opts.transform } : {}
|
|
7070
|
+
...!exportMarkdownDoc && opts.transform ? { transformStyle: opts.transform } : {},
|
|
7071
|
+
...format === DASHBOARD_IMAGE_FORMAT && dashboardImageOptions ? { formatOptions: { [DASHBOARD_IMAGE_FORMAT]: dashboardImageOptions } } : {}
|
|
6857
7072
|
});
|
|
6858
7073
|
throwIfAborted2(opts.signal);
|
|
6859
7074
|
if (conversion.bytes.byteLength > maxOutputBytes) {
|
|
@@ -7278,7 +7493,16 @@ var convertCommand = new Command3("convert").description("Convert a document thr
|
|
|
7278
7493
|
).option("-t, --theme <id>", "Squisq theme ID to apply (e.g., documentary, cinematic, bold)").option(
|
|
7279
7494
|
"--transform <style>",
|
|
7280
7495
|
"Transform style to apply before export (e.g., documentary, magazine, minimal)"
|
|
7281
|
-
).option(
|
|
7496
|
+
).option(
|
|
7497
|
+
"--image-resolution <preset>",
|
|
7498
|
+
"Dashboard image size preset for the png target (hd, fhd, 4k, square, square-2k, portrait, portrait-4k, standard)"
|
|
7499
|
+
).option("--image-width <pixels>", "Custom dashboard image width (requires --image-height)").option("--image-height <pixels>", "Custom dashboard image height (requires --image-width)").option(
|
|
7500
|
+
"--image-layout <id>",
|
|
7501
|
+
`Dashboard layout id, or "auto" to pick by block count (default: the document's own setting)`
|
|
7502
|
+
).option(
|
|
7503
|
+
"--image-style <variant>",
|
|
7504
|
+
"Dashboard cell style: basic, card, panel, accent (default: the document's own setting)"
|
|
7505
|
+
).option("--image-title", "Include the dashboard document-title band").option("--no-image-title", "Hide the dashboard document-title band").option("--allow-overwrite", "replace existing output files instead of refusing the run").action(async (inputPath, opts) => {
|
|
7282
7506
|
try {
|
|
7283
7507
|
await runConvert(inputPath, opts);
|
|
7284
7508
|
} catch (err) {
|
package/dist/index.d.ts
CHANGED
|
@@ -52,6 +52,18 @@ interface ConvertOptions {
|
|
|
52
52
|
* before any conversion work when a destination already exists.
|
|
53
53
|
*/
|
|
54
54
|
allowOverwrite?: boolean;
|
|
55
|
+
/** Named dashboard-image resolution preset for the `png` target. */
|
|
56
|
+
imageResolution?: string;
|
|
57
|
+
/** Custom dashboard-image width; requires `imageHeight`. */
|
|
58
|
+
imageWidth?: string | number;
|
|
59
|
+
/** Custom dashboard-image height; requires `imageWidth`. */
|
|
60
|
+
imageHeight?: string | number;
|
|
61
|
+
/** Dashboard layout id, or `auto` to pick by block count. */
|
|
62
|
+
imageLayout?: string;
|
|
63
|
+
/** Dashboard cell style variant (`basic`, `card`, `panel`, `accent`). */
|
|
64
|
+
imageStyle?: string;
|
|
65
|
+
/** Render the dashboard's document-title band. */
|
|
66
|
+
imageTitle?: boolean;
|
|
55
67
|
/** Cancel reading, transformation, conversion, or publication at a bounded boundary. */
|
|
56
68
|
signal?: AbortSignal;
|
|
57
69
|
/** Programmatic registry override; the CLI defaults to the linked Squisq registry. */
|
package/dist/index.js
CHANGED
|
@@ -465,8 +465,69 @@ function throwIfAborted(signal, message) {
|
|
|
465
465
|
throw signal.reason ?? cancellationError(message);
|
|
466
466
|
}
|
|
467
467
|
|
|
468
|
+
// src/internal/dashboard-image.ts
|
|
469
|
+
function hasDashboardImageInput(input) {
|
|
470
|
+
return input.resolution !== void 0 || input.width !== void 0 || input.height !== void 0 || input.layout !== void 0 || input.style !== void 0 || input.title !== void 0;
|
|
471
|
+
}
|
|
472
|
+
function pixelCount(value, flag) {
|
|
473
|
+
if (value === void 0) return void 0;
|
|
474
|
+
const parsed = typeof value === "number" ? value : Number(value.trim());
|
|
475
|
+
if (!Number.isFinite(parsed)) {
|
|
476
|
+
throw new Error(`The ${flag} must be a whole number of pixels.`);
|
|
477
|
+
}
|
|
478
|
+
return parsed;
|
|
479
|
+
}
|
|
480
|
+
async function resolveDashboardImageOptions(input) {
|
|
481
|
+
const [{ resolveDashboardStyleId, DASHBOARD_STYLE_IDS }, video] = await Promise.all([
|
|
482
|
+
import("@bendyline/squisq/doc"),
|
|
483
|
+
import("@bendyline/squisq-video")
|
|
484
|
+
]);
|
|
485
|
+
const width = pixelCount(input.width, "--image-width");
|
|
486
|
+
const height = pixelCount(input.height, "--image-height");
|
|
487
|
+
const dimensions = video.resolveDashboardDimensions({
|
|
488
|
+
resolution: input.resolution,
|
|
489
|
+
width,
|
|
490
|
+
height
|
|
491
|
+
});
|
|
492
|
+
const options = {};
|
|
493
|
+
if (input.resolution !== void 0) {
|
|
494
|
+
options.resolution = input.resolution;
|
|
495
|
+
} else if (width !== void 0 && height !== void 0) {
|
|
496
|
+
options.width = dimensions.width;
|
|
497
|
+
options.height = dimensions.height;
|
|
498
|
+
}
|
|
499
|
+
if (input.layout !== void 0) {
|
|
500
|
+
const layout = input.layout.trim().toLowerCase();
|
|
501
|
+
if (!layout) throw new Error("The --image-layout id must be a non-empty string.");
|
|
502
|
+
options.layout = layout;
|
|
503
|
+
}
|
|
504
|
+
if (input.style !== void 0) {
|
|
505
|
+
const style = resolveDashboardStyleId(input.style);
|
|
506
|
+
if (!style) {
|
|
507
|
+
throw new Error(
|
|
508
|
+
`Unknown dashboard style "${input.style}". Valid: ${DASHBOARD_STYLE_IDS.join(", ")}`
|
|
509
|
+
);
|
|
510
|
+
}
|
|
511
|
+
options.style = style;
|
|
512
|
+
}
|
|
513
|
+
if (input.title !== void 0) options.title = input.title;
|
|
514
|
+
return options;
|
|
515
|
+
}
|
|
516
|
+
async function assertKnownDashboardLayout(layout, doc) {
|
|
517
|
+
if (!layout) return;
|
|
518
|
+
const { DASHBOARD_AUTO_LAYOUT_ID, listDashboardLayouts } = await import("@bendyline/squisq/doc");
|
|
519
|
+
if (layout === DASHBOARD_AUTO_LAYOUT_ID) return;
|
|
520
|
+
const available = listDashboardLayouts(doc);
|
|
521
|
+
if (available.some((entry) => entry.id === layout)) return;
|
|
522
|
+
const known = available.map((entry) => entry.id).join(", ");
|
|
523
|
+
throw new Error(
|
|
524
|
+
`Unknown dashboard layout "${layout}". Valid: ${DASHBOARD_AUTO_LAYOUT_ID}, ${known}`
|
|
525
|
+
);
|
|
526
|
+
}
|
|
527
|
+
|
|
468
528
|
// src/commands/convert.ts
|
|
469
529
|
var DEFAULT_FORMATS = ["docx", "pptx", "pdf", "html", "dbk"];
|
|
530
|
+
var DASHBOARD_IMAGE_FORMAT = "png";
|
|
470
531
|
var DEFAULT_MAX_CONVERT_INPUT_BYTES = 1024 * 1024 * 1024;
|
|
471
532
|
var DEFAULT_MAX_CONVERT_INPUT_ENTRIES = 2e4;
|
|
472
533
|
var DEFAULT_MAX_CONVERT_OUTPUT_BYTES = 512 * 1024 * 1024;
|
|
@@ -539,6 +600,24 @@ async function runConvert(inputPath, opts) {
|
|
|
539
600
|
{ format: requested[0], hint: registryHint }
|
|
540
601
|
);
|
|
541
602
|
}
|
|
603
|
+
const dashboardImageInput = {
|
|
604
|
+
resolution: opts.imageResolution,
|
|
605
|
+
width: opts.imageWidth,
|
|
606
|
+
height: opts.imageHeight,
|
|
607
|
+
layout: opts.imageLayout,
|
|
608
|
+
style: opts.imageStyle,
|
|
609
|
+
title: opts.imageTitle
|
|
610
|
+
};
|
|
611
|
+
const wantsDashboardImage = formats.includes(DASHBOARD_IMAGE_FORMAT);
|
|
612
|
+
if (hasDashboardImageInput(dashboardImageInput) && !wantsDashboardImage) {
|
|
613
|
+
throw new squisq.ConversionError(
|
|
614
|
+
"unknown-format",
|
|
615
|
+
`The --image-* options only apply to the "${DASHBOARD_IMAGE_FORMAT}" target. Add it to --formats.`,
|
|
616
|
+
{ format: DASHBOARD_IMAGE_FORMAT, hint: registryHint }
|
|
617
|
+
);
|
|
618
|
+
}
|
|
619
|
+
const dashboardImageOptions = wantsDashboardImage ? await resolveDashboardImageOptions(dashboardImageInput) : void 0;
|
|
620
|
+
throwIfAborted2(opts.signal);
|
|
542
621
|
if (opts.transform) {
|
|
543
622
|
const { getTransformStyleIds } = await import("@bendyline/squisq/transform");
|
|
544
623
|
throwIfAborted2(opts.signal);
|
|
@@ -564,6 +643,7 @@ async function runConvert(inputPath, opts) {
|
|
|
564
643
|
opts.theme,
|
|
565
644
|
result.doc.customThemes?.map((theme) => theme.id)
|
|
566
645
|
);
|
|
646
|
+
await assertKnownDashboardLayout(dashboardImageOptions?.layout, result.doc);
|
|
567
647
|
throwIfAborted2(opts.signal);
|
|
568
648
|
let exportMarkdownDoc = result.markdownDoc;
|
|
569
649
|
if (opts.transform && exportMarkdownDoc) {
|
|
@@ -587,7 +667,8 @@ async function runConvert(inputPath, opts) {
|
|
|
587
667
|
registry,
|
|
588
668
|
title: baseName,
|
|
589
669
|
themeId: opts.theme,
|
|
590
|
-
...!exportMarkdownDoc && opts.transform ? { transformStyle: opts.transform } : {}
|
|
670
|
+
...!exportMarkdownDoc && opts.transform ? { transformStyle: opts.transform } : {},
|
|
671
|
+
...format === DASHBOARD_IMAGE_FORMAT && dashboardImageOptions ? { formatOptions: { [DASHBOARD_IMAGE_FORMAT]: dashboardImageOptions } } : {}
|
|
591
672
|
});
|
|
592
673
|
throwIfAborted2(opts.signal);
|
|
593
674
|
if (conversion.bytes.byteLength > maxOutputBytes) {
|
|
@@ -1012,7 +1093,16 @@ var convertCommand = new Command2("convert").description("Convert a document thr
|
|
|
1012
1093
|
).option("-t, --theme <id>", "Squisq theme ID to apply (e.g., documentary, cinematic, bold)").option(
|
|
1013
1094
|
"--transform <style>",
|
|
1014
1095
|
"Transform style to apply before export (e.g., documentary, magazine, minimal)"
|
|
1015
|
-
).option(
|
|
1096
|
+
).option(
|
|
1097
|
+
"--image-resolution <preset>",
|
|
1098
|
+
"Dashboard image size preset for the png target (hd, fhd, 4k, square, square-2k, portrait, portrait-4k, standard)"
|
|
1099
|
+
).option("--image-width <pixels>", "Custom dashboard image width (requires --image-height)").option("--image-height <pixels>", "Custom dashboard image height (requires --image-width)").option(
|
|
1100
|
+
"--image-layout <id>",
|
|
1101
|
+
`Dashboard layout id, or "auto" to pick by block count (default: the document's own setting)`
|
|
1102
|
+
).option(
|
|
1103
|
+
"--image-style <variant>",
|
|
1104
|
+
"Dashboard cell style: basic, card, panel, accent (default: the document's own setting)"
|
|
1105
|
+
).option("--image-title", "Include the dashboard document-title band").option("--no-image-title", "Hide the dashboard document-title band").option("--allow-overwrite", "replace existing output files instead of refusing the run").action(async (inputPath, opts) => {
|
|
1016
1106
|
try {
|
|
1017
1107
|
await runConvert(inputPath, opts);
|
|
1018
1108
|
} catch (err) {
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@bendyline/docblocks-cli",
|
|
3
|
-
"version": "2.
|
|
3
|
+
"version": "2.4.0",
|
|
4
4
|
"description": "Build, preview, convert, render, inspect, and automate documents",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"author": "Bendyline",
|
|
@@ -47,12 +47,12 @@
|
|
|
47
47
|
"typecheck": "tsc --noEmit"
|
|
48
48
|
},
|
|
49
49
|
"dependencies": {
|
|
50
|
-
"@bendyline/docblocks": "2.
|
|
51
|
-
"@bendyline/squisq": "2.
|
|
52
|
-
"@bendyline/squisq-cli": "2.
|
|
53
|
-
"@bendyline/squisq-formats": "2.4.
|
|
54
|
-
"@bendyline/squisq-react": "2.
|
|
55
|
-
"@bendyline/squisq-video": "2.
|
|
50
|
+
"@bendyline/docblocks": "2.4.0",
|
|
51
|
+
"@bendyline/squisq": "2.8.0",
|
|
52
|
+
"@bendyline/squisq-cli": "2.6.0",
|
|
53
|
+
"@bendyline/squisq-formats": "2.4.5",
|
|
54
|
+
"@bendyline/squisq-react": "2.8.0",
|
|
55
|
+
"@bendyline/squisq-video": "2.3.0",
|
|
56
56
|
"@modelcontextprotocol/sdk": "1.29.0",
|
|
57
57
|
"commander": "13.1.0",
|
|
58
58
|
"jszip": "3.10.1",
|