@sciencestack-ai/tokens 0.1.1 → 0.1.3
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/base/AbstractTokenNode.js +2 -2
- package/dist/base/BaseTableFigureTokenNode.js +3 -3
- package/dist/base/BaseTokenNode.js +2 -2
- package/dist/base/TokenNodeFactory.js +2 -2
- package/dist/content/CaptionTokenNode.js +3 -3
- package/dist/content/QuoteTokenNode.js +1 -1
- package/dist/content/TextTokenNode.js +3 -3
- package/dist/document/AbstractSectionTokenNode.js +1 -1
- package/dist/document/AppendixTokenNode.js +1 -1
- package/dist/document/BaseEnvTokenNode.js +3 -3
- package/dist/document/DocumentTokenNode.js +1 -1
- package/dist/document/EnvironmentTokenNode.js +1 -1
- package/dist/document/GroupTokenNode.js +1 -1
- package/dist/document/MathEnvTokenNode.js +4 -4
- package/dist/document/SectionTokenNode.js +4 -4
- package/dist/document/TitleTokenNode.js +1 -1
- package/dist/figures/DiagramTokenNode.js +2 -2
- package/dist/figures/FigureTokenNode.js +1 -1
- package/dist/figures/IncludeGraphicsTokenNode.js +2 -2
- package/dist/figures/IncludePdfTokenNode.js +2 -2
- package/dist/figures/SubFigureTokenNode.js +1 -1
- package/dist/index.d.ts +6 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +47 -42
- package/dist/index.js.map +1 -1
- package/dist/lists/ListItemTokenNode.js +5 -5
- package/dist/lists/ListTokenNode.js +2 -2
- package/dist/metadata/AuthorTokenNode.js +2 -2
- package/dist/metadata/MetadataTokenNode.js +1 -1
- package/dist/references/BibitemTokenNode.js +5 -5
- package/dist/references/CitationTokenNode.js +2 -2
- package/dist/references/FootnoteTokenNode.js +2 -2
- package/dist/references/ReferenceTokenNode.js +2 -2
- package/dist/references/UrlTokenNode.js +1 -1
- package/dist/styles.js +1 -1
- package/dist/tables/SubTableTokenNode.js +1 -1
- package/dist/tables/TableTokenNode.js +1 -1
- package/dist/tables/TabularTokenNode.js +1 -1
- package/dist/technical/AlgorithmTokenNode.js +1 -1
- package/dist/technical/CodeTokenNode.js +2 -2
- package/dist/technical/CommandTokenNode.js +1 -1
- package/dist/technical/EquationArrayTokenNode.js +3 -3
- package/dist/technical/EquationTokenNode.js +2 -2
- package/dist/tokenProcessing.js +1 -1
- package/dist/utils.js +2 -2
- package/package.json +5 -2
- package/dist/graph/graphTypes.d.ts +0 -42
- package/dist/graph/graphTypes.d.ts.map +0 -1
- package/dist/graph/graphTypes.js +0 -75
- package/dist/graph/graphTypes.js.map +0 -1
- package/dist/graph/index.d.ts +0 -4
- package/dist/graph/index.d.ts.map +0 -1
- package/dist/graph/index.js +0 -3
- package/dist/graph/index.js.map +0 -1
- package/dist/graph/mathColors.d.ts +0 -11
- package/dist/graph/mathColors.d.ts.map +0 -1
- package/dist/graph/mathColors.js +0 -20
- package/dist/graph/mathColors.js.map +0 -1
- package/dist/graph/mathDepGraph.d.ts +0 -4
- package/dist/graph/mathDepGraph.d.ts.map +0 -1
- package/dist/graph/mathDepGraph.js +0 -320
- package/dist/graph/mathDepGraph.js.map +0 -1
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import { BaseTokenNode } from './BaseTokenNode';
|
|
2
|
-
import { convertTokens2String } from '../utils';
|
|
3
|
-
import { CaptionTokenNode } from '../content/CaptionTokenNode';
|
|
1
|
+
import { BaseTokenNode } from './BaseTokenNode.js';
|
|
2
|
+
import { convertTokens2String } from '../utils.js';
|
|
3
|
+
import { CaptionTokenNode } from '../content/CaptionTokenNode.js';
|
|
4
4
|
export class BaseTableFigureTokenNode extends BaseTokenNode {
|
|
5
5
|
tokenFactory;
|
|
6
6
|
_captionToken;
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { AbstractTokenNode } from './AbstractTokenNode';
|
|
2
|
-
import { NodeRoles } from './NodeRoles';
|
|
1
|
+
import { AbstractTokenNode } from './AbstractTokenNode.js';
|
|
2
|
+
import { NodeRoles } from './NodeRoles.js';
|
|
3
3
|
export class BaseTokenNode extends AbstractTokenNode {
|
|
4
4
|
tokenFactory;
|
|
5
5
|
constructor(token, id, tokenFactory) {
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { TokenType, METADATA_TOKEN_TYPES } from '../types';
|
|
2
|
-
import { SectionTokenNode, DocumentTokenNode, EquationTokenNode, CodeTokenNode, AlgorithmTokenNode, AlgorithmicTokenNode, TextTokenNode, QuoteTokenNode, CitationTokenNode, ReferenceTokenNode, UrlTokenNode, ListTokenNode, ListItemTokenNode, TableTokenNode, SubTableTokenNode, TabularTokenNode, CaptionTokenNode, GroupTokenNode, FootnoteTokenNode, FigureTokenNode, SubFigureTokenNode, IncludeGraphicsTokenNode, IncludePdfTokenNode, DiagramTokenNode, MathEnvTokenNode, EnvironmentTokenNode, AppendixTokenNode, CommandTokenNode, MetadataTokenNode, AbstractSectionTokenNode, TitleTokenNode, BibitemTokenNode, EquationArrayTokenNode, AuthorTokenNode } from '
|
|
1
|
+
import { TokenType, METADATA_TOKEN_TYPES } from '../types.js';
|
|
2
|
+
import { SectionTokenNode, DocumentTokenNode, EquationTokenNode, CodeTokenNode, AlgorithmTokenNode, AlgorithmicTokenNode, TextTokenNode, QuoteTokenNode, CitationTokenNode, ReferenceTokenNode, UrlTokenNode, ListTokenNode, ListItemTokenNode, TableTokenNode, SubTableTokenNode, TabularTokenNode, CaptionTokenNode, GroupTokenNode, FootnoteTokenNode, FigureTokenNode, SubFigureTokenNode, IncludeGraphicsTokenNode, IncludePdfTokenNode, DiagramTokenNode, MathEnvTokenNode, EnvironmentTokenNode, AppendixTokenNode, CommandTokenNode, MetadataTokenNode, AbstractSectionTokenNode, TitleTokenNode, BibitemTokenNode, EquationArrayTokenNode, AuthorTokenNode } from '...js';
|
|
3
3
|
// Define metadata token types array
|
|
4
4
|
export class TokenNodeFactory {
|
|
5
5
|
_excludedTokenTypes = [];
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import { TokenType } from '../types';
|
|
2
|
-
import { BaseTokenNode } from '../base/BaseTokenNode';
|
|
3
|
-
import { BaseTableFigureTokenNode } from '../base/BaseTableFigureTokenNode';
|
|
1
|
+
import { TokenType } from '../types.js';
|
|
2
|
+
import { BaseTokenNode } from '../base/BaseTokenNode.js';
|
|
3
|
+
import { BaseTableFigureTokenNode } from '../base/BaseTableFigureTokenNode.js';
|
|
4
4
|
export class CaptionTokenNode extends BaseTokenNode {
|
|
5
5
|
tokenFactory;
|
|
6
6
|
constructor(token, id, tokenFactory) {
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import { BaseTokenNode } from '../base/BaseTokenNode';
|
|
2
|
-
import { escapeLatexSpecialChars } from '../utils';
|
|
3
|
-
import { wrapStylesToLatex, wrapStylesToMarkdown } from '../styles';
|
|
1
|
+
import { BaseTokenNode } from '../base/BaseTokenNode.js';
|
|
2
|
+
import { escapeLatexSpecialChars } from '../utils.js';
|
|
3
|
+
import { wrapStylesToLatex, wrapStylesToMarkdown } from '../styles.js';
|
|
4
4
|
export class TextTokenNode extends BaseTokenNode {
|
|
5
5
|
tokenFactory;
|
|
6
6
|
constructor(token, id, tokenFactory) {
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import { BaseTokenNode } from '../base/BaseTokenNode';
|
|
2
|
-
import { convertTokens2String } from '../utils';
|
|
3
|
-
import { NodeRoles } from '../base/NodeRoles';
|
|
1
|
+
import { BaseTokenNode } from '../base/BaseTokenNode.js';
|
|
2
|
+
import { convertTokens2String } from '../utils.js';
|
|
3
|
+
import { NodeRoles } from '../base/NodeRoles.js';
|
|
4
4
|
export class BaseEnvTokenNode extends BaseTokenNode {
|
|
5
5
|
tokenFactory;
|
|
6
6
|
constructor(token, id, tokenFactory) {
|
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import { TokenType } from
|
|
2
|
-
import { BaseEnvTokenNode } from
|
|
3
|
-
import { BaseTokenNode } from
|
|
4
|
-
import { AbstractTokenNode } from
|
|
1
|
+
import { TokenType } from '../types.js';
|
|
2
|
+
import { BaseEnvTokenNode } from './BaseEnvTokenNode.js';
|
|
3
|
+
import { BaseTokenNode } from '../base/BaseTokenNode.js';
|
|
4
|
+
import { AbstractTokenNode } from '../base/AbstractTokenNode.js';
|
|
5
5
|
export class MathEnvTokenNode extends BaseEnvTokenNode {
|
|
6
6
|
tokenFactory;
|
|
7
7
|
_cachedTooltipContent = null;
|
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import { SECTION_LEVELS } from '../types';
|
|
2
|
-
import { BaseEnvTokenNode } from './BaseEnvTokenNode';
|
|
3
|
-
import { BaseTokenNode } from '../base/BaseTokenNode';
|
|
4
|
-
import { AbstractTokenNode } from '../base/AbstractTokenNode';
|
|
1
|
+
import { SECTION_LEVELS } from '../types.js';
|
|
2
|
+
import { BaseEnvTokenNode } from './BaseEnvTokenNode.js';
|
|
3
|
+
import { BaseTokenNode } from '../base/BaseTokenNode.js';
|
|
4
|
+
import { AbstractTokenNode } from '../base/AbstractTokenNode.js';
|
|
5
5
|
export class SectionTokenNode extends BaseEnvTokenNode {
|
|
6
6
|
tokenFactory;
|
|
7
7
|
constructor(token, id, tokenFactory) {
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { BaseTokenNode } from '../base/BaseTokenNode';
|
|
2
|
-
import { getAssetRelativePath } from '../export_types';
|
|
1
|
+
import { BaseTokenNode } from '../base/BaseTokenNode.js';
|
|
2
|
+
import { getAssetRelativePath } from '../export_types.js';
|
|
3
3
|
export class DiagramTokenNode extends BaseTokenNode {
|
|
4
4
|
tokenFactory;
|
|
5
5
|
constructor(token, id, tokenFactory) {
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { BaseTableFigureTokenNode } from '../base/BaseTableFigureTokenNode';
|
|
1
|
+
import { BaseTableFigureTokenNode } from '../base/BaseTableFigureTokenNode.js';
|
|
2
2
|
export class FigureTokenNode extends BaseTableFigureTokenNode {
|
|
3
3
|
tokenFactory;
|
|
4
4
|
constructor(token, id, tokenFactory) {
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { BaseTokenNode } from '../base/BaseTokenNode';
|
|
2
|
-
import { getAssetRelativePath } from '../export_types';
|
|
1
|
+
import { BaseTokenNode } from '../base/BaseTokenNode.js';
|
|
2
|
+
import { getAssetRelativePath } from '../export_types.js';
|
|
3
3
|
export class IncludeGraphicsTokenNode extends BaseTokenNode {
|
|
4
4
|
tokenFactory;
|
|
5
5
|
constructor(token, id, tokenFactory) {
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { BaseTokenNode } from '../base/BaseTokenNode';
|
|
2
|
-
import { getAssetRelativePath } from '../export_types';
|
|
1
|
+
import { BaseTokenNode } from '../base/BaseTokenNode.js';
|
|
2
|
+
import { getAssetRelativePath } from '../export_types.js';
|
|
3
3
|
export class IncludePdfTokenNode extends BaseTokenNode {
|
|
4
4
|
tokenFactory;
|
|
5
5
|
constructor(token, id, tokenFactory) {
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { BaseTableFigureTokenNode } from '../base/BaseTableFigureTokenNode';
|
|
1
|
+
import { BaseTableFigureTokenNode } from '../base/BaseTableFigureTokenNode.js';
|
|
2
2
|
export class SubFigureTokenNode extends BaseTableFigureTokenNode {
|
|
3
3
|
tokenFactory;
|
|
4
4
|
constructor(token, id, tokenFactory) {
|
package/dist/index.d.ts
CHANGED
|
@@ -4,9 +4,12 @@ export * from "./styles";
|
|
|
4
4
|
export * from "./utils";
|
|
5
5
|
export * from "./utils/arxiv";
|
|
6
6
|
export * from "./utils/citationConverters";
|
|
7
|
+
export { ITokenNodeFactory } from "./base/ITokenNodeFactory";
|
|
8
|
+
export { TokenNodeFactory } from "./base/TokenNodeFactory";
|
|
7
9
|
export { NodeRoles } from "./base/NodeRoles";
|
|
8
10
|
export { AbstractTokenNode } from "./base/AbstractTokenNode";
|
|
9
11
|
export { BaseTokenNode } from "./base/BaseTokenNode";
|
|
12
|
+
export { BaseTableFigureTokenNode } from "./base/BaseTableFigureTokenNode";
|
|
10
13
|
export { DocumentTokenNode } from "./document/DocumentTokenNode";
|
|
11
14
|
export { TitleTokenNode } from "./document/TitleTokenNode";
|
|
12
15
|
export { AbstractSectionTokenNode } from "./document/AbstractSectionTokenNode";
|
|
@@ -15,6 +18,7 @@ export { GroupTokenNode } from "./document/GroupTokenNode";
|
|
|
15
18
|
export { MathEnvTokenNode } from "./document/MathEnvTokenNode";
|
|
16
19
|
export { EnvironmentTokenNode } from "./document/EnvironmentTokenNode";
|
|
17
20
|
export { AppendixTokenNode } from "./document/AppendixTokenNode";
|
|
21
|
+
export { BaseEnvTokenNode } from "./document/BaseEnvTokenNode";
|
|
18
22
|
export { EquationTokenNode } from "./technical/EquationTokenNode";
|
|
19
23
|
export { EquationArrayTokenNode, EqArrayRowNode, } from "./technical/EquationArrayTokenNode";
|
|
20
24
|
export { CodeTokenNode } from "./technical/CodeTokenNode";
|
|
@@ -22,6 +26,7 @@ export { AlgorithmTokenNode, AlgorithmicTokenNode, } from "./technical/Algorithm
|
|
|
22
26
|
export { CommandTokenNode } from "./technical/CommandTokenNode";
|
|
23
27
|
export { TextTokenNode } from "./content/TextTokenNode";
|
|
24
28
|
export { QuoteTokenNode } from "./content/QuoteTokenNode";
|
|
29
|
+
export { CaptionTokenNode } from "./content/CaptionTokenNode";
|
|
25
30
|
export { CitationTokenNode } from "./references/CitationTokenNode";
|
|
26
31
|
export { ReferenceTokenNode } from "./references/ReferenceTokenNode";
|
|
27
32
|
export { FootnoteTokenNode } from "./references/FootnoteTokenNode";
|
|
@@ -31,7 +36,6 @@ export { ListItemTokenNode } from "./lists/ListItemTokenNode";
|
|
|
31
36
|
export { TableTokenNode } from "./tables/TableTokenNode";
|
|
32
37
|
export { SubTableTokenNode } from "./tables/SubTableTokenNode";
|
|
33
38
|
export { TabularTokenNode } from "./tables/TabularTokenNode";
|
|
34
|
-
export { CaptionTokenNode } from "./content/CaptionTokenNode";
|
|
35
39
|
export { FigureTokenNode } from "./figures/FigureTokenNode";
|
|
36
40
|
export { SubFigureTokenNode } from "./figures/SubFigureTokenNode";
|
|
37
41
|
export { IncludeGraphicsTokenNode } from "./figures/IncludeGraphicsTokenNode";
|
|
@@ -40,4 +44,5 @@ export { DiagramTokenNode } from "./figures/DiagramTokenNode";
|
|
|
40
44
|
export { MetadataTokenNode } from "./metadata/MetadataTokenNode";
|
|
41
45
|
export { AuthorTokenNode } from "./metadata/AuthorTokenNode";
|
|
42
46
|
export { BibitemTokenNode } from "./references/BibitemTokenNode";
|
|
47
|
+
export { processTokenNodes } from "./tokenProcessing";
|
|
43
48
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,cAAc,SAAS,CAAC;AACxB,cAAc,gBAAgB,CAAC;AAC/B,cAAc,UAAU,CAAC;AACzB,cAAc,SAAS,CAAC;AAGxB,cAAc,eAAe,CAAC;AAC9B,cAAc,4BAA4B,CAAC;AAG3C,OAAO,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAG7C,OAAO,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAC7D,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,cAAc,SAAS,CAAC;AACxB,cAAc,gBAAgB,CAAC;AAC/B,cAAc,UAAU,CAAC;AACzB,cAAc,SAAS,CAAC;AAGxB,cAAc,eAAe,CAAC;AAC9B,cAAc,4BAA4B,CAAC;AAG3C,OAAO,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAC7D,OAAO,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAG3D,OAAO,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAG7C,OAAO,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAC7D,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AACrD,OAAO,EAAE,wBAAwB,EAAE,MAAM,iCAAiC,CAAC;AAG3E,OAAO,EAAE,iBAAiB,EAAE,MAAM,8BAA8B,CAAC;AACjE,OAAO,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAC;AAC3D,OAAO,EAAE,wBAAwB,EAAE,MAAM,qCAAqC,CAAC;AAC/E,OAAO,EAAE,gBAAgB,EAAE,MAAM,6BAA6B,CAAC;AAC/D,OAAO,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAC;AAC3D,OAAO,EAAE,gBAAgB,EAAE,MAAM,6BAA6B,CAAC;AAC/D,OAAO,EAAE,oBAAoB,EAAE,MAAM,iCAAiC,CAAC;AACvE,OAAO,EAAE,iBAAiB,EAAE,MAAM,8BAA8B,CAAC;AACjE,OAAO,EAAE,gBAAgB,EAAE,MAAM,6BAA6B,CAAC;AAG/D,OAAO,EAAE,iBAAiB,EAAE,MAAM,+BAA+B,CAAC;AAClE,OAAO,EACL,sBAAsB,EACtB,cAAc,GACf,MAAM,oCAAoC,CAAC;AAC5C,OAAO,EAAE,aAAa,EAAE,MAAM,2BAA2B,CAAC;AAC1D,OAAO,EACL,kBAAkB,EAClB,oBAAoB,GACrB,MAAM,gCAAgC,CAAC;AACxC,OAAO,EAAE,gBAAgB,EAAE,MAAM,8BAA8B,CAAC;AAGhE,OAAO,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAC;AACxD,OAAO,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC;AAC1D,OAAO,EAAE,gBAAgB,EAAE,MAAM,4BAA4B,CAAC;AAG9D,OAAO,EAAE,iBAAiB,EAAE,MAAM,gCAAgC,CAAC;AACnE,OAAO,EAAE,kBAAkB,EAAE,MAAM,iCAAiC,CAAC;AACrE,OAAO,EAAE,iBAAiB,EAAE,MAAM,gCAAgC,CAAC;AACnE,OAAO,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AAGzD,OAAO,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AACtD,OAAO,EAAE,iBAAiB,EAAE,MAAM,2BAA2B,CAAC;AAG9D,OAAO,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAC;AACzD,OAAO,EAAE,iBAAiB,EAAE,MAAM,4BAA4B,CAAC;AAC/D,OAAO,EAAE,gBAAgB,EAAE,MAAM,2BAA2B,CAAC;AAG7D,OAAO,EAAE,eAAe,EAAE,MAAM,2BAA2B,CAAC;AAC5D,OAAO,EAAE,kBAAkB,EAAE,MAAM,8BAA8B,CAAC;AAClE,OAAO,EAAE,wBAAwB,EAAE,MAAM,oCAAoC,CAAC;AAC9E,OAAO,EAAE,mBAAmB,EAAE,MAAM,+BAA+B,CAAC;AACpE,OAAO,EAAE,gBAAgB,EAAE,MAAM,4BAA4B,CAAC;AAG9D,OAAO,EAAE,iBAAiB,EAAE,MAAM,8BAA8B,CAAC;AACjE,OAAO,EAAE,eAAe,EAAE,MAAM,4BAA4B,CAAC;AAG7D,OAAO,EAAE,gBAAgB,EAAE,MAAM,+BAA+B,CAAC;AAGjE,OAAO,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC"}
|
package/dist/index.js
CHANGED
|
@@ -1,56 +1,61 @@
|
|
|
1
1
|
// Export all types
|
|
2
|
-
export * from
|
|
3
|
-
export * from
|
|
4
|
-
export * from
|
|
5
|
-
export * from
|
|
2
|
+
export * from './types.js';
|
|
3
|
+
export * from './export_types.js';
|
|
4
|
+
export * from './styles.js';
|
|
5
|
+
export * from './utils.js';
|
|
6
6
|
// Export utilities
|
|
7
|
-
export * from
|
|
8
|
-
export * from
|
|
7
|
+
export * from './utils/arxiv.js';
|
|
8
|
+
export * from './utils/citationConverters.js';
|
|
9
|
+
export { TokenNodeFactory } from './base/TokenNodeFactory.js';
|
|
9
10
|
// Noderoles
|
|
10
|
-
export { NodeRoles } from
|
|
11
|
+
export { NodeRoles } from './base/NodeRoles.js';
|
|
11
12
|
// Base tokens
|
|
12
|
-
export { AbstractTokenNode } from
|
|
13
|
-
export { BaseTokenNode } from
|
|
13
|
+
export { AbstractTokenNode } from './base/AbstractTokenNode.js';
|
|
14
|
+
export { BaseTokenNode } from './base/BaseTokenNode.js';
|
|
15
|
+
export { BaseTableFigureTokenNode } from './base/BaseTableFigureTokenNode.js';
|
|
14
16
|
// Document tokens
|
|
15
|
-
export { DocumentTokenNode } from
|
|
16
|
-
export { TitleTokenNode } from
|
|
17
|
-
export { AbstractSectionTokenNode } from
|
|
18
|
-
export { SectionTokenNode } from
|
|
19
|
-
export { GroupTokenNode } from
|
|
20
|
-
export { MathEnvTokenNode } from
|
|
21
|
-
export { EnvironmentTokenNode } from
|
|
22
|
-
export { AppendixTokenNode } from
|
|
17
|
+
export { DocumentTokenNode } from './document/DocumentTokenNode.js';
|
|
18
|
+
export { TitleTokenNode } from './document/TitleTokenNode.js';
|
|
19
|
+
export { AbstractSectionTokenNode } from './document/AbstractSectionTokenNode.js';
|
|
20
|
+
export { SectionTokenNode } from './document/SectionTokenNode.js';
|
|
21
|
+
export { GroupTokenNode } from './document/GroupTokenNode.js';
|
|
22
|
+
export { MathEnvTokenNode } from './document/MathEnvTokenNode.js';
|
|
23
|
+
export { EnvironmentTokenNode } from './document/EnvironmentTokenNode.js';
|
|
24
|
+
export { AppendixTokenNode } from './document/AppendixTokenNode.js';
|
|
25
|
+
export { BaseEnvTokenNode } from './document/BaseEnvTokenNode.js';
|
|
23
26
|
// Technical tokens
|
|
24
|
-
export { EquationTokenNode } from
|
|
25
|
-
export { EquationArrayTokenNode, EqArrayRowNode, } from
|
|
26
|
-
export { CodeTokenNode } from
|
|
27
|
-
export { AlgorithmTokenNode, AlgorithmicTokenNode, } from
|
|
28
|
-
export { CommandTokenNode } from
|
|
27
|
+
export { EquationTokenNode } from './technical/EquationTokenNode.js';
|
|
28
|
+
export { EquationArrayTokenNode, EqArrayRowNode, } from './technical/EquationArrayTokenNode.js';
|
|
29
|
+
export { CodeTokenNode } from './technical/CodeTokenNode.js';
|
|
30
|
+
export { AlgorithmTokenNode, AlgorithmicTokenNode, } from './technical/AlgorithmTokenNode.js';
|
|
31
|
+
export { CommandTokenNode } from './technical/CommandTokenNode.js';
|
|
29
32
|
// Content tokens
|
|
30
|
-
export { TextTokenNode } from
|
|
31
|
-
export { QuoteTokenNode } from
|
|
33
|
+
export { TextTokenNode } from './content/TextTokenNode.js';
|
|
34
|
+
export { QuoteTokenNode } from './content/QuoteTokenNode.js';
|
|
35
|
+
export { CaptionTokenNode } from './content/CaptionTokenNode.js';
|
|
32
36
|
// References tokens
|
|
33
|
-
export { CitationTokenNode } from
|
|
34
|
-
export { ReferenceTokenNode } from
|
|
35
|
-
export { FootnoteTokenNode } from
|
|
36
|
-
export { UrlTokenNode } from
|
|
37
|
+
export { CitationTokenNode } from './references/CitationTokenNode.js';
|
|
38
|
+
export { ReferenceTokenNode } from './references/ReferenceTokenNode.js';
|
|
39
|
+
export { FootnoteTokenNode } from './references/FootnoteTokenNode.js';
|
|
40
|
+
export { UrlTokenNode } from './references/UrlTokenNode.js';
|
|
37
41
|
// Lists tokens
|
|
38
|
-
export { ListTokenNode } from
|
|
39
|
-
export { ListItemTokenNode } from
|
|
42
|
+
export { ListTokenNode } from './lists/ListTokenNode.js';
|
|
43
|
+
export { ListItemTokenNode } from './lists/ListItemTokenNode.js';
|
|
40
44
|
// Tables tokens
|
|
41
|
-
export { TableTokenNode } from
|
|
42
|
-
export { SubTableTokenNode } from
|
|
43
|
-
export { TabularTokenNode } from
|
|
44
|
-
export { CaptionTokenNode } from "./content/CaptionTokenNode";
|
|
45
|
+
export { TableTokenNode } from './tables/TableTokenNode.js';
|
|
46
|
+
export { SubTableTokenNode } from './tables/SubTableTokenNode.js';
|
|
47
|
+
export { TabularTokenNode } from './tables/TabularTokenNode.js';
|
|
45
48
|
// Figures tokens
|
|
46
|
-
export { FigureTokenNode } from
|
|
47
|
-
export { SubFigureTokenNode } from
|
|
48
|
-
export { IncludeGraphicsTokenNode } from
|
|
49
|
-
export { IncludePdfTokenNode } from
|
|
50
|
-
export { DiagramTokenNode } from
|
|
49
|
+
export { FigureTokenNode } from './figures/FigureTokenNode.js';
|
|
50
|
+
export { SubFigureTokenNode } from './figures/SubFigureTokenNode.js';
|
|
51
|
+
export { IncludeGraphicsTokenNode } from './figures/IncludeGraphicsTokenNode.js';
|
|
52
|
+
export { IncludePdfTokenNode } from './figures/IncludePdfTokenNode.js';
|
|
53
|
+
export { DiagramTokenNode } from './figures/DiagramTokenNode.js';
|
|
51
54
|
// metadata tokens
|
|
52
|
-
export { MetadataTokenNode } from
|
|
53
|
-
export { AuthorTokenNode } from
|
|
55
|
+
export { MetadataTokenNode } from './metadata/MetadataTokenNode.js';
|
|
56
|
+
export { AuthorTokenNode } from './metadata/AuthorTokenNode.js';
|
|
54
57
|
// bibliography tokens
|
|
55
|
-
export { BibitemTokenNode } from
|
|
58
|
+
export { BibitemTokenNode } from './references/BibitemTokenNode.js';
|
|
59
|
+
// Token processing
|
|
60
|
+
export { processTokenNodes } from './tokenProcessing.js';
|
|
56
61
|
//# sourceMappingURL=index.js.map
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,mBAAmB;AACnB,cAAc,SAAS,CAAC;AACxB,cAAc,gBAAgB,CAAC;AAC/B,cAAc,UAAU,CAAC;AACzB,cAAc,SAAS,CAAC;AAExB,mBAAmB;AACnB,cAAc,eAAe,CAAC;AAC9B,cAAc,4BAA4B,CAAC;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
import { ListType } from '../types';
|
|
2
|
-
import { BaseTokenNode } from '../base/BaseTokenNode';
|
|
3
|
-
import { BaseEnvTokenNode } from '../document/BaseEnvTokenNode';
|
|
4
|
-
import { ListTokenNode } from './ListTokenNode';
|
|
5
|
-
import { AbstractTokenNode } from '../base/AbstractTokenNode';
|
|
1
|
+
import { ListType } from '../types.js';
|
|
2
|
+
import { BaseTokenNode } from '../base/BaseTokenNode.js';
|
|
3
|
+
import { BaseEnvTokenNode } from '../document/BaseEnvTokenNode.js';
|
|
4
|
+
import { ListTokenNode } from './ListTokenNode.js';
|
|
5
|
+
import { AbstractTokenNode } from '../base/AbstractTokenNode.js';
|
|
6
6
|
const convertNumberToChar = (index) => {
|
|
7
7
|
return String.fromCharCode(97 + index); // a, b, c, ...
|
|
8
8
|
};
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { BaseTokenNode } from '../base/BaseTokenNode';
|
|
2
|
-
import { ListItemTokenNode } from './ListItemTokenNode';
|
|
1
|
+
import { BaseTokenNode } from '../base/BaseTokenNode.js';
|
|
2
|
+
import { ListItemTokenNode } from './ListItemTokenNode.js';
|
|
3
3
|
export class ListTokenNode extends BaseTokenNode {
|
|
4
4
|
tokenFactory;
|
|
5
5
|
constructor(token, id, tokenFactory) {
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { MetadataTokenNode } from './MetadataTokenNode';
|
|
2
|
-
import { CommandTokenNode } from '../technical/CommandTokenNode';
|
|
1
|
+
import { MetadataTokenNode } from './MetadataTokenNode.js';
|
|
2
|
+
import { CommandTokenNode } from '../technical/CommandTokenNode.js';
|
|
3
3
|
export class AuthorTokenNode extends MetadataTokenNode {
|
|
4
4
|
tokenFactory;
|
|
5
5
|
constructor(token, id, tokenFactory) {
|
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
import { BibFormat } from '../types';
|
|
2
|
-
import { AbstractTokenNode } from '../base/AbstractTokenNode';
|
|
3
|
-
import { convertTokens2String } from '../utils';
|
|
4
|
-
import { CitationStyle, formatCitation, replaceBibtexKey } from '../utils/citationConverters';
|
|
5
|
-
import { extractArxivIdFromBibtexFields, extractArxivId } from '../utils/arxiv';
|
|
1
|
+
import { BibFormat } from '../types.js';
|
|
2
|
+
import { AbstractTokenNode } from '../base/AbstractTokenNode.js';
|
|
3
|
+
import { convertTokens2String } from '../utils.js';
|
|
4
|
+
import { CitationStyle, formatCitation, replaceBibtexKey } from '../utils/citationConverters.js';
|
|
5
|
+
import { extractArxivIdFromBibtexFields, extractArxivId } from '../utils/arxiv.js';
|
|
6
6
|
export class BibitemTokenNode extends AbstractTokenNode {
|
|
7
7
|
tokenFactory;
|
|
8
8
|
_cachedContent = null;
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { AbstractTokenNode } from '../base/AbstractTokenNode';
|
|
2
|
-
import { convertTokens2String } from '../utils';
|
|
1
|
+
import { AbstractTokenNode } from '../base/AbstractTokenNode.js';
|
|
2
|
+
import { convertTokens2String } from '../utils.js';
|
|
3
3
|
export class CitationTokenNode extends AbstractTokenNode {
|
|
4
4
|
tokenFactory;
|
|
5
5
|
constructor(token, id, tokenFactory) {
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { BaseTokenNode } from '../base/BaseTokenNode';
|
|
2
|
-
import { convertTokens2String } from '../utils';
|
|
1
|
+
import { BaseTokenNode } from '../base/BaseTokenNode.js';
|
|
2
|
+
import { convertTokens2String } from '../utils.js';
|
|
3
3
|
export class FootnoteTokenNode extends BaseTokenNode {
|
|
4
4
|
tokenFactory;
|
|
5
5
|
constructor(token, id, tokenFactory) {
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { AbstractTokenNode } from
|
|
2
|
-
import { convertTokens2String } from
|
|
1
|
+
import { AbstractTokenNode } from '../base/AbstractTokenNode.js';
|
|
2
|
+
import { convertTokens2String } from '../utils.js';
|
|
3
3
|
export class ReferenceTokenNode extends AbstractTokenNode {
|
|
4
4
|
tokenFactory;
|
|
5
5
|
constructor(token, id, tokenFactory) {
|
package/dist/styles.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { BaseTableFigureTokenNode } from '../base/BaseTableFigureTokenNode';
|
|
1
|
+
import { BaseTableFigureTokenNode } from '../base/BaseTableFigureTokenNode.js';
|
|
2
2
|
export class SubTableTokenNode extends BaseTableFigureTokenNode {
|
|
3
3
|
tokenFactory;
|
|
4
4
|
constructor(token, id, tokenFactory) {
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { BaseTableFigureTokenNode } from '../base/BaseTableFigureTokenNode';
|
|
1
|
+
import { BaseTableFigureTokenNode } from '../base/BaseTableFigureTokenNode.js';
|
|
2
2
|
export class TableTokenNode extends BaseTableFigureTokenNode {
|
|
3
3
|
tokenFactory;
|
|
4
4
|
constructor(token, id, tokenFactory) {
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { DisplayType } from '../types';
|
|
2
|
-
import { BaseTokenNode } from '../base/BaseTokenNode';
|
|
1
|
+
import { DisplayType } from '../types.js';
|
|
2
|
+
import { BaseTokenNode } from '../base/BaseTokenNode.js';
|
|
3
3
|
export class CodeTokenNode extends BaseTokenNode {
|
|
4
4
|
tokenFactory;
|
|
5
5
|
constructor(token, id, tokenFactory) {
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import { AbstractTokenNode } from
|
|
2
|
-
import { TextTokenNode } from
|
|
3
|
-
import { EquationTokenNode } from
|
|
1
|
+
import { AbstractTokenNode } from '../base/AbstractTokenNode.js';
|
|
2
|
+
import { TextTokenNode } from '../content/TextTokenNode.js';
|
|
3
|
+
import { EquationTokenNode } from './EquationTokenNode.js';
|
|
4
4
|
export class EquationArrayTokenNode extends AbstractTokenNode {
|
|
5
5
|
tokenFactory;
|
|
6
6
|
constructor(token, id, tokenFactory) {
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { DisplayType } from
|
|
2
|
-
import { BaseTokenNode } from
|
|
1
|
+
import { DisplayType } from '../types.js';
|
|
2
|
+
import { BaseTokenNode } from '../base/BaseTokenNode.js';
|
|
3
3
|
export class EquationTokenNode extends BaseTokenNode {
|
|
4
4
|
tokenFactory;
|
|
5
5
|
constructor(token, id, tokenFactory) {
|
package/dist/tokenProcessing.js
CHANGED
package/dist/utils.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { DisplayType, TokenType } from './types';
|
|
2
|
-
import { IsInlineToken } from './styles';
|
|
1
|
+
import { DisplayType, TokenType } from './types.js';
|
|
2
|
+
import { IsInlineToken } from './styles.js';
|
|
3
3
|
export function convertTokens2String(tokens) {
|
|
4
4
|
let outStr = '';
|
|
5
5
|
for (let t of tokens) {
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@sciencestack-ai/tokens",
|
|
3
|
-
"version": "0.1.
|
|
3
|
+
"version": "0.1.3",
|
|
4
4
|
"description": "TypeScript types and interfaces for ScienceStack AST tokens",
|
|
5
5
|
"repository": {
|
|
6
6
|
"type": "git",
|
|
@@ -10,7 +10,7 @@
|
|
|
10
10
|
"types": "dist/index.d.ts",
|
|
11
11
|
"type": "module",
|
|
12
12
|
"scripts": {
|
|
13
|
-
"build": "tsc",
|
|
13
|
+
"build": "tsc && node scripts/fix-imports.js",
|
|
14
14
|
"dev": "tsc --watch",
|
|
15
15
|
"test": "vitest run",
|
|
16
16
|
"test:watch": "vitest",
|
|
@@ -33,6 +33,9 @@
|
|
|
33
33
|
],
|
|
34
34
|
"devDependencies": {
|
|
35
35
|
"@vitest/coverage-v8": "^2.1.8",
|
|
36
|
+
"glob": "^13.0.0",
|
|
37
|
+
"tsc-alias": "^1.8.16",
|
|
38
|
+
"tsup": "^8.5.1",
|
|
36
39
|
"typescript": "^5.5.2",
|
|
37
40
|
"vitest": "^2.1.8"
|
|
38
41
|
},
|
|
@@ -1,42 +0,0 @@
|
|
|
1
|
-
import { AbstractTokenNode } from '../';
|
|
2
|
-
export declare enum GraphNodeType {
|
|
3
|
-
mathEnv = "mathEnv",// e.g. theorem/lemma/definition/etc
|
|
4
|
-
proof = "proof"
|
|
5
|
-
}
|
|
6
|
-
export declare class GraphNode {
|
|
7
|
-
node: AbstractTokenNode;
|
|
8
|
-
type: GraphNodeType;
|
|
9
|
-
label: string;
|
|
10
|
-
parentNode?: GraphNode;
|
|
11
|
-
constructor(node: AbstractTokenNode, type: GraphNodeType, label: string);
|
|
12
|
-
get id(): string;
|
|
13
|
-
}
|
|
14
|
-
export declare class GraphEdge {
|
|
15
|
-
source: GraphNode;
|
|
16
|
-
target: GraphNode;
|
|
17
|
-
label?: string;
|
|
18
|
-
partial?: boolean;
|
|
19
|
-
constructor(source: GraphNode, target: GraphNode, label?: string, partial?: boolean);
|
|
20
|
-
}
|
|
21
|
-
export interface GraphData {
|
|
22
|
-
nodes: GraphNode[];
|
|
23
|
-
edges: GraphEdge[];
|
|
24
|
-
}
|
|
25
|
-
type NodeJson = {
|
|
26
|
-
id: string;
|
|
27
|
-
type: string;
|
|
28
|
-
numbering: string;
|
|
29
|
-
title?: string;
|
|
30
|
-
};
|
|
31
|
-
type EdgeJson = {
|
|
32
|
-
from: string;
|
|
33
|
-
to: string;
|
|
34
|
-
type: string;
|
|
35
|
-
indirect?: boolean;
|
|
36
|
-
};
|
|
37
|
-
export declare function graphdataToJSONForLLM(graphData: GraphData): {
|
|
38
|
-
nodes: NodeJson[];
|
|
39
|
-
edges: EdgeJson[];
|
|
40
|
-
};
|
|
41
|
-
export {};
|
|
42
|
-
//# sourceMappingURL=graphTypes.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"graphTypes.d.ts","sourceRoot":"","sources":["../../src/graph/graphTypes.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAoB,MAAM,KAAK,CAAC;AAE1D,oBAAY,aAAa;IACvB,OAAO,YAAY,CAAE,oCAAoC;IACzD,KAAK,UAAU;CAChB;AAED,qBAAa,SAAS;IACb,IAAI,EAAE,iBAAiB,CAAC;IACxB,IAAI,EAAE,aAAa,CAAC;IACpB,KAAK,EAAE,MAAM,CAAC;IACd,UAAU,CAAC,EAAE,SAAS,CAAC;gBAElB,IAAI,EAAE,iBAAiB,EAAE,IAAI,EAAE,aAAa,EAAE,KAAK,EAAE,MAAM;IAMvE,IAAI,EAAE,IAAI,MAAM,CAEf;CACF;AAED,qBAAa,SAAS;IACb,MAAM,EAAE,SAAS,CAAC;IAClB,MAAM,EAAE,SAAS,CAAC;IAClB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,OAAO,CAAC,EAAE,OAAO,CAAC;gBAEb,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE,KAAK,CAAC,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,OAAO;CAMpF;AAED,MAAM,WAAW,SAAS;IACxB,KAAK,EAAE,SAAS,EAAE,CAAC;IACnB,KAAK,EAAE,SAAS,EAAE,CAAC;CACpB;AAED,KAAK,QAAQ,GAAG;IACd,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,MAAM,CAAC;IAClB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB,CAAC;AAEF,KAAK,QAAQ,GAAG;IACd,IAAI,EAAE,MAAM,CAAC;IACb,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB,CAAC;AAEF,wBAAgB,qBAAqB,CAAC,SAAS,EAAE,SAAS;;;EA2CzD"}
|
package/dist/graph/graphTypes.js
DELETED
|
@@ -1,75 +0,0 @@
|
|
|
1
|
-
import { MathEnvTokenNode } from '../';
|
|
2
|
-
export var GraphNodeType;
|
|
3
|
-
(function (GraphNodeType) {
|
|
4
|
-
GraphNodeType["mathEnv"] = "mathEnv";
|
|
5
|
-
GraphNodeType["proof"] = "proof";
|
|
6
|
-
})(GraphNodeType || (GraphNodeType = {}));
|
|
7
|
-
export class GraphNode {
|
|
8
|
-
node;
|
|
9
|
-
type;
|
|
10
|
-
label;
|
|
11
|
-
parentNode; // For proof nodes attached to theorem nodes
|
|
12
|
-
constructor(node, type, label) {
|
|
13
|
-
this.node = node;
|
|
14
|
-
this.type = type;
|
|
15
|
-
this.label = label;
|
|
16
|
-
}
|
|
17
|
-
get id() {
|
|
18
|
-
return this.node.id;
|
|
19
|
-
}
|
|
20
|
-
}
|
|
21
|
-
export class GraphEdge {
|
|
22
|
-
source;
|
|
23
|
-
target;
|
|
24
|
-
label;
|
|
25
|
-
partial;
|
|
26
|
-
constructor(source, target, label, partial) {
|
|
27
|
-
this.source = source;
|
|
28
|
-
this.target = target;
|
|
29
|
-
this.label = label;
|
|
30
|
-
this.partial = partial;
|
|
31
|
-
}
|
|
32
|
-
}
|
|
33
|
-
export function graphdataToJSONForLLM(graphData) {
|
|
34
|
-
const nodes = [];
|
|
35
|
-
const edges = [];
|
|
36
|
-
const convertNodeToStr = (node) => {
|
|
37
|
-
if (node instanceof MathEnvTokenNode) {
|
|
38
|
-
const name = node.name.toLowerCase();
|
|
39
|
-
const nodeId = name + ' ' + node.numbering;
|
|
40
|
-
return nodeId;
|
|
41
|
-
}
|
|
42
|
-
return node.id;
|
|
43
|
-
};
|
|
44
|
-
for (const graphNode of graphData.nodes) {
|
|
45
|
-
const node = graphNode.node;
|
|
46
|
-
const nodeId = convertNodeToStr(node);
|
|
47
|
-
const nodeJson = {
|
|
48
|
-
id: nodeId,
|
|
49
|
-
type: node.name || node.constructor.name,
|
|
50
|
-
numbering: node.numbering ?? ''
|
|
51
|
-
};
|
|
52
|
-
if (typeof node.getTitleStr === 'function') {
|
|
53
|
-
const titleStr = node.getTitleStr(false);
|
|
54
|
-
if (titleStr.length > 0)
|
|
55
|
-
nodeJson.title = titleStr;
|
|
56
|
-
}
|
|
57
|
-
nodes.push(nodeJson);
|
|
58
|
-
}
|
|
59
|
-
for (const edge of graphData.edges) {
|
|
60
|
-
let label = edge.label ?? '';
|
|
61
|
-
if (label == 'proof') {
|
|
62
|
-
label = 'in proof of ' + convertNodeToStr(edge.target.node);
|
|
63
|
-
}
|
|
64
|
-
const edgeJson = {
|
|
65
|
-
from: convertNodeToStr(edge.source.node),
|
|
66
|
-
to: convertNodeToStr(edge.target.node),
|
|
67
|
-
type: label
|
|
68
|
-
};
|
|
69
|
-
if (edge.partial)
|
|
70
|
-
edgeJson.indirect = true;
|
|
71
|
-
edges.push(edgeJson);
|
|
72
|
-
}
|
|
73
|
-
return { nodes, edges };
|
|
74
|
-
}
|
|
75
|
-
//# sourceMappingURL=graphTypes.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"graphTypes.js","sourceRoot":"","sources":["../../src/graph/graphTypes.ts"],"names":[],"mappings":"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"}
|
package/dist/graph/index.d.ts
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/graph/index.ts"],"names":[],"mappings":"AAAA,YAAY,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAC9C,OAAO,EAAE,SAAS,EAAE,SAAS,EAAE,aAAa,IAAI,QAAQ,EAAE,MAAM,cAAc,CAAC;AAC/E,OAAO,EAAE,oBAAoB,EAAE,MAAM,gBAAgB,CAAC"}
|
package/dist/graph/index.js
DELETED
package/dist/graph/index.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/graph/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,SAAS,EAAE,SAAS,EAAE,aAAa,IAAI,QAAQ,EAAE,MAAM,cAAc,CAAC;AAC/E,OAAO,EAAE,oBAAoB,EAAE,MAAM,gBAAgB,CAAC"}
|
|
@@ -1,11 +0,0 @@
|
|
|
1
|
-
import { AbstractTokenNode } from '../';
|
|
2
|
-
export declare const MathEnvColors: {
|
|
3
|
-
readonly theorem: "#228B22";
|
|
4
|
-
readonly lemma: "#228B22";
|
|
5
|
-
readonly corollary: "#228B22";
|
|
6
|
-
readonly proposition: "#228B22";
|
|
7
|
-
readonly definition: "#1E90FF";
|
|
8
|
-
readonly default: "#A9A9A9";
|
|
9
|
-
};
|
|
10
|
-
export declare function getMathEnvColor(node?: AbstractTokenNode): string;
|
|
11
|
-
//# sourceMappingURL=mathColors.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"mathColors.d.ts","sourceRoot":"","sources":["../../src/graph/mathColors.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAoB,MAAM,KAAK,CAAC;AAE1D,eAAO,MAAM,aAAa;;;;;;;CAShB,CAAC;AAEX,wBAAgB,eAAe,CAAC,IAAI,CAAC,EAAE,iBAAiB,GAAG,MAAM,CAKhE"}
|
package/dist/graph/mathColors.js
DELETED
|
@@ -1,20 +0,0 @@
|
|
|
1
|
-
import { MathEnvTokenNode } from '../';
|
|
2
|
-
export const MathEnvColors = {
|
|
3
|
-
theorem: '#228B22',
|
|
4
|
-
lemma: '#228B22', // Forest Green
|
|
5
|
-
corollary: '#228B22',
|
|
6
|
-
proposition: '#228B22',
|
|
7
|
-
definition: '#1E90FF',
|
|
8
|
-
// remark: '#A9A9A9', // DarkGray
|
|
9
|
-
// example: '#B0B0B0', // Gray, lighter than Remark
|
|
10
|
-
default: '#A9A9A9' // Default color (DarkGray)
|
|
11
|
-
};
|
|
12
|
-
export function getMathEnvColor(node) {
|
|
13
|
-
if (!node || !(node instanceof MathEnvTokenNode))
|
|
14
|
-
return MathEnvColors.default;
|
|
15
|
-
const name = node.name;
|
|
16
|
-
if (!name)
|
|
17
|
-
return MathEnvColors.default;
|
|
18
|
-
return MathEnvColors[name.toLowerCase()] ?? MathEnvColors.default;
|
|
19
|
-
}
|
|
20
|
-
//# sourceMappingURL=mathColors.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"mathColors.js","sourceRoot":"","sources":["../../src/graph/mathColors.ts"],"names":[],"mappings":"AAAA,OAAO,EAAqB,gBAAgB,EAAE,MAAM,KAAK,CAAC;AAE1D,MAAM,CAAC,MAAM,aAAa,GAAG;IAC3B,OAAO,EAAE,SAAS;IAClB,KAAK,EAAE,SAAS,EAAE,eAAe;IACjC,SAAS,EAAE,SAAS;IACpB,WAAW,EAAE,SAAS;IACtB,UAAU,EAAE,SAAS;IACrB,iCAAiC;IACjC,mDAAmD;IACnD,OAAO,EAAE,SAAS,CAAC,2BAA2B;CACtC,CAAC;AAEX,MAAM,UAAU,eAAe,CAAC,IAAwB;IACtD,IAAI,CAAC,IAAI,IAAI,CAAC,CAAC,IAAI,YAAY,gBAAgB,CAAC;QAAE,OAAO,aAAa,CAAC,OAAO,CAAC;IAC/E,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;IACvB,IAAI,CAAC,IAAI;QAAE,OAAO,aAAa,CAAC,OAAO,CAAC;IACxC,OAAO,aAAa,CAAC,IAAI,CAAC,WAAW,EAAgC,CAAC,IAAI,aAAa,CAAC,OAAO,CAAC;AAClG,CAAC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"mathDepGraph.d.ts","sourceRoot":"","sources":["../../src/graph/mathDepGraph.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,2BAA2B,CAAC;AAQ9D,OAAO,EAAE,SAAS,EAAuC,MAAM,cAAc,CAAC;AAyU9E,wBAAgB,oBAAoB,CAAC,UAAU,EAAE,iBAAiB,EAAE,GAAG,SAAS,CAU/E"}
|
|
@@ -1,320 +0,0 @@
|
|
|
1
|
-
import { NodeRoles } from '../base/NodeRoles';
|
|
2
|
-
import { EnvironmentTokenNode } from '../document/EnvironmentTokenNode';
|
|
3
|
-
import { MathEnvTokenNode } from '../document/MathEnvTokenNode';
|
|
4
|
-
import { SectionTokenNode } from '../document/SectionTokenNode';
|
|
5
|
-
import { ReferenceTokenNode } from '../references/ReferenceTokenNode';
|
|
6
|
-
import { EquationTokenNode } from '../technical/EquationTokenNode';
|
|
7
|
-
import { GraphNode, GraphEdge, GraphNodeType } from './graphTypes';
|
|
8
|
-
import { getTokenByLabel } from '@/lib/vrender/utils/tokens';
|
|
9
|
-
/**
|
|
10
|
-
* This file generates a dependency graph for mathematical environments in a LaTeX-like document
|
|
11
|
-
* It tracks relationships between mathematical environments (like theorems, lemmas, proofs)
|
|
12
|
-
* by analyzing their cross-references
|
|
13
|
-
|
|
14
|
-
// Main functionality:
|
|
15
|
-
// 1. Identifies numbered mathematical environments (theorems, lemmas, etc.)
|
|
16
|
-
// 2. Tracks references between these environments (when one theorem references another)
|
|
17
|
-
// 3. Handles special cases like untitled proofs by connecting them to their previous sibling theorems
|
|
18
|
-
// 4. Handles linked equations by connecting their parent math/proof envs to the math envs that reference them
|
|
19
|
-
// 5. Generates a graph structure where:
|
|
20
|
-
// - Nodes represent mathematical environments
|
|
21
|
-
// - Edges represent references/dependencies between them
|
|
22
|
-
*/
|
|
23
|
-
const excludeMathEnvNames = ['proof', 'remark', 'example', 'heuristic'];
|
|
24
|
-
function isNumberedMathEnv(node) {
|
|
25
|
-
if (!(node instanceof MathEnvTokenNode)) {
|
|
26
|
-
return false;
|
|
27
|
-
}
|
|
28
|
-
const name = node.name.toLowerCase();
|
|
29
|
-
if (excludeMathEnvNames.includes(name)) {
|
|
30
|
-
return false;
|
|
31
|
-
}
|
|
32
|
-
if (node.numbering && node.numbering.length > 0) {
|
|
33
|
-
return true;
|
|
34
|
-
}
|
|
35
|
-
return false;
|
|
36
|
-
}
|
|
37
|
-
function isProofEnv(node) {
|
|
38
|
-
// could be a \begin{proof} block
|
|
39
|
-
if (!(node instanceof MathEnvTokenNode || node instanceof EnvironmentTokenNode))
|
|
40
|
-
return false;
|
|
41
|
-
const name = node.name;
|
|
42
|
-
if (!name)
|
|
43
|
-
return false;
|
|
44
|
-
// const title = (node as any).title;
|
|
45
|
-
return name.toLowerCase() == 'proof'; // && (!title || title.length < 1);
|
|
46
|
-
}
|
|
47
|
-
class MathGraphGenerator {
|
|
48
|
-
id2GraphNode = {};
|
|
49
|
-
graphNodes = [];
|
|
50
|
-
graphEdges = new Set();
|
|
51
|
-
untitledProof2GraphNode = {};
|
|
52
|
-
resolveLabel(label) {
|
|
53
|
-
return getTokenByLabel(label);
|
|
54
|
-
}
|
|
55
|
-
getGraphEdge(source_node, target_node) {
|
|
56
|
-
for (const edge of Array.from(this.graphEdges)) {
|
|
57
|
-
if (edge.source.id == source_node.id && edge.target.id == target_node.id) {
|
|
58
|
-
return edge;
|
|
59
|
-
}
|
|
60
|
-
}
|
|
61
|
-
return null;
|
|
62
|
-
}
|
|
63
|
-
findRefsInNode(node) {
|
|
64
|
-
const refs = [];
|
|
65
|
-
if (node instanceof ReferenceTokenNode) {
|
|
66
|
-
refs.push(...node.getData());
|
|
67
|
-
}
|
|
68
|
-
else {
|
|
69
|
-
// Process children recursively
|
|
70
|
-
if (node.hasChildren()) {
|
|
71
|
-
node.getChildren().forEach((child) => {
|
|
72
|
-
refs.push(...this.findRefsInNode(child));
|
|
73
|
-
});
|
|
74
|
-
}
|
|
75
|
-
}
|
|
76
|
-
return refs;
|
|
77
|
-
}
|
|
78
|
-
addRefsToGraphNode(targetGraphNode, refs, partial, label) {
|
|
79
|
-
for (const ref of refs) {
|
|
80
|
-
let refNode = this.resolveLabel(ref);
|
|
81
|
-
let outLabel = label;
|
|
82
|
-
// Handle equation references
|
|
83
|
-
if (refNode instanceof EquationTokenNode) {
|
|
84
|
-
if (refNode.numbering) {
|
|
85
|
-
const tag = `eq-${refNode.numbering}`;
|
|
86
|
-
if (outLabel)
|
|
87
|
-
outLabel += ` (${tag})`;
|
|
88
|
-
else
|
|
89
|
-
outLabel = tag;
|
|
90
|
-
}
|
|
91
|
-
// Find closest math env parent of the equation
|
|
92
|
-
let parent = refNode.parent;
|
|
93
|
-
while (parent && !(parent instanceof MathEnvTokenNode || isNumberedMathEnv(parent))) {
|
|
94
|
-
parent = parent.parent;
|
|
95
|
-
}
|
|
96
|
-
if (parent) {
|
|
97
|
-
if (isNumberedMathEnv(parent)) {
|
|
98
|
-
refNode = parent;
|
|
99
|
-
}
|
|
100
|
-
else if (this.untitledProof2GraphNode[parent.id]) {
|
|
101
|
-
refNode = this.untitledProof2GraphNode[parent.id].node;
|
|
102
|
-
}
|
|
103
|
-
}
|
|
104
|
-
}
|
|
105
|
-
if (!refNode || !isNumberedMathEnv(refNode))
|
|
106
|
-
continue;
|
|
107
|
-
const sourceGraphNode = this._getOrCreateGraphNode(refNode);
|
|
108
|
-
if (sourceGraphNode.id === targetGraphNode.id)
|
|
109
|
-
continue;
|
|
110
|
-
// if (partial) {
|
|
111
|
-
// if (outLabel) {
|
|
112
|
-
// outLabel += ' (nearby ref)';
|
|
113
|
-
// } else {
|
|
114
|
-
// outLabel = '(nearby ref)';
|
|
115
|
-
// }
|
|
116
|
-
// }
|
|
117
|
-
// Create edge and add to sets
|
|
118
|
-
const edge = this._getOrCreateGraphEdge(sourceGraphNode, targetGraphNode, outLabel, partial);
|
|
119
|
-
this.graphEdges.add(edge);
|
|
120
|
-
// Note: nodes are added to graphNodes in document order via _getOrCreateGraphNode
|
|
121
|
-
}
|
|
122
|
-
}
|
|
123
|
-
_getOrCreateGraphEdge(sourceGraphNode, targetGraphNode, edgeLabel, partial) {
|
|
124
|
-
const existingEdge = this.getGraphEdge(sourceGraphNode, targetGraphNode);
|
|
125
|
-
if (existingEdge) {
|
|
126
|
-
if (existingEdge.partial && !partial) {
|
|
127
|
-
// current full edge should override existing partial edge
|
|
128
|
-
this.graphEdges.delete(existingEdge);
|
|
129
|
-
}
|
|
130
|
-
else {
|
|
131
|
-
return existingEdge;
|
|
132
|
-
}
|
|
133
|
-
}
|
|
134
|
-
const edge = new GraphEdge(sourceGraphNode, targetGraphNode, edgeLabel, partial);
|
|
135
|
-
return edge;
|
|
136
|
-
}
|
|
137
|
-
searchRefsInNode(node, targetGraphNode, label, contentOnly = false) {
|
|
138
|
-
if (!targetGraphNode) {
|
|
139
|
-
targetGraphNode = this._getOrCreateGraphNode(node);
|
|
140
|
-
}
|
|
141
|
-
const contentRefs = [];
|
|
142
|
-
for (const child of node.getChildren()) {
|
|
143
|
-
if (contentOnly && child.role !== NodeRoles.CONTENT) {
|
|
144
|
-
continue;
|
|
145
|
-
}
|
|
146
|
-
contentRefs.push(...this.findRefsInNode(child));
|
|
147
|
-
}
|
|
148
|
-
this.addRefsToGraphNode(targetGraphNode, contentRefs, false, label);
|
|
149
|
-
}
|
|
150
|
-
_getOrCreateGraphNode(node, type, label) {
|
|
151
|
-
if (this.id2GraphNode[node.id]) {
|
|
152
|
-
return this.id2GraphNode[node.id];
|
|
153
|
-
}
|
|
154
|
-
if (!type) {
|
|
155
|
-
type = GraphNodeType.mathEnv;
|
|
156
|
-
if (isNumberedMathEnv(node)) {
|
|
157
|
-
type = GraphNodeType.mathEnv;
|
|
158
|
-
}
|
|
159
|
-
else if (isProofEnv(node)) {
|
|
160
|
-
type = GraphNodeType.proof;
|
|
161
|
-
}
|
|
162
|
-
}
|
|
163
|
-
if (!label) {
|
|
164
|
-
label = node.id;
|
|
165
|
-
if (type == GraphNodeType.mathEnv) {
|
|
166
|
-
label = node instanceof MathEnvTokenNode ? `${node.name} ${node.numbering}` : node.id;
|
|
167
|
-
}
|
|
168
|
-
else if (type == GraphNodeType.proof) {
|
|
169
|
-
label = 'Proof';
|
|
170
|
-
}
|
|
171
|
-
}
|
|
172
|
-
const graphNode = new GraphNode(node, type, label);
|
|
173
|
-
this.id2GraphNode[node.id] = graphNode;
|
|
174
|
-
// Add to array in document order (DFS traversal order)
|
|
175
|
-
this.graphNodes.push(graphNode);
|
|
176
|
-
return graphNode;
|
|
177
|
-
}
|
|
178
|
-
getNodesAndEdges() {
|
|
179
|
-
// Remove duplicate edges (same source->target with same label)
|
|
180
|
-
const uniqueEdges = new Map();
|
|
181
|
-
Array.from(this.graphEdges).forEach((edge) => {
|
|
182
|
-
const edgeKey = `${edge.source.id}->${edge.target.id}:${edge.label || ''}`;
|
|
183
|
-
if (!uniqueEdges.has(edgeKey)) {
|
|
184
|
-
uniqueEdges.set(edgeKey, edge);
|
|
185
|
-
}
|
|
186
|
-
});
|
|
187
|
-
return {
|
|
188
|
-
nodes: this.graphNodes, // Already in document order from DFS traversal
|
|
189
|
-
edges: Array.from(uniqueEdges.values())
|
|
190
|
-
};
|
|
191
|
-
}
|
|
192
|
-
processNodeTitleRefs(node) {
|
|
193
|
-
// Check if refs in title -> then attach inner refs of this node to the refs in title
|
|
194
|
-
// ie. if this node references other math envs in the title, we assume its inner refs connect to the math envs in the title
|
|
195
|
-
const titleNodes = node.getTitleData();
|
|
196
|
-
const titleRefs = titleNodes.flatMap((t) => this.findRefsInNode(t));
|
|
197
|
-
if (titleRefs.length > 0) {
|
|
198
|
-
let titleStr = '';
|
|
199
|
-
for (let titleNode of titleNodes) {
|
|
200
|
-
const data = titleNode.getData();
|
|
201
|
-
if (typeof data == 'string') {
|
|
202
|
-
titleStr += data;
|
|
203
|
-
}
|
|
204
|
-
else if (titleNode instanceof ReferenceTokenNode) {
|
|
205
|
-
// collect the titles of all referenced mathenvs to be the titleStr
|
|
206
|
-
const mathEnvTitles = [];
|
|
207
|
-
for (let ref of data) {
|
|
208
|
-
const refNode = this.resolveLabel(ref);
|
|
209
|
-
if (refNode instanceof MathEnvTokenNode && isNumberedMathEnv(refNode)) {
|
|
210
|
-
mathEnvTitles.push(`${refNode.name} ${refNode.numbering}`);
|
|
211
|
-
}
|
|
212
|
-
}
|
|
213
|
-
titleStr += ` ${mathEnvTitles.join(',')} `;
|
|
214
|
-
}
|
|
215
|
-
}
|
|
216
|
-
let label = titleStr;
|
|
217
|
-
if (!titleStr.toLowerCase().startsWith('proof')) {
|
|
218
|
-
label = 'Proof: ' + titleStr;
|
|
219
|
-
}
|
|
220
|
-
for (const ref of titleRefs) {
|
|
221
|
-
const refNode = this.resolveLabel(ref);
|
|
222
|
-
if (!refNode)
|
|
223
|
-
continue;
|
|
224
|
-
if (isNumberedMathEnv(refNode)) {
|
|
225
|
-
const refGraphNode = this._getOrCreateGraphNode(refNode, GraphNodeType.mathEnv);
|
|
226
|
-
// search content only i.e. don't include title data, otherwise
|
|
227
|
-
// refs in the title will create edges to each other
|
|
228
|
-
this.searchRefsInNode(node, refGraphNode, label, true);
|
|
229
|
-
}
|
|
230
|
-
}
|
|
231
|
-
}
|
|
232
|
-
}
|
|
233
|
-
processNodes(node) {
|
|
234
|
-
if (!node)
|
|
235
|
-
return;
|
|
236
|
-
const ALLOW_STANDALONE_PROOFS = false;
|
|
237
|
-
if (Array.isArray(node)) {
|
|
238
|
-
// Process array of nodes (detect mathenv and try to match it with next sibling ref or untitled proofs)
|
|
239
|
-
let latestMathEnvGraphNode = null;
|
|
240
|
-
node.forEach((n) => {
|
|
241
|
-
if (isProofEnv(n)) {
|
|
242
|
-
// if proof env, check if titled or untitled
|
|
243
|
-
const proofNode = n;
|
|
244
|
-
let titleData = [];
|
|
245
|
-
if (proofNode instanceof MathEnvTokenNode) {
|
|
246
|
-
titleData = proofNode.getTitleData();
|
|
247
|
-
}
|
|
248
|
-
if (titleData.length > 0) {
|
|
249
|
-
// titled proof
|
|
250
|
-
this.processNodeTitleRefs(proofNode);
|
|
251
|
-
}
|
|
252
|
-
else {
|
|
253
|
-
// untitled proof: heuristic to check if there is a previous sibling math env 'latestMathEnvGraphNode'
|
|
254
|
-
if (latestMathEnvGraphNode) {
|
|
255
|
-
this.untitledProof2GraphNode[n.id] = latestMathEnvGraphNode;
|
|
256
|
-
const proofLabel = `Proof (${latestMathEnvGraphNode.label})`;
|
|
257
|
-
if (ALLOW_STANDALONE_PROOFS) {
|
|
258
|
-
// Create a separate graph node for the untitled proof
|
|
259
|
-
const proofGraphNode = this._getOrCreateGraphNode(n, GraphNodeType.proof, proofLabel);
|
|
260
|
-
// Store the parent relationship (no edge, just metadata)
|
|
261
|
-
proofGraphNode.parentNode = latestMathEnvGraphNode;
|
|
262
|
-
// Nodes are already added via _getOrCreateGraphNode
|
|
263
|
-
this.searchRefsInNode(n, proofGraphNode);
|
|
264
|
-
}
|
|
265
|
-
else {
|
|
266
|
-
// direct link to parent math env as proof edge
|
|
267
|
-
this.searchRefsInNode(n, latestMathEnvGraphNode, proofLabel);
|
|
268
|
-
}
|
|
269
|
-
return;
|
|
270
|
-
}
|
|
271
|
-
}
|
|
272
|
-
// reset latestMathEnvGraphNode after proof block
|
|
273
|
-
latestMathEnvGraphNode = null;
|
|
274
|
-
}
|
|
275
|
-
else if (isNumberedMathEnv(n)) {
|
|
276
|
-
latestMathEnvGraphNode = this._getOrCreateGraphNode(n, GraphNodeType.mathEnv);
|
|
277
|
-
}
|
|
278
|
-
else if (n instanceof ReferenceTokenNode) {
|
|
279
|
-
// if we detect a reference node, attach refs to the latest mathenv sibling
|
|
280
|
-
if (latestMathEnvGraphNode) {
|
|
281
|
-
this.addRefsToGraphNode(latestMathEnvGraphNode, n.getData(), true);
|
|
282
|
-
}
|
|
283
|
-
return;
|
|
284
|
-
}
|
|
285
|
-
else if (n instanceof SectionTokenNode) {
|
|
286
|
-
// if detect any non math section i.e. not a numbered math env or untitled proof, we reset latestMathEnv
|
|
287
|
-
latestMathEnvGraphNode = null;
|
|
288
|
-
}
|
|
289
|
-
this.processNodes(n);
|
|
290
|
-
});
|
|
291
|
-
return;
|
|
292
|
-
}
|
|
293
|
-
else if (typeof node == 'object') {
|
|
294
|
-
if (isNumberedMathEnv(node)) {
|
|
295
|
-
this.searchRefsInNode(node);
|
|
296
|
-
}
|
|
297
|
-
else if (node instanceof SectionTokenNode) {
|
|
298
|
-
this.processNodeTitleRefs(node);
|
|
299
|
-
}
|
|
300
|
-
// Process children recursively
|
|
301
|
-
if (node.hasChildren()) {
|
|
302
|
-
// big difference! vs individual processNodes(child)
|
|
303
|
-
this.processNodes(node.getChildren());
|
|
304
|
-
// node.getChildren().forEach((child) => {
|
|
305
|
-
// this.processNodes(child);
|
|
306
|
-
// });
|
|
307
|
-
}
|
|
308
|
-
}
|
|
309
|
-
}
|
|
310
|
-
}
|
|
311
|
-
export function GenerateMathDepGraph(tokenNodes) {
|
|
312
|
-
const processor = new MathGraphGenerator();
|
|
313
|
-
// Then process to find dependencies and get graph data
|
|
314
|
-
processor.processNodes(tokenNodes);
|
|
315
|
-
const graphData = processor.getNodesAndEdges();
|
|
316
|
-
// const outJSON = graphdataToJSONForLLM(graphData);
|
|
317
|
-
// console.log(JSON.stringify(outJSON));
|
|
318
|
-
return graphData;
|
|
319
|
-
}
|
|
320
|
-
//# sourceMappingURL=mathDepGraph.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"mathDepGraph.js","sourceRoot":"","sources":["../../src/graph/mathDepGraph.ts"],"names":[],"mappings":"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"}
|