bbcode-compiler 0.1.9 → 0.1.11

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 (73) hide show
  1. package/dist/index.d.ts +1 -16
  2. package/dist/index.js +866 -1038
  3. package/dist/index.js.map +1 -1
  4. package/dist/index.umd.cjs +914 -1063
  5. package/dist/index.umd.cjs.map +1 -1
  6. package/dist/src/generateHtml.d.ts +2 -0
  7. package/dist/src/generateHtml.d.ts.map +1 -0
  8. package/dist/{generator → src/generator}/Generator.d.ts +2 -3
  9. package/dist/src/generator/Generator.d.ts.map +1 -0
  10. package/dist/{generator → src/generator}/transforms/Transform.d.ts +1 -2
  11. package/dist/src/generator/transforms/Transform.d.ts.map +1 -0
  12. package/dist/src/generator/transforms/htmlTransforms.d.ts +3 -0
  13. package/dist/src/generator/transforms/htmlTransforms.d.ts.map +1 -0
  14. package/dist/{generator → src/generator}/utils/getTagImmediateAttrVal.d.ts +1 -2
  15. package/dist/src/generator/utils/getTagImmediateAttrVal.d.ts.map +1 -0
  16. package/dist/{generator → src/generator}/utils/getTagImmediateText.d.ts +1 -2
  17. package/dist/src/generator/utils/getTagImmediateText.d.ts.map +1 -0
  18. package/dist/{generator → src/generator}/utils/getWidthHeightAttr.d.ts +1 -2
  19. package/dist/src/generator/utils/getWidthHeightAttr.d.ts.map +1 -0
  20. package/dist/src/generator/utils/isDangerousUrl.d.ts.map +1 -0
  21. package/dist/{generator → src/generator}/utils/isOrderedList.d.ts +1 -2
  22. package/dist/src/generator/utils/isOrderedList.d.ts.map +1 -0
  23. package/dist/src/index.d.ts +16 -0
  24. package/dist/src/index.d.ts.map +1 -0
  25. package/dist/{lexer → src/lexer}/Lexer.d.ts +1 -2
  26. package/dist/src/lexer/Lexer.d.ts.map +1 -0
  27. package/dist/{lexer → src/lexer}/Token.d.ts +1 -2
  28. package/dist/src/lexer/Token.d.ts.map +1 -0
  29. package/dist/src/lexer/TokenType.d.ts +5 -0
  30. package/dist/src/lexer/TokenType.d.ts.map +1 -0
  31. package/dist/{parser → src/parser}/AstNode.d.ts +10 -18
  32. package/dist/src/parser/AstNode.d.ts.map +1 -0
  33. package/dist/{parser → src/parser}/Parser.d.ts +3 -4
  34. package/dist/src/parser/Parser.d.ts.map +1 -0
  35. package/dist/src/parser/nodeIsType.d.ts +13 -0
  36. package/dist/src/parser/nodeIsType.d.ts.map +1 -0
  37. package/package.json +81 -82
  38. package/src/generateHtml.ts +4 -4
  39. package/src/generator/Generator.ts +7 -7
  40. package/src/generator/transforms/Transform.ts +1 -1
  41. package/src/generator/transforms/htmlTransforms.ts +6 -6
  42. package/src/generator/utils/getTagImmediateAttrVal.ts +1 -1
  43. package/src/generator/utils/getTagImmediateText.ts +4 -4
  44. package/src/generator/utils/getWidthHeightAttr.ts +1 -1
  45. package/src/generator/utils/isOrderedList.ts +1 -1
  46. package/src/index.ts +15 -15
  47. package/src/lexer/Lexer.ts +9 -9
  48. package/src/lexer/Token.ts +12 -12
  49. package/src/lexer/TokenType.ts +39 -40
  50. package/src/parser/AstNode.ts +30 -29
  51. package/src/parser/Parser.ts +28 -28
  52. package/src/parser/nodeIsType.ts +8 -8
  53. package/dist/generateHtml.d.ts +0 -2
  54. package/dist/generateHtml.d.ts.map +0 -1
  55. package/dist/generator/Generator.d.ts.map +0 -1
  56. package/dist/generator/transforms/Transform.d.ts.map +0 -1
  57. package/dist/generator/transforms/htmlTransforms.d.ts +0 -4
  58. package/dist/generator/transforms/htmlTransforms.d.ts.map +0 -1
  59. package/dist/generator/utils/getTagImmediateAttrVal.d.ts.map +0 -1
  60. package/dist/generator/utils/getTagImmediateText.d.ts.map +0 -1
  61. package/dist/generator/utils/getWidthHeightAttr.d.ts.map +0 -1
  62. package/dist/generator/utils/isDangerousUrl.d.ts.map +0 -1
  63. package/dist/generator/utils/isOrderedList.d.ts.map +0 -1
  64. package/dist/index.d.ts.map +0 -1
  65. package/dist/lexer/Lexer.d.ts.map +0 -1
  66. package/dist/lexer/Token.d.ts.map +0 -1
  67. package/dist/lexer/TokenType.d.ts +0 -17
  68. package/dist/lexer/TokenType.d.ts.map +0 -1
  69. package/dist/parser/AstNode.d.ts.map +0 -1
  70. package/dist/parser/Parser.d.ts.map +0 -1
  71. package/dist/parser/nodeIsType.d.ts +0 -14
  72. package/dist/parser/nodeIsType.d.ts.map +0 -1
  73. /package/dist/{generator → src/generator}/utils/isDangerousUrl.d.ts +0 -0
@@ -33,21 +33,20 @@ Attr <-
33
33
 
34
34
  */
35
35
 
36
- import { nodeIsType } from './nodeIsType.js'
36
+ import { nodeIsType } from './nodeIsType.ts'
37
37
 
38
38
  // ----------------------------------------------------------------------------
39
39
  // MARK: AstNode
40
40
  // ----------------------------------------------------------------------------
41
41
 
42
- export const enum AstNodeType {
43
- RootNode = 'RootNode',
44
- TextNode = 'TextNode',
45
- LinebreakNode = 'LinebreakNode',
46
- TagNode = 'TagNode',
47
- StartTagNode = 'StartTagNode',
48
- EndTagNode = 'EndTagNode',
49
- AttrNode = 'AttrNode',
50
- }
42
+ export type AstNodeType =
43
+ | 'RootNode'
44
+ | 'TextNode'
45
+ | 'LinebreakNode'
46
+ | 'TagNode'
47
+ | 'StartTagNode'
48
+ | 'EndTagNode'
49
+ | 'AttrNode'
51
50
 
52
51
  export type AstNodeJson = {
53
52
  type: AstNodeType
@@ -58,10 +57,12 @@ export type AstNodeJson = {
58
57
  export abstract class AstNode {
59
58
  readonly abstract nodeType: AstNodeType
60
59
 
60
+ readonly children: Array<AstNode>
61
+
61
62
  constructor(
62
- readonly children: Array<AstNode> = [],
63
+ children = new Array<AstNode>(),
63
64
  ) {
64
- // nop
65
+ this.children = children
65
66
  }
66
67
 
67
68
  addChild(node: AstNode): void {
@@ -112,13 +113,13 @@ export abstract class AstNode {
112
113
  // ----------------------------------------------------------------------------
113
114
 
114
115
  export class RootNode extends AstNode {
115
- readonly nodeType = AstNodeType.RootNode
116
+ readonly nodeType = 'RootNode'
116
117
 
117
118
  override isValid(): boolean {
118
119
  for (const child of this.children) {
119
- if (child.nodeType !== AstNodeType.TagNode &&
120
- child.nodeType !== AstNodeType.TextNode &&
121
- child.nodeType !== AstNodeType.LinebreakNode) {
120
+ if (child.nodeType !== 'TagNode' &&
121
+ child.nodeType !== 'TextNode' &&
122
+ child.nodeType !== 'LinebreakNode') {
122
123
  return false
123
124
  }
124
125
  }
@@ -132,7 +133,7 @@ export class RootNode extends AstNode {
132
133
  // ----------------------------------------------------------------------------
133
134
 
134
135
  export class TextNode extends AstNode {
135
- readonly nodeType = AstNodeType.TextNode
136
+ readonly nodeType = 'TextNode'
136
137
  readonly str: string
137
138
 
138
139
  constructor(str: string) {
@@ -160,7 +161,7 @@ export class TextNode extends AstNode {
160
161
  }
161
162
 
162
163
  export class LinebreakNode extends AstNode {
163
- readonly nodeType = AstNodeType.LinebreakNode
164
+ readonly nodeType = 'LinebreakNode'
164
165
 
165
166
  override toShortString(): string {
166
167
  return `${super.toShortString()} "\\n"`
@@ -172,7 +173,7 @@ export class LinebreakNode extends AstNode {
172
173
  // ----------------------------------------------------------------------------
173
174
 
174
175
  export class AttrNode extends AstNode {
175
- readonly nodeType = AstNodeType.AttrNode
176
+ readonly nodeType = 'AttrNode'
176
177
 
177
178
  static readonly DEFAULT_KEY = 'default'
178
179
 
@@ -182,7 +183,7 @@ export class AttrNode extends AstNode {
182
183
  return AttrNode.DEFAULT_KEY
183
184
  }
184
185
  case 2: {
185
- if (!nodeIsType(this.children[0], AstNodeType.TextNode)) {
186
+ if (!nodeIsType(this.children[0], 'TextNode')) {
186
187
  throw new Error('Invalid TextNode')
187
188
  }
188
189
 
@@ -196,14 +197,14 @@ export class AttrNode extends AstNode {
196
197
  get val(): string {
197
198
  switch (this.children.length) {
198
199
  case 1: {
199
- if (!nodeIsType(this.children[0], AstNodeType.TextNode)) {
200
+ if (!nodeIsType(this.children[0], 'TextNode')) {
200
201
  throw new Error('Invalid TextNode')
201
202
  }
202
203
 
203
204
  return this.children[0].str.trim()
204
205
  }
205
206
  case 2: {
206
- if (!nodeIsType(this.children[1], AstNodeType.TextNode)) {
207
+ if (!nodeIsType(this.children[1], 'TextNode')) {
207
208
  throw new Error('Invalid TextNode')
208
209
  }
209
210
 
@@ -265,7 +266,7 @@ export class AttrNode extends AstNode {
265
266
  // ----------------------------------------------------------------------------
266
267
 
267
268
  export class StartTagNode extends AstNode {
268
- readonly nodeType = AstNodeType.StartTagNode
269
+ readonly nodeType = 'StartTagNode'
269
270
  readonly tagName: string
270
271
  readonly ogTag: string
271
272
 
@@ -277,7 +278,7 @@ export class StartTagNode extends AstNode {
277
278
 
278
279
  override isValid(): boolean {
279
280
  for (const child of this.children) {
280
- if (child.nodeType !== AstNodeType.AttrNode) {
281
+ if (child.nodeType !== 'AttrNode') {
281
282
  return false
282
283
  }
283
284
  }
@@ -301,7 +302,7 @@ export class StartTagNode extends AstNode {
301
302
  }
302
303
 
303
304
  export class EndTagNode extends AstNode {
304
- readonly nodeType = AstNodeType.EndTagNode
305
+ readonly nodeType = 'EndTagNode'
305
306
  readonly tagName: string
306
307
  readonly ogTag: string
307
308
 
@@ -331,7 +332,7 @@ export class EndTagNode extends AstNode {
331
332
  }
332
333
 
333
334
  export class TagNode extends AstNode {
334
- readonly nodeType = AstNodeType.TagNode
335
+ readonly nodeType = 'TagNode'
335
336
  private readonly _startTag: StartTagNode
336
337
  private readonly _endTag?: EndTagNode | LinebreakNode
337
338
 
@@ -358,7 +359,7 @@ export class TagNode extends AstNode {
358
359
  return ''
359
360
  }
360
361
 
361
- if (nodeIsType(this._endTag, AstNodeType.LinebreakNode)) {
362
+ if (nodeIsType(this._endTag, 'LinebreakNode')) {
362
363
  return '\n'
363
364
  } else {
364
365
  return this._endTag.ogTag
@@ -366,11 +367,11 @@ export class TagNode extends AstNode {
366
367
  }
367
368
 
368
369
  override isValid(): boolean {
369
- if (this._endTag && nodeIsType(this._endTag, AstNodeType.EndTagNode) && this._startTag.tagName !== this._endTag.tagName) {
370
+ if (this._endTag && nodeIsType(this._endTag, 'EndTagNode') && this._startTag.tagName !== this._endTag.tagName) {
370
371
  return false
371
372
  }
372
373
 
373
- if (this.children.length === 1 && this.children[0].nodeType !== AstNodeType.RootNode) {
374
+ if (this.children.length === 1 && this.children[0].nodeType !== 'RootNode') {
374
375
  return false
375
376
  }
376
377
 
@@ -1,8 +1,8 @@
1
- import { htmlTransforms } from '../generator/transforms/htmlTransforms.js'
2
- import { stringifyTokens, Token } from '../lexer/Token.js'
3
- import { isStringToken, TokenType } from '../lexer/TokenType.js'
4
- import { RootNode, AttrNode, TextNode, LinebreakNode, StartTagNode, EndTagNode, AstNodeType, TagNode, AstNode } from './AstNode.js'
5
- import { nodeIsType } from './nodeIsType.js'
1
+ import { htmlTransforms } from '../generator/transforms/htmlTransforms.ts'
2
+ import { stringifyTokens, type Token } from '../lexer/Token.ts'
3
+ import { isStringToken } from '../lexer/TokenType.ts'
4
+ import { RootNode, AttrNode, TextNode, LinebreakNode, StartTagNode, EndTagNode, TagNode, AstNode } from './AstNode.ts'
5
+ import { nodeIsType } from './nodeIsType.ts'
6
6
 
7
7
  export class Parser {
8
8
  readonly tags: Set<string>
@@ -33,7 +33,7 @@ export class Parser {
33
33
  break
34
34
  }
35
35
 
36
- if (endOnQuotes && (tokens[idx].type === TokenType.XSS_S_QUOTE || tokens[idx].type === TokenType.XSS_D_QUOTE)) {
36
+ if (endOnQuotes && (tokens[idx].type === 'XSS_S_QUOTE' || tokens[idx].type === 'XSS_D_QUOTE')) {
37
37
  break
38
38
  }
39
39
 
@@ -56,13 +56,13 @@ export class Parser {
56
56
 
57
57
  if (spaceIdx >= 0) {
58
58
  const oldToken: Token = {
59
- type: TokenType.STR,
59
+ type: 'STR',
60
60
  offset: tokens[idx].offset,
61
61
  length: spaceIdx,
62
62
  }
63
63
 
64
64
  const newToken: Token = {
65
- type: TokenType.STR,
65
+ type: 'STR',
66
66
  offset: tokens[idx].offset + spaceIdx,
67
67
  length: tokens[idx].length - spaceIdx,
68
68
  }
@@ -90,10 +90,10 @@ export class Parser {
90
90
 
91
91
  const attrNode = new AttrNode()
92
92
 
93
- if (tokens[idx].type === TokenType.EQUALS && isStringToken(tokens[idx + 1].type)) { // [Tag = VAL ...] or [Tag = "VAL"]
93
+ if (tokens[idx].type === 'EQUALS' && isStringToken(tokens[idx + 1].type)) { // [Tag = VAL ...] or [Tag = "VAL"]
94
94
  idx += 1 // Consume EQUALS
95
95
 
96
- const openedWithQuotes = tokens[idx].type === TokenType.XSS_S_QUOTE || tokens[idx].type === TokenType.XSS_D_QUOTE
96
+ const openedWithQuotes = tokens[idx].type === 'XSS_S_QUOTE' || tokens[idx].type === 'XSS_D_QUOTE'
97
97
  if (openedWithQuotes) {
98
98
  idx += 1
99
99
  }
@@ -102,19 +102,19 @@ export class Parser {
102
102
  attrNode.addChild(valNode)
103
103
 
104
104
  if (openedWithQuotes) {
105
- if (tokens[idx].type !== TokenType.XSS_S_QUOTE && tokens[idx].type !== TokenType.XSS_D_QUOTE) {
105
+ if (tokens[idx].type !== 'XSS_S_QUOTE' && tokens[idx].type !== 'XSS_D_QUOTE') {
106
106
  return null
107
107
  }
108
108
 
109
109
  idx += 1
110
110
  }
111
- } else if (isStringToken(tokens[idx].type) && tokens[idx + 1].type === TokenType.EQUALS && (idx + 2 < tokens.length && isStringToken(tokens[idx + 2].type))) { // [Tag KEY = VAL ...] or [Tag KEY = "VAL" ...]
111
+ } else if (isStringToken(tokens[idx].type) && tokens[idx + 1].type === 'EQUALS' && (idx + 2 < tokens.length && isStringToken(tokens[idx + 2].type))) { // [Tag KEY = VAL ...] or [Tag KEY = "VAL" ...]
112
112
  const keyNode = parseText()
113
113
  attrNode.addChild(keyNode)
114
114
 
115
115
  idx += 1 // Consume EQUALS
116
116
 
117
- const openedWithQuotes = tokens[idx].type === TokenType.XSS_S_QUOTE || tokens[idx].type === TokenType.XSS_D_QUOTE
117
+ const openedWithQuotes = tokens[idx].type === 'XSS_S_QUOTE' || tokens[idx].type === 'XSS_D_QUOTE'
118
118
  if (openedWithQuotes) {
119
119
  idx += 1
120
120
  }
@@ -122,7 +122,7 @@ export class Parser {
122
122
  const valNode = parseText(openedWithQuotes, true)
123
123
 
124
124
  if (openedWithQuotes) {
125
- if (tokens[idx].type !== TokenType.XSS_S_QUOTE && tokens[idx].type !== TokenType.XSS_D_QUOTE) {
125
+ if (tokens[idx].type !== 'XSS_S_QUOTE' && tokens[idx].type !== 'XSS_D_QUOTE') {
126
126
  return null
127
127
  }
128
128
 
@@ -130,7 +130,7 @@ export class Parser {
130
130
  }
131
131
 
132
132
  attrNode.addChild(valNode)
133
- } else if (isStringToken(tokens[idx].type) && tokens[idx + 1].type !== TokenType.EQUALS) { // [Tag VAL ...]
133
+ } else if (isStringToken(tokens[idx].type) && tokens[idx + 1].type !== 'EQUALS') { // [Tag VAL ...]
134
134
  const valNode = parseText()
135
135
  attrNode.addChild(valNode)
136
136
  } else {
@@ -145,7 +145,7 @@ export class Parser {
145
145
  return null
146
146
  }
147
147
 
148
- if (tokens[idx].type !== TokenType.L_BRACKET) {
148
+ if (tokens[idx].type !== 'L_BRACKET') {
149
149
  return null
150
150
  }
151
151
 
@@ -169,7 +169,7 @@ export class Parser {
169
169
  attrNodes.push(attrNode)
170
170
  }
171
171
 
172
- if (tokens[idx].type !== TokenType.R_BRACKET) {
172
+ if (tokens[idx].type !== 'R_BRACKET') {
173
173
  return null
174
174
  }
175
175
 
@@ -182,7 +182,7 @@ export class Parser {
182
182
  }
183
183
 
184
184
  // If L_BRACKET is followed by BACKSLASH, then it must be EndTag or is invalid
185
- if (tokens[idx + 1].type === TokenType.BACKSLASH) {
185
+ if (tokens[idx + 1].type === 'BACKSLASH') {
186
186
  const startIdx = idx
187
187
  idx += 1 // Consume L_BRACKET
188
188
  idx += 1 // Consume BACKSLASH
@@ -192,7 +192,7 @@ export class Parser {
192
192
  return null
193
193
  }
194
194
 
195
- if (tokens[idx].type !== TokenType.R_BRACKET) {
195
+ if (tokens[idx].type !== 'R_BRACKET') {
196
196
  return null
197
197
  }
198
198
 
@@ -211,7 +211,7 @@ export class Parser {
211
211
  const root = new RootNode()
212
212
 
213
213
  while (idx < tokens.length) {
214
- if (tokens[idx].type === TokenType.L_BRACKET) {
214
+ if (tokens[idx].type === 'L_BRACKET') {
215
215
  const startIdx = idx
216
216
  const tagNode = parseTag()
217
217
 
@@ -223,14 +223,14 @@ export class Parser {
223
223
  const textNode = new TextNode(str)
224
224
  root.addChild(textNode)
225
225
  }
226
- } else if (tokens[idx].type === TokenType.LINEBREAK) {
226
+ } else if (tokens[idx].type === 'LINEBREAK') {
227
227
  idx += 1 // Consume LINEBREAK
228
228
  root.addChild(new LinebreakNode())
229
229
  } else {
230
230
  const startIdx = idx
231
231
 
232
232
  // Advance until we see the start of another RootNode's child (TagNode or LinebreakNode)
233
- while (idx < tokens.length && tokens[idx].type !== TokenType.L_BRACKET && tokens[idx].type !== TokenType.LINEBREAK) {
233
+ while (idx < tokens.length && tokens[idx].type !== 'L_BRACKET' && tokens[idx].type !== 'LINEBREAK') {
234
234
  idx += 1
235
235
  }
236
236
 
@@ -258,7 +258,7 @@ export class Parser {
258
258
  for (let i = 0; i < rootNode.children.length; i++) {
259
259
  const child = rootNode.children[i]
260
260
 
261
- if (nodeIsType(child, AstNodeType.StartTagNode)) {
261
+ if (nodeIsType(child, 'StartTagNode')) {
262
262
  const endTag = this.findMatchingEndTag(rootNode.children, i, child.tagName)
263
263
  const isStandalone = this.standaloneTags.has(child.tagName)
264
264
 
@@ -278,13 +278,13 @@ export class Parser {
278
278
  // If no end tag exists, then treat tag as string literal
279
279
  transformedRoot.addChild(new TextNode(child.ogTag))
280
280
  }
281
- } else if (nodeIsType(child, AstNodeType.EndTagNode)) {
281
+ } else if (nodeIsType(child, 'EndTagNode')) {
282
282
  // Encountered end tag when we're not expecting an end tag so we treat it as a string literal
283
283
  transformedRoot.addChild(new TextNode(child.ogTag))
284
- } else if (nodeIsType(child, AstNodeType.TextNode)) {
284
+ } else if (nodeIsType(child, 'TextNode')) {
285
285
  // Normal text nodes get copied
286
286
  transformedRoot.addChild(child)
287
- } else if (nodeIsType(child, AstNodeType.LinebreakNode)) {
287
+ } else if (nodeIsType(child, 'LinebreakNode')) {
288
288
  // Linebreak nodes get copied
289
289
  transformedRoot.addChild(child)
290
290
  } else {
@@ -303,8 +303,8 @@ export class Parser {
303
303
  for (let i = startIdx; i < siblings.length; i++) {
304
304
  const sibling = siblings[i]
305
305
  const isEndTag =
306
- (nodeIsType(sibling, AstNodeType.LinebreakNode) && this.linebreakTerminatedTags.has(tagName)) ||
307
- (nodeIsType(sibling, AstNodeType.EndTagNode) && sibling.tagName === tagName)
306
+ (nodeIsType(sibling, 'LinebreakNode') && this.linebreakTerminatedTags.has(tagName)) ||
307
+ (nodeIsType(sibling, 'EndTagNode') && sibling.tagName === tagName)
308
308
 
309
309
  if (isEndTag) {
310
310
  return {
@@ -1,13 +1,13 @@
1
- import { AstNodeType, AstNode, AttrNode, RootNode, TagNode, TextNode, LinebreakNode, EndTagNode, StartTagNode } from './AstNode.js'
1
+ import type { AstNode, AttrNode, RootNode, TagNode, TextNode, LinebreakNode, EndTagNode, StartTagNode } from './AstNode.ts'
2
2
 
3
3
  type AstMap = {
4
- [AstNodeType.RootNode]: RootNode
5
- [AstNodeType.LinebreakNode]: LinebreakNode
6
- [AstNodeType.TextNode]: TextNode
7
- [AstNodeType.TagNode]: TagNode
8
- [AstNodeType.StartTagNode]: StartTagNode
9
- [AstNodeType.EndTagNode]: EndTagNode
10
- [AstNodeType.AttrNode]: AttrNode
4
+ ['RootNode']: RootNode
5
+ ['LinebreakNode']: LinebreakNode
6
+ ['TextNode']: TextNode
7
+ ['TagNode']: TagNode
8
+ ['StartTagNode']: StartTagNode
9
+ ['EndTagNode']: EndTagNode
10
+ ['AttrNode']: AttrNode
11
11
  }
12
12
 
13
13
  export function nodeIsType<T extends keyof AstMap>(node: AstNode, nodeType: T): node is AstMap[T] {
@@ -1,2 +0,0 @@
1
- export declare function generateHtml(input: string, transforms?: readonly import('./index.js').Transform[]): string;
2
- //# sourceMappingURL=generateHtml.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"generateHtml.d.ts","sourceRoot":"","sources":["../src/generateHtml.ts"],"names":[],"mappings":"AAKA,wBAAgB,YAAY,CAAC,KAAK,EAAE,MAAM,EAAE,UAAU,4CAAiB,GAAG,MAAM,CAS/E"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"Generator.d.ts","sourceRoot":"","sources":["../../src/generator/Generator.ts"],"names":[],"mappings":"AAAA,OAAO,EAAwB,QAAQ,EAAE,MAAM,sBAAsB,CAAA;AAGrE,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,2BAA2B,CAAA;AAE1D,qBAAa,SAAS;IAClB,UAAU,EAAE,WAAW,CAAC,MAAM,EAAE,SAAS,CAAC,CAAA;gBAE9B,UAAU,uBAAiB;IAIvC,QAAQ,CAAC,IAAI,EAAE,QAAQ,GAAG,MAAM;CA+CnC"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"Transform.d.ts","sourceRoot":"","sources":["../../../src/generator/transforms/Transform.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,yBAAyB,CAAA;AAEtD,MAAM,MAAM,SAAS,GAAG;IACpB,IAAI,EAAE,MAAM,CAAA;IAEZ,YAAY,CAAC,EAAE,OAAO,CAAA;IACtB,YAAY,CAAC,EAAE,OAAO,CAAA;IACtB,qBAAqB,CAAC,EAAE,OAAO,CAAA;IAG/B,KAAK,EAAE,CAAC,OAAO,EAAE,OAAO,KAAK,MAAM,GAAG,KAAK,CAAA;IAG3C,GAAG,CAAC,EAAE,CAAC,OAAO,EAAE,OAAO,KAAK,MAAM,CAAA;CACrC,CAAA"}
@@ -1,4 +0,0 @@
1
- import { Transform } from './Transform.js';
2
-
3
- export declare const htmlTransforms: ReadonlyArray<Transform>;
4
- //# sourceMappingURL=htmlTransforms.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"htmlTransforms.d.ts","sourceRoot":"","sources":["../../../src/generator/transforms/htmlTransforms.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAA;AAE/C,eAAO,MAAM,cAAc,EAAE,aAAa,CAAC,SAAS,CA4MnD,CAAA"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"getTagImmediateAttrVal.d.ts","sourceRoot":"","sources":["../../../src/generator/utils/getTagImmediateAttrVal.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,yBAAyB,CAAA;AAEtD;;;;;;;;;;GAUG;AACH,wBAAgB,sBAAsB,CAAC,OAAO,EAAE,OAAO,GAAG,MAAM,GAAG,SAAS,CAO3E"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"getTagImmediateText.d.ts","sourceRoot":"","sources":["../../../src/generator/utils/getTagImmediateText.ts"],"names":[],"mappings":"AAAA,OAAO,EAAe,OAAO,EAAE,MAAM,yBAAyB,CAAA;AAG9D;;;;;;;;GAQG;AACH,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,OAAO,GAAG,MAAM,GAAG,SAAS,CAoBxE"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"getWidthHeightAttr.d.ts","sourceRoot":"","sources":["../../../src/generator/utils/getWidthHeightAttr.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,yBAAyB,CAAA;AAEtD;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,OAAO,GAAG;IAAE,KAAK,CAAC,EAAE,MAAM,CAAC;IAAC,MAAM,CAAC,EAAE,MAAM,CAAA;CAAE,CAuBxF"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"isDangerousUrl.d.ts","sourceRoot":"","sources":["../../../src/generator/utils/isDangerousUrl.ts"],"names":[],"mappings":"AAGA,wBAAgB,cAAc,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAanD"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"isOrderedList.d.ts","sourceRoot":"","sources":["../../../src/generator/utils/isOrderedList.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,yBAAyB,CAAA;AAEtD;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,aAAa,CAAC,IAAI,EAAE,OAAO,GAAG,OAAO,CASpD"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,mBAAmB,CAAA;AAEjC,cAAc,kBAAkB,CAAA;AAChC,cAAc,kBAAkB,CAAA;AAChC,cAAc,sBAAsB,CAAA;AAEpC,cAAc,oBAAoB,CAAA;AAClC,cAAc,qBAAqB,CAAA;AACnC,cAAc,wBAAwB,CAAA;AAEtC,cAAc,0BAA0B,CAAA;AACxC,cAAc,qCAAqC,CAAA;AACnD,cAAc,0CAA0C,CAAA;AACxD,cAAc,yCAAyC,CAAA;AACvD,cAAc,6CAA6C,CAAA;AAC3D,cAAc,0CAA0C,CAAA;AACxD,cAAc,qCAAqC,CAAA;AACnD,cAAc,oCAAoC,CAAA"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"Lexer.d.ts","sourceRoot":"","sources":["../../src/lexer/Lexer.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,YAAY,CAAA;AAEvC,qBAAa,KAAK;IACd,QAAQ,CAAC,KAAK,EAAE,QAAQ,CAAC,MAAM,CAAC,GAAG,KAAK,CAAC,KAAK,CAAC;CAoFlD"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"Token.d.ts","sourceRoot":"","sources":["../../src/lexer/Token.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAA;AAE1C,MAAM,MAAM,KAAK,GAAG;IAChB,IAAI,EAAE,SAAS,CAAA;IACf,MAAM,EAAE,MAAM,CAAA;IACd,MAAM,EAAE,MAAM,CAAA;CACjB,CAAA;AAED,wBAAgB,eAAe,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,aAAa,CAAC,KAAK,CAAC,GAAG,MAAM,CAuDpF"}
@@ -1,17 +0,0 @@
1
- export declare const enum TokenType {
2
- STR = 0,
3
- LINEBREAK = 1,
4
- L_BRACKET = 2,
5
- R_BRACKET = 3,
6
- BACKSLASH = 4,
7
- EQUALS = 5,
8
- XSS_AMP = 6,
9
- XSS_LT = 7,
10
- XSS_GT = 8,
11
- XSS_D_QUOTE = 9,
12
- XSS_S_QUOTE = 10
13
- }
14
- export declare function tokenTypeToString(tokenType: TokenType): string;
15
- export declare function isStringToken(tokenType: TokenType): boolean;
16
- export declare const symbolTable: Record<string, TokenType | undefined>;
17
- //# sourceMappingURL=TokenType.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"TokenType.d.ts","sourceRoot":"","sources":["../../src/lexer/TokenType.ts"],"names":[],"mappings":"AAAA,0BAAkB,SAAS;IACvB,GAAG,IAAA;IACH,SAAS,IAAA;IAGT,SAAS,IAAA;IACT,SAAS,IAAA;IACT,SAAS,IAAA;IACT,MAAM,IAAA;IAGN,OAAO,IAAA;IACP,MAAM,IAAA;IACN,MAAM,IAAA;IACN,WAAW,IAAA;IACX,WAAW,KAAA;CACd;AAED,wBAAgB,iBAAiB,CAAC,SAAS,EAAE,SAAS,GAAG,MAAM,CAgB9D;AAED,wBAAgB,aAAa,CAAC,SAAS,EAAE,SAAS,GAAG,OAAO,CAa3D;AAED,eAAO,MAAM,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,SAAS,GAAG,SAAS,CAa7D,CAAA"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"AstNode.d.ts","sourceRoot":"","sources":["../../src/parser/AstNode.ts"],"names":[],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"Parser.d.ts","sourceRoot":"","sources":["../../src/parser/Parser.ts"],"names":[],"mappings":"AACA,OAAO,EAAmB,KAAK,EAAE,MAAM,mBAAmB,CAAA;AAE1D,OAAO,EAAE,QAAQ,EAA8F,MAAM,cAAc,CAAA;AAGnI,qBAAa,MAAM;IACf,QAAQ,CAAC,IAAI,EAAE,GAAG,CAAC,MAAM,CAAC,CAAA;IAC1B,QAAQ,CAAC,uBAAuB,EAAE,GAAG,CAAC,MAAM,CAAC,CAAA;IAC7C,QAAQ,CAAC,cAAc,EAAE,GAAG,CAAC,MAAM,CAAC,CAAA;gBAExB,UAAU,6CAAiB;IAMvC,KAAK,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,CAAC,KAAK,CAAC,GAAG,QAAQ;IA6OrD,OAAO,CAAC,aAAa;IA2CrB,OAAO,CAAC,kBAAkB;CAqB7B"}
@@ -1,14 +0,0 @@
1
- import { AstNodeType, AstNode, AttrNode, RootNode, TagNode, TextNode, LinebreakNode, EndTagNode, StartTagNode } from './AstNode.js';
2
-
3
- type AstMap = {
4
- [AstNodeType.RootNode]: RootNode;
5
- [AstNodeType.LinebreakNode]: LinebreakNode;
6
- [AstNodeType.TextNode]: TextNode;
7
- [AstNodeType.TagNode]: TagNode;
8
- [AstNodeType.StartTagNode]: StartTagNode;
9
- [AstNodeType.EndTagNode]: EndTagNode;
10
- [AstNodeType.AttrNode]: AttrNode;
11
- };
12
- export declare function nodeIsType<T extends keyof AstMap>(node: AstNode, nodeType: T): node is AstMap[T];
13
- export {};
14
- //# sourceMappingURL=nodeIsType.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"nodeIsType.d.ts","sourceRoot":"","sources":["../../src/parser/nodeIsType.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,aAAa,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,cAAc,CAAA;AAEnI,KAAK,MAAM,GAAG;IACV,CAAC,WAAW,CAAC,QAAQ,CAAC,EAAE,QAAQ,CAAA;IAChC,CAAC,WAAW,CAAC,aAAa,CAAC,EAAE,aAAa,CAAA;IAC1C,CAAC,WAAW,CAAC,QAAQ,CAAC,EAAE,QAAQ,CAAA;IAChC,CAAC,WAAW,CAAC,OAAO,CAAC,EAAE,OAAO,CAAA;IAC9B,CAAC,WAAW,CAAC,YAAY,CAAC,EAAE,YAAY,CAAA;IACxC,CAAC,WAAW,CAAC,UAAU,CAAC,EAAE,UAAU,CAAA;IACpC,CAAC,WAAW,CAAC,QAAQ,CAAC,EAAE,QAAQ,CAAA;CACnC,CAAA;AAED,wBAAgB,UAAU,CAAC,CAAC,SAAS,MAAM,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,QAAQ,EAAE,CAAC,GAAG,IAAI,IAAI,MAAM,CAAC,CAAC,CAAC,CAEhG"}