bbcode-compiler 0.1.4 → 0.1.6

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 (52) hide show
  1. package/dist/generateHtml.d.ts +1 -1
  2. package/dist/generator/Generator.d.ts +2 -1
  3. package/dist/generator/transforms/Transform.d.ts +2 -1
  4. package/dist/generator/transforms/htmlTransforms.d.ts +2 -1
  5. package/dist/generator/utils/getTagImmediateAttrVal.d.ts +2 -1
  6. package/dist/generator/utils/getTagImmediateText.d.ts +1 -0
  7. package/dist/generator/utils/getWidthHeightAttr.d.ts +2 -1
  8. package/dist/generator/utils/isOrderedList.d.ts +2 -1
  9. package/dist/index.js +1014 -16
  10. package/dist/index.js.map +1 -1
  11. package/dist/index.umd.cjs +1018 -0
  12. package/dist/index.umd.cjs.map +1 -0
  13. package/dist/lexer/Lexer.d.ts +2 -1
  14. package/dist/lexer/Token.d.ts +1 -0
  15. package/dist/parser/AstNode.d.ts +8 -8
  16. package/dist/parser/AstNode.d.ts.map +1 -1
  17. package/dist/parser/Parser.d.ts +2 -1
  18. package/dist/parser/Parser.d.ts.map +1 -1
  19. package/dist/parser/nodeIsType.d.ts +1 -0
  20. package/package.json +23 -22
  21. package/src/parser/AstNode.ts +73 -73
  22. package/src/parser/Parser.ts +113 -110
  23. package/dist/generateHtml.js +0 -13
  24. package/dist/generateHtml.js.map +0 -1
  25. package/dist/generator/Generator.js +0 -54
  26. package/dist/generator/Generator.js.map +0 -1
  27. package/dist/generator/transforms/Transform.js +0 -2
  28. package/dist/generator/transforms/Transform.js.map +0 -1
  29. package/dist/generator/transforms/htmlTransforms.js +0 -198
  30. package/dist/generator/transforms/htmlTransforms.js.map +0 -1
  31. package/dist/generator/utils/getTagImmediateAttrVal.js +0 -19
  32. package/dist/generator/utils/getTagImmediateAttrVal.js.map +0 -1
  33. package/dist/generator/utils/getTagImmediateText.js +0 -28
  34. package/dist/generator/utils/getTagImmediateText.js.map +0 -1
  35. package/dist/generator/utils/getWidthHeightAttr.js +0 -47
  36. package/dist/generator/utils/getWidthHeightAttr.js.map +0 -1
  37. package/dist/generator/utils/isDangerousUrl.js +0 -14
  38. package/dist/generator/utils/isDangerousUrl.js.map +0 -1
  39. package/dist/generator/utils/isOrderedList.js +0 -26
  40. package/dist/generator/utils/isOrderedList.js.map +0 -1
  41. package/dist/lexer/Lexer.js +0 -81
  42. package/dist/lexer/Lexer.js.map +0 -1
  43. package/dist/lexer/Token.js +0 -53
  44. package/dist/lexer/Token.js.map +0 -1
  45. package/dist/lexer/TokenType.js +0 -41
  46. package/dist/lexer/TokenType.js.map +0 -1
  47. package/dist/parser/AstNode.js +0 -263
  48. package/dist/parser/AstNode.js.map +0 -1
  49. package/dist/parser/Parser.js +0 -265
  50. package/dist/parser/Parser.js.map +0 -1
  51. package/dist/parser/nodeIsType.js +0 -4
  52. package/dist/parser/nodeIsType.js.map +0 -1
@@ -1,265 +0,0 @@
1
- import { htmlTransforms } from '../generator/transforms/htmlTransforms.js';
2
- import { stringifyTokens } from '../lexer/Token.js';
3
- import { isStringToken } from '../lexer/TokenType.js';
4
- import { RootNode, AttrNode, TextNode, LinebreakNode, StartTagNode, EndTagNode, TagNode } from './AstNode.js';
5
- import { nodeIsType } from './nodeIsType.js';
6
- export class Parser {
7
- tags;
8
- linebreakTerminatedTags;
9
- standaloneTags;
10
- constructor(transforms = htmlTransforms) {
11
- this.tags = new Set(transforms.map((transform) => transform.name));
12
- this.linebreakTerminatedTags = new Set(transforms.filter((transform) => transform.isLinebreakTerminated).map((transform) => transform.name.toLowerCase()));
13
- this.standaloneTags = new Set(transforms.filter((transform) => transform.isStandalone).map((transform) => transform.name.toLowerCase()));
14
- }
15
- parse(ogText, tokens) {
16
- let idx = 0;
17
- const parseRoot = () => {
18
- const root = new RootNode();
19
- while (idx < tokens.length) {
20
- if (tokens[idx].type === 2 /* TokenType.L_BRACKET */) {
21
- const startIdx = idx;
22
- const tagNode = parseTag();
23
- if (tagNode !== null) {
24
- root.addChild(tagNode);
25
- }
26
- else {
27
- const invalidTokens = tokens.slice(startIdx, idx);
28
- const str = stringifyTokens(ogText, invalidTokens);
29
- const textNode = new TextNode(str);
30
- root.addChild(textNode);
31
- }
32
- }
33
- else if (tokens[idx].type === 1 /* TokenType.LINEBREAK */) {
34
- idx += 1; // Consume LINEBREAK
35
- root.addChild(new LinebreakNode());
36
- }
37
- else {
38
- const startIdx = idx;
39
- // Advance until we see the start of another RootNode's child (TagNode or LinebreakNode)
40
- while (idx < tokens.length && tokens[idx].type !== 2 /* TokenType.L_BRACKET */ && tokens[idx].type !== 1 /* TokenType.LINEBREAK */) {
41
- idx += 1;
42
- }
43
- const slice = tokens.slice(startIdx, idx);
44
- const str = stringifyTokens(ogText, slice);
45
- root.addChild(new TextNode(str));
46
- }
47
- }
48
- return root;
49
- };
50
- const parseTag = () => {
51
- if (idx + 1 >= tokens.length) {
52
- return null;
53
- }
54
- if (tokens[idx].type !== 2 /* TokenType.L_BRACKET */) {
55
- return null;
56
- }
57
- // If L_BRACKET is followed by text, then it must be StartTag or is invalid
58
- if (isStringToken(tokens[idx + 1].type)) {
59
- const startIdx = idx;
60
- idx += 1; // Consume L_BRACKET
61
- const labelText = parseLabel();
62
- if (!this.tags.has(labelText)) {
63
- return null;
64
- }
65
- const attrNodes = new Array();
66
- while (true) {
67
- const attrNode = parseAttr();
68
- if (attrNode === null) {
69
- break;
70
- }
71
- attrNodes.push(attrNode);
72
- }
73
- if (tokens[idx].type !== 3 /* TokenType.R_BRACKET */) {
74
- return null;
75
- }
76
- idx += 1; // Consume R_BRACKET
77
- const slice = tokens.slice(startIdx, idx);
78
- const ogTag = stringifyTokens(ogText, slice);
79
- const startTagNode = new StartTagNode(labelText, ogTag, attrNodes);
80
- return startTagNode;
81
- }
82
- // If L_BRACKET is followed by BACKSLASH, then it must be EndTag or is invalid
83
- if (tokens[idx + 1].type === 4 /* TokenType.BACKSLASH */) {
84
- const startIdx = idx;
85
- idx += 1; // Consume L_BRACKET
86
- idx += 1; // Consume BACKSLASH
87
- const labelText = parseLabel();
88
- if (!this.tags.has(labelText)) {
89
- return null;
90
- }
91
- if (tokens[idx].type !== 3 /* TokenType.R_BRACKET */) {
92
- return null;
93
- }
94
- idx += 1; // Consume R_BRACKET
95
- const slice = tokens.slice(startIdx, idx);
96
- const ogTag = stringifyTokens(ogText, slice);
97
- const endTagNode = new EndTagNode(labelText, ogTag);
98
- return endTagNode;
99
- }
100
- return null;
101
- };
102
- const parseLabel = () => {
103
- const slice = tokens.slice(idx, idx + 1);
104
- const label = stringifyTokens(ogText, slice);
105
- idx += 1; // Consume LABEL
106
- return label.toLowerCase();
107
- };
108
- const parseText = (endOnQuotes = false, endOnSpace = false) => {
109
- const startIdx = idx;
110
- while (idx < tokens.length) {
111
- if (!isStringToken(tokens[idx].type)) {
112
- break;
113
- }
114
- if (endOnQuotes && (tokens[idx].type === 10 /* TokenType.XSS_S_QUOTE */ || tokens[idx].type === 9 /* TokenType.XSS_D_QUOTE */)) {
115
- break;
116
- }
117
- /**
118
- * If this text must end on space, then it must not endOnQuote (implies that the space is part of the entire text)
119
- * When we encounter a space, then we must split the current token into 2 tokens and only consume the first half
120
- *
121
- * <a b> -> <a>< b>
122
- * | | |
123
- * | | idx (new)
124
- * | |
125
- * idx (consumed)
126
- */
127
- if (endOnSpace && !endOnQuotes) {
128
- const origStr = stringifyTokens(ogText, [tokens[idx]]);
129
- const spaceIdx = origStr.indexOf(' ');
130
- if (spaceIdx >= 0) {
131
- const oldToken = {
132
- type: 0 /* TokenType.STR */,
133
- offset: tokens[idx].offset,
134
- length: spaceIdx,
135
- };
136
- const newToken = {
137
- type: 0 /* TokenType.STR */,
138
- offset: tokens[idx].offset + spaceIdx,
139
- length: tokens[idx].length - spaceIdx,
140
- };
141
- tokens.splice(idx + 0, 1, oldToken);
142
- tokens.splice(idx + 1, 0, newToken);
143
- idx += 1;
144
- break;
145
- }
146
- }
147
- idx += 1;
148
- }
149
- const slice = tokens.slice(startIdx, idx);
150
- const str = stringifyTokens(ogText, slice);
151
- return new TextNode(str);
152
- };
153
- const parseAttr = () => {
154
- if (idx + 1 >= tokens.length) {
155
- return null;
156
- }
157
- const attrNode = new AttrNode();
158
- if (tokens[idx].type === 5 /* TokenType.EQUALS */ && isStringToken(tokens[idx + 1].type)) { // [Tag = VAL ...] or [Tag = "VAL"]
159
- idx += 1; // Consume EQUALS
160
- const openedWithQuotes = tokens[idx].type === 10 /* TokenType.XSS_S_QUOTE */ || tokens[idx].type === 9 /* TokenType.XSS_D_QUOTE */;
161
- if (openedWithQuotes) {
162
- idx += 1;
163
- }
164
- const valNode = parseText(openedWithQuotes, true);
165
- attrNode.addChild(valNode);
166
- if (openedWithQuotes) {
167
- if (tokens[idx].type !== 10 /* TokenType.XSS_S_QUOTE */ && tokens[idx].type !== 9 /* TokenType.XSS_D_QUOTE */) {
168
- return null;
169
- }
170
- idx += 1;
171
- }
172
- }
173
- else if (isStringToken(tokens[idx].type) && tokens[idx + 1].type === 5 /* TokenType.EQUALS */ && (idx + 2 < tokens.length && isStringToken(tokens[idx + 2].type))) { // [Tag KEY = VAL ...] or [Tag KEY = "VAL" ...]
174
- const keyNode = parseText();
175
- attrNode.addChild(keyNode);
176
- idx += 1; // Consume EQUALS
177
- const openedWithQuotes = tokens[idx].type === 10 /* TokenType.XSS_S_QUOTE */ || tokens[idx].type === 9 /* TokenType.XSS_D_QUOTE */;
178
- if (openedWithQuotes) {
179
- idx += 1;
180
- }
181
- const valNode = parseText(openedWithQuotes, true);
182
- if (openedWithQuotes) {
183
- if (tokens[idx].type !== 10 /* TokenType.XSS_S_QUOTE */ && tokens[idx].type !== 9 /* TokenType.XSS_D_QUOTE */) {
184
- return null;
185
- }
186
- idx += 1;
187
- }
188
- attrNode.addChild(valNode);
189
- }
190
- else if (isStringToken(tokens[idx].type) && tokens[idx + 1].type !== 5 /* TokenType.EQUALS */) { // [Tag VAL ...]
191
- const valNode = parseText();
192
- attrNode.addChild(valNode);
193
- }
194
- else {
195
- return null;
196
- }
197
- return attrNode;
198
- };
199
- let root = parseRoot();
200
- root = this.matchTagNodes(root);
201
- return root;
202
- }
203
- // ------------------------------------------------------------------------
204
- // Post Parsing Transforms
205
- // ------------------------------------------------------------------------
206
- matchTagNodes(rootNode) {
207
- const transformedRoot = new RootNode();
208
- for (let i = 0; i < rootNode.children.length; i++) {
209
- const child = rootNode.children[i];
210
- if (nodeIsType(child, 4 /* AstNodeType.StartTagNode */)) {
211
- const endTag = this.findMatchingEndTag(rootNode.children, i, child.tagName);
212
- const isStandalone = this.standaloneTags.has(child.tagName);
213
- if (endTag || isStandalone) {
214
- const tagNode = new TagNode(child, endTag?.node);
215
- transformedRoot.addChild(tagNode);
216
- // If matching end tag exists, consume all nodes between start/end (exclusive) as a subtree
217
- if (endTag) {
218
- const subRoot = new RootNode(rootNode.children.slice(i + 1, endTag.idx));
219
- i = endTag.idx;
220
- const transformedSubRoot = this.matchTagNodes(subRoot);
221
- tagNode.addChild(transformedSubRoot);
222
- }
223
- }
224
- else {
225
- // If no end tag exists, then treat tag as string literal
226
- transformedRoot.addChild(new TextNode(child.ogTag));
227
- }
228
- }
229
- else if (nodeIsType(child, 5 /* AstNodeType.EndTagNode */)) {
230
- // Encountered end tag when we're not expecting an end tag so we treat it as a string literal
231
- transformedRoot.addChild(new TextNode(child.ogTag));
232
- }
233
- else if (nodeIsType(child, 1 /* AstNodeType.TextNode */)) {
234
- // Normal text nodes get copied
235
- transformedRoot.addChild(child);
236
- }
237
- else if (nodeIsType(child, 2 /* AstNodeType.LinebreakNode */)) {
238
- // Linebreak nodes get copied
239
- transformedRoot.addChild(child);
240
- }
241
- else {
242
- throw new Error('Unexpected child of RootNode');
243
- }
244
- }
245
- return transformedRoot;
246
- }
247
- findMatchingEndTag(siblings, startIdx, tagName) {
248
- if (this.standaloneTags.has(tagName)) {
249
- return null;
250
- }
251
- for (let i = startIdx; i < siblings.length; i++) {
252
- const sibling = siblings[i];
253
- const isEndTag = (nodeIsType(sibling, 2 /* AstNodeType.LinebreakNode */) && this.linebreakTerminatedTags.has(tagName)) ||
254
- (nodeIsType(sibling, 5 /* AstNodeType.EndTagNode */) && sibling.tagName === tagName);
255
- if (isEndTag) {
256
- return {
257
- idx: i,
258
- node: sibling,
259
- };
260
- }
261
- }
262
- return null;
263
- }
264
- }
265
- //# sourceMappingURL=Parser.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"Parser.js","sourceRoot":"","sources":["../../src/parser/Parser.ts"],"names":[],"mappings":"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"}
@@ -1,4 +0,0 @@
1
- export function nodeIsType(node, nodeType) {
2
- return node.nodeType === nodeType;
3
- }
4
- //# sourceMappingURL=nodeIsType.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"nodeIsType.js","sourceRoot":"","sources":["../../src/parser/nodeIsType.ts"],"names":[],"mappings":"AAYA,MAAM,UAAU,UAAU,CAAyB,IAAa,EAAE,QAAW;IACzE,OAAO,IAAI,CAAC,QAAQ,KAAK,QAAQ,CAAA;AACrC,CAAC"}