@otomate/css-docx 0.1.0 → 0.2.2

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/dist/convert.d.ts CHANGED
@@ -1,7 +1,19 @@
1
- import type { OoxmlRunProps, OoxmlParaProps } from "./types.js";
2
- /** Parse a CSS color value to "RRGGBB" (no hash). Returns undefined if unparseable. */
1
+ import type { OoxmlRunProps, OoxmlParaProps, BorderDef } from "./types.js";
2
+ /**
3
+ * Parse a CSS border shorthand value ("width style color" in any order)
4
+ * into a BorderDef. Returns undefined for "none" or unparseable input.
5
+ */
6
+ export declare function parseBorder(value: string): BorderDef | undefined;
7
+ /** Parse a CSS color value to "RRGGBB" (no hash). Returns undefined if unparseable.
8
+ * Supports: named colors, #rgb / #rgba / #rrggbb / #rrggbbaa, rgb()/rgba(), hsl()/hsla().
9
+ * Alpha channels are dropped (OOXML colors have no alpha).
10
+ */
3
11
  export declare function parseColor(value: string): string | undefined;
4
- /** Parse a CSS length to twips. Returns undefined if unparseable. */
12
+ /** Parse a CSS length to twips. Returns undefined if unparseable.
13
+ * Note: percentages are deliberately rejected — OOXML paragraph properties
14
+ * use absolute units (twips), and there's no sensible default basis to
15
+ * resolve `%` against. Callers should handle `%` separately if needed.
16
+ */
5
17
  export declare function parseLengthTwips(value: string): number | undefined;
6
18
  /** Parse a CSS length to half-points (for font-size). */
7
19
  export declare function parseLengthHalfPts(value: string): number | undefined;
@@ -1 +1 @@
1
- {"version":3,"file":"convert.d.ts","sourceRoot":"","sources":["../src/convert.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,cAAc,EAAa,MAAM,YAAY,CAAC;AAY3E,uFAAuF;AACvF,wBAAgB,UAAU,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAkB5D;AAED,qEAAqE;AACrE,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAalE;AAED,yDAAyD;AACzD,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAUpE;AAED,wDAAwD;AACxD,wBAAgB,aAAa,CAAC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,aAAa,CAiC1E;AAED,8DAA8D;AAC9D,wBAAgB,cAAc,CAAC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,cAAc,CA8B5E"}
1
+ {"version":3,"file":"convert.d.ts","sourceRoot":"","sources":["../src/convert.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,cAAc,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAO3E;;;GAGG;AACH,wBAAgB,WAAW,CAAC,KAAK,EAAE,MAAM,GAAG,SAAS,GAAG,SAAS,CAoChE;AAYD;;;GAGG;AACH,wBAAgB,UAAU,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CA2B5D;AAuBD;;;;GAIG;AACH,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAclE;AAED,yDAAyD;AACzD,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAUpE;AAED,wDAAwD;AACxD,wBAAgB,aAAa,CAAC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,aAAa,CAiC1E;AAED,8DAA8D;AAC9D,wBAAgB,cAAc,CAAC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,cAAc,CA6D5E"}
package/dist/convert.js CHANGED
@@ -1,3 +1,59 @@
1
+ const BORDER_STYLE_MAP = {
2
+ solid: "single", dashed: "dashed", dotted: "dotted", double: "double",
3
+ groove: "single", ridge: "single", inset: "single", outset: "single",
4
+ };
5
+ /**
6
+ * Parse a CSS border shorthand value ("width style color" in any order)
7
+ * into a BorderDef. Returns undefined for "none" or unparseable input.
8
+ */
9
+ export function parseBorder(value) {
10
+ const parts = value.trim().split(/\s+/);
11
+ let sz;
12
+ let val;
13
+ let color;
14
+ for (const part of parts) {
15
+ const lower = part.toLowerCase();
16
+ if (lower === "none" || lower === "hidden")
17
+ return undefined;
18
+ if (BORDER_STYLE_MAP[lower] !== undefined) {
19
+ val = BORDER_STYLE_MAP[lower];
20
+ continue;
21
+ }
22
+ // Try width: a number followed by a unit
23
+ const wm = part.match(/^([\d.]+)(px|pt|in|cm|mm|em|rem)$/i);
24
+ if (wm) {
25
+ const n = parseFloat(wm[1]);
26
+ let pts;
27
+ switch (wm[2].toLowerCase()) {
28
+ case "pt":
29
+ pts = n;
30
+ break;
31
+ case "px":
32
+ pts = n * 0.75;
33
+ break;
34
+ case "in":
35
+ pts = n * 72;
36
+ break;
37
+ case "cm":
38
+ pts = n * 28.35;
39
+ break;
40
+ case "mm":
41
+ pts = n * 2.835;
42
+ break;
43
+ default: pts = n * 12; // em/rem assume 12pt base
44
+ }
45
+ sz = Math.max(1, Math.round(pts * 8)); // eighths of a point
46
+ continue;
47
+ }
48
+ // Try as color
49
+ const c = parseColor(part);
50
+ if (c)
51
+ color = c;
52
+ }
53
+ if (val === undefined)
54
+ return undefined;
55
+ return { val, sz: sz ?? 8, color: color ?? "000000" };
56
+ }
1
57
  // 1pt = 20 twips, 1pt = 2 half-points, 1px ≈ 0.75pt, 1in = 1440 twips, 1cm = 567 twips
2
58
  const NAMED_COLORS = {
3
59
  black: "000000", white: "FFFFFF", red: "FF0000", green: "008000",
@@ -6,9 +62,14 @@ const NAMED_COLORS = {
6
62
  maroon: "800000", silver: "C0C0C0", olive: "808000", aqua: "00FFFF",
7
63
  fuchsia: "FF00FF", lime: "00FF00",
8
64
  };
9
- /** Parse a CSS color value to "RRGGBB" (no hash). Returns undefined if unparseable. */
65
+ /** Parse a CSS color value to "RRGGBB" (no hash). Returns undefined if unparseable.
66
+ * Supports: named colors, #rgb / #rgba / #rrggbb / #rrggbbaa, rgb()/rgba(), hsl()/hsla().
67
+ * Alpha channels are dropped (OOXML colors have no alpha).
68
+ */
10
69
  export function parseColor(value) {
11
70
  const v = value.trim().toLowerCase();
71
+ if (v === "transparent" || v === "currentcolor" || v === "inherit")
72
+ return undefined;
12
73
  if (NAMED_COLORS[v])
13
74
  return NAMED_COLORS[v];
14
75
  // #rgb or #rrggbb
@@ -24,14 +85,65 @@ export function parseColor(value) {
24
85
  if (h.length === 8)
25
86
  return h.slice(0, 6); // #rrggbbaa → drop alpha
26
87
  }
27
- // rgb(r, g, b)
28
- const rgb = v.match(/^rgb\(\s*(\d+)\s*,\s*(\d+)\s*,\s*(\d+)\s*\)$/);
88
+ // rgb(r, g, b) or rgba(r, g, b, a) — alpha is dropped, comma OR space-separated
89
+ const rgb = v.match(/^rgba?\(\s*(\d+)[\s,]+(\d+)[\s,]+(\d+)(?:[\s,/]+[\d.]+%?)?\s*\)$/);
29
90
  if (rgb) {
30
- return [rgb[1], rgb[2], rgb[3]].map(n => Number(n).toString(16).padStart(2, "0")).join("");
91
+ return [rgb[1], rgb[2], rgb[3]]
92
+ .map(n => Math.max(0, Math.min(255, Number(n))).toString(16).padStart(2, "0"))
93
+ .join("");
94
+ }
95
+ // hsl(h, s%, l%) or hsla(h, s%, l%, a)
96
+ const hsl = v.match(/^hsla?\(\s*(\d+(?:\.\d+)?)\s*,?\s*(\d+(?:\.\d+)?)%\s*,?\s*(\d+(?:\.\d+)?)%(?:\s*[,/]\s*[\d.]+%?)?\s*\)$/);
97
+ if (hsl) {
98
+ const [r, g, b] = hslToRgb(Number(hsl[1]), Number(hsl[2]), Number(hsl[3]));
99
+ return [r, g, b].map(n => n.toString(16).padStart(2, "0")).join("");
31
100
  }
32
101
  return undefined;
33
102
  }
34
- /** Parse a CSS length to twips. Returns undefined if unparseable. */
103
+ /** HSL RGB. h [0,360), s/l ∈ [0,100]. Returns 0–255 ints. */
104
+ function hslToRgb(h, s, l) {
105
+ s /= 100;
106
+ l /= 100;
107
+ const c = (1 - Math.abs(2 * l - 1)) * s;
108
+ const hh = (((h % 360) + 360) % 360) / 60;
109
+ const x = c * (1 - Math.abs((hh % 2) - 1));
110
+ let r = 0, g = 0, b = 0;
111
+ if (hh < 1) {
112
+ r = c;
113
+ g = x;
114
+ }
115
+ else if (hh < 2) {
116
+ r = x;
117
+ g = c;
118
+ }
119
+ else if (hh < 3) {
120
+ g = c;
121
+ b = x;
122
+ }
123
+ else if (hh < 4) {
124
+ g = x;
125
+ b = c;
126
+ }
127
+ else if (hh < 5) {
128
+ r = x;
129
+ b = c;
130
+ }
131
+ else {
132
+ r = c;
133
+ b = x;
134
+ }
135
+ const m = l - c / 2;
136
+ return [
137
+ Math.round((r + m) * 255),
138
+ Math.round((g + m) * 255),
139
+ Math.round((b + m) * 255),
140
+ ];
141
+ }
142
+ /** Parse a CSS length to twips. Returns undefined if unparseable.
143
+ * Note: percentages are deliberately rejected — OOXML paragraph properties
144
+ * use absolute units (twips), and there's no sensible default basis to
145
+ * resolve `%` against. Callers should handle `%` separately if needed.
146
+ */
35
147
  export function parseLengthTwips(value) {
36
148
  const m = value.trim().match(/^(-?[\d.]+)(px|pt|em|rem|cm|mm|in|%)$/);
37
149
  if (!m)
@@ -45,6 +157,7 @@ export function parseLengthTwips(value) {
45
157
  case "mm": return Math.round(n * 56.7);
46
158
  case "em":
47
159
  case "rem": return Math.round(n * 12 * 20); // assume 12pt base
160
+ case "%": return undefined; // explicitly unsupported, see docstring
48
161
  default: return undefined;
49
162
  }
50
163
  }
@@ -112,6 +225,33 @@ export function cssToParaProps(decls) {
112
225
  if (a === "justify")
113
226
  props.jc = "both";
114
227
  }
228
+ // Background color → paragraph shading
229
+ if (decls["background-color"]) {
230
+ const c = parseColor(decls["background-color"]);
231
+ if (c)
232
+ props.shd = c;
233
+ }
234
+ // Borders: individual sides first, then shorthand fills gaps
235
+ const pBdr = {};
236
+ const SIDES = ["top", "bottom", "left", "right"];
237
+ for (const side of SIDES) {
238
+ if (decls[`border-${side}`]) {
239
+ const bd = parseBorder(decls[`border-${side}`]);
240
+ if (bd)
241
+ pBdr[side] = bd;
242
+ }
243
+ }
244
+ if (decls["border"]) {
245
+ const bd = parseBorder(decls["border"]);
246
+ if (bd) {
247
+ for (const side of SIDES) {
248
+ if (!pBdr[side])
249
+ pBdr[side] = bd;
250
+ }
251
+ }
252
+ }
253
+ if (Object.keys(pBdr).length > 0)
254
+ props.pBdr = pBdr;
115
255
  const spacing = {};
116
256
  if (decls["margin-top"]) {
117
257
  const v = parseLengthTwips(decls["margin-top"]);
@@ -123,6 +263,17 @@ export function cssToParaProps(decls) {
123
263
  if (v)
124
264
  spacing.after = v;
125
265
  }
266
+ // padding-top/bottom accumulate on top of margins
267
+ if (decls["padding-top"]) {
268
+ const v = parseLengthTwips(decls["padding-top"]);
269
+ if (v)
270
+ spacing.before = (spacing.before ?? 0) + v;
271
+ }
272
+ if (decls["padding-bottom"]) {
273
+ const v = parseLengthTwips(decls["padding-bottom"]);
274
+ if (v)
275
+ spacing.after = (spacing.after ?? 0) + v;
276
+ }
126
277
  if (decls["line-height"]) {
127
278
  const m = decls["line-height"].match(/^([\d.]+)(px|pt)?$/);
128
279
  if (m) {
@@ -148,6 +299,17 @@ export function cssToParaProps(decls) {
148
299
  if (v)
149
300
  ind.right = v;
150
301
  }
302
+ // padding-left/right accumulate on top of margins
303
+ if (decls["padding-left"]) {
304
+ const v = parseLengthTwips(decls["padding-left"]);
305
+ if (v)
306
+ ind.left = (ind.left ?? 0) + v;
307
+ }
308
+ if (decls["padding-right"]) {
309
+ const v = parseLengthTwips(decls["padding-right"]);
310
+ if (v)
311
+ ind.right = (ind.right ?? 0) + v;
312
+ }
151
313
  if (decls["text-indent"]) {
152
314
  const v = parseLengthTwips(decls["text-indent"]);
153
315
  if (v)
@@ -1 +1 @@
1
- {"version":3,"file":"convert.js","sourceRoot":"","sources":["../src/convert.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"convert.js","sourceRoot":"","sources":["../src/convert.ts"],"names":[],"mappings":"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"}
@@ -1,7 +1,13 @@
1
1
  import type { OoxmlRunProps, OoxmlParaProps } from "./types.js";
2
- /** Build w:rPr XML fragment from run properties. */
2
+ /** Build w:rPr XML fragment from run properties.
3
+ * Element order follows ECMA-376 CT_RPr:
4
+ * rFonts(2) → b(3) → i(5) → strike(9) → color(19) → sz(24) → u(27) → shd(30) → vertAlign(32)
5
+ */
3
6
  export declare function runPropsToXml(props: OoxmlRunProps): string;
4
- /** Build w:pPr XML fragment from paragraph properties. */
7
+ /** Build w:pPr XML fragment from paragraph properties.
8
+ * Element order follows the OOXML CT_PPr schema:
9
+ * pBdr → shd → spacing → ind → jc
10
+ */
5
11
  export declare function paraPropsToXml(props: OoxmlParaProps): string;
6
12
  /** Build a complete w:style element for styles.xml. */
7
13
  export declare function buildStyleElement(styleId: string, styleName: string, type: "paragraph" | "character", runProps?: OoxmlRunProps, paraProps?: OoxmlParaProps): string;
@@ -1 +1 @@
1
- {"version":3,"file":"serialize.d.ts","sourceRoot":"","sources":["../src/serialize.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAEhE,oDAAoD;AACpD,wBAAgB,aAAa,CAAC,KAAK,EAAE,aAAa,GAAG,MAAM,CAkB1D;AAED,0DAA0D;AAC1D,wBAAgB,cAAc,CAAC,KAAK,EAAE,cAAc,GAAG,MAAM,CAmB5D;AAED,uDAAuD;AACvD,wBAAgB,iBAAiB,CAC/B,OAAO,EAAE,MAAM,EACf,SAAS,EAAE,MAAM,EACjB,IAAI,EAAE,WAAW,GAAG,WAAW,EAC/B,QAAQ,CAAC,EAAE,aAAa,EACxB,SAAS,CAAC,EAAE,cAAc,GACzB,MAAM,CAeR"}
1
+ {"version":3,"file":"serialize.d.ts","sourceRoot":"","sources":["../src/serialize.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAEhE;;;GAGG;AACH,wBAAgB,aAAa,CAAC,KAAK,EAAE,aAAa,GAAG,MAAM,CAkB1D;AAED;;;GAGG;AACH,wBAAgB,cAAc,CAAC,KAAK,EAAE,cAAc,GAAG,MAAM,CAkC5D;AAED,uDAAuD;AACvD,wBAAgB,iBAAiB,CAC/B,OAAO,EAAE,MAAM,EACf,SAAS,EAAE,MAAM,EACjB,IAAI,EAAE,WAAW,GAAG,WAAW,EAC/B,QAAQ,CAAC,EAAE,aAAa,EACxB,SAAS,CAAC,EAAE,cAAc,GACzB,MAAM,CAeR"}
package/dist/serialize.js CHANGED
@@ -1,4 +1,7 @@
1
- /** Build w:rPr XML fragment from run properties. */
1
+ /** Build w:rPr XML fragment from run properties.
2
+ * Element order follows ECMA-376 CT_RPr:
3
+ * rFonts(2) → b(3) → i(5) → strike(9) → color(19) → sz(24) → u(27) → shd(30) → vertAlign(32)
4
+ */
2
5
  export function runPropsToXml(props) {
3
6
  const parts = [];
4
7
  if (props.rFonts) {
@@ -15,25 +18,38 @@ export function runPropsToXml(props) {
15
18
  parts.push("<w:b/>");
16
19
  if (props.i)
17
20
  parts.push("<w:i/>");
18
- if (props.sz)
19
- parts.push(`<w:sz w:val="${props.sz}"/>`);
21
+ if (props.strike)
22
+ parts.push("<w:strike/>");
20
23
  if (props.color)
21
24
  parts.push(`<w:color w:val="${props.color}"/>`);
25
+ if (props.sz)
26
+ parts.push(`<w:sz w:val="${props.sz}"/>`);
22
27
  if (props.u)
23
28
  parts.push(`<w:u w:val="${props.u}"/>`);
24
- if (props.strike)
25
- parts.push("<w:strike/>");
26
29
  if (props.shd)
27
30
  parts.push(`<w:shd w:val="clear" w:color="auto" w:fill="${props.shd}"/>`);
28
31
  if (props.vertAlign)
29
32
  parts.push(`<w:vertAlign w:val="${props.vertAlign}"/>`);
30
33
  return parts.length > 0 ? `<w:rPr>${parts.join("")}</w:rPr>` : "";
31
34
  }
32
- /** Build w:pPr XML fragment from paragraph properties. */
35
+ /** Build w:pPr XML fragment from paragraph properties.
36
+ * Element order follows the OOXML CT_PPr schema:
37
+ * pBdr → shd → spacing → ind → jc
38
+ */
33
39
  export function paraPropsToXml(props) {
34
40
  const parts = [];
35
- if (props.jc)
36
- parts.push(`<w:jc w:val="${props.jc}"/>`);
41
+ if (props.pBdr) {
42
+ const bdrParts = [];
43
+ for (const side of ["top", "bottom", "left", "right"]) {
44
+ const bd = props.pBdr[side];
45
+ if (bd)
46
+ bdrParts.push(`<w:${side} w:val="${bd.val}" w:sz="${bd.sz}" w:space="0" w:color="${bd.color}"/>`);
47
+ }
48
+ if (bdrParts.length > 0)
49
+ parts.push(`<w:pBdr>${bdrParts.join("")}</w:pBdr>`);
50
+ }
51
+ if (props.shd)
52
+ parts.push(`<w:shd w:val="clear" w:color="auto" w:fill="${props.shd}"/>`);
37
53
  if (props.spacing) {
38
54
  const attrs = [];
39
55
  if (props.spacing.before !== undefined)
@@ -56,6 +72,8 @@ export function paraPropsToXml(props) {
56
72
  attrs.push(`w:hanging="${props.ind.hanging}"`);
57
73
  parts.push(`<w:ind ${attrs.join(" ")}/>`);
58
74
  }
75
+ if (props.jc)
76
+ parts.push(`<w:jc w:val="${props.jc}"/>`);
59
77
  return parts.length > 0 ? `<w:pPr>${parts.join("")}</w:pPr>` : "";
60
78
  }
61
79
  /** Build a complete w:style element for styles.xml. */
@@ -1 +1 @@
1
- {"version":3,"file":"serialize.js","sourceRoot":"","sources":["../src/serialize.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"serialize.js","sourceRoot":"","sources":["../src/serialize.ts"],"names":[],"mappings":"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"}
package/dist/types.d.ts CHANGED
@@ -34,6 +34,7 @@ export interface OoxmlParaProps {
34
34
  left?: BorderDef;
35
35
  right?: BorderDef;
36
36
  };
37
+ shd?: string;
37
38
  }
38
39
  export interface BorderDef {
39
40
  val: string;
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA,uCAAuC;AACvC,MAAM,WAAW,aAAa;IAC5B,MAAM,CAAC,EAAE;QAAE,KAAK,CAAC,EAAE,MAAM,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAC;QAAC,EAAE,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IACzD,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,CAAC,CAAC,EAAE,OAAO,CAAC;IACZ,CAAC,CAAC,EAAE,OAAO,CAAC;IACZ,CAAC,CAAC,EAAE,MAAM,CAAC;IACX,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,SAAS,CAAC,EAAE,aAAa,GAAG,WAAW,CAAC;CACzC;AAED,iCAAiC;AACjC,MAAM,WAAW,cAAc;IAC7B,EAAE,CAAC,EAAE,MAAM,GAAG,QAAQ,GAAG,OAAO,GAAG,MAAM,CAAC;IAC1C,OAAO,CAAC,EAAE;QAAE,MAAM,CAAC,EAAE,MAAM,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAC;QAAC,IAAI,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IAC7D,GAAG,CAAC,EAAE;QAAE,IAAI,CAAC,EAAE,MAAM,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAC;QAAC,SAAS,CAAC,EAAE,MAAM,CAAC;QAAC,OAAO,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IAC9E,IAAI,CAAC,EAAE;QAAE,GAAG,CAAC,EAAE,SAAS,CAAC;QAAC,MAAM,CAAC,EAAE,SAAS,CAAC;QAAC,IAAI,CAAC,EAAE,SAAS,CAAC;QAAC,KAAK,CAAC,EAAE,SAAS,CAAA;KAAE,CAAC;CACrF;AAED,MAAM,WAAW,SAAS;IACxB,GAAG,EAAE,MAAM,CAAC;IACZ,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;CACf"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA,uCAAuC;AACvC,MAAM,WAAW,aAAa;IAC5B,MAAM,CAAC,EAAE;QAAE,KAAK,CAAC,EAAE,MAAM,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAC;QAAC,EAAE,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IACzD,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,CAAC,CAAC,EAAE,OAAO,CAAC;IACZ,CAAC,CAAC,EAAE,OAAO,CAAC;IACZ,CAAC,CAAC,EAAE,MAAM,CAAC;IACX,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,SAAS,CAAC,EAAE,aAAa,GAAG,WAAW,CAAC;CACzC;AAED,iCAAiC;AACjC,MAAM,WAAW,cAAc;IAC7B,EAAE,CAAC,EAAE,MAAM,GAAG,QAAQ,GAAG,OAAO,GAAG,MAAM,CAAC;IAC1C,OAAO,CAAC,EAAE;QAAE,MAAM,CAAC,EAAE,MAAM,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAC;QAAC,IAAI,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IAC7D,GAAG,CAAC,EAAE;QAAE,IAAI,CAAC,EAAE,MAAM,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAC;QAAC,SAAS,CAAC,EAAE,MAAM,CAAC;QAAC,OAAO,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IAC9E,IAAI,CAAC,EAAE;QAAE,GAAG,CAAC,EAAE,SAAS,CAAC;QAAC,MAAM,CAAC,EAAE,SAAS,CAAC;QAAC,IAAI,CAAC,EAAE,SAAS,CAAC;QAAC,KAAK,CAAC,EAAE,SAAS,CAAA;KAAE,CAAC;IACpF,GAAG,CAAC,EAAE,MAAM,CAAC;CACd;AAED,MAAM,WAAW,SAAS;IACxB,GAAG,EAAE,MAAM,CAAC;IACZ,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;CACf"}
package/package.json CHANGED
@@ -1,13 +1,13 @@
1
1
  {
2
2
  "name": "@otomate/css-docx",
3
- "version": "0.1.0",
3
+ "version": "0.2.2",
4
4
  "type": "module",
5
5
  "main": "./dist/index.js",
6
6
  "types": "./dist/index.d.ts",
7
7
  "exports": { ".": { "types": "./dist/index.d.ts", "import": "./dist/index.js" } },
8
8
  "files": ["dist"],
9
- "scripts": { "build": "tsc", "typecheck": "tsc --noEmit" },
10
- "devDependencies": { "typescript": "^5.7.0" },
9
+ "scripts": { "build": "tsc", "test": "node --test --import tsx src/__tests__/*.test.ts", "typecheck": "tsc --noEmit" },
10
+ "devDependencies": { "@types/node": "^25.5.2", "tsx": "^4.19.0", "typescript": "^5.7.0" },
11
11
  "description": "CSS property to OOXML style mapping",
12
12
  "license": "BUSL-1.1",
13
13
  "homepage": "https://github.com/Alessio-G/Oto#readme",