@quenk/wml 2.13.10 → 2.14.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 (60) hide show
  1. package/lib/cli.d.ts +8 -8
  2. package/lib/cli.js +1 -3
  3. package/lib/cli.js.map +1 -1
  4. package/lib/cli.ts +48 -60
  5. package/lib/compile/codegen.d.ts +4 -9
  6. package/lib/compile/codegen.js +164 -369
  7. package/lib/compile/codegen.js.map +1 -1
  8. package/lib/compile/codegen.ts +644 -952
  9. package/lib/compile/index.d.ts +2 -2
  10. package/lib/compile/index.js +4 -4
  11. package/lib/compile/index.js.map +1 -1
  12. package/lib/compile/index.ts +14 -17
  13. package/lib/compile/transform.d.ts +8 -6
  14. package/lib/compile/transform.js +46 -18
  15. package/lib/compile/transform.js.map +1 -1
  16. package/lib/compile/transform.ts +139 -116
  17. package/lib/{dom.d.ts → dom/index.d.ts} +8 -2
  18. package/lib/{dom.js → dom/index.js} +84 -66
  19. package/lib/dom/index.js.map +1 -0
  20. package/lib/dom/index.ts +425 -0
  21. package/lib/dom/monitor.d.ts +33 -0
  22. package/lib/dom/monitor.js +60 -0
  23. package/lib/dom/monitor.js.map +1 -0
  24. package/lib/dom/monitor.ts +75 -0
  25. package/lib/index.d.ts +10 -95
  26. package/lib/index.js +10 -10
  27. package/lib/index.js.map +1 -1
  28. package/lib/index.ts +57 -182
  29. package/lib/main.js +17 -17
  30. package/lib/main.js.map +1 -1
  31. package/lib/main.ts +38 -44
  32. package/lib/parse/ast.d.ts +12 -6
  33. package/lib/parse/ast.js +68 -58
  34. package/lib/parse/ast.js.map +1 -1
  35. package/lib/parse/ast.ts +400 -482
  36. package/lib/parse/generated.d.ts +3 -5
  37. package/lib/parse/generated.js +9504 -9264
  38. package/lib/parse/index.d.ts +2 -3
  39. package/lib/parse/index.js.map +1 -1
  40. package/lib/parse/index.ts +7 -9
  41. package/lib/parse/test.js +194 -192
  42. package/lib/parse/test.js.map +1 -1
  43. package/lib/parse/test.ts +294 -404
  44. package/lib/parse/wml.y +4 -0
  45. package/lib/tsconfig.json +19 -20
  46. package/lib/util.d.ts +10 -0
  47. package/lib/util.js +21 -0
  48. package/lib/util.js.map +1 -0
  49. package/lib/util.ts +39 -0
  50. package/lib/view/frame.d.ts +103 -0
  51. package/lib/view/frame.js +206 -0
  52. package/lib/view/frame.js.map +1 -0
  53. package/lib/view/frame.ts +249 -0
  54. package/lib/view/index.d.ts +58 -0
  55. package/lib/view/index.js +48 -0
  56. package/lib/view/index.js.map +1 -0
  57. package/lib/view/index.ts +97 -0
  58. package/package.json +4 -3
  59. package/lib/dom.js.map +0 -1
  60. package/lib/dom.ts +0 -475
@@ -11,43 +11,43 @@ Object.defineProperty(exports, "__esModule", { value: true });
11
11
  exports.createElement = exports.unsafe = exports.text = exports.createUnsafeNode = exports.createTextNode = exports.escapeHTML = exports.escapeAttrValue = exports.isBrowser = exports.WMLDOMElement = exports.WMLDOMText = exports.WMLDOMNode = exports.WMLNodeList = void 0;
12
12
  const record_1 = require("@quenk/noni/lib/data/record");
13
13
  const type_1 = require("@quenk/noni/lib/data/type");
14
- const DOCTYPE = '<!DOCTYPE html>';
14
+ const DOCTYPE = "<!DOCTYPE html>";
15
15
  const ATTR_ESC_MAP = {
16
- '&': '\\u0026',
17
- '>': '\\u003e',
18
- '<': '\\u003c',
19
- '"': '\\u0022',
20
- '=': '\\u003d',
21
- '\u005c': '\\u005c',
22
- '\u2028': '\\u2028',
23
- '\u2029': '\\u2029'
16
+ "&": "\\u0026",
17
+ ">": "\\u003e",
18
+ "<": "\\u003c",
19
+ '"': "\\u0022",
20
+ "=": "\\u003d",
21
+ "\u005c": "\\u005c",
22
+ "\u2028": "\\u2028",
23
+ "\u2029": "\\u2029",
24
24
  };
25
- const attrsEscRegex = new RegExp(`[${(0, record_1.mapTo)(ATTR_ESC_MAP, (_, k) => k)}]`, 'g');
25
+ const attrsEscRegex = new RegExp(`[${(0, record_1.mapTo)(ATTR_ESC_MAP, (_, k) => k)}]`, "g");
26
26
  const HTML_ENT_MAP = {
27
- '"': '&quot;',
28
- '&': '&amp;',
29
- '\'': '&apos;',
30
- '<': '&lt;',
31
- '>': '&gt;'
27
+ '"': "&quot;",
28
+ "&": "&amp;",
29
+ "'": "&apos;",
30
+ "<": "&lt;",
31
+ ">": "&gt;",
32
32
  };
33
- const htmlEscRegex = new RegExp(`[${(0, record_1.mapTo)(HTML_ENT_MAP, (_, k) => k).join('')}]`, 'g');
33
+ const htmlEscRegex = new RegExp(`[${(0, record_1.mapTo)(HTML_ENT_MAP, (_, k) => k).join("")}]`, "g");
34
34
  const voidElements = [
35
- 'area',
36
- 'base',
37
- 'br',
38
- 'col',
39
- 'command',
40
- 'embed',
41
- 'hr',
42
- 'img',
43
- 'input',
44
- 'keygen',
45
- 'link',
46
- 'meta',
47
- 'param',
48
- 'source',
49
- 'track',
50
- 'wbr'
35
+ "area",
36
+ "base",
37
+ "br",
38
+ "col",
39
+ "command",
40
+ "embed",
41
+ "hr",
42
+ "img",
43
+ "input",
44
+ "keygen",
45
+ "link",
46
+ "meta",
47
+ "param",
48
+ "source",
49
+ "track",
50
+ "wbr",
51
51
  ];
52
52
  /**
53
53
  * WMLNodeList implementation.
@@ -57,6 +57,21 @@ class WMLNodeList {
57
57
  constructor() {
58
58
  this.length = 0;
59
59
  }
60
+ entries() {
61
+ throw new Error("Method not implemented.");
62
+ }
63
+ keys() {
64
+ throw new Error("Method not implemented.");
65
+ }
66
+ values() {
67
+ throw new Error("Method not implemented.");
68
+ }
69
+ [Symbol.iterator]() {
70
+ throw new Error("Method not implemented.");
71
+ }
72
+ [Symbol.dispose]() {
73
+ throw new Error("Method not implemented.");
74
+ }
60
75
  item() {
61
76
  return null;
62
77
  }
@@ -92,7 +107,7 @@ class WMLDOMNode {
92
107
  this.NOTATION_NODE = 12;
93
108
  this.PROCESSING_INSTRUCTION_NODE = 7;
94
109
  this.TEXT_NODE = 3;
95
- this.baseURI = '';
110
+ this.baseURI = "";
96
111
  this.childNodes = new WMLNodeList();
97
112
  this.firstChild = null;
98
113
  this.isConnected = false;
@@ -106,8 +121,9 @@ class WMLDOMNode {
106
121
  this.previousSibling = null;
107
122
  }
108
123
  get textContent() {
109
- return '';
124
+ return "";
110
125
  }
126
+ [Symbol.dispose]() { }
111
127
  addEventListener() { }
112
128
  dispatchEvent() {
113
129
  return false;
@@ -168,7 +184,7 @@ exports.WMLDOMNode = WMLDOMNode;
168
184
  */
169
185
  class WMLDOMText extends WMLDOMNode {
170
186
  constructor(value, escape = true) {
171
- super('#text', -1);
187
+ super("#text", -1);
172
188
  this.value = value;
173
189
  this.escape = escape;
174
190
  }
@@ -189,27 +205,28 @@ class WMLDOMElement extends WMLDOMNode {
189
205
  this.children = children;
190
206
  }
191
207
  get innerHTML() {
192
- return this.children.map(c => (c.nodeName === '#text') ?
193
- c.textContent :
194
- c.outerHTML).join('');
208
+ return this.children
209
+ .map((c) => c.nodeName === "#text"
210
+ ? c.textContent
211
+ : c.outerHTML)
212
+ .join("");
195
213
  }
196
214
  get outerHTML() {
197
215
  let { tag } = this;
198
216
  let content = this.innerHTML;
199
217
  let attrs = (0, record_1.mapTo)(this.attrs, (value, name) => {
200
- if ((0, type_1.isObject)(value) && (value instanceof WMLDOMText))
218
+ if ((0, type_1.isObject)(value) && value instanceof WMLDOMText)
201
219
  return `${name}="${value.textContent}"`;
202
- else if ((0, type_1.isFunction)(value) || (0, type_1.isObject)(value) || (value == null))
203
- return '';
220
+ else if ((0, type_1.isFunction)(value) || (0, type_1.isObject)(value) || value == null)
221
+ return "";
204
222
  else
205
223
  return `${name}="${(0, exports.escapeAttrValue)(String(value))}"`;
206
- }).join(' ');
207
- attrs = (attrs.trim() != '') ? ` ${attrs}` : '';
224
+ }).join(" ");
225
+ attrs = attrs.trim() != "" ? ` ${attrs}` : "";
208
226
  let open = `<${tag}${attrs}>`;
209
227
  if (tag === "html")
210
228
  open = `${DOCTYPE}${open}`;
211
- return (voidElements.indexOf(tag) > -1) ?
212
- open : `${open}${content}</${tag}>`;
229
+ return voidElements.indexOf(tag) > -1 ? open : `${open}${content}</${tag}>`;
213
230
  }
214
231
  setAttribute(key, value) {
215
232
  this.attrs[key] = value;
@@ -227,18 +244,18 @@ exports.isBrowser = typeof window !== "undefined" && typeof window.document !==
227
244
  /**
228
245
  * escapeAttrValue for safe browser display.
229
246
  */
230
- const escapeAttrValue = (value) => value.replace(attrsEscRegex, hit => ATTR_ESC_MAP[hit]);
247
+ const escapeAttrValue = (value) => value.replace(attrsEscRegex, (hit) => ATTR_ESC_MAP[hit]);
231
248
  exports.escapeAttrValue = escapeAttrValue;
232
249
  /**
233
250
  * escapeHTML for safe browser display.
234
251
  */
235
- const escapeHTML = (value) => value.replace(htmlEscRegex, hit => HTML_ENT_MAP[hit]);
252
+ const escapeHTML = (value) => value.replace(htmlEscRegex, (hit) => HTML_ENT_MAP[hit]);
236
253
  exports.escapeHTML = escapeHTML;
237
254
  /**
238
255
  * createTextNode wrapper.
239
256
  */
240
257
  const createTextNode = (txt) => {
241
- let str = String((txt == null) ? '' : txt);
258
+ let str = String(txt == null ? "" : txt);
242
259
  return exports.isBrowser ? document.createTextNode(str) : new WMLDOMText(str);
243
260
  };
244
261
  exports.createTextNode = createTextNode;
@@ -249,52 +266,53 @@ exports.text = exports.createTextNode;
249
266
  * THIS MUST ONLY BE USED IF YOU ARE 100% SURE THE STRING IS SAFE TO OUTPUT!
250
267
  */
251
268
  const createUnsafeNode = (txt) => {
252
- let str = String((txt == null) ? '' : txt);
269
+ let str = String(txt == null ? "" : txt);
253
270
  return exports.isBrowser ? createBrowserUnsafeNode(str) : new WMLDOMText(str, false);
254
271
  };
255
272
  exports.createUnsafeNode = createUnsafeNode;
256
273
  exports.unsafe = exports.createUnsafeNode;
257
274
  const createBrowserUnsafeNode = (html) => {
258
- let tmpl = document.createElement('template');
275
+ let tmpl = document.createElement("template");
259
276
  tmpl.innerHTML = html;
260
277
  return tmpl.content;
261
278
  };
279
+ const namespaces = new Map([["svg", "http://www.w3.org/2000/svg"]]);
262
280
  /**
263
281
  * createElement wrapper.
264
282
  */
265
- const createElement = (tag, attrs = {}, children = [], ns = '') => {
283
+ const createElement = (tag, attrs = {}, children = [], ns = "") => {
266
284
  if (!exports.isBrowser) {
267
285
  // XXX: The whole Element interface is not implemented but on server
268
286
  // side we are only interested in setAttribute.
269
287
  return new WMLDOMElement(tag, attrs, children);
270
288
  }
271
289
  else {
272
- let e = ns ?
273
- document.createElementNS(ns, tag) :
274
- document.createElement(tag);
290
+ let e = ns
291
+ ? document.createElementNS(namespaces.get(ns) ?? "", tag)
292
+ : document.createElement(tag);
275
293
  (0, record_1.forEach)(attrs, (value, key) => {
276
- if (typeof value === 'function') {
294
+ if (typeof value === "function") {
277
295
  e[key] = value;
278
296
  }
279
- else if (typeof value === 'string') {
297
+ else if (typeof value === "string") {
280
298
  // prevent setting things like disabled=""
281
- if (value !== '')
299
+ if (value !== "")
282
300
  e.setAttribute(key, value);
283
301
  }
284
- else if (typeof value === 'boolean') {
285
- e.setAttribute(key, '');
302
+ else if (typeof value === "boolean") {
303
+ e.setAttribute(key, "");
286
304
  }
287
305
  else if (!exports.isBrowser && value instanceof WMLDOMText) {
288
306
  e.setAttribute(key, value);
289
307
  }
290
308
  });
291
- children.forEach(c => {
309
+ children.forEach((c) => {
292
310
  switch (typeof c) {
293
- case 'string':
294
- case 'number':
295
- case 'boolean':
296
- e.appendChild(document.createTextNode('' + c));
297
- case 'object':
311
+ case "string":
312
+ case "number":
313
+ case "boolean":
314
+ e.appendChild(document.createTextNode("" + c));
315
+ case "object":
298
316
  e.appendChild(c);
299
317
  break;
300
318
  default:
@@ -305,4 +323,4 @@ const createElement = (tag, attrs = {}, children = [], ns = '') => {
305
323
  }
306
324
  };
307
325
  exports.createElement = createElement;
308
- //# sourceMappingURL=dom.js.map
326
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["index.ts"],"names":[],"mappings":"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"}