@bendyline/squisq-formats 1.3.0 → 1.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.
Files changed (224) hide show
  1. package/dist/chunk-6M7Z25LA.js +46 -0
  2. package/dist/chunk-6M7Z25LA.js.map +1 -0
  3. package/dist/{chunk-S3Y7H2BK.js → chunk-APSIAEXL.js} +9 -8
  4. package/dist/chunk-APSIAEXL.js.map +1 -0
  5. package/dist/{chunk-UDS45KUJ.js → chunk-BJQIJ4S4.js} +36 -52
  6. package/dist/chunk-BJQIJ4S4.js.map +1 -0
  7. package/dist/{chunk-33YRFXZZ.js → chunk-CRTC6DEX.js} +259 -13
  8. package/dist/chunk-CRTC6DEX.js.map +1 -0
  9. package/dist/chunk-FMOIGA5T.js +201 -0
  10. package/dist/chunk-FMOIGA5T.js.map +1 -0
  11. package/dist/{chunk-VN2KEOYB.js → chunk-I2GFTEOV.js} +321 -91
  12. package/dist/chunk-I2GFTEOV.js.map +1 -0
  13. package/dist/chunk-JBNVE2GV.js +116 -0
  14. package/dist/chunk-JBNVE2GV.js.map +1 -0
  15. package/dist/chunk-L53YIGYS.js +141 -0
  16. package/dist/chunk-L53YIGYS.js.map +1 -0
  17. package/dist/{chunk-ERZ627GR.js → chunk-ON232HJR.js} +11 -26
  18. package/dist/chunk-ON232HJR.js.map +1 -0
  19. package/dist/chunk-PN52A5AA.js +32 -0
  20. package/dist/chunk-PN52A5AA.js.map +1 -0
  21. package/dist/{chunk-7DEUGIOO.js → chunk-QSE7EWE7.js} +12 -87
  22. package/dist/chunk-QSE7EWE7.js.map +1 -0
  23. package/dist/container/index.d.ts +7 -5
  24. package/dist/container/index.js +39 -70
  25. package/dist/container/index.js.map +1 -1
  26. package/dist/csv/index.d.ts +37 -0
  27. package/dist/csv/index.js +13 -0
  28. package/dist/csv/index.js.map +1 -0
  29. package/dist/docx/index.d.ts +128 -15
  30. package/dist/docx/index.js +19 -22
  31. package/dist/docx/index.js.map +1 -1
  32. package/dist/epub/index.d.ts +66 -11
  33. package/dist/epub/index.js +11 -18
  34. package/dist/epub/index.js.map +1 -1
  35. package/dist/html/index.d.ts +315 -15
  36. package/dist/html/index.js +32 -165
  37. package/dist/html/index.js.map +1 -1
  38. package/dist/index.d.ts +10 -38
  39. package/dist/index.js +80 -37
  40. package/dist/index.js.map +1 -1
  41. package/dist/ooxml/index.d.ts +353 -14
  42. package/dist/ooxml/index.js +116 -22
  43. package/dist/ooxml/index.js.map +1 -1
  44. package/dist/pdf/index.d.ts +143 -17
  45. package/dist/pdf/index.js +16 -25
  46. package/dist/pdf/index.js.map +1 -1
  47. package/dist/pptx/index.d.ts +98 -21
  48. package/dist/pptx/index.js +18 -34
  49. package/dist/pptx/index.js.map +1 -1
  50. package/dist/xlsx/index.d.ts +29 -25
  51. package/dist/xlsx/index.js +13 -44
  52. package/dist/xlsx/index.js.map +1 -1
  53. package/package.json +7 -2
  54. package/src/__tests__/csvImport.test.ts +51 -0
  55. package/src/__tests__/exportThemeReconciliation.test.ts +87 -0
  56. package/src/__tests__/htmlImport.test.ts +57 -0
  57. package/src/__tests__/plainHtml.test.ts +31 -0
  58. package/src/__tests__/pptxExport.test.ts +138 -0
  59. package/src/__tests__/pptxImport.test.ts +70 -0
  60. package/src/__tests__/roundTripMatrix.fixtures.ts +86 -0
  61. package/src/__tests__/roundTripMatrix.helpers.ts +154 -0
  62. package/src/__tests__/roundTripMatrix.test.ts +136 -0
  63. package/src/__tests__/xlsxImport.test.ts +80 -0
  64. package/src/csv/index.ts +165 -0
  65. package/src/docx/export.ts +27 -44
  66. package/src/docx/import.ts +1 -2
  67. package/src/epub/export.ts +10 -27
  68. package/src/html/import.ts +297 -0
  69. package/src/html/index.ts +4 -0
  70. package/src/html/plainHtml.ts +66 -16
  71. package/src/index.ts +10 -3
  72. package/src/ooxml/namespaces.ts +3 -0
  73. package/src/pdf/export.ts +10 -5
  74. package/src/pdf/import.ts +1 -1
  75. package/src/pptx/export.ts +225 -85
  76. package/src/pptx/import.ts +156 -0
  77. package/src/pptx/index.ts +10 -28
  78. package/src/shared/inlineRuns.ts +99 -0
  79. package/src/shared/text.ts +41 -0
  80. package/src/xlsx/import.ts +159 -0
  81. package/src/xlsx/index.ts +11 -28
  82. package/dist/__tests__/container.test.d.ts +0 -8
  83. package/dist/__tests__/container.test.d.ts.map +0 -1
  84. package/dist/__tests__/container.test.js +0 -147
  85. package/dist/__tests__/container.test.js.map +0 -1
  86. package/dist/__tests__/docxExport.test.d.ts +0 -8
  87. package/dist/__tests__/docxExport.test.d.ts.map +0 -1
  88. package/dist/__tests__/docxExport.test.js +0 -383
  89. package/dist/__tests__/docxExport.test.js.map +0 -1
  90. package/dist/__tests__/docxImport.test.d.ts +0 -8
  91. package/dist/__tests__/docxImport.test.d.ts.map +0 -1
  92. package/dist/__tests__/docxImport.test.js +0 -309
  93. package/dist/__tests__/docxImport.test.js.map +0 -1
  94. package/dist/__tests__/epub.test.d.ts +0 -8
  95. package/dist/__tests__/epub.test.d.ts.map +0 -1
  96. package/dist/__tests__/epub.test.js +0 -472
  97. package/dist/__tests__/epub.test.js.map +0 -1
  98. package/dist/__tests__/html.test.d.ts +0 -8
  99. package/dist/__tests__/html.test.d.ts.map +0 -1
  100. package/dist/__tests__/html.test.js +0 -317
  101. package/dist/__tests__/html.test.js.map +0 -1
  102. package/dist/__tests__/ooxml.test.d.ts +0 -5
  103. package/dist/__tests__/ooxml.test.d.ts.map +0 -1
  104. package/dist/__tests__/ooxml.test.js +0 -152
  105. package/dist/__tests__/ooxml.test.js.map +0 -1
  106. package/dist/__tests__/pdfExport.test.d.ts +0 -8
  107. package/dist/__tests__/pdfExport.test.d.ts.map +0 -1
  108. package/dist/__tests__/pdfExport.test.js +0 -275
  109. package/dist/__tests__/pdfExport.test.js.map +0 -1
  110. package/dist/__tests__/pdfImport.test.d.ts +0 -11
  111. package/dist/__tests__/pdfImport.test.d.ts.map +0 -1
  112. package/dist/__tests__/pdfImport.test.js +0 -254
  113. package/dist/__tests__/pdfImport.test.js.map +0 -1
  114. package/dist/__tests__/plainHtml.test.d.ts +0 -5
  115. package/dist/__tests__/plainHtml.test.d.ts.map +0 -1
  116. package/dist/__tests__/plainHtml.test.js +0 -327
  117. package/dist/__tests__/plainHtml.test.js.map +0 -1
  118. package/dist/__tests__/plainHtmlBundle.test.d.ts +0 -11
  119. package/dist/__tests__/plainHtmlBundle.test.d.ts.map +0 -1
  120. package/dist/__tests__/plainHtmlBundle.test.js +0 -210
  121. package/dist/__tests__/plainHtmlBundle.test.js.map +0 -1
  122. package/dist/__tests__/roundTrip.test.d.ts +0 -7
  123. package/dist/__tests__/roundTrip.test.d.ts.map +0 -1
  124. package/dist/__tests__/roundTrip.test.js +0 -173
  125. package/dist/__tests__/roundTrip.test.js.map +0 -1
  126. package/dist/chunk-33YRFXZZ.js.map +0 -1
  127. package/dist/chunk-67KIJHV2.js +0 -21
  128. package/dist/chunk-67KIJHV2.js.map +0 -1
  129. package/dist/chunk-7DEUGIOO.js.map +0 -1
  130. package/dist/chunk-ERZ627GR.js.map +0 -1
  131. package/dist/chunk-S3Y7H2BK.js.map +0 -1
  132. package/dist/chunk-UDS45KUJ.js.map +0 -1
  133. package/dist/chunk-VN2KEOYB.js.map +0 -1
  134. package/dist/chunk-YN5HFCEW.js +0 -120
  135. package/dist/chunk-YN5HFCEW.js.map +0 -1
  136. package/dist/container/index.d.ts.map +0 -1
  137. package/dist/docx/export.d.ts +0 -69
  138. package/dist/docx/export.d.ts.map +0 -1
  139. package/dist/docx/export.js +0 -985
  140. package/dist/docx/export.js.map +0 -1
  141. package/dist/docx/import.d.ts +0 -65
  142. package/dist/docx/import.d.ts.map +0 -1
  143. package/dist/docx/import.js +0 -779
  144. package/dist/docx/import.js.map +0 -1
  145. package/dist/docx/index.d.ts.map +0 -1
  146. package/dist/docx/styles.d.ts +0 -68
  147. package/dist/docx/styles.d.ts.map +0 -1
  148. package/dist/docx/styles.js +0 -125
  149. package/dist/docx/styles.js.map +0 -1
  150. package/dist/epub/export.d.ts +0 -72
  151. package/dist/epub/export.d.ts.map +0 -1
  152. package/dist/epub/export.js +0 -698
  153. package/dist/epub/export.js.map +0 -1
  154. package/dist/epub/index.d.ts.map +0 -1
  155. package/dist/html/docsHtmlBundle.d.ts +0 -53
  156. package/dist/html/docsHtmlBundle.d.ts.map +0 -1
  157. package/dist/html/docsHtmlBundle.js +0 -299
  158. package/dist/html/docsHtmlBundle.js.map +0 -1
  159. package/dist/html/htmlTemplate.d.ts +0 -70
  160. package/dist/html/htmlTemplate.d.ts.map +0 -1
  161. package/dist/html/htmlTemplate.js +0 -282
  162. package/dist/html/htmlTemplate.js.map +0 -1
  163. package/dist/html/imageUtils.d.ts +0 -29
  164. package/dist/html/imageUtils.d.ts.map +0 -1
  165. package/dist/html/imageUtils.js +0 -63
  166. package/dist/html/imageUtils.js.map +0 -1
  167. package/dist/html/index.d.ts.map +0 -1
  168. package/dist/html/plainHtml.d.ts +0 -79
  169. package/dist/html/plainHtml.d.ts.map +0 -1
  170. package/dist/html/plainHtml.js +0 -614
  171. package/dist/html/plainHtml.js.map +0 -1
  172. package/dist/html/plainHtmlBundle.d.ts +0 -93
  173. package/dist/html/plainHtmlBundle.d.ts.map +0 -1
  174. package/dist/html/plainHtmlBundle.js +0 -357
  175. package/dist/html/plainHtmlBundle.js.map +0 -1
  176. package/dist/index.d.ts.map +0 -1
  177. package/dist/ooxml/index.d.ts.map +0 -1
  178. package/dist/ooxml/namespaces.d.ts +0 -77
  179. package/dist/ooxml/namespaces.d.ts.map +0 -1
  180. package/dist/ooxml/namespaces.js +0 -104
  181. package/dist/ooxml/namespaces.js.map +0 -1
  182. package/dist/ooxml/reader.d.ts +0 -52
  183. package/dist/ooxml/reader.d.ts.map +0 -1
  184. package/dist/ooxml/reader.js +0 -190
  185. package/dist/ooxml/reader.js.map +0 -1
  186. package/dist/ooxml/types.d.ts +0 -82
  187. package/dist/ooxml/types.d.ts.map +0 -1
  188. package/dist/ooxml/types.js +0 -9
  189. package/dist/ooxml/types.js.map +0 -1
  190. package/dist/ooxml/writer.d.ts +0 -71
  191. package/dist/ooxml/writer.d.ts.map +0 -1
  192. package/dist/ooxml/writer.js +0 -200
  193. package/dist/ooxml/writer.js.map +0 -1
  194. package/dist/ooxml/xmlUtils.d.ts +0 -76
  195. package/dist/ooxml/xmlUtils.d.ts.map +0 -1
  196. package/dist/ooxml/xmlUtils.js +0 -108
  197. package/dist/ooxml/xmlUtils.js.map +0 -1
  198. package/dist/pdf/export.d.ts +0 -56
  199. package/dist/pdf/export.d.ts.map +0 -1
  200. package/dist/pdf/export.js +0 -768
  201. package/dist/pdf/export.js.map +0 -1
  202. package/dist/pdf/import.d.ts +0 -94
  203. package/dist/pdf/import.d.ts.map +0 -1
  204. package/dist/pdf/import.js +0 -796
  205. package/dist/pdf/import.js.map +0 -1
  206. package/dist/pdf/index.d.ts.map +0 -1
  207. package/dist/pdf/styles.d.ts +0 -142
  208. package/dist/pdf/styles.d.ts.map +0 -1
  209. package/dist/pdf/styles.js +0 -145
  210. package/dist/pdf/styles.js.map +0 -1
  211. package/dist/pptx/export.d.ts +0 -75
  212. package/dist/pptx/export.d.ts.map +0 -1
  213. package/dist/pptx/export.js +0 -724
  214. package/dist/pptx/export.js.map +0 -1
  215. package/dist/pptx/index.d.ts.map +0 -1
  216. package/dist/pptx/styles.d.ts +0 -54
  217. package/dist/pptx/styles.d.ts.map +0 -1
  218. package/dist/pptx/styles.js +0 -73
  219. package/dist/pptx/styles.js.map +0 -1
  220. package/dist/pptx/templates.d.ts +0 -24
  221. package/dist/pptx/templates.d.ts.map +0 -1
  222. package/dist/pptx/templates.js +0 -158
  223. package/dist/pptx/templates.js.map +0 -1
  224. package/dist/xlsx/index.d.ts.map +0 -1
@@ -1,166 +1,33 @@
1
- /**
2
- * HTML Export Module — @bendyline/squisq-formats/html
3
- *
4
- * Exports squisq documents as self-contained HTML files or ZIP archives.
5
- *
6
- * Two export modes:
7
- *
8
- * 1. **Single HTML** (`docToHtml`) — Everything embedded in one file:
9
- * - SquisqPlayer IIFE bundle inlined in `<script>`
10
- * - Images base64-encoded as data URIs
11
- * - Timer-based playback (no audio — too large for inline)
12
- *
13
- * 2. **ZIP Archive** (`docToHtmlZip`) — Multi-file package:
14
- * - `index.html` referencing external `squisq-player.js`
15
- * - `squisq-player.js` — the IIFE bundle
16
- * - `images/` — extracted image files
17
- * - `audio/` — optional audio segment files (enables full playback)
18
- *
19
- * @example
20
- * ```ts
21
- * import { PLAYER_BUNDLE } from '@bendyline/squisq-react/standalone-source';
22
- * import { docToHtml, docToHtmlZip } from '@bendyline/squisq-formats/html';
23
- *
24
- * // Single HTML file
25
- * const html = docToHtml(doc, { playerScript: PLAYER_BUNDLE, images });
26
- *
27
- * // ZIP archive
28
- * const zipBlob = await docToHtmlZip(doc, { playerScript: PLAYER_BUNDLE, images, audio });
29
- * ```
30
- */
31
- import JSZip from 'jszip';
32
- import { generateInlineHtml, generateExternalHtml, } from './htmlTemplate.js';
33
- import { extractFilename } from './imageUtils.js';
34
- /**
35
- * Normalize a doc-referenced path for use as a zip entry name. Strips
36
- * leading slashes and rejects any path that tries to escape the archive
37
- * root via `..` segments (a malicious or malformed doc shouldn't be able
38
- * to write outside the zip when extracted). Backslashes are folded to
39
- * forward slashes so Windows-authored paths still produce a consistent
40
- * tree across extractors.
41
- */
42
- function sanitizeZipPath(path) {
43
- const normalized = path.replace(/\\/g, '/').replace(/^\/+/, '');
44
- if (!normalized)
45
- return null;
46
- if (normalized.split('/').some((seg) => seg === '..'))
47
- return null;
48
- return normalized;
49
- }
50
- // ── Single HTML Export ─────────────────────────────────────────────
51
- /**
52
- * Export a Doc as a single, self-contained HTML file.
53
- *
54
- * The player JS is embedded inline, images are base64-encoded as data URIs,
55
- * and playback uses a timer (no audio) for compact file size.
56
- *
57
- * @param doc - The Doc to export
58
- * @param options - Export options (must include `playerScript`)
59
- * @returns Complete HTML document as a string
60
- *
61
- * @example
62
- * ```ts
63
- * const html = docToHtml(myDoc, {
64
- * playerScript: PLAYER_BUNDLE,
65
- * images: imageMap,
66
- * title: 'My Document',
67
- * mode: 'slideshow',
68
- * });
69
- * const blob = new Blob([html], { type: 'text/html' });
70
- * ```
71
- */
72
- export function docToHtml(doc, options) {
73
- return generateInlineHtml(doc, options);
74
- }
75
- // ── ZIP Archive Export ─────────────────────────────────────────────
76
- /**
77
- * Export a Doc as a ZIP archive containing HTML, JS, images, and optionally audio.
78
- *
79
- * The archive structure:
80
- * ```
81
- * document.zip
82
- * ├── index.html # HTML page referencing squisq-player.js
83
- * ├── squisq-player.js # Standalone IIFE bundle
84
- * ├── images/ # Extracted image files
85
- * │ ├── hero.jpg
86
- * │ └── ...
87
- * └── audio/ # Optional audio segment files
88
- * ├── intro.mp3
89
- * └── ...
90
- * ```
91
- *
92
- * @param doc - The Doc to export
93
- * @param options - Export options (must include `playerScript`)
94
- * @returns A Promise resolving to a ZIP Blob
95
- *
96
- * @example
97
- * ```ts
98
- * const blob = await docToHtmlZip(myDoc, {
99
- * playerScript: PLAYER_BUNDLE,
100
- * images: imageMap,
101
- * audio: audioMap,
102
- * });
103
- * // Trigger browser download
104
- * const url = URL.createObjectURL(blob);
105
- * ```
106
- */
107
- export async function docToHtmlZip(doc, options) {
108
- const { playerScript, images, audio, mode = 'slideshow', title, autoPlay } = options;
109
- const zip = new JSZip();
110
- // 1. Add player JS as a separate file
111
- zip.file('squisq-player.js', playerScript);
112
- // 2. Add images preserving their original relative paths.
113
- //
114
- // We used to flatten everything into `images/<basename>`, but that
115
- // requires the player to rewrite every `<img src>` at render time using
116
- // the path map — and the static (non-slideshow) renderer doesn't do
117
- // that, so its emitted `<img>` tags 404'd against the renamed assets.
118
- // Keeping the original layout means direct `src="folder/file.png"`
119
- // references just work, and the exported zip mirrors how the source
120
- // folder is organized (e.g. pandoc-style `notes_files/` sidecars).
121
- const imagePathMap = {};
122
- if (images) {
123
- for (const [originalPath, buffer] of images.entries()) {
124
- const zipPath = sanitizeZipPath(originalPath);
125
- if (!zipPath)
126
- continue;
127
- zip.file(zipPath, buffer);
128
- imagePathMap[originalPath] = zipPath;
129
- }
130
- }
131
- // 3. Add audio to audio/ folder and build path mapping
132
- const audioPathMap = {};
133
- if (audio) {
134
- for (const [segmentKey, buffer] of audio.entries()) {
135
- const filename = extractFilename(segmentKey);
136
- // Ensure .mp3 extension
137
- const finalName = filename.includes('.') ? filename : `${filename}.mp3`;
138
- const zipPath = `audio/${finalName}`;
139
- zip.file(zipPath, buffer);
140
- audioPathMap[segmentKey] = zipPath;
141
- }
142
- }
143
- // 4. Generate HTML that references external files
144
- const html = generateExternalHtml(doc, {
145
- playerScriptPath: 'squisq-player.js',
146
- imagePathMap: Object.keys(imagePathMap).length > 0 ? imagePathMap : undefined,
147
- audioPathMap: Object.keys(audioPathMap).length > 0 ? audioPathMap : undefined,
148
- mode,
149
- title,
150
- autoPlay,
151
- });
152
- zip.file('index.html', html);
153
- // 5. Generate ZIP blob
154
- return zip.generateAsync({
155
- type: 'blob',
156
- compression: 'DEFLATE',
157
- compressionOptions: { level: 6 },
158
- });
159
- }
160
- // ── Re-exports ─────────────────────────────────────────────────────
161
- export { collectImagePaths } from './htmlTemplate.js';
162
- export { inferMimeType, arrayBufferToBase64DataUrl, extractFilename } from './imageUtils.js';
163
- export { markdownDocToPlainHtml } from './plainHtml.js';
164
- export { markdownDocsToPlainHtmlBundle, collectLinkRefs } from './plainHtmlBundle.js';
165
- export { markdownDocsToHtmlBundle } from './docsHtmlBundle.js';
1
+ import {
2
+ collectImagePaths,
3
+ collectLinkRefs,
4
+ docToHtml,
5
+ docToHtmlZip,
6
+ htmlToMarkdown,
7
+ htmlToMarkdownDoc,
8
+ htmlToMarkdownDocSync,
9
+ markdownDocToPlainHtml,
10
+ markdownDocsToHtmlBundle,
11
+ markdownDocsToPlainHtmlBundle
12
+ } from "../chunk-CRTC6DEX.js";
13
+ import {
14
+ arrayBufferToBase64DataUrl,
15
+ extractFilename,
16
+ inferMimeType
17
+ } from "../chunk-A3FHLTY5.js";
18
+ export {
19
+ arrayBufferToBase64DataUrl,
20
+ collectImagePaths,
21
+ collectLinkRefs,
22
+ docToHtml,
23
+ docToHtmlZip,
24
+ extractFilename,
25
+ htmlToMarkdown,
26
+ htmlToMarkdownDoc,
27
+ htmlToMarkdownDocSync,
28
+ inferMimeType,
29
+ markdownDocToPlainHtml,
30
+ markdownDocsToHtmlBundle,
31
+ markdownDocsToPlainHtmlBundle
32
+ };
166
33
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/html/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"sources":[],"sourcesContent":[],"mappings":"","names":[]}
package/dist/index.d.ts CHANGED
@@ -1,38 +1,10 @@
1
- /**
2
- * @bendyline/squisq-formats
3
- *
4
- * Format converters for squisq documents. Converts between squisq's
5
- * MarkdownDocument / Doc and various file formats via Office Open XML.
6
- *
7
- * Supported formats:
8
- * - **DOCX** — Microsoft Word (import + export) ✅
9
- * - **PDF** — Portable Document Format (import + export) ✅
10
- * - **PPTX** — Microsoft PowerPoint (export ✅, import planned)
11
- * - **XLSX** — Microsoft Excel (planned)
12
- *
13
- * All converters run in the browser — no server or native binaries required.
14
- * The shared `ooxml/` subpath export provides reusable OOXML infrastructure.
15
- *
16
- * @example
17
- * ```ts
18
- * // Import from root
19
- * import { markdownDocToDocx, docxToMarkdownDoc } from '@bendyline/squisq-formats';
20
- *
21
- * // Or import from subpath
22
- * import { markdownDocToDocx } from '@bendyline/squisq-formats/docx';
23
- * import { createPackage } from '@bendyline/squisq-formats/ooxml';
24
- * ```
25
- */
26
- export { markdownDocToDocx, docToDocx, docxToMarkdownDoc, docxToDoc } from './docx/index.js';
27
- export type { DocxExportOptions, DocxImportOptions } from './docx/index.js';
28
- export { markdownDocToPptx, docToPptx, pptxToMarkdownDoc, pptxToDoc } from './pptx/index.js';
29
- export type { PptxExportOptions, PptxImportOptions } from './pptx/index.js';
30
- export { markdownDocToXlsx, docToXlsx, xlsxToMarkdownDoc, xlsxToDoc } from './xlsx/index.js';
31
- export type { XlsxExportOptions, XlsxImportOptions } from './xlsx/index.js';
32
- export { markdownDocToPdf, docToPdf, pdfToMarkdownDoc, pdfToDoc, configurePdfWorker, } from './pdf/index.js';
33
- export type { PdfExportOptions, PdfImportOptions } from './pdf/index.js';
34
- export { docToHtml, docToHtmlZip, collectImagePaths } from './html/index.js';
35
- export type { HtmlExportOptions, HtmlZipExportOptions } from './html/index.js';
36
- export { markdownDocToEpub, docToEpub } from './epub/index.js';
37
- export type { EpubExportOptions } from './epub/index.js';
38
- //# sourceMappingURL=index.d.ts.map
1
+ export { DocxExportOptions, DocxImportOptions, docToDocx, docxToDoc, docxToMarkdownDoc, markdownDocToDocx } from './docx/index.js';
2
+ export { PptxExportOptions, PptxImportOptions, docToPptx, markdownDocToPptx, pptxToDoc, pptxToMarkdownDoc } from './pptx/index.js';
3
+ export { XlsxExportOptions, XlsxImportOptions, docToXlsx, markdownDocToXlsx, xlsxToDoc, xlsxToMarkdownDoc } from './xlsx/index.js';
4
+ export { CsvExportOptions, CsvImportOptions, csvToDoc, csvToMarkdownDoc, markdownDocToCsv, parseCsv } from './csv/index.js';
5
+ export { PdfExportOptions, PdfImportOptions, configurePdfWorker, docToPdf, markdownDocToPdf, pdfToDoc, pdfToMarkdownDoc } from './pdf/index.js';
6
+ export { HtmlExportOptions, HtmlImportOptions, HtmlZipExportOptions, collectImagePaths, docToHtml, docToHtmlZip, htmlToMarkdown, htmlToMarkdownDoc, htmlToMarkdownDocSync } from './html/index.js';
7
+ export { EpubExportOptions, docToEpub, markdownDocToEpub } from './epub/index.js';
8
+ import '@bendyline/squisq/schemas';
9
+ import '@bendyline/squisq/markdown';
10
+ import '@bendyline/squisq/storage';
package/dist/index.js CHANGED
@@ -1,38 +1,81 @@
1
- /**
2
- * @bendyline/squisq-formats
3
- *
4
- * Format converters for squisq documents. Converts between squisq's
5
- * MarkdownDocument / Doc and various file formats via Office Open XML.
6
- *
7
- * Supported formats:
8
- * - **DOCX** — Microsoft Word (import + export) ✅
9
- * - **PDF** — Portable Document Format (import + export) ✅
10
- * - **PPTX** — Microsoft PowerPoint (export ✅, import planned)
11
- * - **XLSX** — Microsoft Excel (planned)
12
- *
13
- * All converters run in the browser — no server or native binaries required.
14
- * The shared `ooxml/` subpath export provides reusable OOXML infrastructure.
15
- *
16
- * @example
17
- * ```ts
18
- * // Import from root
19
- * import { markdownDocToDocx, docxToMarkdownDoc } from '@bendyline/squisq-formats';
20
- *
21
- * // Or import from subpath
22
- * import { markdownDocToDocx } from '@bendyline/squisq-formats/docx';
23
- * import { createPackage } from '@bendyline/squisq-formats/ooxml';
24
- * ```
25
- */
26
- // DOCX (fully implemented)
27
- export { markdownDocToDocx, docToDocx, docxToMarkdownDoc, docxToDoc } from './docx/index.js';
28
- // PPTX (export implemented, import stub)
29
- export { markdownDocToPptx, docToPptx, pptxToMarkdownDoc, pptxToDoc } from './pptx/index.js';
30
- // XLSX (stub)
31
- export { markdownDocToXlsx, docToXlsx, xlsxToMarkdownDoc, xlsxToDoc } from './xlsx/index.js';
32
- // PDF (fully implemented)
33
- export { markdownDocToPdf, docToPdf, pdfToMarkdownDoc, pdfToDoc, configurePdfWorker, } from './pdf/index.js';
34
- // HTML (fully implemented)
35
- export { docToHtml, docToHtmlZip, collectImagePaths } from './html/index.js';
36
- // EPUB (export)
37
- export { markdownDocToEpub, docToEpub } from './epub/index.js';
1
+ import {
2
+ docToEpub,
3
+ markdownDocToEpub
4
+ } from "./chunk-ON232HJR.js";
5
+ import {
6
+ docToDocx,
7
+ docxToDoc,
8
+ docxToMarkdownDoc,
9
+ markdownDocToDocx
10
+ } from "./chunk-BJQIJ4S4.js";
11
+ import {
12
+ docToPptx,
13
+ markdownDocToPptx,
14
+ pptxToDoc,
15
+ pptxToMarkdownDoc
16
+ } from "./chunk-I2GFTEOV.js";
17
+ import "./chunk-6M7Z25LA.js";
18
+ import "./chunk-PN52A5AA.js";
19
+ import {
20
+ docToXlsx,
21
+ markdownDocToXlsx,
22
+ xlsxToDoc,
23
+ xlsxToMarkdownDoc
24
+ } from "./chunk-L53YIGYS.js";
25
+ import {
26
+ csvToDoc,
27
+ csvToMarkdownDoc,
28
+ markdownDocToCsv,
29
+ parseCsv
30
+ } from "./chunk-JBNVE2GV.js";
31
+ import "./chunk-QSE7EWE7.js";
32
+ import "./chunk-U4MRIFKL.js";
33
+ import "./chunk-FMOIGA5T.js";
34
+ import {
35
+ configurePdfWorker,
36
+ docToPdf,
37
+ markdownDocToPdf,
38
+ pdfToDoc,
39
+ pdfToMarkdownDoc
40
+ } from "./chunk-APSIAEXL.js";
41
+ import {
42
+ collectImagePaths,
43
+ docToHtml,
44
+ docToHtmlZip,
45
+ htmlToMarkdown,
46
+ htmlToMarkdownDoc,
47
+ htmlToMarkdownDocSync
48
+ } from "./chunk-CRTC6DEX.js";
49
+ import "./chunk-A3FHLTY5.js";
50
+ export {
51
+ collectImagePaths,
52
+ configurePdfWorker,
53
+ csvToDoc,
54
+ csvToMarkdownDoc,
55
+ docToDocx,
56
+ docToEpub,
57
+ docToHtml,
58
+ docToHtmlZip,
59
+ docToPdf,
60
+ docToPptx,
61
+ docToXlsx,
62
+ docxToDoc,
63
+ docxToMarkdownDoc,
64
+ htmlToMarkdown,
65
+ htmlToMarkdownDoc,
66
+ htmlToMarkdownDocSync,
67
+ markdownDocToCsv,
68
+ markdownDocToDocx,
69
+ markdownDocToEpub,
70
+ markdownDocToPdf,
71
+ markdownDocToPptx,
72
+ markdownDocToXlsx,
73
+ parseCsv,
74
+ pdfToDoc,
75
+ pdfToMarkdownDoc,
76
+ pptxToDoc,
77
+ pptxToMarkdownDoc,
78
+ xlsxToDoc,
79
+ xlsxToMarkdownDoc
80
+ };
38
81
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AAEH,2BAA2B;AAC3B,OAAO,EAAE,iBAAiB,EAAE,SAAS,EAAE,iBAAiB,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAG7F,yCAAyC;AACzC,OAAO,EAAE,iBAAiB,EAAE,SAAS,EAAE,iBAAiB,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAG7F,cAAc;AACd,OAAO,EAAE,iBAAiB,EAAE,SAAS,EAAE,iBAAiB,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAG7F,0BAA0B;AAC1B,OAAO,EACL,gBAAgB,EAChB,QAAQ,EACR,gBAAgB,EAChB,QAAQ,EACR,kBAAkB,GACnB,MAAM,gBAAgB,CAAC;AAGxB,2BAA2B;AAC3B,OAAO,EAAE,SAAS,EAAE,YAAY,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;AAG7E,gBAAgB;AAChB,OAAO,EAAE,iBAAiB,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC"}
1
+ {"version":3,"sources":[],"sourcesContent":[],"mappings":"","names":[]}