@quenk/wml 2.13.11 → 2.14.1

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 +161 -367
  7. package/lib/compile/codegen.js.map +1 -1
  8. package/lib/compile/codegen.ts +643 -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 +1 -1
  14. package/lib/compile/transform.js +9 -11
  15. package/lib/compile/transform.js.map +1 -1
  16. package/lib/compile/transform.ts +136 -143
  17. package/lib/{dom.d.ts → dom/index.d.ts} +8 -2
  18. package/lib/{dom.js → dom/index.js} +84 -70
  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 +2 -2
  33. package/lib/parse/ast.js +52 -53
  34. package/lib/parse/ast.js.map +1 -1
  35. package/lib/parse/ast.ts +396 -483
  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 +127 -0
  51. package/lib/view/frame.js +214 -0
  52. package/lib/view/frame.js.map +1 -0
  53. package/lib/view/frame.ts +295 -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 +98 -0
  58. package/package.json +3 -3
  59. package/lib/dom.js.map +0 -1
  60. package/lib/dom.ts +0 -479
@@ -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,56 +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
  };
262
- const namespaces = new Map([
263
- ['svg', 'http://www.w3.org/2000/svg']
264
- ]);
279
+ const namespaces = new Map([["svg", "http://www.w3.org/2000/svg"]]);
265
280
  /**
266
281
  * createElement wrapper.
267
282
  */
268
- const createElement = (tag, attrs = {}, children = [], ns = '') => {
269
- var _a;
283
+ const createElement = (tag, attrs = {}, children = [], ns = "") => {
270
284
  if (!exports.isBrowser) {
271
285
  // XXX: The whole Element interface is not implemented but on server
272
286
  // side we are only interested in setAttribute.
273
287
  return new WMLDOMElement(tag, attrs, children);
274
288
  }
275
289
  else {
276
- let e = ns ?
277
- document.createElementNS((_a = namespaces.get(ns)) !== null && _a !== void 0 ? _a : '', tag) :
278
- document.createElement(tag);
290
+ let e = ns
291
+ ? document.createElementNS(namespaces.get(ns) ?? "", tag)
292
+ : document.createElement(tag);
279
293
  (0, record_1.forEach)(attrs, (value, key) => {
280
- if (typeof value === 'function') {
294
+ if (typeof value === "function") {
281
295
  e[key] = value;
282
296
  }
283
- else if (typeof value === 'string') {
297
+ else if (typeof value === "string") {
284
298
  // prevent setting things like disabled=""
285
- if (value !== '')
299
+ if (value !== "")
286
300
  e.setAttribute(key, value);
287
301
  }
288
- else if (typeof value === 'boolean') {
289
- e.setAttribute(key, '');
302
+ else if (typeof value === "boolean") {
303
+ e.setAttribute(key, "");
290
304
  }
291
305
  else if (!exports.isBrowser && value instanceof WMLDOMText) {
292
306
  e.setAttribute(key, value);
293
307
  }
294
308
  });
295
- children.forEach(c => {
309
+ children.forEach((c) => {
296
310
  switch (typeof c) {
297
- case 'string':
298
- case 'number':
299
- case 'boolean':
300
- e.appendChild(document.createTextNode('' + c));
301
- case 'object':
311
+ case "string":
312
+ case "number":
313
+ case "boolean":
314
+ e.appendChild(document.createTextNode("" + c));
315
+ case "object":
302
316
  e.appendChild(c);
303
317
  break;
304
318
  default:
@@ -309,4 +323,4 @@ const createElement = (tag, attrs = {}, children = [], ns = '') => {
309
323
  }
310
324
  };
311
325
  exports.createElement = createElement;
312
- //# 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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"}