@typed/template 0.1.4 → 0.3.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (234) hide show
  1. package/Directive/package.json +6 -0
  2. package/ElementRef/package.json +6 -0
  3. package/ElementSource/package.json +6 -0
  4. package/Entry/package.json +6 -0
  5. package/EventHandler/package.json +6 -0
  6. package/Html/package.json +6 -0
  7. package/HtmlChunk/package.json +6 -0
  8. package/Hydrate/package.json +6 -0
  9. package/Many/package.json +6 -0
  10. package/Meta/package.json +6 -0
  11. package/Parser/package.json +6 -0
  12. package/Part/package.json +6 -0
  13. package/Placeholder/package.json +6 -0
  14. package/Platform/package.json +6 -0
  15. package/Render/package.json +6 -0
  16. package/RenderContext/package.json +6 -0
  17. package/RenderEvent/package.json +6 -0
  18. package/RenderTemplate/package.json +6 -0
  19. package/Renderable/package.json +6 -0
  20. package/Template/package.json +6 -0
  21. package/TemplateInstance/package.json +6 -0
  22. package/Test/package.json +6 -0
  23. package/Vitest/package.json +6 -0
  24. package/dist/cjs/Directive.js +1 -1
  25. package/dist/cjs/Directive.js.map +1 -1
  26. package/dist/cjs/ElementRef.js +23 -13
  27. package/dist/cjs/ElementRef.js.map +1 -1
  28. package/dist/cjs/ElementSource.js +16 -18
  29. package/dist/cjs/ElementSource.js.map +1 -1
  30. package/dist/cjs/EventHandler.js +1 -1
  31. package/dist/cjs/EventHandler.js.map +1 -1
  32. package/dist/cjs/Html.js +31 -32
  33. package/dist/cjs/Html.js.map +1 -1
  34. package/dist/cjs/HtmlChunk.js +4 -1
  35. package/dist/cjs/HtmlChunk.js.map +1 -1
  36. package/dist/cjs/Hydrate.js +1 -1
  37. package/dist/cjs/Hydrate.js.map +1 -1
  38. package/dist/cjs/Many.js +14 -13
  39. package/dist/cjs/Many.js.map +1 -1
  40. package/dist/cjs/Parser.js +11 -323
  41. package/dist/cjs/Parser.js.map +1 -1
  42. package/dist/cjs/Placeholder.js +3 -3
  43. package/dist/cjs/Placeholder.js.map +1 -1
  44. package/dist/cjs/Platform.js +4 -4
  45. package/dist/cjs/Platform.js.map +1 -1
  46. package/dist/cjs/Render.js +1 -1
  47. package/dist/cjs/Render.js.map +1 -1
  48. package/dist/cjs/RenderContext.js +48 -27
  49. package/dist/cjs/RenderContext.js.map +1 -1
  50. package/dist/cjs/RenderTemplate.js +2 -17
  51. package/dist/cjs/RenderTemplate.js.map +1 -1
  52. package/dist/cjs/Template.js +27 -1
  53. package/dist/cjs/Template.js.map +1 -1
  54. package/dist/cjs/TemplateInstance.js +2 -2
  55. package/dist/cjs/TemplateInstance.js.map +1 -1
  56. package/dist/cjs/Test.js +20 -7
  57. package/dist/cjs/Test.js.map +1 -1
  58. package/dist/cjs/index.js +0 -12
  59. package/dist/cjs/index.js.map +1 -1
  60. package/dist/cjs/internal/EventSource.js +95 -0
  61. package/dist/cjs/internal/EventSource.js.map +1 -0
  62. package/dist/cjs/internal/browser.js +11 -11
  63. package/dist/cjs/internal/browser.js.map +1 -1
  64. package/dist/cjs/internal/hydrate.js +49 -50
  65. package/dist/cjs/internal/hydrate.js.map +1 -1
  66. package/dist/cjs/internal/indexRefCounter.js +49 -2
  67. package/dist/cjs/internal/indexRefCounter.js.map +1 -1
  68. package/dist/cjs/internal/parser.js +60 -17
  69. package/dist/cjs/internal/parser.js.map +1 -1
  70. package/dist/cjs/internal/parts.js +128 -28
  71. package/dist/cjs/internal/parts.js.map +1 -1
  72. package/dist/cjs/internal/render.js +486 -53
  73. package/dist/cjs/internal/render.js.map +1 -1
  74. package/dist/cjs/internal/server.js +5 -2
  75. package/dist/cjs/internal/server.js.map +1 -1
  76. package/dist/dts/Directive.d.ts.map +1 -1
  77. package/dist/dts/ElementRef.d.ts +4 -2
  78. package/dist/dts/ElementRef.d.ts.map +1 -1
  79. package/dist/dts/ElementSource.d.ts +10 -5
  80. package/dist/dts/ElementSource.d.ts.map +1 -1
  81. package/dist/dts/EventHandler.d.ts.map +1 -1
  82. package/dist/dts/Html.d.ts +1 -1
  83. package/dist/dts/Html.d.ts.map +1 -1
  84. package/dist/dts/HtmlChunk.d.ts.map +1 -1
  85. package/dist/dts/Many.d.ts +13 -11
  86. package/dist/dts/Many.d.ts.map +1 -1
  87. package/dist/dts/Parser.d.ts +3 -6
  88. package/dist/dts/Parser.d.ts.map +1 -1
  89. package/dist/dts/Part.d.ts +13 -3
  90. package/dist/dts/Part.d.ts.map +1 -1
  91. package/dist/dts/Placeholder.d.ts +2 -2
  92. package/dist/dts/Placeholder.d.ts.map +1 -1
  93. package/dist/dts/Render.d.ts +2 -1
  94. package/dist/dts/Render.d.ts.map +1 -1
  95. package/dist/dts/RenderContext.d.ts +5 -4
  96. package/dist/dts/RenderContext.d.ts.map +1 -1
  97. package/dist/dts/RenderTemplate.d.ts +2 -16
  98. package/dist/dts/RenderTemplate.d.ts.map +1 -1
  99. package/dist/dts/Renderable.d.ts +2 -2
  100. package/dist/dts/Renderable.d.ts.map +1 -1
  101. package/dist/dts/Template.d.ts +21 -3
  102. package/dist/dts/Template.d.ts.map +1 -1
  103. package/dist/dts/TemplateInstance.d.ts +3 -2
  104. package/dist/dts/TemplateInstance.d.ts.map +1 -1
  105. package/dist/dts/Test.d.ts +4 -6
  106. package/dist/dts/Test.d.ts.map +1 -1
  107. package/dist/dts/index.d.ts +0 -4
  108. package/dist/dts/index.d.ts.map +1 -1
  109. package/dist/dts/internal/EventSource.d.ts +12 -0
  110. package/dist/dts/internal/EventSource.d.ts.map +1 -0
  111. package/dist/dts/internal/browser.d.ts.map +1 -1
  112. package/dist/dts/internal/hydrate.d.ts +5 -5
  113. package/dist/dts/internal/hydrate.d.ts.map +1 -1
  114. package/dist/dts/internal/indexRefCounter.d.ts +5 -0
  115. package/dist/dts/internal/indexRefCounter.d.ts.map +1 -1
  116. package/dist/dts/internal/module-augmentation.d.ts +0 -4
  117. package/dist/dts/internal/module-augmentation.d.ts.map +1 -1
  118. package/dist/dts/internal/parser.d.ts +8 -0
  119. package/dist/dts/internal/parser.d.ts.map +1 -1
  120. package/dist/dts/internal/parts.d.ts +66 -56
  121. package/dist/dts/internal/parts.d.ts.map +1 -1
  122. package/dist/dts/internal/render.d.ts +7 -7
  123. package/dist/dts/internal/render.d.ts.map +1 -1
  124. package/dist/dts/internal/server.d.ts.map +1 -1
  125. package/dist/esm/Directive.js +1 -1
  126. package/dist/esm/Directive.js.map +1 -1
  127. package/dist/esm/ElementRef.js +12 -7
  128. package/dist/esm/ElementRef.js.map +1 -1
  129. package/dist/esm/ElementSource.js +16 -13
  130. package/dist/esm/ElementSource.js.map +1 -1
  131. package/dist/esm/EventHandler.js +1 -1
  132. package/dist/esm/EventHandler.js.map +1 -1
  133. package/dist/esm/Html.js +29 -24
  134. package/dist/esm/Html.js.map +1 -1
  135. package/dist/esm/HtmlChunk.js +6 -1
  136. package/dist/esm/HtmlChunk.js.map +1 -1
  137. package/dist/esm/Hydrate.js +1 -1
  138. package/dist/esm/Hydrate.js.map +1 -1
  139. package/dist/esm/Many.js +14 -10
  140. package/dist/esm/Many.js.map +1 -1
  141. package/dist/esm/Parser.js +6 -335
  142. package/dist/esm/Parser.js.map +1 -1
  143. package/dist/esm/Placeholder.js +2 -2
  144. package/dist/esm/Placeholder.js.map +1 -1
  145. package/dist/esm/Platform.js +2 -2
  146. package/dist/esm/Platform.js.map +1 -1
  147. package/dist/esm/Render.js +1 -1
  148. package/dist/esm/Render.js.map +1 -1
  149. package/dist/esm/RenderContext.js +38 -17
  150. package/dist/esm/RenderContext.js.map +1 -1
  151. package/dist/esm/RenderTemplate.js +2 -12
  152. package/dist/esm/RenderTemplate.js.map +1 -1
  153. package/dist/esm/Template.js +24 -0
  154. package/dist/esm/Template.js.map +1 -1
  155. package/dist/esm/TemplateInstance.js +2 -2
  156. package/dist/esm/TemplateInstance.js.map +1 -1
  157. package/dist/esm/Test.js +20 -7
  158. package/dist/esm/Test.js.map +1 -1
  159. package/dist/esm/index.js +0 -4
  160. package/dist/esm/index.js.map +1 -1
  161. package/dist/esm/internal/EventSource.js +91 -0
  162. package/dist/esm/internal/EventSource.js.map +1 -0
  163. package/dist/esm/internal/browser.js +12 -12
  164. package/dist/esm/internal/browser.js.map +1 -1
  165. package/dist/esm/internal/hydrate.js +45 -46
  166. package/dist/esm/internal/hydrate.js.map +1 -1
  167. package/dist/esm/internal/indexRefCounter.js +50 -2
  168. package/dist/esm/internal/indexRefCounter.js.map +1 -1
  169. package/dist/esm/internal/parser.js +84 -17
  170. package/dist/esm/internal/parser.js.map +1 -1
  171. package/dist/esm/internal/parts.js +110 -27
  172. package/dist/esm/internal/parts.js.map +1 -1
  173. package/dist/esm/internal/render.js +476 -58
  174. package/dist/esm/internal/render.js.map +1 -1
  175. package/dist/esm/internal/server.js +5 -4
  176. package/dist/esm/internal/server.js.map +1 -1
  177. package/package.json +10 -26
  178. package/src/Directive.ts +1 -1
  179. package/src/ElementRef.ts +18 -14
  180. package/src/ElementSource.ts +62 -47
  181. package/src/EventHandler.ts +1 -1
  182. package/src/Html.ts +58 -57
  183. package/src/HtmlChunk.ts +15 -1
  184. package/src/Hydrate.ts +1 -1
  185. package/src/Many.ts +53 -43
  186. package/src/Parser.ts +10 -453
  187. package/src/Part.ts +15 -3
  188. package/src/Placeholder.ts +4 -4
  189. package/src/Platform.ts +2 -2
  190. package/src/Render.ts +7 -2
  191. package/src/RenderContext.ts +49 -21
  192. package/src/RenderTemplate.ts +9 -54
  193. package/src/Renderable.ts +2 -1
  194. package/src/Template.ts +26 -0
  195. package/src/TemplateInstance.ts +9 -9
  196. package/src/Test.ts +40 -21
  197. package/src/index.ts +0 -4
  198. package/src/internal/EventSource.ts +153 -0
  199. package/src/internal/browser.ts +26 -25
  200. package/src/internal/hydrate.ts +68 -61
  201. package/src/internal/indexRefCounter.ts +63 -2
  202. package/src/internal/module-augmentation.ts +0 -4
  203. package/src/internal/parser.ts +92 -19
  204. package/src/internal/parts.ts +158 -73
  205. package/src/internal/render.ts +701 -89
  206. package/src/internal/server.ts +5 -3
  207. package/dist/cjs/Token.js +0 -270
  208. package/dist/cjs/Token.js.map +0 -1
  209. package/dist/cjs/Tokenizer.js +0 -18
  210. package/dist/cjs/Tokenizer.js.map +0 -1
  211. package/dist/cjs/internal/readAttribute.js +0 -34
  212. package/dist/cjs/internal/readAttribute.js.map +0 -1
  213. package/dist/cjs/internal/tokenizer.js +0 -264
  214. package/dist/cjs/internal/tokenizer.js.map +0 -1
  215. package/dist/dts/Token.d.ts +0 -202
  216. package/dist/dts/Token.d.ts.map +0 -1
  217. package/dist/dts/Tokenizer.d.ts +0 -6
  218. package/dist/dts/Tokenizer.d.ts.map +0 -1
  219. package/dist/dts/internal/readAttribute.d.ts +0 -9
  220. package/dist/dts/internal/readAttribute.d.ts.map +0 -1
  221. package/dist/dts/internal/tokenizer.d.ts +0 -3
  222. package/dist/dts/internal/tokenizer.d.ts.map +0 -1
  223. package/dist/esm/Token.js +0 -264
  224. package/dist/esm/Token.js.map +0 -1
  225. package/dist/esm/Tokenizer.js +0 -9
  226. package/dist/esm/Tokenizer.js.map +0 -1
  227. package/dist/esm/internal/readAttribute.js +0 -24
  228. package/dist/esm/internal/readAttribute.js.map +0 -1
  229. package/dist/esm/internal/tokenizer.js +0 -296
  230. package/dist/esm/internal/tokenizer.js.map +0 -1
  231. package/src/Token.ts +0 -269
  232. package/src/Tokenizer.ts +0 -10
  233. package/src/internal/readAttribute.ts +0 -28
  234. package/src/internal/tokenizer.ts +0 -338
@@ -1,296 +0,0 @@
1
- import * as Token from "../Token.js";
2
- import { getAllTextUntilElementClose, getAttributeWithoutQuotes, getAttributeWithQuotes, getBooleanAttribute, getClosingTag, getComment, getOpeningTag, getOpeningTagEnd, getPart, getSelfClosingTagEnd, getTextUntilCloseBrace, getTextUntilPart, getWhitespace, PART_REGEX, PART_STRING } from "./chunks.js";
3
- export function tokenize(template) {
4
- return new Tokenizer(template);
5
- }
6
- function templateWithParts(template) {
7
- const length = template.length;
8
- const lastIndex = length - 1;
9
- let output = "";
10
- for (let i = 0; i < length; i++) {
11
- const str = template[i];
12
- if (i === lastIndex) {
13
- output += str;
14
- }
15
- else {
16
- output += str + PART_STRING(i);
17
- }
18
- }
19
- return output;
20
- }
21
- class Tokenizer {
22
- template;
23
- input = "";
24
- pos = 0;
25
- context = "text";
26
- currentTag = null;
27
- constructor(template) {
28
- this.template = template;
29
- }
30
- *[Symbol.iterator]() {
31
- this.init();
32
- // eslint-disable-next-line no-constant-condition
33
- while (this.pos < this.input.length) {
34
- switch (this.context) {
35
- case "element":
36
- yield* this.nextElementToken();
37
- break;
38
- case "self-closing":
39
- yield* this.nextSelfClosingToken();
40
- break;
41
- case "text-only":
42
- yield* this.nextTextOnlyToken();
43
- break;
44
- default:
45
- yield* this.nextTextToken();
46
- }
47
- }
48
- }
49
- init() {
50
- // Convert our template into a string for easier tokenization
51
- // Remove any whitespace at the beginning or end of the template since we don't care about it.
52
- this.input = this.template.length === 1 ? this.template[0] : templateWithParts(this.template);
53
- }
54
- *nextTextToken() {
55
- const char = this.nextChar();
56
- const isOpenBracket = char === "<";
57
- let next;
58
- if (isOpenBracket && (next = this.chunk(getOpeningTag))) {
59
- const name = next.match[2];
60
- this.pushTag(name);
61
- this.context = Token.SELF_CLOSING_TAGS.has(name)
62
- ? "self-closing"
63
- : Token.TEXT_ONLY_NODES_REGEX.has(name)
64
- ? "text-only"
65
- : "element";
66
- yield new Token.OpeningTagToken(name);
67
- }
68
- else if (isOpenBracket && (next = this.chunk(getClosingTag))) {
69
- yield new Token.ClosingTagToken(next.match[3]);
70
- this.popTag();
71
- }
72
- else if (isOpenBracket && (next = this.chunk(getComment))) {
73
- yield* this.parseComment(next.match[2]);
74
- }
75
- else if ((next = this.chunk(getPart))) {
76
- yield new Token.PartToken(parseInt(next.match[2], 10));
77
- }
78
- else if ((next = this.chunk(getWhitespace))) {
79
- yield new Token.TextToken(next.match[1]);
80
- }
81
- else if ((next = this.chunk(getTextUntilCloseBrace))) {
82
- yield* parseTextAndParts(next.match[1]);
83
- }
84
- else {
85
- yield new Token.TextToken(this.takeNextChar());
86
- }
87
- }
88
- *nextElementToken() {
89
- let next;
90
- if ((next = this.chunk(getAttributeWithQuotes))) {
91
- yield* this.parseAttribute(next.match[2], next.match[4]);
92
- }
93
- else if ((next = this.chunk(getAttributeWithoutQuotes))) {
94
- yield* this.parseAttribute(next.match[2], next.match[4]);
95
- }
96
- else if ((next = this.chunk(getOpeningTagEnd))) {
97
- this.context = "text";
98
- yield new Token.OpeningTagEndToken(this.currentTag.value);
99
- }
100
- else if ((next = this.chunk(getSelfClosingTagEnd))) {
101
- yield new Token.OpeningTagEndToken(this.currentTag.value, false);
102
- yield new Token.ClosingTagToken(this.currentTag.value);
103
- this.popTag();
104
- this.context = "text";
105
- }
106
- else if ((next = this.chunk(getBooleanAttribute))) {
107
- yield new Token.BooleanAttributeToken(next.match[2]);
108
- }
109
- else if ((next = this.chunk(getWhitespace))) {
110
- // Continue
111
- }
112
- else {
113
- this.invalidTemplate();
114
- }
115
- }
116
- *nextSelfClosingToken() {
117
- let next;
118
- if ((next = this.chunk(getAttributeWithQuotes))) {
119
- yield* this.parseAttribute(next.match[2], next.match[4]);
120
- }
121
- else if ((next = this.chunk(getAttributeWithoutQuotes))) {
122
- yield* this.parseAttribute(next.match[2], next.match[4]);
123
- }
124
- else if ((next = this.chunk(getSelfClosingTagEnd))) {
125
- yield new Token.OpeningTagEndToken(this.currentTag.value, true);
126
- this.popTag();
127
- this.context = "text";
128
- }
129
- else if ((next = this.chunk(getBooleanAttribute))) {
130
- yield new Token.BooleanAttributeToken(next.match[2]);
131
- }
132
- else {
133
- this.invalidTemplate();
134
- }
135
- }
136
- *nextTextOnlyToken() {
137
- let next;
138
- if ((next = this.chunk(getAttributeWithQuotes))) {
139
- yield* this.parseAttribute(next.match[2], next.match[4]);
140
- }
141
- else if ((next = this.chunk(getAttributeWithoutQuotes))) {
142
- yield* this.parseAttribute(next.match[2], next.match[4]);
143
- }
144
- else if ((next = this.chunk(getOpeningTagEnd))) {
145
- yield new Token.OpeningTagEndToken(this.currentTag.value);
146
- }
147
- else if ((next = this.chunk(getClosingTag))) {
148
- yield new Token.ClosingTagToken(next.match[3]);
149
- this.context = "text";
150
- }
151
- else if ((next = this.chunk(getAllTextUntilElementClose(this.currentTag.value)))) {
152
- const text = next.match[1];
153
- if (PART_REGEX.test(text)) {
154
- yield* parseTextAndParts(text);
155
- }
156
- else {
157
- yield new Token.TextToken(text);
158
- }
159
- this.context = "text";
160
- }
161
- else {
162
- this.invalidTemplate();
163
- }
164
- }
165
- *parseComment(comment) {
166
- const parts = Array.from(parseTextAndParts(comment));
167
- if (parts.length === 1 && parts[0]._tag === "text") {
168
- yield new Token.CommentToken(parts[0].value);
169
- return;
170
- }
171
- yield new Token.CommentStartToken("<!--");
172
- for (const part of parts) {
173
- yield part;
174
- }
175
- yield new Token.CommentEndToken("-->");
176
- }
177
- *parseAttribute(name, value) {
178
- const parts = Array.from(parseTextAndParts(value));
179
- if (value === "") {
180
- yield new Token.BooleanAttributeToken(name);
181
- return;
182
- }
183
- if (parts.length === 1 && parts[0]._tag === "text") {
184
- yield getAttributeToken(name, value);
185
- return;
186
- }
187
- yield getAttributeTokenPartial(name, "start");
188
- for (const part of parts) {
189
- yield part;
190
- }
191
- yield getAttributeTokenPartial(name, "end");
192
- }
193
- nextChar() {
194
- return this.input.charAt(this.pos);
195
- }
196
- takeNextChar() {
197
- const text = this.input.substring(this.pos, this.pos + 1);
198
- this.pos += 1;
199
- return text;
200
- }
201
- chunk(f) {
202
- const chunk = f(this.input, this.pos);
203
- if (chunk) {
204
- this.pos += chunk.length;
205
- }
206
- return chunk;
207
- }
208
- pushTag(name) {
209
- this.currentTag = new Stack(name, this.currentTag);
210
- }
211
- popTag() {
212
- if (this.currentTag) {
213
- this.currentTag = this.currentTag.previous;
214
- }
215
- }
216
- invalidTemplate() {
217
- let message = `Invalid template ${this.input}`;
218
- message += "\n\nFrom:\n\n";
219
- message += this.input.substring(this.pos);
220
- throw new SyntaxError(message);
221
- }
222
- }
223
- class Stack {
224
- value;
225
- previous;
226
- constructor(value, previous) {
227
- this.value = value;
228
- this.previous = previous;
229
- }
230
- }
231
- function* parseTextAndParts(s) {
232
- let next;
233
- let pos = 0;
234
- while (pos < s.length) {
235
- if ((next = getPart(s, pos))) {
236
- yield new Token.PartToken(parseInt(next.match[2], 10));
237
- pos += next.length;
238
- }
239
- else if ((next = getTextUntilPart(s, pos))) {
240
- yield new Token.TextToken(next.match[1]);
241
- pos += next.length;
242
- }
243
- else {
244
- yield new Token.TextToken(s.substring(pos));
245
- break;
246
- }
247
- }
248
- }
249
- function getAttributeTokenPartial(name, ctx) {
250
- switch (name[0]) {
251
- case "?":
252
- return ctx === "start"
253
- ? new Token.BooleanAttributeStartToken(name.substring(1))
254
- : new Token.BooleanAttributeEndToken(name.substring(1));
255
- case ".": {
256
- const propertyName = name.substring(1);
257
- switch (propertyName) {
258
- case "data":
259
- return ctx === "start"
260
- ? new Token.DataAttributeStartToken()
261
- : new Token.DataAttributeEndToken();
262
- default:
263
- return ctx === "start"
264
- ? new Token.PropertyAttributeStartToken(propertyName)
265
- : new Token.PropertyAttributeEndToken(propertyName);
266
- }
267
- }
268
- case "@":
269
- return ctx === "start"
270
- ? new Token.EventAttributeStartToken(name.substring(1))
271
- : new Token.EventAttributeEndToken(name.substring(1));
272
- case "o":
273
- if (name[1] === "n") {
274
- return ctx === "start"
275
- ? new Token.EventAttributeStartToken(name.substring(2))
276
- : new Token.EventAttributeEndToken(name.substring(2));
277
- }
278
- }
279
- switch (name.toLowerCase()) {
280
- case "class":
281
- case "classname":
282
- return ctx === "start"
283
- ? new Token.ClassNameAttributeStartToken()
284
- : new Token.ClassNameAttributeEndToken();
285
- case "ref":
286
- return ctx === "start" ? new Token.RefAttributeStartToken() : new Token.RefAttributeEndToken();
287
- }
288
- return ctx === "start" ? new Token.AttributeStartToken(name) : new Token.AttributeEndToken(name);
289
- }
290
- function getAttributeToken(name, value) {
291
- if (name[0] === "?") {
292
- return new Token.BooleanAttributeToken(name.substring(1));
293
- }
294
- return new Token.AttributeToken(name, value);
295
- }
296
- //# sourceMappingURL=tokenizer.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"tokenizer.js","sourceRoot":"","sources":["../../../src/internal/tokenizer.ts"],"names":[],"mappings":"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"}
package/src/Token.ts DELETED
@@ -1,269 +0,0 @@
1
- /**
2
- * @since 1.0.0
3
- */
4
-
5
- /**
6
- * @since 1.0.0
7
- */
8
- export type Token =
9
- | OpeningTagToken
10
- | OpeningTagEndToken
11
- | ClosingTagToken
12
- | AttributeToken
13
- | AttributeStartToken
14
- | AttributeEndToken
15
- | BooleanAttributeToken
16
- | BooleanAttributeStartToken
17
- | BooleanAttributeEndToken
18
- | ClassNameAttributeStartToken
19
- | ClassNameAttributeEndToken
20
- | DataAttributeStartToken
21
- | DataAttributeEndToken
22
- | EventAttributeStartToken
23
- | EventAttributeEndToken
24
- | PropertyAttributeStartToken
25
- | PropertyAttributeEndToken
26
- | RefAttributeStartToken
27
- | RefAttributeEndToken
28
- | CommentToken
29
- | CommentStartToken
30
- | CommentEndToken
31
- | TextToken
32
- | PartToken
33
-
34
- /**
35
- * @since 1.0.0
36
- */
37
- export class OpeningTagToken {
38
- readonly _tag = "opening-tag"
39
-
40
- constructor(
41
- readonly name: string,
42
- readonly isSelfClosing: boolean = SELF_CLOSING_TAGS.has(name),
43
- readonly textOnly: boolean = TEXT_ONLY_NODES_REGEX.has(name)
44
- ) {}
45
- }
46
-
47
- /**
48
- * @since 1.0.0
49
- */
50
- export class AttributeStartToken {
51
- readonly _tag = "attribute-start"
52
- constructor(readonly name: string) {}
53
- }
54
-
55
- /**
56
- * @since 1.0.0
57
- */
58
- export class AttributeEndToken {
59
- readonly _tag = "attribute-end"
60
- constructor(readonly name: string) {}
61
- }
62
-
63
- /**
64
- * @since 1.0.0
65
- */
66
- export class BooleanAttributeStartToken {
67
- readonly _tag = "boolean-attribute-start"
68
- constructor(readonly name: string) {}
69
- }
70
-
71
- /**
72
- * @since 1.0.0
73
- */
74
- export class BooleanAttributeEndToken {
75
- readonly _tag = "boolean-attribute-end"
76
- constructor(readonly name: string) {}
77
- }
78
-
79
- /**
80
- * @since 1.0.0
81
- */
82
- export class ClassNameAttributeStartToken {
83
- readonly _tag = "className-attribute-start"
84
- }
85
-
86
- /**
87
- * @since 1.0.0
88
- */
89
- export class ClassNameAttributeEndToken {
90
- readonly _tag = "className-attribute-end"
91
- }
92
-
93
- /**
94
- * @since 1.0.0
95
- */
96
- export class DataAttributeStartToken {
97
- readonly _tag = "data-attribute-start"
98
- }
99
-
100
- /**
101
- * @since 1.0.0
102
- */
103
- export class DataAttributeEndToken {
104
- readonly _tag = "data-attribute-end"
105
- }
106
-
107
- /**
108
- * @since 1.0.0
109
- */
110
- export class EventAttributeStartToken {
111
- readonly _tag = "event-attribute-start"
112
- constructor(readonly name: string) {}
113
- }
114
-
115
- /**
116
- * @since 1.0.0
117
- */
118
- export class EventAttributeEndToken {
119
- readonly _tag = "event-attribute-end"
120
- constructor(readonly name: string) {}
121
- }
122
-
123
- /**
124
- * @since 1.0.0
125
- */
126
- export class PropertyAttributeStartToken {
127
- readonly _tag = "property-attribute-start"
128
- constructor(readonly name: string) {}
129
- }
130
-
131
- /**
132
- * @since 1.0.0
133
- */
134
- export class PropertyAttributeEndToken {
135
- readonly _tag = "property-attribute-end"
136
- constructor(readonly name: string) {}
137
- }
138
-
139
- /**
140
- * @since 1.0.0
141
- */
142
- export class RefAttributeStartToken {
143
- readonly _tag = "ref-attribute-start"
144
- }
145
-
146
- /**
147
- * @since 1.0.0
148
- */
149
- export class RefAttributeEndToken {
150
- readonly _tag = "ref-attribute-end"
151
- }
152
-
153
- /**
154
- * @since 1.0.0
155
- */
156
- export class AttributeToken {
157
- readonly _tag = "attribute"
158
- constructor(
159
- readonly name: string,
160
- readonly value: string
161
- ) {}
162
- }
163
-
164
- /**
165
- * @since 1.0.0
166
- */
167
- export class BooleanAttributeToken {
168
- readonly _tag = "boolean-attribute"
169
- constructor(readonly name: string) {}
170
- }
171
-
172
- /**
173
- * @since 1.0.0
174
- */
175
- export class OpeningTagEndToken {
176
- readonly _tag = "opening-tag-end"
177
-
178
- constructor(
179
- readonly name: string,
180
- readonly selfClosing: boolean = SELF_CLOSING_TAGS.has(name),
181
- readonly textOnly: boolean = TEXT_ONLY_NODES_REGEX.has(name)
182
- ) {}
183
- }
184
-
185
- /**
186
- * @since 1.0.0
187
- */
188
- export class ClosingTagToken {
189
- readonly _tag = "closing-tag"
190
-
191
- constructor(
192
- readonly name: string,
193
- readonly textOnly: boolean = TEXT_ONLY_NODES_REGEX.has(name)
194
- ) {}
195
- }
196
-
197
- /**
198
- * @since 1.0.0
199
- */
200
- export class CommentToken {
201
- readonly _tag = "comment"
202
- constructor(readonly value: string) {}
203
- }
204
-
205
- /**
206
- * @since 1.0.0
207
- */
208
- export class CommentStartToken {
209
- readonly _tag = "comment-start"
210
- constructor(readonly value: string) {}
211
- }
212
-
213
- /**
214
- * @since 1.0.0
215
- */
216
- export class CommentEndToken {
217
- readonly _tag = "comment-end"
218
- constructor(readonly value: string) {}
219
- }
220
-
221
- /**
222
- * @since 1.0.0
223
- */
224
- export class TextToken {
225
- readonly _tag = "text"
226
- constructor(readonly value: string) {}
227
- }
228
-
229
- /**
230
- * @since 1.0.0
231
- */
232
- export class PartToken {
233
- readonly _tag = "part-token"
234
- constructor(readonly index: number) {}
235
- }
236
-
237
- /**
238
- * @since 1.0.0
239
- */
240
- export const TEXT_ONLY_NODES_REGEX = new Set([
241
- "textarea",
242
- "script",
243
- "style",
244
- "title",
245
- "plaintext",
246
- "xmp"
247
- ])
248
-
249
- /**
250
- * @since 1.0.0
251
- */
252
- export const SELF_CLOSING_TAGS = new Set([
253
- "area",
254
- "base",
255
- "br",
256
- "col",
257
- "command",
258
- "embed",
259
- "hr",
260
- "img",
261
- "input",
262
- "keygen",
263
- "link",
264
- "meta",
265
- "param",
266
- "source",
267
- "track",
268
- "wbr"
269
- ])
package/src/Tokenizer.ts DELETED
@@ -1,10 +0,0 @@
1
- /**
2
- * @since 1.0.0
3
- */
4
- import * as tokenizer from "./internal/tokenizer.js"
5
- import type { Token } from "./Token.js"
6
-
7
- /**
8
- * @since 1.0.0
9
- */
10
- export const tokenize: (template: ReadonlyArray<string>) => Iterable<Token> = tokenizer.tokenize
@@ -1,28 +0,0 @@
1
- const PATTERN = /(\s*([^>\s]*))/g
2
- const QUOTES = new Set(`"'`)
3
-
4
- export type AttrChunk = {
5
- readonly length: number
6
- readonly value: string
7
- }
8
-
9
- /**
10
- * Extract an attribute from a chunk of text.
11
- */
12
- export default function readAttribute(text: string, pos: number): AttrChunk | null {
13
- const quote = text.charAt(pos)
14
- const pos1 = pos + 1
15
-
16
- if (QUOTES.has(quote)) {
17
- const nextQuote = text.indexOf(quote, pos1)
18
- if (nextQuote === -1) {
19
- return null
20
- } else {
21
- return { length: nextQuote - pos + 1, value: text.substring(pos1, nextQuote) }
22
- }
23
- } else {
24
- PATTERN.lastIndex = pos
25
- const match = PATTERN.exec(text) || []
26
- return { length: match[1].length, value: match[2] }
27
- }
28
- }