@nac3/forge-cli 1.3.5 → 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.
@@ -3,14 +3,29 @@
3
3
  *
4
4
  * Read: uses `mammoth` (already in deps for the document-reader
5
5
  * pipeline) to extract text + a heading outline from a .docx file.
6
- * Write: builds a minimal .docx file by hand (Office Open XML
7
- * minimal subset) -- no extra deps. Covers headings + paragraphs.
8
6
  *
9
- * This sticks to plain content. Tables / images / styles are out of
10
- * scope for the first cut. Adopters that need rich docs can drop
11
- * to lower-level docx libs themselves.
7
+ * Write: builds a real .docx (Office Open XML) by hand -- no extra
8
+ * deps. Supports a rich-enough subset for attractive business docs:
12
9
  *
13
- * ASCII-only source. The .docx output IS binary (ZIP).
10
+ * - title / heading (levels 1..6) -- now backed by a real
11
+ * word/styles.xml so Word renders them styled (previously the
12
+ * paragraphs referenced "Heading1" etc. that were NEVER defined,
13
+ * so everything collapsed to plain text -- the F106 bug).
14
+ * - paragraph, with optional alignment (left/center/right).
15
+ * - bullet / numbered list items (real w:numPr backed by
16
+ * word/numbering.xml, not faked with a leading "- ").
17
+ * - tables (rows of cells, optional styled header row) -- ideal
18
+ * for price lists / schedules instead of a run-on paragraph.
19
+ * - page breaks.
20
+ * - inline bold/italic/underline via an explicit `runs` array, or
21
+ * lightweight `**bold**` markers inside `text`.
22
+ *
23
+ * Backward compatible: the original {kind:'heading'|'paragraph', text}
24
+ * sections still work unchanged.
25
+ *
26
+ * ASCII-only source. The .docx output IS binary (ZIP). Non-ASCII
27
+ * glyphs (e.g. the bullet) are emitted as XML numeric entities so the
28
+ * source stays ASCII.
14
29
  */
15
30
  export interface WordReadRequest {
16
31
  /** Absolute or project-relative path. */
@@ -34,12 +49,35 @@ export interface WordReadErr {
34
49
  detail?: string;
35
50
  }
36
51
  export type WordReadResult = WordReadOk | WordReadErr;
52
+ /** A styled span of text inside a paragraph or table cell. */
53
+ export interface WordRun {
54
+ text: string;
55
+ bold?: boolean;
56
+ italic?: boolean;
57
+ underline?: boolean;
58
+ }
59
+ /** A table cell: plain text (inline `**bold**` honoured), or explicit runs. */
60
+ export interface WordTableCell {
61
+ text?: string;
62
+ runs?: WordRun[];
63
+ bold?: boolean;
64
+ }
65
+ export type WordSectionKind = 'title' | 'heading' | 'paragraph' | 'bullet' | 'numbered' | 'table' | 'pagebreak';
37
66
  export interface WordSection {
38
- /** 'heading' or 'paragraph'. */
39
- kind: 'heading' | 'paragraph';
40
- /** 1..6 for headings; ignored for paragraphs. */
67
+ kind: WordSectionKind;
68
+ /** 1..6 for headings; ignored otherwise. */
41
69
  level?: 1 | 2 | 3 | 4 | 5 | 6;
42
- text: string;
70
+ /** Text content for title/heading/paragraph/bullet/numbered. Supports
71
+ * lightweight `**bold**` markers when `runs` is not supplied. */
72
+ text?: string;
73
+ /** Explicit rich runs; overrides `text` when present. */
74
+ runs?: WordRun[];
75
+ /** Paragraph alignment. Default left. */
76
+ align?: 'left' | 'center' | 'right';
77
+ /** Rows for kind='table'. Each cell is a string or a {text|runs|bold} cell. */
78
+ rows?: Array<Array<string | WordTableCell>>;
79
+ /** Style the first table row as a shaded, bold header. Default true. */
80
+ header_row?: boolean;
43
81
  }
44
82
  export interface WordWriteRequest {
45
83
  /** Absolute or project-relative path. Must end in .docx. */
@@ -1 +1 @@
1
- {"version":3,"file":"word.d.ts","sourceRoot":"","sources":["../../src/office/word.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAeH,MAAM,WAAW,eAAe;IAC9B,yCAAyC;IACzC,IAAI,EAAE,MAAM,CAAC;IACb,+DAA+D;IAC/D,eAAe,CAAC,EAAE,OAAO,CAAC;CAC3B;AAED,MAAM,WAAW,UAAU;IACzB,EAAE,EAAE,IAAI,CAAC;IACT,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,CAAC,EAAE,KAAK,CAAC;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IACjD,QAAQ,EAAE,MAAM,EAAE,CAAC;IACnB,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,WAAW;IAC1B,EAAE,EAAE,KAAK,CAAC;IACV,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,MAAM,cAAc,GAAG,UAAU,GAAG,WAAW,CAAC;AAEtD,MAAM,WAAW,WAAW;IAC1B,gCAAgC;IAChC,IAAI,EAAE,SAAS,GAAG,WAAW,CAAC;IAC9B,iDAAiD;IACjD,KAAK,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IAC9B,IAAI,EAAE,MAAM,CAAC;CACd;AAED,MAAM,WAAW,gBAAgB;IAC/B,4DAA4D;IAC5D,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,WAAW,EAAE,CAAC;IACxB,SAAS,CAAC,EAAE,OAAO,CAAC;CACrB;AAED,MAAM,WAAW,WAAW;IAC1B,EAAE,EAAE,IAAI,CAAC;IACT,IAAI,EAAE,MAAM,CAAC;IACb,aAAa,EAAE,MAAM,CAAC;IACtB,aAAa,EAAE,MAAM,CAAC;CACvB;AAED,MAAM,WAAW,YAAY;IAC3B,EAAE,EAAE,KAAK,CAAC;IACV,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,MAAM,eAAe,GAAG,WAAW,GAAG,YAAY,CAAC;AAMzD,wBAAsB,QAAQ,CAAC,GAAG,EAAE,eAAe,EAAE,WAAW,SAAgB,GAAG,OAAO,CAAC,cAAc,CAAC,CAwCzG;AA4ID,wBAAsB,SAAS,CAAC,GAAG,EAAE,gBAAgB,EAAE,WAAW,SAAgB,GAAG,OAAO,CAAC,eAAe,CAAC,CA8C5G"}
1
+ {"version":3,"file":"word.d.ts","sourceRoot":"","sources":["../../src/office/word.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AAiBH,MAAM,WAAW,eAAe;IAC9B,yCAAyC;IACzC,IAAI,EAAE,MAAM,CAAC;IACb,+DAA+D;IAC/D,eAAe,CAAC,EAAE,OAAO,CAAC;CAC3B;AAED,MAAM,WAAW,UAAU;IACzB,EAAE,EAAE,IAAI,CAAC;IACT,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,CAAC,EAAE,KAAK,CAAC;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IACjD,QAAQ,EAAE,MAAM,EAAE,CAAC;IACnB,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,WAAW;IAC1B,EAAE,EAAE,KAAK,CAAC;IACV,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,MAAM,cAAc,GAAG,UAAU,GAAG,WAAW,CAAC;AAEtD,8DAA8D;AAC9D,MAAM,WAAW,OAAO;IACtB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,SAAS,CAAC,EAAE,OAAO,CAAC;CACrB;AAED,+EAA+E;AAC/E,MAAM,WAAW,aAAa;IAC5B,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,OAAO,EAAE,CAAC;IACjB,IAAI,CAAC,EAAE,OAAO,CAAC;CAChB;AAED,MAAM,MAAM,eAAe,GACvB,OAAO,GACP,SAAS,GACT,WAAW,GACX,QAAQ,GACR,UAAU,GACV,OAAO,GACP,WAAW,CAAC;AAEhB,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,eAAe,CAAC;IACtB,4CAA4C;IAC5C,KAAK,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IAC9B;sEACkE;IAClE,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,yDAAyD;IACzD,IAAI,CAAC,EAAE,OAAO,EAAE,CAAC;IACjB,yCAAyC;IACzC,KAAK,CAAC,EAAE,MAAM,GAAG,QAAQ,GAAG,OAAO,CAAC;IACpC,+EAA+E;IAC/E,IAAI,CAAC,EAAE,KAAK,CAAC,KAAK,CAAC,MAAM,GAAG,aAAa,CAAC,CAAC,CAAC;IAC5C,wEAAwE;IACxE,UAAU,CAAC,EAAE,OAAO,CAAC;CACtB;AAED,MAAM,WAAW,gBAAgB;IAC/B,4DAA4D;IAC5D,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,WAAW,EAAE,CAAC;IACxB,SAAS,CAAC,EAAE,OAAO,CAAC;CACrB;AAED,MAAM,WAAW,WAAW;IAC1B,EAAE,EAAE,IAAI,CAAC;IACT,IAAI,EAAE,MAAM,CAAC;IACb,aAAa,EAAE,MAAM,CAAC;IACtB,aAAa,EAAE,MAAM,CAAC;CACvB;AAED,MAAM,WAAW,YAAY;IAC3B,EAAE,EAAE,KAAK,CAAC;IACV,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,MAAM,eAAe,GAAG,WAAW,GAAG,YAAY,CAAC;AAMzD,wBAAsB,QAAQ,CAAC,GAAG,EAAE,eAAe,EAAE,WAAW,SAAgB,GAAG,OAAO,CAAC,cAAc,CAAC,CAwCzG;AAuYD,wBAAsB,SAAS,CAAC,GAAG,EAAE,gBAAgB,EAAE,WAAW,SAAgB,GAAG,OAAO,CAAC,eAAe,CAAC,CAuC5G"}
@@ -3,14 +3,29 @@
3
3
  *
4
4
  * Read: uses `mammoth` (already in deps for the document-reader
5
5
  * pipeline) to extract text + a heading outline from a .docx file.
6
- * Write: builds a minimal .docx file by hand (Office Open XML
7
- * minimal subset) -- no extra deps. Covers headings + paragraphs.
8
6
  *
9
- * This sticks to plain content. Tables / images / styles are out of
10
- * scope for the first cut. Adopters that need rich docs can drop
11
- * to lower-level docx libs themselves.
7
+ * Write: builds a real .docx (Office Open XML) by hand -- no extra
8
+ * deps. Supports a rich-enough subset for attractive business docs:
12
9
  *
13
- * ASCII-only source. The .docx output IS binary (ZIP).
10
+ * - title / heading (levels 1..6) -- now backed by a real
11
+ * word/styles.xml so Word renders them styled (previously the
12
+ * paragraphs referenced "Heading1" etc. that were NEVER defined,
13
+ * so everything collapsed to plain text -- the F106 bug).
14
+ * - paragraph, with optional alignment (left/center/right).
15
+ * - bullet / numbered list items (real w:numPr backed by
16
+ * word/numbering.xml, not faked with a leading "- ").
17
+ * - tables (rows of cells, optional styled header row) -- ideal
18
+ * for price lists / schedules instead of a run-on paragraph.
19
+ * - page breaks.
20
+ * - inline bold/italic/underline via an explicit `runs` array, or
21
+ * lightweight `**bold**` markers inside `text`.
22
+ *
23
+ * Backward compatible: the original {kind:'heading'|'paragraph', text}
24
+ * sections still work unchanged.
25
+ *
26
+ * ASCII-only source. The .docx output IS binary (ZIP). Non-ASCII
27
+ * glyphs (e.g. the bullet) are emitted as XML numeric entities so the
28
+ * source stays ASCII.
14
29
  */
15
30
  import { readFile, writeFile, stat } from 'node:fs/promises';
16
31
  import path from 'node:path';
@@ -20,6 +35,8 @@ import mammoth from 'mammoth';
20
35
  const MAX_BYTES_READ = 16 * 1024 * 1024; /* 16 MB */
21
36
  const MAX_SECTIONS_WRITE = 50_000;
22
37
  const MAX_SECTION_TEXT = 100_000;
38
+ const MAX_TABLE_ROWS = 5_000;
39
+ const MAX_TABLE_COLS = 64;
23
40
  function resolveSafePath(p, projectRoot) {
24
41
  return path.isAbsolute(p) ? p : path.join(projectRoot, p);
25
42
  }
@@ -71,10 +88,13 @@ export async function readWord(req, projectRoot = process.cwd()) {
71
88
  }
72
89
  /* ===========================================================
73
90
  * Minimal .docx builder
74
- * .docx is a ZIP archive with a specific XML layout. We build
75
- * the minimum viable file with [Content_Types].xml + _rels +
76
- * word/document.xml. No styles xml -- Word renders our
77
- * paragraphs / headings with built-in styles.
91
+ * .docx is a ZIP archive with a specific XML layout. We build:
92
+ * [Content_Types].xml
93
+ * _rels/.rels
94
+ * word/document.xml
95
+ * word/styles.xml <- defines Title / Heading1..6 / ...
96
+ * word/numbering.xml <- bullet + decimal list definitions
97
+ * word/_rels/document.xml.rels <- links document -> styles + numbering
78
98
  * =========================================================== */
79
99
  const CRC32_TABLE = (() => {
80
100
  const t = new Uint32Array(256);
@@ -162,35 +182,279 @@ function xmlEscape(s) {
162
182
  .replace(/"/g, '&quot;')
163
183
  .replace(/'/g, '&apos;');
164
184
  }
185
+ /* ----- run / paragraph / table builders -------------------- */
186
+ /** Split text into runs honouring `**bold**` markers. Only the
187
+ * double-asterisk form is parsed (single `*` is left literal to avoid
188
+ * mangling prose like "5 * 3"). Unmatched markers stay literal. */
189
+ function parseInlineRuns(text) {
190
+ const runs = [];
191
+ const re = /\*\*([^*]+)\*\*/g;
192
+ let last = 0;
193
+ let m;
194
+ while ((m = re.exec(text)) !== null) {
195
+ if (m.index > last)
196
+ runs.push({ text: text.slice(last, m.index) });
197
+ runs.push({ text: m[1] || '', bold: true });
198
+ last = m.index + m[0].length;
199
+ }
200
+ if (last < text.length)
201
+ runs.push({ text: text.slice(last) });
202
+ if (runs.length === 0)
203
+ runs.push({ text: '' });
204
+ return runs;
205
+ }
206
+ /** Resolve a section's content into runs: explicit `runs` win; otherwise
207
+ * parse inline markers from `text`. */
208
+ function sectionRuns(sec) {
209
+ if (Array.isArray(sec.runs) && sec.runs.length) {
210
+ return sec.runs.map((r) => ({
211
+ text: typeof r.text === 'string' ? r.text : '',
212
+ bold: !!r.bold,
213
+ italic: !!r.italic,
214
+ underline: !!r.underline,
215
+ }));
216
+ }
217
+ return parseInlineRuns(typeof sec.text === 'string' ? sec.text : '');
218
+ }
219
+ function buildRunXml(run) {
220
+ const rpr = [];
221
+ if (run.bold)
222
+ rpr.push('<w:b/>');
223
+ if (run.italic)
224
+ rpr.push('<w:i/>');
225
+ if (run.underline)
226
+ rpr.push('<w:u w:val="single"/>');
227
+ const rprXml = rpr.length ? '<w:rPr>' + rpr.join('') + '</w:rPr>' : '';
228
+ return '<w:r>' + rprXml + '<w:t xml:space="preserve">' + xmlEscape(run.text) + '</w:t></w:r>';
229
+ }
230
+ function alignVal(a) {
231
+ if (a === 'center')
232
+ return 'center';
233
+ if (a === 'right')
234
+ return 'right';
235
+ return null;
236
+ }
237
+ function buildParagraph(runs, opts = {}) {
238
+ const pPr = [];
239
+ if (opts.pStyle)
240
+ pPr.push('<w:pStyle w:val="' + opts.pStyle + '"/>');
241
+ if (typeof opts.numId === 'number') {
242
+ pPr.push('<w:numPr><w:ilvl w:val="' + (opts.ilvl ?? 0) + '"/><w:numId w:val="' + opts.numId + '"/></w:numPr>');
243
+ }
244
+ const jc = alignVal(opts.align);
245
+ if (jc)
246
+ pPr.push('<w:jc w:val="' + jc + '"/>');
247
+ const pPrXml = pPr.length ? '<w:pPr>' + pPr.join('') + '</w:pPr>' : '';
248
+ const runsXml = (runs.length ? runs : [{ text: '' }]).map(buildRunXml).join('');
249
+ return '<w:p>' + pPrXml + runsXml + '</w:p>';
250
+ }
251
+ function cellRuns(cell) {
252
+ if (typeof cell === 'string')
253
+ return { runs: parseInlineRuns(cell), bold: false };
254
+ const bold = !!cell.bold;
255
+ if (Array.isArray(cell.runs) && cell.runs.length) {
256
+ return { runs: cell.runs.map((r) => ({ ...r })), bold };
257
+ }
258
+ return { runs: parseInlineRuns(typeof cell.text === 'string' ? cell.text : ''), bold };
259
+ }
260
+ function buildTable(rows, headerRow) {
261
+ const cols = rows.reduce((mx, r) => Math.max(mx, r.length), 0) || 1;
262
+ /* ~9360 twips of usable width on a margined A4/Letter page. */
263
+ const colW = Math.floor(9360 / cols);
264
+ const grid = '<w:tblGrid>' + Array.from({ length: cols }, () => '<w:gridCol w:w="' + colW + '"/>').join('') + '</w:tblGrid>';
265
+ const tblPr = '<w:tblPr>'
266
+ + '<w:tblStyle w:val="TableGrid"/>'
267
+ + '<w:tblW w:w="5000" w:type="pct"/>'
268
+ + '<w:tblBorders>'
269
+ + '<w:top w:val="single" w:sz="4" w:space="0" w:color="9AA6B2"/>'
270
+ + '<w:left w:val="single" w:sz="4" w:space="0" w:color="9AA6B2"/>'
271
+ + '<w:bottom w:val="single" w:sz="4" w:space="0" w:color="9AA6B2"/>'
272
+ + '<w:right w:val="single" w:sz="4" w:space="0" w:color="9AA6B2"/>'
273
+ + '<w:insideH w:val="single" w:sz="4" w:space="0" w:color="9AA6B2"/>'
274
+ + '<w:insideV w:val="single" w:sz="4" w:space="0" w:color="9AA6B2"/>'
275
+ + '</w:tblBorders>'
276
+ + '<w:tblLook w:val="04A0" w:firstRow="1" w:lastRow="0" w:firstColumn="1" w:lastColumn="0" w:noHBand="0" w:noVBand="1"/>'
277
+ + '</w:tblPr>';
278
+ const trs = [];
279
+ for (let ri = 0; ri < rows.length; ri++) {
280
+ const isHeader = headerRow && ri === 0;
281
+ const cells = rows[ri] || [];
282
+ const tcs = [];
283
+ for (let ci = 0; ci < cols; ci++) {
284
+ const raw = cells[ci] ?? '';
285
+ const { runs, bold } = cellRuns(raw);
286
+ const effRuns = runs.map((r) => ({ ...r, bold: r.bold || bold || isHeader }));
287
+ const shd = isHeader ? '<w:shd w:val="clear" w:color="auto" w:fill="D9E2F3"/>' : '';
288
+ const tcPr = '<w:tcPr><w:tcW w:w="' + colW + '" w:type="dxa"/>' + shd + '</w:tcPr>';
289
+ const para = buildParagraph(effRuns, {});
290
+ tcs.push('<w:tc>' + tcPr + para + '</w:tc>');
291
+ }
292
+ const trPr = isHeader ? '<w:trPr><w:tblHeader/></w:trPr>' : '';
293
+ trs.push('<w:tr>' + trPr + tcs.join('') + '</w:tr>');
294
+ }
295
+ return '<w:tbl>' + tblPr + grid + trs.join('') + '</w:tbl>';
296
+ }
297
+ const PAGE_BREAK_P = '<w:p><w:r><w:br w:type="page"/></w:r></w:p>';
298
+ const SECT_PR = '<w:sectPr>'
299
+ + '<w:pgSz w:w="11906" w:h="16838"/>'
300
+ + '<w:pgMar w:top="1440" w:right="1440" w:bottom="1440" w:left="1440" w:header="720" w:footer="720" w:gutter="0"/>'
301
+ + '</w:sectPr>';
165
302
  function buildDocumentXml(sections) {
166
303
  const parts = [];
167
304
  parts.push('<?xml version="1.0" encoding="UTF-8" standalone="yes"?>');
168
305
  parts.push('<w:document xmlns:w="http://schemas.openxmlformats.org/wordprocessingml/2006/main">');
169
306
  parts.push('<w:body>');
170
307
  for (const sec of sections) {
171
- const text = xmlEscape(sec.text || '');
172
- if (sec.kind === 'heading') {
173
- const level = sec.level && sec.level >= 1 && sec.level <= 6 ? sec.level : 1;
174
- parts.push('<w:p><w:pPr><w:pStyle w:val="Heading' + level + '"/></w:pPr>'
175
- + '<w:r><w:t xml:space="preserve">' + text + '</w:t></w:r></w:p>');
176
- }
177
- else {
178
- parts.push('<w:p><w:r><w:t xml:space="preserve">' + text + '</w:t></w:r></w:p>');
308
+ switch (sec.kind) {
309
+ case 'pagebreak':
310
+ parts.push(PAGE_BREAK_P);
311
+ break;
312
+ case 'table':
313
+ parts.push(buildTable(sec.rows || [], sec.header_row !== false));
314
+ break;
315
+ case 'title':
316
+ parts.push(buildParagraph(sectionRuns(sec), { pStyle: 'Title', align: sec.align }));
317
+ break;
318
+ case 'heading': {
319
+ const level = sec.level && sec.level >= 1 && sec.level <= 6 ? sec.level : 1;
320
+ parts.push(buildParagraph(sectionRuns(sec), { pStyle: 'Heading' + level, align: sec.align }));
321
+ break;
322
+ }
323
+ case 'bullet':
324
+ parts.push(buildParagraph(sectionRuns(sec), { pStyle: 'ListParagraph', numId: 1, ilvl: 0, align: sec.align }));
325
+ break;
326
+ case 'numbered':
327
+ parts.push(buildParagraph(sectionRuns(sec), { pStyle: 'ListParagraph', numId: 2, ilvl: 0, align: sec.align }));
328
+ break;
329
+ case 'paragraph':
330
+ default:
331
+ parts.push(buildParagraph(sectionRuns(sec), { align: sec.align }));
332
+ break;
179
333
  }
180
334
  }
335
+ parts.push(SECT_PR);
181
336
  parts.push('</w:body></w:document>');
182
337
  return parts.join('');
183
338
  }
339
+ /* ----- static parts --------------------------------------- */
184
340
  const CONTENT_TYPES_XML = '<?xml version="1.0" encoding="UTF-8" standalone="yes"?>'
185
341
  + '<Types xmlns="http://schemas.openxmlformats.org/package/2006/content-types">'
186
342
  + '<Default Extension="rels" ContentType="application/vnd.openxmlformats-package.relationships+xml"/>'
187
343
  + '<Default Extension="xml" ContentType="application/xml"/>'
188
344
  + '<Override PartName="/word/document.xml" ContentType="application/vnd.openxmlformats-officedocument.wordprocessingml.document.main+xml"/>'
345
+ + '<Override PartName="/word/styles.xml" ContentType="application/vnd.openxmlformats-officedocument.wordprocessingml.styles+xml"/>'
346
+ + '<Override PartName="/word/numbering.xml" ContentType="application/vnd.openxmlformats-officedocument.wordprocessingml.numbering+xml"/>'
189
347
  + '</Types>';
190
348
  const RELS_XML = '<?xml version="1.0" encoding="UTF-8" standalone="yes"?>'
191
349
  + '<Relationships xmlns="http://schemas.openxmlformats.org/package/2006/relationships">'
192
350
  + '<Relationship Id="rId1" Type="http://schemas.openxmlformats.org/officeDocument/2006/relationships/officeDocument" Target="word/document.xml"/>'
193
351
  + '</Relationships>';
352
+ const DOCUMENT_RELS_XML = '<?xml version="1.0" encoding="UTF-8" standalone="yes"?>'
353
+ + '<Relationships xmlns="http://schemas.openxmlformats.org/package/2006/relationships">'
354
+ + '<Relationship Id="rId1" Type="http://schemas.openxmlformats.org/officeDocument/2006/relationships/styles" Target="styles.xml"/>'
355
+ + '<Relationship Id="rId2" Type="http://schemas.openxmlformats.org/officeDocument/2006/relationships/numbering" Target="numbering.xml"/>'
356
+ + '</Relationships>';
357
+ /** Heading style block -- varying size/colour per level so the
358
+ * hierarchy is visible, with outlineLvl so Word's navigation pane +
359
+ * mammoth's outline detection both pick them up. */
360
+ function headingStyle(level, sz, color) {
361
+ return '<w:style w:type="paragraph" w:styleId="Heading' + level + '">'
362
+ + '<w:name w:val="heading ' + level + '"/>'
363
+ + '<w:basedOn w:val="Normal"/><w:next w:val="Normal"/><w:qFormat/>'
364
+ + '<w:pPr><w:keepNext/><w:keepLines/><w:spacing w:before="240" w:after="80"/><w:outlineLvl w:val="' + (level - 1) + '"/></w:pPr>'
365
+ + '<w:rPr><w:b/><w:color w:val="' + color + '"/><w:sz w:val="' + sz + '"/><w:szCs w:val="' + sz + '"/></w:rPr>'
366
+ + '</w:style>';
367
+ }
368
+ const STYLES_XML = '<?xml version="1.0" encoding="UTF-8" standalone="yes"?>'
369
+ + '<w:styles xmlns:w="http://schemas.openxmlformats.org/wordprocessingml/2006/main">'
370
+ + '<w:docDefaults>'
371
+ + '<w:rPrDefault><w:rPr><w:rFonts w:ascii="Calibri" w:hAnsi="Calibri" w:cs="Calibri"/><w:sz w:val="22"/><w:szCs w:val="22"/></w:rPr></w:rPrDefault>'
372
+ + '<w:pPrDefault><w:pPr><w:spacing w:after="160" w:line="259" w:lineRule="auto"/></w:pPr></w:pPrDefault>'
373
+ + '</w:docDefaults>'
374
+ + '<w:style w:type="paragraph" w:default="1" w:styleId="Normal"><w:name w:val="Normal"/><w:qFormat/></w:style>'
375
+ + '<w:style w:type="table" w:default="1" w:styleId="TableNormal"><w:name w:val="Normal Table"/><w:tblPr><w:tblInd w:w="0" w:type="dxa"/><w:tblCellMar><w:top w:w="0" w:type="dxa"/><w:left w:w="108" w:type="dxa"/><w:bottom w:w="0" w:type="dxa"/><w:right w:w="108" w:type="dxa"/></w:tblCellMar></w:tblPr></w:style>'
376
+ + '<w:style w:type="paragraph" w:styleId="Title"><w:name w:val="Title"/><w:basedOn w:val="Normal"/><w:next w:val="Normal"/><w:qFormat/>'
377
+ + '<w:pPr><w:spacing w:after="300"/><w:contextualSpacing/></w:pPr>'
378
+ + '<w:rPr><w:b/><w:color w:val="1F3864"/><w:sz w:val="52"/><w:szCs w:val="52"/></w:rPr></w:style>'
379
+ + headingStyle(1, 32, '2F5496')
380
+ + headingStyle(2, 28, '2F5496')
381
+ + headingStyle(3, 26, '1F3864')
382
+ + headingStyle(4, 24, '2F5496')
383
+ + headingStyle(5, 22, '2F5496')
384
+ + headingStyle(6, 22, '595959')
385
+ + '<w:style w:type="paragraph" w:styleId="ListParagraph"><w:name w:val="List Paragraph"/><w:basedOn w:val="Normal"/><w:qFormat/>'
386
+ + '<w:pPr><w:ind w:left="720"/><w:contextualSpacing/></w:pPr></w:style>'
387
+ + '<w:style w:type="table" w:styleId="TableGrid"><w:name w:val="Table Grid"/><w:basedOn w:val="TableNormal"/>'
388
+ + '<w:tblPr><w:tblBorders>'
389
+ + '<w:top w:val="single" w:sz="4" w:space="0" w:color="9AA6B2"/>'
390
+ + '<w:left w:val="single" w:sz="4" w:space="0" w:color="9AA6B2"/>'
391
+ + '<w:bottom w:val="single" w:sz="4" w:space="0" w:color="9AA6B2"/>'
392
+ + '<w:right w:val="single" w:sz="4" w:space="0" w:color="9AA6B2"/>'
393
+ + '<w:insideH w:val="single" w:sz="4" w:space="0" w:color="9AA6B2"/>'
394
+ + '<w:insideV w:val="single" w:sz="4" w:space="0" w:color="9AA6B2"/>'
395
+ + '</w:tblBorders></w:tblPr></w:style>'
396
+ + '</w:styles>';
397
+ const NUMBERING_XML = '<?xml version="1.0" encoding="UTF-8" standalone="yes"?>'
398
+ + '<w:numbering xmlns:w="http://schemas.openxmlformats.org/wordprocessingml/2006/main">'
399
+ + '<w:abstractNum w:abstractNumId="0">'
400
+ + '<w:lvl w:ilvl="0"><w:start w:val="1"/><w:numFmt w:val="bullet"/><w:lvlText w:val="&#8226;"/><w:lvlJc w:val="left"/>'
401
+ + '<w:pPr><w:ind w:left="720" w:hanging="360"/></w:pPr></w:lvl>'
402
+ + '</w:abstractNum>'
403
+ + '<w:abstractNum w:abstractNumId="1">'
404
+ + '<w:lvl w:ilvl="0"><w:start w:val="1"/><w:numFmt w:val="decimal"/><w:lvlText w:val="%1."/><w:lvlJc w:val="left"/>'
405
+ + '<w:pPr><w:ind w:left="720" w:hanging="360"/></w:pPr></w:lvl>'
406
+ + '</w:abstractNum>'
407
+ + '<w:num w:numId="1"><w:abstractNumId w:val="0"/></w:num>'
408
+ + '<w:num w:numId="2"><w:abstractNumId w:val="1"/></w:num>'
409
+ + '</w:numbering>';
410
+ /* ----- validation ----------------------------------------- */
411
+ const VALID_KINDS = new Set([
412
+ 'title', 'heading', 'paragraph', 'bullet', 'numbered', 'table', 'pagebreak',
413
+ ]);
414
+ function validateSection(s) {
415
+ if (!s || typeof s !== 'object')
416
+ return 'each section must be an object';
417
+ if (!VALID_KINDS.has(s.kind)) {
418
+ return 'kind must be one of title|heading|paragraph|bullet|numbered|table|pagebreak';
419
+ }
420
+ if (s.kind === 'pagebreak')
421
+ return null;
422
+ if (s.kind === 'table') {
423
+ if (!Array.isArray(s.rows) || s.rows.length === 0)
424
+ return 'table sections require a non-empty rows array';
425
+ if (s.rows.length > MAX_TABLE_ROWS)
426
+ return 'too many table rows (> ' + MAX_TABLE_ROWS + ')';
427
+ for (const row of s.rows) {
428
+ if (!Array.isArray(row))
429
+ return 'each table row must be an array of cells';
430
+ if (row.length > MAX_TABLE_COLS)
431
+ return 'too many table columns (> ' + MAX_TABLE_COLS + ')';
432
+ for (const cell of row) {
433
+ if (typeof cell !== 'string' && (typeof cell !== 'object' || cell === null)) {
434
+ return 'each table cell must be a string or a {text|runs|bold} object';
435
+ }
436
+ }
437
+ }
438
+ return null;
439
+ }
440
+ /* title / heading / paragraph / bullet / numbered: need text or runs. */
441
+ const hasRuns = Array.isArray(s.runs) && s.runs.length > 0;
442
+ const hasText = typeof s.text === 'string';
443
+ if (!hasRuns && !hasText)
444
+ return 'section needs a "text" string or a non-empty "runs" array';
445
+ if (hasText && s.text.length > MAX_SECTION_TEXT) {
446
+ return 'text too long (' + s.text.length + ' > ' + MAX_SECTION_TEXT + ')';
447
+ }
448
+ if (hasRuns) {
449
+ for (const r of s.runs) {
450
+ if (!r || typeof r !== 'object' || typeof r.text !== 'string')
451
+ return 'each run must be a {text:string,...} object';
452
+ if (r.text.length > MAX_SECTION_TEXT)
453
+ return 'run text too long (> ' + MAX_SECTION_TEXT + ')';
454
+ }
455
+ }
456
+ return null;
457
+ }
194
458
  export async function writeWord(req, projectRoot = process.cwd()) {
195
459
  if (!req.path || typeof req.path !== 'string') {
196
460
  return { ok: false, error: 'invalid_args', detail: 'path is required' };
@@ -202,18 +466,9 @@ export async function writeWord(req, projectRoot = process.cwd()) {
202
466
  return { ok: false, error: 'too_many_sections', detail: req.sections.length + ' > ' + MAX_SECTIONS_WRITE };
203
467
  }
204
468
  for (const s of req.sections) {
205
- if (!s || typeof s !== 'object') {
206
- return { ok: false, error: 'invalid_section', detail: 'each section must be an object' };
207
- }
208
- if (s.kind !== 'heading' && s.kind !== 'paragraph') {
209
- return { ok: false, error: 'invalid_section', detail: 'kind must be heading or paragraph' };
210
- }
211
- if (typeof s.text !== 'string') {
212
- return { ok: false, error: 'invalid_section', detail: 'text must be a string' };
213
- }
214
- if (s.text.length > MAX_SECTION_TEXT) {
215
- return { ok: false, error: 'section_too_long', detail: s.text.length + ' > ' + MAX_SECTION_TEXT };
216
- }
469
+ const err = validateSection(s);
470
+ if (err)
471
+ return { ok: false, error: 'invalid_section', detail: err };
217
472
  }
218
473
  if (!req.path.toLowerCase().endsWith('.docx')) {
219
474
  return { ok: false, error: 'unsupported_extension', detail: 'only .docx output is supported' };
@@ -231,6 +486,9 @@ export async function writeWord(req, projectRoot = process.cwd()) {
231
486
  { name: '[Content_Types].xml', data: Buffer.from(CONTENT_TYPES_XML, 'utf-8') },
232
487
  { name: '_rels/.rels', data: Buffer.from(RELS_XML, 'utf-8') },
233
488
  { name: 'word/document.xml', data: Buffer.from(docXml, 'utf-8') },
489
+ { name: 'word/_rels/document.xml.rels', data: Buffer.from(DOCUMENT_RELS_XML, 'utf-8') },
490
+ { name: 'word/styles.xml', data: Buffer.from(STYLES_XML, 'utf-8') },
491
+ { name: 'word/numbering.xml', data: Buffer.from(NUMBERING_XML, 'utf-8') },
234
492
  ]);
235
493
  try {
236
494
  await writeFile(abs, zip);
@@ -1 +1 @@
1
- {"version":3,"file":"word.js","sourceRoot":"","sources":["../../src/office/word.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"word.js","sourceRoot":"","sources":["../../src/office/word.ts"],"names":[],"mappings":"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"}
package/dist/version.d.ts CHANGED
@@ -2,5 +2,5 @@
2
2
  * Yujin Forge CLI version. Kept in sync with package.json by the npm
3
3
  * "version" lifecycle (scripts/sync_version.mjs) so the two never drift.
4
4
  */
5
- export declare const VERSION = "1.3.5";
5
+ export declare const VERSION = "1.4.0";
6
6
  //# sourceMappingURL=version.d.ts.map
package/dist/version.js CHANGED
@@ -2,5 +2,5 @@
2
2
  * Yujin Forge CLI version. Kept in sync with package.json by the npm
3
3
  * "version" lifecycle (scripts/sync_version.mjs) so the two never drift.
4
4
  */
5
- export const VERSION = '1.3.5';
5
+ export const VERSION = '1.4.0';
6
6
  //# sourceMappingURL=version.js.map
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@nac3/forge-cli",
3
- "version": "1.3.5",
3
+ "version": "1.4.0",
4
4
  "description": "Yujin Forge -- voice-first NAC-3 React development framework. CLI + chat panel + spec ingest + 10-format document reader + voice loop.",
5
5
  "license": "SEE LICENSE IN LICENSE",
6
6
  "author": "Pablo Kuschnirof <pablo@rpaforce.com>",