streetui 1.2.0 → 1.4.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.
package/dist/testing.cjs CHANGED
@@ -312,7 +312,6 @@ var BrowserDOMAdapter = class {
312
312
  return Array.from(node.childNodes);
313
313
  }
314
314
  };
315
- var browserDOMAdapter = new BrowserDOMAdapter();
316
315
 
317
316
  // ../dom/src/server-node.ts
318
317
  var ServerStyle = class {
@@ -382,11 +381,66 @@ var SERIALIZED_PROPERTIES = {
382
381
  checked: "boolean",
383
382
  selected: "boolean"
384
383
  };
384
+ var SERIALIZED_PROPERTY_ENTRIES = Object.entries(SERIALIZED_PROPERTIES);
385
+ var TEXT_SPECIAL = /[&<>]/;
386
+ var ATTR_SPECIAL = /[&<>"]/;
385
387
  function escapeHtmlText(value) {
386
- return value.replace(/&/g, "&amp;").replace(/</g, "&lt;").replace(/>/g, "&gt;");
388
+ if (!TEXT_SPECIAL.test(value)) return value;
389
+ let out = "";
390
+ let last = 0;
391
+ for (let i = 0; i < value.length; i++) {
392
+ let esc;
393
+ switch (value.charCodeAt(i)) {
394
+ case 38:
395
+ esc = "&amp;";
396
+ break;
397
+ // &
398
+ case 60:
399
+ esc = "&lt;";
400
+ break;
401
+ // <
402
+ case 62:
403
+ esc = "&gt;";
404
+ break;
405
+ // >
406
+ default:
407
+ continue;
408
+ }
409
+ out += value.slice(last, i) + esc;
410
+ last = i + 1;
411
+ }
412
+ return out + value.slice(last);
387
413
  }
388
414
  function escapeHtmlAttr(value) {
389
- return value.replace(/&/g, "&amp;").replace(/</g, "&lt;").replace(/>/g, "&gt;").replace(/"/g, "&quot;");
415
+ if (!ATTR_SPECIAL.test(value)) return value;
416
+ let out = "";
417
+ let last = 0;
418
+ for (let i = 0; i < value.length; i++) {
419
+ let esc;
420
+ switch (value.charCodeAt(i)) {
421
+ case 38:
422
+ esc = "&amp;";
423
+ break;
424
+ // &
425
+ case 60:
426
+ esc = "&lt;";
427
+ break;
428
+ // <
429
+ case 62:
430
+ esc = "&gt;";
431
+ break;
432
+ // >
433
+ case 34:
434
+ esc = "&quot;";
435
+ break;
436
+ // "
437
+ default:
438
+ continue;
439
+ }
440
+ out += value.slice(last, i) + esc;
441
+ last = i + 1;
442
+ }
443
+ return out + value.slice(last);
390
444
  }
391
445
  function serializeAttributes(el) {
392
446
  const parts = [];
@@ -397,7 +451,7 @@ function serializeAttributes(el) {
397
451
  parts.push(` ${name}="${escapeHtmlAttr(value)}"`);
398
452
  }
399
453
  }
400
- for (const [name, kind] of Object.entries(SERIALIZED_PROPERTIES)) {
454
+ for (const [name, kind] of SERIALIZED_PROPERTY_ENTRIES) {
401
455
  if (!el.properties.has(name)) continue;
402
456
  if (el.attributes.has(name)) continue;
403
457
  const raw = el.properties.get(name);
@@ -611,7 +665,6 @@ var ServerDOMAdapter = class {
611
665
  return serializeServerNode(asServer(node));
612
666
  }
613
667
  };
614
- var serverDOMAdapter = new ServerDOMAdapter();
615
668
 
616
669
  // ../renderer/src/render-context.ts
617
670
  function createRenderContext(dom, graph, container, hydrationDiagnostics) {
@@ -1998,7 +2051,7 @@ function formatInspection(inspection) {
1998
2051
  }
1999
2052
 
2000
2053
  // src/version.ts
2001
- var VERSION = "1.2.0";
2054
+ var VERSION = "1.4.0";
2002
2055
  // Annotate the CommonJS export names for ESM import in node:
2003
2056
  0 && (module.exports = {
2004
2057
  VERSION,