formatferry 0.1.3 → 1.0.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 (85) hide show
  1. package/dist/commands/auth.d.ts +17 -0
  2. package/dist/commands/auth.d.ts.map +1 -0
  3. package/dist/commands/auth.js +102 -0
  4. package/dist/commands/auth.js.map +1 -0
  5. package/dist/commands/batch.d.ts +10 -0
  6. package/dist/commands/batch.d.ts.map +1 -0
  7. package/dist/commands/batch.js +92 -0
  8. package/dist/commands/batch.js.map +1 -0
  9. package/dist/commands/convert.d.ts +26 -0
  10. package/dist/commands/convert.d.ts.map +1 -0
  11. package/dist/commands/convert.js +198 -0
  12. package/dist/commands/convert.js.map +1 -0
  13. package/dist/config-store.d.ts +27 -0
  14. package/dist/config-store.d.ts.map +1 -0
  15. package/dist/config-store.js +58 -0
  16. package/dist/config-store.js.map +1 -0
  17. package/dist/entitlement.d.ts +11 -0
  18. package/dist/entitlement.d.ts.map +1 -0
  19. package/dist/entitlement.js +91 -0
  20. package/dist/entitlement.js.map +1 -0
  21. package/dist/index.d.ts +2 -0
  22. package/dist/index.d.ts.map +1 -0
  23. package/dist/index.js +31 -11
  24. package/dist/index.js.map +1 -0
  25. package/dist/packages/cli/src/commands/auth.d.ts +17 -0
  26. package/dist/packages/cli/src/commands/auth.d.ts.map +1 -0
  27. package/dist/packages/cli/src/commands/auth.js +102 -0
  28. package/dist/packages/cli/src/commands/auth.js.map +1 -0
  29. package/dist/packages/cli/src/commands/batch.d.ts +10 -0
  30. package/dist/packages/cli/src/commands/batch.d.ts.map +1 -0
  31. package/dist/packages/cli/src/commands/batch.js +92 -0
  32. package/dist/packages/cli/src/commands/batch.js.map +1 -0
  33. package/dist/packages/cli/src/commands/convert.d.ts +26 -0
  34. package/dist/packages/cli/src/commands/convert.d.ts.map +1 -0
  35. package/dist/packages/cli/src/commands/convert.js +198 -0
  36. package/dist/packages/cli/src/commands/convert.js.map +1 -0
  37. package/dist/packages/cli/src/config-store.d.ts +27 -0
  38. package/dist/packages/cli/src/config-store.d.ts.map +1 -0
  39. package/dist/packages/cli/src/config-store.js +58 -0
  40. package/dist/packages/cli/src/config-store.js.map +1 -0
  41. package/dist/packages/cli/src/entitlement.d.ts +11 -0
  42. package/dist/packages/cli/src/entitlement.d.ts.map +1 -0
  43. package/dist/packages/cli/src/entitlement.js +91 -0
  44. package/dist/packages/cli/src/entitlement.js.map +1 -0
  45. package/dist/packages/cli/src/index.d.ts +2 -0
  46. package/dist/packages/cli/src/index.d.ts.map +1 -0
  47. package/dist/packages/cli/src/index.js +28 -0
  48. package/dist/packages/cli/src/index.js.map +1 -0
  49. package/dist/packages/cli/src/shim.d.ts +2 -0
  50. package/dist/packages/cli/src/shim.d.ts.map +1 -0
  51. package/dist/packages/cli/src/shim.js +21 -0
  52. package/dist/packages/cli/src/shim.js.map +1 -0
  53. package/dist/shim.d.ts +2 -0
  54. package/dist/shim.d.ts.map +1 -0
  55. package/dist/shim.js +21 -0
  56. package/dist/shim.js.map +1 -0
  57. package/dist/src/shared/adapters/docx-adapter.d.ts +85 -0
  58. package/dist/src/shared/adapters/docx-adapter.d.ts.map +1 -0
  59. package/dist/src/shared/adapters/docx-adapter.js +164 -0
  60. package/dist/src/shared/adapters/docx-adapter.js.map +1 -0
  61. package/dist/src/shared/adapters/pdf-adapter.d.ts +94 -0
  62. package/dist/src/shared/adapters/pdf-adapter.d.ts.map +1 -0
  63. package/dist/src/shared/adapters/pdf-adapter.js +322 -0
  64. package/dist/src/shared/adapters/pdf-adapter.js.map +1 -0
  65. package/dist/src/shared/adapters/spreadsheet-adapter.d.ts +98 -0
  66. package/dist/src/shared/adapters/spreadsheet-adapter.d.ts.map +1 -0
  67. package/dist/src/shared/adapters/spreadsheet-adapter.js +424 -0
  68. package/dist/src/shared/adapters/spreadsheet-adapter.js.map +1 -0
  69. package/dist/src/shared/atlassian-detector.d.ts +6 -0
  70. package/dist/src/shared/atlassian-detector.d.ts.map +1 -0
  71. package/dist/src/shared/atlassian-detector.js +23 -0
  72. package/dist/src/shared/atlassian-detector.js.map +1 -0
  73. package/dist/src/shared/conversion-engine.d.ts +114 -0
  74. package/dist/src/shared/conversion-engine.d.ts.map +1 -0
  75. package/dist/src/shared/conversion-engine.js +790 -0
  76. package/dist/src/shared/conversion-engine.js.map +1 -0
  77. package/dist/src/shared/entitlement-service.d.ts +42 -0
  78. package/dist/src/shared/entitlement-service.d.ts.map +1 -0
  79. package/dist/src/shared/entitlement-service.js +38 -0
  80. package/dist/src/shared/entitlement-service.js.map +1 -0
  81. package/dist/src/shared/input-sanitizer.d.ts +93 -0
  82. package/dist/src/shared/input-sanitizer.d.ts.map +1 -0
  83. package/dist/src/shared/input-sanitizer.js +527 -0
  84. package/dist/src/shared/input-sanitizer.js.map +1 -0
  85. package/package.json +6 -2
@@ -0,0 +1,114 @@
1
+ import TurndownService from 'turndown';
2
+ /**
3
+ * Supported markdown output formats
4
+ */
5
+ export type MarkdownFormat = 'github' | 'commonmark' | 'custom' | 'discord' | 'reddit' | 'rmarkdown';
6
+ export interface ConversionOptions {
7
+ format: MarkdownFormat;
8
+ preserveTables: boolean;
9
+ preserveLists: boolean;
10
+ customRules: CustomRule[];
11
+ }
12
+ export interface CustomRule {
13
+ name: string;
14
+ filter: TurndownService.Filter;
15
+ replacement: (content: string, node?: HTMLElement) => string;
16
+ }
17
+ export interface ConversionResult {
18
+ markdown: string;
19
+ warnings: string[];
20
+ metadata: ConversionMetadata;
21
+ }
22
+ export interface ConversionMetadata {
23
+ originalLength: number;
24
+ convertedLength: number;
25
+ processingTime: number;
26
+ formatUsed: string;
27
+ rulesApplied: string[];
28
+ }
29
+ export interface ValidationResult {
30
+ isValid: boolean;
31
+ errors: string[];
32
+ warnings: string[];
33
+ }
34
+ export declare class ConversionEngine {
35
+ private githubService;
36
+ private commonmarkService;
37
+ private customService;
38
+ private discordService;
39
+ private redditService;
40
+ private rmarkdownService;
41
+ constructor();
42
+ private initializeServices;
43
+ /**
44
+ * Create Discord-optimized Turndown service
45
+ * - Underline support (__text__)
46
+ * - Heading limit (H1-H3 only)
47
+ * - Tables converted to code blocks
48
+ * - Images converted to links
49
+ */
50
+ private createDiscordService;
51
+ /**
52
+ * Apply format-specific post-processing for Unicode characters
53
+ * Handles checkboxes, superscript, and subscript Unicode characters
54
+ */
55
+ private applyFormatPostProcessing;
56
+ /**
57
+ * Normalize checkbox patterns for GitHub task list syntax
58
+ * Converts Unicode checkboxes to [x] and [ ]
59
+ */
60
+ private normalizeGitHubCheckboxes;
61
+ /**
62
+ * Normalize checkbox patterns in markdown output for Discord
63
+ * Converts [x], [ ], and other checkbox patterns to emoji
64
+ */
65
+ private normalizeDiscordCheckboxes;
66
+ /**
67
+ * Normalize Unicode for Reddit format
68
+ * Converts Unicode superscript to ^text syntax
69
+ */
70
+ private normalizeRedditUnicode;
71
+ /**
72
+ * Normalize Unicode for R Markdown format
73
+ * Converts Unicode superscript/subscript to Pandoc syntax
74
+ */
75
+ private normalizeRMarkdownUnicode;
76
+ /**
77
+ * Create Reddit-optimized Turndown service
78
+ * - Superscript support (^text or ^(text with spaces))
79
+ * - Subscript to bracketed text
80
+ * - Fenced code blocks (new Reddit)
81
+ */
82
+ private createRedditService;
83
+ /**
84
+ * Create R Markdown-optimized Turndown service
85
+ * - Pandoc superscript (^text^)
86
+ * - Pandoc subscript (~text~)
87
+ * - Math expression preservation
88
+ */
89
+ private createRMarkdownService;
90
+ /**
91
+ * Convert HTML table to plain text for Discord code blocks
92
+ */
93
+ private tableToPlainText;
94
+ private addGoogleDocsRules;
95
+ private addTableRules;
96
+ private addListRules;
97
+ private processListItem;
98
+ private processNestedList;
99
+ /**
100
+ * Add PDF page marker rules to convert data-page-marker divs to Markdown comments
101
+ * This preserves page boundaries from PDF documents (Req 3.5)
102
+ */
103
+ private addPdfPageMarkerRules;
104
+ convert(html: string, options?: ConversionOptions): Promise<ConversionResult>;
105
+ sanitize(html: string): string;
106
+ validateInput(input: string): ValidationResult;
107
+ getAvailableFormats(): Array<{
108
+ value: string;
109
+ label: string;
110
+ description: string;
111
+ }>;
112
+ createCustomRule(name: string, selector: TurndownService.Filter, replacement: (content: string) => string): CustomRule;
113
+ }
114
+ //# sourceMappingURL=conversion-engine.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"conversion-engine.d.ts","sourceRoot":"","sources":["../../../../../src/shared/conversion-engine.ts"],"names":[],"mappings":"AAAA,OAAO,eAAe,MAAM,UAAU,CAAC;AAGvC;;GAEG;AACH,MAAM,MAAM,cAAc,GACtB,QAAQ,GACR,YAAY,GACZ,QAAQ,GACR,SAAS,GACT,QAAQ,GACR,WAAW,CAAC;AAEhB,MAAM,WAAW,iBAAiB;IAChC,MAAM,EAAE,cAAc,CAAC;IACvB,cAAc,EAAE,OAAO,CAAC;IACxB,aAAa,EAAE,OAAO,CAAC;IACvB,WAAW,EAAE,UAAU,EAAE,CAAC;CAC3B;AAED,MAAM,WAAW,UAAU;IACzB,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,eAAe,CAAC,MAAM,CAAC;IAC/B,WAAW,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,WAAW,KAAK,MAAM,CAAC;CAC9D;AAED,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,MAAM,EAAE,CAAC;IACnB,QAAQ,EAAE,kBAAkB,CAAC;CAC9B;AAED,MAAM,WAAW,kBAAkB;IACjC,cAAc,EAAE,MAAM,CAAC;IACvB,eAAe,EAAE,MAAM,CAAC;IACxB,cAAc,EAAE,MAAM,CAAC;IACvB,UAAU,EAAE,MAAM,CAAC;IACnB,YAAY,EAAE,MAAM,EAAE,CAAC;CACxB;AAED,MAAM,WAAW,gBAAgB;IAC/B,OAAO,EAAE,OAAO,CAAC;IACjB,MAAM,EAAE,MAAM,EAAE,CAAC;IACjB,QAAQ,EAAE,MAAM,EAAE,CAAC;CACpB;AAED,qBAAa,gBAAgB;IAC3B,OAAO,CAAC,aAAa,CAAmB;IACxC,OAAO,CAAC,iBAAiB,CAAmB;IAC5C,OAAO,CAAC,aAAa,CAAmB;IACxC,OAAO,CAAC,cAAc,CAAmB;IACzC,OAAO,CAAC,aAAa,CAAmB;IACxC,OAAO,CAAC,gBAAgB,CAAmB;;IAM3C,OAAO,CAAC,kBAAkB;IAsD1B;;;;;;OAMG;IACH,OAAO,CAAC,oBAAoB;IA6D5B;;;OAGG;IACH,OAAO,CAAC,yBAAyB;IAejC;;;OAGG;IACH,OAAO,CAAC,yBAAyB;IASjC;;;OAGG;IACH,OAAO,CAAC,0BAA0B;IAYlC;;;OAGG;IACH,OAAO,CAAC,sBAAsB;IAuB9B;;;OAGG;IACH,OAAO,CAAC,yBAAyB;IAsBjC;;;;;OAKG;IACH,OAAO,CAAC,mBAAmB;IAkE3B;;;;;OAKG;IACH,OAAO,CAAC,sBAAsB;IAgF9B;;OAEG;IACH,OAAO,CAAC,gBAAgB;IA4BxB,OAAO,CAAC,kBAAkB;IA4K1B,OAAO,CAAC,aAAa;IAqCrB,OAAO,CAAC,YAAY;IA2BpB,OAAO,CAAC,eAAe;IA0BvB,OAAO,CAAC,iBAAiB;IAqBzB;;;OAGG;IACH,OAAO,CAAC,qBAAqB;IAcvB,OAAO,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,GAAE,iBAKpC,GAAG,OAAO,CAAC,gBAAgB,CAAC;IAyE7B,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM;IAO9B,aAAa,CAAC,KAAK,EAAE,MAAM,GAAG,gBAAgB;IAiC9C,mBAAmB,IAAI,KAAK,CAAC;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAC;QAAC,WAAW,EAAE,MAAM,CAAA;KAAE,CAAC;IAqBnF,gBAAgB,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,eAAe,CAAC,MAAM,EAAE,WAAW,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,MAAM,GAAG,UAAU;CAOvH"}