@sciencestack-ai/tokens 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 (210) hide show
  1. package/README.md +102 -0
  2. package/dist/base/AbstractTokenNode.d.ts +100 -0
  3. package/dist/base/AbstractTokenNode.d.ts.map +1 -0
  4. package/dist/base/AbstractTokenNode.js +253 -0
  5. package/dist/base/AbstractTokenNode.js.map +1 -0
  6. package/dist/base/BaseTableFigureTokenNode.d.ts +26 -0
  7. package/dist/base/BaseTableFigureTokenNode.d.ts.map +1 -0
  8. package/dist/base/BaseTableFigureTokenNode.js +113 -0
  9. package/dist/base/BaseTableFigureTokenNode.js.map +1 -0
  10. package/dist/base/BaseTokenNode.d.ts +25 -0
  11. package/dist/base/BaseTokenNode.d.ts.map +1 -0
  12. package/dist/base/BaseTokenNode.js +137 -0
  13. package/dist/base/BaseTokenNode.js.map +1 -0
  14. package/dist/base/ITokenNodeFactory.d.ts +6 -0
  15. package/dist/base/ITokenNodeFactory.d.ts.map +1 -0
  16. package/dist/base/ITokenNodeFactory.js +2 -0
  17. package/dist/base/ITokenNodeFactory.js.map +1 -0
  18. package/dist/base/NodeRoles.d.ts +6 -0
  19. package/dist/base/NodeRoles.d.ts.map +1 -0
  20. package/dist/base/NodeRoles.js +7 -0
  21. package/dist/base/NodeRoles.js.map +1 -0
  22. package/dist/base/TokenNodeFactory.d.ts +9 -0
  23. package/dist/base/TokenNodeFactory.d.ts.map +1 -0
  24. package/dist/base/TokenNodeFactory.js +94 -0
  25. package/dist/base/TokenNodeFactory.js.map +1 -0
  26. package/dist/content/CaptionTokenNode.d.ts +23 -0
  27. package/dist/content/CaptionTokenNode.d.ts.map +1 -0
  28. package/dist/content/CaptionTokenNode.js +79 -0
  29. package/dist/content/CaptionTokenNode.js.map +1 -0
  30. package/dist/content/QuoteTokenNode.d.ts +12 -0
  31. package/dist/content/QuoteTokenNode.d.ts.map +1 -0
  32. package/dist/content/QuoteTokenNode.js +27 -0
  33. package/dist/content/QuoteTokenNode.js.map +1 -0
  34. package/dist/content/TextTokenNode.d.ts +26 -0
  35. package/dist/content/TextTokenNode.d.ts.map +1 -0
  36. package/dist/content/TextTokenNode.js +70 -0
  37. package/dist/content/TextTokenNode.js.map +1 -0
  38. package/dist/document/AbstractSectionTokenNode.d.ts +12 -0
  39. package/dist/document/AbstractSectionTokenNode.d.ts.map +1 -0
  40. package/dist/document/AbstractSectionTokenNode.js +22 -0
  41. package/dist/document/AbstractSectionTokenNode.js.map +1 -0
  42. package/dist/document/AppendixTokenNode.d.ts +12 -0
  43. package/dist/document/AppendixTokenNode.d.ts.map +1 -0
  44. package/dist/document/AppendixTokenNode.js +24 -0
  45. package/dist/document/AppendixTokenNode.js.map +1 -0
  46. package/dist/document/BaseEnvTokenNode.d.ts +20 -0
  47. package/dist/document/BaseEnvTokenNode.d.ts.map +1 -0
  48. package/dist/document/BaseEnvTokenNode.js +76 -0
  49. package/dist/document/BaseEnvTokenNode.js.map +1 -0
  50. package/dist/document/DocumentTokenNode.d.ts +11 -0
  51. package/dist/document/DocumentTokenNode.d.ts.map +1 -0
  52. package/dist/document/DocumentTokenNode.js +17 -0
  53. package/dist/document/DocumentTokenNode.js.map +1 -0
  54. package/dist/document/EnvironmentTokenNode.d.ts +12 -0
  55. package/dist/document/EnvironmentTokenNode.d.ts.map +1 -0
  56. package/dist/document/EnvironmentTokenNode.js +22 -0
  57. package/dist/document/EnvironmentTokenNode.js.map +1 -0
  58. package/dist/document/GroupTokenNode.d.ts +9 -0
  59. package/dist/document/GroupTokenNode.d.ts.map +1 -0
  60. package/dist/document/GroupTokenNode.js +16 -0
  61. package/dist/document/GroupTokenNode.js.map +1 -0
  62. package/dist/document/MathEnvTokenNode.d.ts +21 -0
  63. package/dist/document/MathEnvTokenNode.d.ts.map +1 -0
  64. package/dist/document/MathEnvTokenNode.js +91 -0
  65. package/dist/document/MathEnvTokenNode.js.map +1 -0
  66. package/dist/document/SectionTokenNode.d.ts +17 -0
  67. package/dist/document/SectionTokenNode.d.ts.map +1 -0
  68. package/dist/document/SectionTokenNode.js +66 -0
  69. package/dist/document/SectionTokenNode.js.map +1 -0
  70. package/dist/document/TitleTokenNode.d.ts +11 -0
  71. package/dist/document/TitleTokenNode.d.ts.map +1 -0
  72. package/dist/document/TitleTokenNode.js +19 -0
  73. package/dist/document/TitleTokenNode.js.map +1 -0
  74. package/dist/export_types.d.ts +46 -0
  75. package/dist/export_types.d.ts.map +1 -0
  76. package/dist/export_types.js +27 -0
  77. package/dist/export_types.js.map +1 -0
  78. package/dist/figures/DiagramTokenNode.d.ts +22 -0
  79. package/dist/figures/DiagramTokenNode.d.ts.map +1 -0
  80. package/dist/figures/DiagramTokenNode.js +62 -0
  81. package/dist/figures/DiagramTokenNode.js.map +1 -0
  82. package/dist/figures/FigureTokenNode.d.ts +11 -0
  83. package/dist/figures/FigureTokenNode.d.ts.map +1 -0
  84. package/dist/figures/FigureTokenNode.js +18 -0
  85. package/dist/figures/FigureTokenNode.js.map +1 -0
  86. package/dist/figures/IncludeGraphicsTokenNode.d.ts +20 -0
  87. package/dist/figures/IncludeGraphicsTokenNode.d.ts.map +1 -0
  88. package/dist/figures/IncludeGraphicsTokenNode.js +44 -0
  89. package/dist/figures/IncludeGraphicsTokenNode.js.map +1 -0
  90. package/dist/figures/IncludePdfTokenNode.d.ts +18 -0
  91. package/dist/figures/IncludePdfTokenNode.d.ts.map +1 -0
  92. package/dist/figures/IncludePdfTokenNode.js +38 -0
  93. package/dist/figures/IncludePdfTokenNode.js.map +1 -0
  94. package/dist/figures/SubFigureTokenNode.d.ts +11 -0
  95. package/dist/figures/SubFigureTokenNode.d.ts.map +1 -0
  96. package/dist/figures/SubFigureTokenNode.js +18 -0
  97. package/dist/figures/SubFigureTokenNode.js.map +1 -0
  98. package/dist/graph/graphTypes.d.ts +42 -0
  99. package/dist/graph/graphTypes.d.ts.map +1 -0
  100. package/dist/graph/graphTypes.js +75 -0
  101. package/dist/graph/graphTypes.js.map +1 -0
  102. package/dist/graph/index.d.ts +4 -0
  103. package/dist/graph/index.d.ts.map +1 -0
  104. package/dist/graph/index.js +3 -0
  105. package/dist/graph/index.js.map +1 -0
  106. package/dist/graph/mathColors.d.ts +11 -0
  107. package/dist/graph/mathColors.d.ts.map +1 -0
  108. package/dist/graph/mathColors.js +20 -0
  109. package/dist/graph/mathColors.js.map +1 -0
  110. package/dist/graph/mathDepGraph.d.ts +4 -0
  111. package/dist/graph/mathDepGraph.d.ts.map +1 -0
  112. package/dist/graph/mathDepGraph.js +320 -0
  113. package/dist/graph/mathDepGraph.js.map +1 -0
  114. package/dist/index.d.ts +42 -0
  115. package/dist/index.d.ts.map +1 -0
  116. package/dist/index.js +54 -0
  117. package/dist/index.js.map +1 -0
  118. package/dist/lists/ListItemTokenNode.d.ts +15 -0
  119. package/dist/lists/ListItemTokenNode.d.ts.map +1 -0
  120. package/dist/lists/ListItemTokenNode.js +91 -0
  121. package/dist/lists/ListItemTokenNode.js.map +1 -0
  122. package/dist/lists/ListTokenNode.d.ts +19 -0
  123. package/dist/lists/ListTokenNode.d.ts.map +1 -0
  124. package/dist/lists/ListTokenNode.js +52 -0
  125. package/dist/lists/ListTokenNode.js.map +1 -0
  126. package/dist/metadata/AuthorTokenNode.d.ts +12 -0
  127. package/dist/metadata/AuthorTokenNode.d.ts.map +1 -0
  128. package/dist/metadata/AuthorTokenNode.js +39 -0
  129. package/dist/metadata/AuthorTokenNode.js.map +1 -0
  130. package/dist/metadata/MetadataTokenNode.d.ts +16 -0
  131. package/dist/metadata/MetadataTokenNode.d.ts.map +1 -0
  132. package/dist/metadata/MetadataTokenNode.js +35 -0
  133. package/dist/metadata/MetadataTokenNode.js.map +1 -0
  134. package/dist/references/BibitemTokenNode.d.ts +34 -0
  135. package/dist/references/BibitemTokenNode.d.ts.map +1 -0
  136. package/dist/references/BibitemTokenNode.js +149 -0
  137. package/dist/references/BibitemTokenNode.js.map +1 -0
  138. package/dist/references/CitationTokenNode.d.ts +19 -0
  139. package/dist/references/CitationTokenNode.d.ts.map +1 -0
  140. package/dist/references/CitationTokenNode.js +56 -0
  141. package/dist/references/CitationTokenNode.js.map +1 -0
  142. package/dist/references/FootnoteTokenNode.d.ts +13 -0
  143. package/dist/references/FootnoteTokenNode.d.ts.map +1 -0
  144. package/dist/references/FootnoteTokenNode.js +24 -0
  145. package/dist/references/FootnoteTokenNode.js.map +1 -0
  146. package/dist/references/ReferenceTokenNode.d.ts +19 -0
  147. package/dist/references/ReferenceTokenNode.d.ts.map +1 -0
  148. package/dist/references/ReferenceTokenNode.js +87 -0
  149. package/dist/references/ReferenceTokenNode.js.map +1 -0
  150. package/dist/references/UrlTokenNode.d.ts +17 -0
  151. package/dist/references/UrlTokenNode.d.ts.map +1 -0
  152. package/dist/references/UrlTokenNode.js +33 -0
  153. package/dist/references/UrlTokenNode.js.map +1 -0
  154. package/dist/styles.d.ts +9 -0
  155. package/dist/styles.d.ts.map +1 -0
  156. package/dist/styles.js +122 -0
  157. package/dist/styles.js.map +1 -0
  158. package/dist/tables/SubTableTokenNode.d.ts +11 -0
  159. package/dist/tables/SubTableTokenNode.d.ts.map +1 -0
  160. package/dist/tables/SubTableTokenNode.js +18 -0
  161. package/dist/tables/SubTableTokenNode.js.map +1 -0
  162. package/dist/tables/TableTokenNode.d.ts +11 -0
  163. package/dist/tables/TableTokenNode.d.ts.map +1 -0
  164. package/dist/tables/TableTokenNode.js +18 -0
  165. package/dist/tables/TableTokenNode.js.map +1 -0
  166. package/dist/tables/TabularTokenNode.d.ts +63 -0
  167. package/dist/tables/TabularTokenNode.d.ts.map +1 -0
  168. package/dist/tables/TabularTokenNode.js +318 -0
  169. package/dist/tables/TabularTokenNode.js.map +1 -0
  170. package/dist/technical/AlgorithmTokenNode.d.ts +22 -0
  171. package/dist/technical/AlgorithmTokenNode.d.ts.map +1 -0
  172. package/dist/technical/AlgorithmTokenNode.js +54 -0
  173. package/dist/technical/AlgorithmTokenNode.js.map +1 -0
  174. package/dist/technical/CodeTokenNode.d.ts +16 -0
  175. package/dist/technical/CodeTokenNode.d.ts.map +1 -0
  176. package/dist/technical/CodeTokenNode.js +43 -0
  177. package/dist/technical/CodeTokenNode.js.map +1 -0
  178. package/dist/technical/CommandTokenNode.d.ts +14 -0
  179. package/dist/technical/CommandTokenNode.d.ts.map +1 -0
  180. package/dist/technical/CommandTokenNode.js +26 -0
  181. package/dist/technical/CommandTokenNode.js.map +1 -0
  182. package/dist/technical/EquationArrayTokenNode.d.ts +40 -0
  183. package/dist/technical/EquationArrayTokenNode.d.ts.map +1 -0
  184. package/dist/technical/EquationArrayTokenNode.js +220 -0
  185. package/dist/technical/EquationArrayTokenNode.js.map +1 -0
  186. package/dist/technical/EquationTokenNode.d.ts +19 -0
  187. package/dist/technical/EquationTokenNode.d.ts.map +1 -0
  188. package/dist/technical/EquationTokenNode.js +96 -0
  189. package/dist/technical/EquationTokenNode.js.map +1 -0
  190. package/dist/tokenProcessing.d.ts +4 -0
  191. package/dist/tokenProcessing.d.ts.map +1 -0
  192. package/dist/tokenProcessing.js +19 -0
  193. package/dist/tokenProcessing.js.map +1 -0
  194. package/dist/types.d.ts +287 -0
  195. package/dist/types.d.ts.map +1 -0
  196. package/dist/types.js +90 -0
  197. package/dist/types.js.map +1 -0
  198. package/dist/utils/arxiv.d.ts +57 -0
  199. package/dist/utils/arxiv.d.ts.map +1 -0
  200. package/dist/utils/arxiv.js +142 -0
  201. package/dist/utils/arxiv.js.map +1 -0
  202. package/dist/utils/citationConverters.d.ts +33 -0
  203. package/dist/utils/citationConverters.d.ts.map +1 -0
  204. package/dist/utils/citationConverters.js +151 -0
  205. package/dist/utils/citationConverters.js.map +1 -0
  206. package/dist/utils.d.ts +14 -0
  207. package/dist/utils.d.ts.map +1 -0
  208. package/dist/utils.js +117 -0
  209. package/dist/utils.js.map +1 -0
  210. package/package.json +44 -0
@@ -0,0 +1,151 @@
1
+ export var CitationStyle;
2
+ (function (CitationStyle) {
3
+ CitationStyle["MLA"] = "MLA";
4
+ CitationStyle["APA"] = "APA";
5
+ CitationStyle["CHICAGO"] = "CHICAGO";
6
+ CitationStyle["HOVER"] = "HOVER"; // Title-first format optimized for hover tooltips
7
+ })(CitationStyle || (CitationStyle = {}));
8
+ // Helper function to format journal name
9
+ function formatJournal(journal, forCopy) {
10
+ if (!journal?.trim())
11
+ return '';
12
+ return forCopy ? journal.trim() : `_${journal.trim()}_`;
13
+ }
14
+ // Helper function to format author names
15
+ function formatAuthors(authors, style) {
16
+ // If authors is a string, just return it directly
17
+ if (!authors || typeof authors === 'string') {
18
+ return authors;
19
+ }
20
+ switch (style) {
21
+ case 'MLA':
22
+ return formatMLAAuthors(authors);
23
+ case 'APA':
24
+ return formatAPAAuthors(authors);
25
+ case 'CHICAGO':
26
+ return formatChicagoAuthors(authors);
27
+ case 'HOVER':
28
+ return formatHoverAuthors(authors);
29
+ }
30
+ }
31
+ function formatMLAAuthors(authors) {
32
+ const authorList = authors.map((author, index) => {
33
+ if (index === 0)
34
+ return `${author.lastName}, ${author.firstName}`;
35
+ return `${author.firstName} ${author.lastName}`;
36
+ });
37
+ return authors.length > 2 ? `${authorList[0]} et al` : authorList.join(' and ');
38
+ }
39
+ function formatAPAAuthors(authors) {
40
+ const authorList = authors.map((author) => `${author.lastName}, ${author.firstName.charAt(0)}.`);
41
+ return authorList.length > 1
42
+ ? `${authorList.slice(0, -1).join(', ')}, & ${authorList[authorList.length - 1]}`
43
+ : authorList[0];
44
+ }
45
+ function formatChicagoAuthors(authors) {
46
+ return authors
47
+ .map((author, index) => {
48
+ if (index === 0)
49
+ return `${author.lastName}, ${author.firstName}`;
50
+ return `${author.firstName} ${author.lastName}`;
51
+ })
52
+ .join(', ');
53
+ }
54
+ function formatHoverAuthors(authors) {
55
+ // Simplified format for hover tooltips - just first author + et al for readability
56
+ if (authors.length === 0)
57
+ return '';
58
+ if (authors.length === 1)
59
+ return authors[0].lastName;
60
+ if (authors.length === 2)
61
+ return `${authors[0].lastName} & ${authors[1].lastName}`;
62
+ return `${authors[0].lastName} et al.`;
63
+ }
64
+ export function replaceBibtexKey(bibtex, newKey) {
65
+ const keyMatch = bibtex.match(/@\w+\s*\{([^,]+)\s*,/);
66
+ if (keyMatch) {
67
+ return bibtex.replace(keyMatch[1], newKey);
68
+ }
69
+ return bibtex;
70
+ }
71
+ // Consolidate BibTeX cleaning logic
72
+ export function cleanBibtex(bibtex) {
73
+ return bibtex.replace(/\n/g, ' ').replace(/\s+/g, ' ');
74
+ }
75
+ export function parseBibTeX(bibtex) {
76
+ const cleanedBibtex = cleanBibtex(bibtex);
77
+ const extractField = (field) => {
78
+ const match = cleanedBibtex.match(new RegExp(`(?:^|,\\s*)${field}\\s*=\\s*\\{([^}]+)\\}`, 'i'));
79
+ return match ? match[1].replace(/[{}]/g, '') : '';
80
+ };
81
+ const authorMatch = cleanedBibtex.match(/author\s*=\s*\{([^}]+)\}/i);
82
+ const authorsStr = authorMatch ? authorMatch[1] : '';
83
+ const authors = authorsStr.split(/\s+and\s+/).map((author) => {
84
+ if (author.includes(',')) {
85
+ const [lastName, firstName] = author.split(',').map((s) => s.trim());
86
+ return { firstName, lastName };
87
+ }
88
+ else {
89
+ const parts = author.trim().split(/\s+/);
90
+ return {
91
+ firstName: parts.slice(0, -1).join(' '),
92
+ lastName: parts[parts.length - 1]
93
+ };
94
+ }
95
+ });
96
+ // Convert iterator to array before using for...of
97
+ const fieldMatches = Array.from(cleanedBibtex.matchAll(/,?\s*(\w+)\s*=\s*\{([^}]+)\}/g));
98
+ const additionalFields = {};
99
+ for (const match of fieldMatches) {
100
+ const [, field, value] = match;
101
+ const fieldName = field.toLowerCase();
102
+ // Skip fields we're already handling specifically
103
+ if (!['title', 'author', 'journal', 'booktitle', 'year', 'volume'].includes(fieldName)) {
104
+ additionalFields[fieldName] = value.replace(/[{}]/g, '');
105
+ }
106
+ }
107
+ return {
108
+ title: extractField('title') || undefined,
109
+ authors,
110
+ journal: extractField('journal') || extractField('booktitle') || undefined,
111
+ year: extractField('year') || undefined,
112
+ volume: extractField('volume') || undefined,
113
+ additionalFields
114
+ };
115
+ }
116
+ export function formatCitation(parsed, style, options = {}) {
117
+ const { forCopy = false } = options;
118
+ const formattedAuthors = formatAuthors(parsed.authors, style);
119
+ const formattedJournal = formatJournal(parsed.journal, forCopy);
120
+ const parts = [];
121
+ switch (style) {
122
+ case 'MLA':
123
+ parts.push(`${formattedAuthors}.`, parsed.title ? `"${parsed.title}."` : '', formattedJournal, [parsed.volume?.trim(), parsed.year ? `(${parsed.year})` : ''].filter(Boolean).join(' '));
124
+ break;
125
+ case 'APA':
126
+ parts.push(formattedAuthors, parsed.year ? `(${parsed.year}).` : '.', parsed.title ? `${parsed.title}.` : '', [formattedJournal, parsed.volume?.trim()].filter(Boolean).join(', '));
127
+ break;
128
+ case 'CHICAGO':
129
+ parts.push(`${formattedAuthors}.`, parsed.title ? `"${parsed.title}."` : '', [formattedJournal, parsed.volume?.trim(), parsed.year ? `(${parsed.year})` : ''].filter(Boolean).join(' '));
130
+ break;
131
+ case 'HOVER':
132
+ // Title-first format optimized for hover tooltips and quick identification
133
+ if (parsed.title) {
134
+ parts.push(`${parsed.title}. `);
135
+ }
136
+ const authorYear = [formattedAuthors, parsed.year ? `(${parsed.year})` : ''].filter(Boolean).join(' ');
137
+ if (authorYear) {
138
+ parts.push(authorYear);
139
+ }
140
+ if (formattedJournal) {
141
+ parts.push(`${formattedJournal}${parsed.volume ? `, vol. ${parsed.volume}` : ''}`);
142
+ }
143
+ break;
144
+ }
145
+ return parts.filter(Boolean).join(' ');
146
+ }
147
+ export const toMLA = (parsed, forCopy = false) => formatCitation(parsed, CitationStyle.MLA, { forCopy });
148
+ export const toAPA = (parsed, forCopy = false) => formatCitation(parsed, CitationStyle.APA, { forCopy });
149
+ export const toChicago = (parsed, forCopy = false) => formatCitation(parsed, CitationStyle.CHICAGO, { forCopy });
150
+ export const toHover = (parsed, forCopy = false) => formatCitation(parsed, CitationStyle.HOVER, { forCopy });
151
+ //# sourceMappingURL=citationConverters.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"citationConverters.js","sourceRoot":"","sources":["../../src/utils/citationConverters.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,14 @@
1
+ import { BaseToken } from './types';
2
+ export declare function convertTokens2String(tokens: (BaseToken | string)[]): string;
3
+ export declare function extractLabelsFromChilds(token: BaseToken, extractLabelFunc: (label: string) => boolean): string[];
4
+ export declare function shouldAddSpace(currentToken: BaseToken, previousToken: BaseToken): boolean;
5
+ export declare function addTokenSpacesIfNeeded(tokens: BaseToken[]): void;
6
+ /**
7
+ * Escapes special LaTeX characters in a string to make it safe for LaTeX.
8
+ * Characters like &, %, $, #, _, {, }, ~, ^, and \ are escaped if not already preceded by a backslash.
9
+ *
10
+ * @param text The input text to escape
11
+ * @returns The text with LaTeX special characters properly escaped
12
+ */
13
+ export declare function escapeLatexSpecialChars(text: string): string;
14
+ //# sourceMappingURL=utils.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../src/utils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAwC,MAAM,SAAS,CAAC;AAG1E,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,CAAC,SAAS,GAAG,MAAM,CAAC,EAAE,GAAG,MAAM,CAuB3E;AAED,wBAAgB,uBAAuB,CAAC,KAAK,EAAE,SAAS,EAAE,gBAAgB,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,OAAO,YAsBrG;AAKD,wBAAgB,cAAc,CAAC,YAAY,EAAE,SAAS,EAAE,aAAa,EAAE,SAAS,WAiB/E;AAED,wBAAgB,sBAAsB,CAAC,MAAM,EAAE,SAAS,EAAE,QAQzD;AAED;;;;;;GAMG;AACH,wBAAgB,uBAAuB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAqC5D"}
package/dist/utils.js ADDED
@@ -0,0 +1,117 @@
1
+ import { DisplayType, TokenType } from './types';
2
+ import { IsInlineToken } from './styles';
3
+ export function convertTokens2String(tokens) {
4
+ let outStr = '';
5
+ for (let t of tokens) {
6
+ if (!t)
7
+ continue;
8
+ if (typeof t == 'string') {
9
+ outStr += t;
10
+ continue;
11
+ }
12
+ if (!t.content)
13
+ continue;
14
+ if (typeof t.content == 'string') {
15
+ outStr += t.content;
16
+ continue;
17
+ }
18
+ let contentStr = '';
19
+ if (Array.isArray(t.content)) {
20
+ contentStr = convertTokens2String(t.content);
21
+ }
22
+ if (t.type == TokenType.EQUATION && t.display != DisplayType.BLOCK) {
23
+ contentStr = '$' + contentStr + '$';
24
+ }
25
+ outStr += contentStr;
26
+ }
27
+ return outStr;
28
+ }
29
+ export function extractLabelsFromChilds(token, extractLabelFunc) {
30
+ // extract any fig: labels from direct childs to this figure token
31
+ const labels = token.labels || [];
32
+ if (token.content) {
33
+ for (let c of token.content) {
34
+ if (typeof c != 'string' && c.labels && Array.isArray(c.labels)) {
35
+ // Iterate through labels in reverse to safely splice
36
+ for (let i = c.labels.length - 1; i >= 0; i--) {
37
+ const label = c.labels[i];
38
+ if (extractLabelFunc(label)) {
39
+ labels.push(label);
40
+ c.labels.splice(i, 1);
41
+ }
42
+ }
43
+ }
44
+ }
45
+ }
46
+ token.labels = labels;
47
+ return labels;
48
+ }
49
+ const openingPunctuation = ['(', '[', '{'];
50
+ const closingPunctuation = ['.', ',', '!', '?', ':', ';', ')', ']', '}'];
51
+ export function shouldAddSpace(currentToken, previousToken) {
52
+ if (currentToken?.type != TokenType.TEXT)
53
+ return false;
54
+ if (IsInlineToken(previousToken)) {
55
+ const content = currentToken.content;
56
+ const noSpace = !content.startsWith(' ') && !closingPunctuation.some((mark) => content.startsWith(mark));
57
+ if (noSpace && previousToken?.type == TokenType.TEXT) {
58
+ const prevContent = previousToken.content;
59
+ return !prevContent.endsWith(' ') && !openingPunctuation.some((mark) => prevContent.endsWith(mark));
60
+ }
61
+ return noSpace;
62
+ }
63
+ return false;
64
+ }
65
+ export function addTokenSpacesIfNeeded(tokens) {
66
+ for (let i = 1; i < tokens.length; i++) {
67
+ const currentToken = tokens[i];
68
+ const previousToken = tokens[i - 1];
69
+ if (shouldAddSpace(currentToken, previousToken)) {
70
+ currentToken.content = ' ' + currentToken.content;
71
+ }
72
+ }
73
+ }
74
+ /**
75
+ * Escapes special LaTeX characters in a string to make it safe for LaTeX.
76
+ * Characters like &, %, $, #, _, {, }, ~, ^, and \ are escaped if not already preceded by a backslash.
77
+ *
78
+ * @param text The input text to escape
79
+ * @returns The text with LaTeX special characters properly escaped
80
+ */
81
+ export function escapeLatexSpecialChars(text) {
82
+ if (!text)
83
+ return '';
84
+ // Define special characters that need escaping in LaTeX
85
+ const specialChars = ['&', '%', '#', '_', '{', '}', '~', '^', '\\']; // $
86
+ let result = '';
87
+ for (let i = 0; i < text.length; i++) {
88
+ const char = text[i];
89
+ // Check if the current character is a special character
90
+ if (specialChars.includes(char)) {
91
+ // Check if it's already escaped (preceded by a backslash that isn't itself escaped)
92
+ let isEscaped = false;
93
+ if (i > 0) {
94
+ // Count the number of consecutive backslashes before this character
95
+ let backslashCount = 0;
96
+ let j = i - 1;
97
+ while (j >= 0 && text[j] === '\\') {
98
+ backslashCount++;
99
+ j--;
100
+ }
101
+ // If there's an odd number of backslashes, the character is already escaped
102
+ isEscaped = backslashCount % 2 === 1;
103
+ }
104
+ if (!isEscaped) {
105
+ result += '\\' + char; // Escape the character
106
+ }
107
+ else {
108
+ result += char; // Already escaped, add as is
109
+ }
110
+ }
111
+ else {
112
+ result += char; // Not a special character, add as is
113
+ }
114
+ }
115
+ return result;
116
+ }
117
+ //# sourceMappingURL=utils.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"utils.js","sourceRoot":"","sources":["../src/utils.ts"],"names":[],"mappings":"AAAA,OAAO,EAA2B,WAAW,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;AAC1E,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAEzC,MAAM,UAAU,oBAAoB,CAAC,MAA8B;IACjE,IAAI,MAAM,GAAG,EAAE,CAAC;IAChB,KAAK,IAAI,CAAC,IAAI,MAAM,EAAE,CAAC;QACrB,IAAI,CAAC,CAAC;YAAE,SAAS;QACjB,IAAI,OAAO,CAAC,IAAI,QAAQ,EAAE,CAAC;YACzB,MAAM,IAAI,CAAC,CAAC;YACZ,SAAS;QACX,CAAC;QACD,IAAI,CAAC,CAAC,CAAC,OAAO;YAAE,SAAS;QACzB,IAAI,OAAO,CAAC,CAAC,OAAO,IAAI,QAAQ,EAAE,CAAC;YACjC,MAAM,IAAI,CAAC,CAAC,OAAO,CAAC;YACpB,SAAS;QACX,CAAC;QACD,IAAI,UAAU,GAAG,EAAE,CAAC;QACpB,IAAI,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC;YAC7B,UAAU,GAAG,oBAAoB,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC;QAC/C,CAAC;QACD,IAAI,CAAC,CAAC,IAAI,IAAI,SAAS,CAAC,QAAQ,IAAK,CAAS,CAAC,OAAO,IAAI,WAAW,CAAC,KAAK,EAAE,CAAC;YAC5E,UAAU,GAAG,GAAG,GAAG,UAAU,GAAG,GAAG,CAAC;QACtC,CAAC;QACD,MAAM,IAAI,UAAU,CAAC;IACvB,CAAC;IACD,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,MAAM,UAAU,uBAAuB,CAAC,KAAgB,EAAE,gBAA4C;IACpG,kEAAkE;IAClE,MAAM,MAAM,GAAa,KAAK,CAAC,MAAM,IAAI,EAAE,CAAC;IAE5C,IAAI,KAAK,CAAC,OAAO,EAAE,CAAC;QAClB,KAAK,IAAI,CAAC,IAAI,KAAK,CAAC,OAAO,EAAE,CAAC;YAC5B,IAAI,OAAO,CAAC,IAAI,QAAQ,IAAI,CAAC,CAAC,MAAM,IAAI,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC;gBAChE,qDAAqD;gBACrD,KAAK,IAAI,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;oBAC9C,MAAM,KAAK,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;oBAC1B,IAAI,gBAAgB,CAAC,KAAK,CAAC,EAAE,CAAC;wBAC5B,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;wBACnB,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;oBACxB,CAAC;gBACH,CAAC;YACH,CAAC;QACH,CAAC;IACH,CAAC;IAED,KAAK,CAAC,MAAM,GAAG,MAAM,CAAC;IAEtB,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,MAAM,kBAAkB,GAAG,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC;AAC3C,MAAM,kBAAkB,GAAG,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC;AAEzE,MAAM,UAAU,cAAc,CAAC,YAAuB,EAAE,aAAwB;IAC9E,IAAI,YAAY,EAAE,IAAI,IAAI,SAAS,CAAC,IAAI;QAAE,OAAO,KAAK,CAAC;IAEvD,IAAI,aAAa,CAAC,aAAa,CAAC,EAAE,CAAC;QACjC,MAAM,OAAO,GAAG,YAAY,CAAC,OAAiB,CAAC;QAE/C,MAAM,OAAO,GAAG,CAAC,OAAO,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,OAAO,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC;QAEzG,IAAI,OAAO,IAAI,aAAa,EAAE,IAAI,IAAI,SAAS,CAAC,IAAI,EAAE,CAAC;YACrD,MAAM,WAAW,GAAG,aAAa,CAAC,OAAiB,CAAC;YACpD,OAAO,CAAC,WAAW,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,WAAW,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC;QACtG,CAAC;QAED,OAAO,OAAO,CAAC;IACjB,CAAC;IAED,OAAO,KAAK,CAAC;AACf,CAAC;AAED,MAAM,UAAU,sBAAsB,CAAC,MAAmB;IACxD,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QACvC,MAAM,YAAY,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;QAC/B,MAAM,aAAa,GAAG,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;QACpC,IAAI,cAAc,CAAC,YAAY,EAAE,aAAa,CAAC,EAAE,CAAC;YAChD,YAAY,CAAC,OAAO,GAAG,GAAG,GAAG,YAAY,CAAC,OAAO,CAAC;QACpD,CAAC;IACH,CAAC;AACH,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,uBAAuB,CAAC,IAAY;IAClD,IAAI,CAAC,IAAI;QAAE,OAAO,EAAE,CAAC;IAErB,wDAAwD;IACxD,MAAM,YAAY,GAAG,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,IAAI,CAAC,CAAC,CAAC,IAAI;IAEzE,IAAI,MAAM,GAAG,EAAE,CAAC;IAChB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QACrC,MAAM,IAAI,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;QAErB,wDAAwD;QACxD,IAAI,YAAY,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC;YAChC,oFAAoF;YACpF,IAAI,SAAS,GAAG,KAAK,CAAC;YACtB,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC;gBACV,oEAAoE;gBACpE,IAAI,cAAc,GAAG,CAAC,CAAC;gBACvB,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;gBACd,OAAO,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,KAAK,IAAI,EAAE,CAAC;oBAClC,cAAc,EAAE,CAAC;oBACjB,CAAC,EAAE,CAAC;gBACN,CAAC;gBACD,4EAA4E;gBAC5E,SAAS,GAAG,cAAc,GAAG,CAAC,KAAK,CAAC,CAAC;YACvC,CAAC;YAED,IAAI,CAAC,SAAS,EAAE,CAAC;gBACf,MAAM,IAAI,IAAI,GAAG,IAAI,CAAC,CAAC,uBAAuB;YAChD,CAAC;iBAAM,CAAC;gBACN,MAAM,IAAI,IAAI,CAAC,CAAC,6BAA6B;YAC/C,CAAC;QACH,CAAC;aAAM,CAAC;YACN,MAAM,IAAI,IAAI,CAAC,CAAC,qCAAqC;QACvD,CAAC;IACH,CAAC;IAED,OAAO,MAAM,CAAC;AAChB,CAAC"}
package/package.json ADDED
@@ -0,0 +1,44 @@
1
+ {
2
+ "name": "@sciencestack-ai/tokens",
3
+ "version": "0.1.0",
4
+ "description": "TypeScript types and interfaces for ScienceStack AST tokens",
5
+ "repository": {
6
+ "type": "git",
7
+ "url": "git+https://github.com/sciencestack-ai/sciencestack-tokens.git"
8
+ },
9
+ "main": "dist/index.js",
10
+ "types": "dist/index.d.ts",
11
+ "type": "module",
12
+ "keywords": [
13
+ "sciencestack",
14
+ "ast",
15
+ "tokens",
16
+ "latex",
17
+ "types",
18
+ "typescript"
19
+ ],
20
+ "author": "",
21
+ "license": "MIT",
22
+ "files": [
23
+ "dist",
24
+ "README.md"
25
+ ],
26
+ "devDependencies": {
27
+ "@vitest/coverage-v8": "^2.1.8",
28
+ "typescript": "^5.5.2",
29
+ "vitest": "^2.1.8"
30
+ },
31
+ "publishConfig": {
32
+ "access": "public"
33
+ },
34
+ "dependencies": {
35
+ "nanoid": "^5.1.6"
36
+ },
37
+ "scripts": {
38
+ "build": "tsc",
39
+ "dev": "tsc --watch",
40
+ "test": "vitest run",
41
+ "test:watch": "vitest",
42
+ "test:coverage": "vitest run --coverage"
43
+ }
44
+ }