udf-cli 0.1.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 (50) hide show
  1. package/README.md +308 -0
  2. package/dist/bin/udf-cli.d.ts +2 -0
  3. package/dist/bin/udf-cli.js +122 -0
  4. package/dist/bin/udf-cli.js.map +1 -0
  5. package/dist/src/converters/html-to-udf.d.ts +1 -0
  6. package/dist/src/converters/html-to-udf.js +7 -0
  7. package/dist/src/converters/html-to-udf.js.map +1 -0
  8. package/dist/src/converters/markdown-to-udf.d.ts +1 -0
  9. package/dist/src/converters/markdown-to-udf.js +7 -0
  10. package/dist/src/converters/markdown-to-udf.js.map +1 -0
  11. package/dist/src/converters/udf-to-html.d.ts +1 -0
  12. package/dist/src/converters/udf-to-html.js +7 -0
  13. package/dist/src/converters/udf-to-html.js.map +1 -0
  14. package/dist/src/converters/udf-to-markdown.d.ts +1 -0
  15. package/dist/src/converters/udf-to-markdown.js +7 -0
  16. package/dist/src/converters/udf-to-markdown.js.map +1 -0
  17. package/dist/src/html/markdown-parser.d.ts +2 -0
  18. package/dist/src/html/markdown-parser.js +172 -0
  19. package/dist/src/html/markdown-parser.js.map +1 -0
  20. package/dist/src/html/markdown-serializer.d.ts +2 -0
  21. package/dist/src/html/markdown-serializer.js +146 -0
  22. package/dist/src/html/markdown-serializer.js.map +1 -0
  23. package/dist/src/html/parser.d.ts +2 -0
  24. package/dist/src/html/parser.js +517 -0
  25. package/dist/src/html/parser.js.map +1 -0
  26. package/dist/src/html/serializer.d.ts +6 -0
  27. package/dist/src/html/serializer.js +259 -0
  28. package/dist/src/html/serializer.js.map +1 -0
  29. package/dist/src/index.d.ts +6 -0
  30. package/dist/src/index.js +6 -0
  31. package/dist/src/index.js.map +1 -0
  32. package/dist/src/model/document.d.ts +99 -0
  33. package/dist/src/model/document.js +88 -0
  34. package/dist/src/model/document.js.map +1 -0
  35. package/dist/src/udf/cdata-builder.d.ts +14 -0
  36. package/dist/src/udf/cdata-builder.js +59 -0
  37. package/dist/src/udf/cdata-builder.js.map +1 -0
  38. package/dist/src/udf/parser.d.ts +2 -0
  39. package/dist/src/udf/parser.js +293 -0
  40. package/dist/src/udf/parser.js.map +1 -0
  41. package/dist/src/udf/serializer.d.ts +5 -0
  42. package/dist/src/udf/serializer.js +228 -0
  43. package/dist/src/udf/serializer.js.map +1 -0
  44. package/dist/src/utils/color.d.ts +9 -0
  45. package/dist/src/utils/color.js +87 -0
  46. package/dist/src/utils/color.js.map +1 -0
  47. package/dist/src/utils/style.d.ts +18 -0
  48. package/dist/src/utils/style.js +55 -0
  49. package/dist/src/utils/style.js.map +1 -0
  50. package/package.json +47 -0
@@ -0,0 +1,18 @@
1
+ export interface ParsedStyle {
2
+ [key: string]: string;
3
+ }
4
+ /**
5
+ * Parse a CSS inline style string into a key-value object.
6
+ * Keys are camelCase (e.g. "fontSize", "fontFamily").
7
+ */
8
+ export declare function parseInlineStyle(style: string): ParsedStyle;
9
+ /**
10
+ * Parse a font-size CSS value to points.
11
+ * Supports: px (converts to pt), pt (as-is), bare numbers (assumed pt).
12
+ */
13
+ export declare function parseFontSize(value: string): number;
14
+ /**
15
+ * Build a CSS inline style string from a record of properties.
16
+ * Keys should be camelCase, they'll be converted to kebab-case.
17
+ */
18
+ export declare function buildInlineStyle(props: Record<string, string | number | undefined>): string;
@@ -0,0 +1,55 @@
1
+ /**
2
+ * Parse a CSS inline style string into a key-value object.
3
+ * Keys are camelCase (e.g. "fontSize", "fontFamily").
4
+ */
5
+ export function parseInlineStyle(style) {
6
+ const result = {};
7
+ if (!style)
8
+ return result;
9
+ const declarations = style.split(';');
10
+ for (const decl of declarations) {
11
+ const colonIdx = decl.indexOf(':');
12
+ if (colonIdx === -1)
13
+ continue;
14
+ const prop = decl.slice(0, colonIdx).trim();
15
+ const value = decl.slice(colonIdx + 1).trim();
16
+ if (!prop || !value)
17
+ continue;
18
+ const camelProp = prop.replace(/-([a-z])/g, (_, c) => c.toUpperCase());
19
+ result[camelProp] = value;
20
+ }
21
+ return result;
22
+ }
23
+ /**
24
+ * Parse a font-size CSS value to points.
25
+ * Supports: px (converts to pt), pt (as-is), bare numbers (assumed pt).
26
+ */
27
+ export function parseFontSize(value) {
28
+ const match = value.match(/^([\d.]+)\s*(px|pt|em|rem)?$/);
29
+ if (!match)
30
+ return 12; // default
31
+ const num = parseFloat(match[1]);
32
+ const unit = match[2] || 'pt';
33
+ switch (unit) {
34
+ case 'px': return num * 0.75;
35
+ case 'pt': return num;
36
+ case 'em':
37
+ case 'rem': return num * 12; // assume 12pt base
38
+ default: return num;
39
+ }
40
+ }
41
+ /**
42
+ * Build a CSS inline style string from a record of properties.
43
+ * Keys should be camelCase, they'll be converted to kebab-case.
44
+ */
45
+ export function buildInlineStyle(props) {
46
+ const parts = [];
47
+ for (const [key, value] of Object.entries(props)) {
48
+ if (value === undefined || value === '')
49
+ continue;
50
+ const kebab = key.replace(/([A-Z])/g, '-$1').toLowerCase();
51
+ parts.push(`${kebab}:${value}`);
52
+ }
53
+ return parts.join(';');
54
+ }
55
+ //# sourceMappingURL=style.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"style.js","sourceRoot":"","sources":["../../../src/utils/style.ts"],"names":[],"mappings":"AAIA;;;GAGG;AACH,MAAM,UAAU,gBAAgB,CAAC,KAAa;IAC5C,MAAM,MAAM,GAAgB,EAAE,CAAC;IAC/B,IAAI,CAAC,KAAK;QAAE,OAAO,MAAM,CAAC;IAE1B,MAAM,YAAY,GAAG,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IACtC,KAAK,MAAM,IAAI,IAAI,YAAY,EAAE,CAAC;QAChC,MAAM,QAAQ,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;QACnC,IAAI,QAAQ,KAAK,CAAC,CAAC;YAAE,SAAS;QAC9B,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC,IAAI,EAAE,CAAC;QAC5C,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,QAAQ,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;QAC9C,IAAI,CAAC,IAAI,IAAI,CAAC,KAAK;YAAE,SAAS;QAC9B,MAAM,SAAS,GAAG,IAAI,CAAC,OAAO,CAAC,WAAW,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC,CAAC;QACvE,MAAM,CAAC,SAAS,CAAC,GAAG,KAAK,CAAC;IAC5B,CAAC;IACD,OAAO,MAAM,CAAC;AAChB,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,aAAa,CAAC,KAAa;IACzC,MAAM,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC,8BAA8B,CAAC,CAAC;IAC1D,IAAI,CAAC,KAAK;QAAE,OAAO,EAAE,CAAC,CAAC,UAAU;IACjC,MAAM,GAAG,GAAG,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;IACjC,MAAM,IAAI,GAAG,KAAK,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC;IAC9B,QAAQ,IAAI,EAAE,CAAC;QACb,KAAK,IAAI,CAAC,CAAC,OAAO,GAAG,GAAG,IAAI,CAAC;QAC7B,KAAK,IAAI,CAAC,CAAC,OAAO,GAAG,CAAC;QACtB,KAAK,IAAI,CAAC;QACV,KAAK,KAAK,CAAC,CAAC,OAAO,GAAG,GAAG,EAAE,CAAC,CAAC,mBAAmB;QAChD,OAAO,CAAC,CAAC,OAAO,GAAG,CAAC;IACtB,CAAC;AACH,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,gBAAgB,CAAC,KAAkD;IACjF,MAAM,KAAK,GAAa,EAAE,CAAC;IAC3B,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;QACjD,IAAI,KAAK,KAAK,SAAS,IAAI,KAAK,KAAK,EAAE;YAAE,SAAS;QAClD,MAAM,KAAK,GAAG,GAAG,CAAC,OAAO,CAAC,UAAU,EAAE,KAAK,CAAC,CAAC,WAAW,EAAE,CAAC;QAC3D,KAAK,CAAC,IAAI,CAAC,GAAG,KAAK,IAAI,KAAK,EAAE,CAAC,CAAC;IAClC,CAAC;IACD,OAAO,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AACzB,CAAC"}
package/package.json ADDED
@@ -0,0 +1,47 @@
1
+ {
2
+ "name": "udf-cli",
3
+ "version": "0.1.0",
4
+ "description": "Convert between HTML/Markdown and UYAP UDF file format",
5
+ "type": "module",
6
+ "bin": {
7
+ "udf-cli": "./dist/bin/udf-cli.js"
8
+ },
9
+ "main": "./dist/src/index.js",
10
+ "types": "./dist/src/index.d.ts",
11
+ "exports": {
12
+ ".": "./dist/src/index.js"
13
+ },
14
+ "files": [
15
+ "dist"
16
+ ],
17
+ "keywords": [
18
+ "uyap",
19
+ "udf",
20
+ "converter",
21
+ "html",
22
+ "markdown",
23
+ "legal",
24
+ "turkey"
25
+ ],
26
+ "repository": {
27
+ "type": "git",
28
+ "url": "https://github.com/saidsurucu/udf-cli.git"
29
+ },
30
+ "license": "MIT",
31
+ "scripts": {
32
+ "build": "tsc",
33
+ "prepublishOnly": "npm run build",
34
+ "test": "vitest run",
35
+ "test:watch": "vitest"
36
+ },
37
+ "dependencies": {
38
+ "commander": "^14.0.3",
39
+ "htmlparser2": "^10.1.0",
40
+ "jszip": "^3.10.1"
41
+ },
42
+ "devDependencies": {
43
+ "@types/node": "^25.5.0",
44
+ "typescript": "^5.9.3",
45
+ "vitest": "^4.1.0"
46
+ }
47
+ }