mancha 0.16.7 → 0.17.3

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 (85) hide show
  1. package/.github/workflows/ci.yml +8 -7
  2. package/README.md +88 -25
  3. package/dist/browser.d.ts +42 -3
  4. package/dist/browser.js +1 -1
  5. package/dist/browser.js.map +1 -1
  6. package/dist/css_gen_utils.js +323 -412
  7. package/dist/css_gen_utils.js.map +1 -1
  8. package/dist/dome.d.ts +2 -2
  9. package/dist/dome.js +17 -0
  10. package/dist/dome.js.map +1 -1
  11. package/dist/expressions/ast.d.ts +79 -0
  12. package/dist/expressions/ast.js +6 -0
  13. package/dist/expressions/ast.js.map +1 -0
  14. package/dist/expressions/ast.test.d.ts +1 -0
  15. package/dist/expressions/ast.test.js +122 -0
  16. package/dist/expressions/ast.test.js.map +1 -0
  17. package/dist/expressions/ast_factory.d.ts +37 -0
  18. package/dist/expressions/ast_factory.js +119 -0
  19. package/dist/expressions/ast_factory.js.map +1 -0
  20. package/dist/expressions/ast_factory.test.d.ts +1 -0
  21. package/dist/expressions/ast_factory.test.js +88 -0
  22. package/dist/expressions/ast_factory.test.js.map +1 -0
  23. package/dist/expressions/constants.d.ts +6 -0
  24. package/dist/expressions/constants.js +72 -0
  25. package/dist/expressions/constants.js.map +1 -0
  26. package/dist/expressions/constants.test.d.ts +1 -0
  27. package/dist/expressions/constants.test.js +84 -0
  28. package/dist/expressions/constants.test.js.map +1 -0
  29. package/dist/expressions/eval.d.ts +101 -0
  30. package/dist/expressions/eval.js +375 -0
  31. package/dist/expressions/eval.js.map +1 -0
  32. package/dist/expressions/eval.test.d.ts +1 -0
  33. package/dist/expressions/eval.test.js +141 -0
  34. package/dist/expressions/eval.test.js.map +1 -0
  35. package/dist/expressions/expressions.test.d.ts +6 -0
  36. package/dist/expressions/expressions.test.js +7 -0
  37. package/dist/expressions/expressions.test.js.map +1 -0
  38. package/dist/expressions/index.d.ts +6 -0
  39. package/dist/expressions/index.js +7 -0
  40. package/dist/expressions/index.js.map +1 -0
  41. package/dist/expressions/parser.d.ts +32 -0
  42. package/dist/expressions/parser.js +341 -0
  43. package/dist/expressions/parser.js.map +1 -0
  44. package/dist/expressions/parser.test.d.ts +1 -0
  45. package/dist/expressions/parser.test.js +176 -0
  46. package/dist/expressions/parser.test.js.map +1 -0
  47. package/dist/expressions/tokenizer.d.ts +49 -0
  48. package/dist/expressions/tokenizer.js +253 -0
  49. package/dist/expressions/tokenizer.js.map +1 -0
  50. package/dist/expressions/tokenizer.test.d.ts +1 -0
  51. package/dist/expressions/tokenizer.test.js +99 -0
  52. package/dist/expressions/tokenizer.test.js.map +1 -0
  53. package/dist/index.d.ts +2 -0
  54. package/dist/index.js +1 -0
  55. package/dist/index.js.map +1 -1
  56. package/dist/interfaces.d.ts +1 -1
  57. package/dist/mancha.d.ts +1 -1
  58. package/dist/mancha.js +1 -1
  59. package/dist/mancha.js.map +1 -1
  60. package/dist/plugins.js +94 -23
  61. package/dist/plugins.js.map +1 -1
  62. package/dist/renderer.d.ts +5 -2
  63. package/dist/renderer.js +6 -2
  64. package/dist/renderer.js.map +1 -1
  65. package/dist/safe_browser.d.ts +4 -3
  66. package/dist/safe_browser.js +1 -1
  67. package/dist/safe_browser.js.map +1 -1
  68. package/dist/store.d.ts +59 -13
  69. package/dist/store.js +112 -38
  70. package/dist/store.js.map +1 -1
  71. package/dist/test_utils.d.ts +2 -0
  72. package/dist/test_utils.js +14 -1
  73. package/dist/test_utils.js.map +1 -1
  74. package/dist/trusted_attributes.js +2 -0
  75. package/dist/trusted_attributes.js.map +1 -1
  76. package/dist/type_checker.d.ts +1 -0
  77. package/dist/type_checker.js +113 -41
  78. package/dist/type_checker.js.map +1 -1
  79. package/dist/worker.d.ts +2 -0
  80. package/dist/worker.js +1 -0
  81. package/dist/worker.js.map +1 -1
  82. package/docs/quickstart.md +200 -0
  83. package/gulpfile.js +5 -1
  84. package/package.json +19 -6
  85. package/tsec_exemptions.json +1 -1
@@ -1 +1 @@
1
- {"version":3,"file":"plugins.js","sourceRoot":"","sources":["../src/plugins.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"plugins.js","sourceRoot":"","sources":["../src/plugins.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,UAAU,EAAe,MAAM,gBAAgB,CAAC;AACvE,OAAO,EACL,WAAW,EACX,wBAAwB,EACxB,cAAc,EACd,SAAS,EACT,iBAAiB,EACjB,YAAY,EACZ,qBAAqB,EACrB,YAAY,EACZ,cAAc,EACd,YAAY,EACZ,wBAAwB,EACxB,eAAe,EACf,WAAW,EACX,eAAe,EACf,WAAW,EACX,gBAAgB,EAChB,YAAY,EACZ,qBAAqB,EACrB,WAAW,EACX,QAAQ,EACR,WAAW,GACZ,MAAM,WAAW,CAAC;AAGnB,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AAEzC,gBAAgB;AAChB,MAAM,KAAW,eAAe,CA+lB/B;AA/lBD,WAAiB,eAAe;IACjB,+BAAe,GAAmB,KAAK,WAAW,IAAI,EAAE,MAAM;QACzE,MAAM,IAAI,GAAG,IAAe,CAAC;QAE7B,iDAAiD;QACjD,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,EAAE,WAAW,EAAE,CAAC;QAC5C,IAAI,CAAC,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC;YAAE,OAAO;QACnD,IAAI,OAAO,KAAK,MAAM,IAAI,YAAY,CAAC,IAAI,EAAE,KAAK,CAAC,KAAK,aAAa;YAAE,OAAO;QAC9E,IAAI,CAAC,GAAG,CAAC,+BAA+B,EAAE,YAAY,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC,CAAC;QACnE,IAAI,CAAC,GAAG,CAAC,iBAAiB,EAAE,MAAM,CAAC,CAAC;QAEpC,wDAAwD;QACxD,MAAM,QAAQ,GAAG,IAAI,CAAC,OAAO,CAAC,iBAAiB,EAAE,KAAK,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC;QAC9E,MAAM,GAAG,GAAG,YAAY,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;QACzC,IAAI,CAAC,GAAG;YAAE,MAAM,IAAI,KAAK,CAAC,IAAI,QAAQ,4BAA4B,YAAY,CAAC,IAAI,EAAE,GAAG,CAAC,GAAG,CAAC,CAAC;QAE9F,qFAAqF;QACrF,MAAM,SAAS,GAAa,EAAE,CAAC;QAC/B,IAAI,OAAO,KAAK,SAAS;YAAE,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACjD,IAAI,OAAO,KAAK,MAAM;YAAE,SAAS,CAAC,IAAI,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;QAEtD,wFAAwF;QACxF,MAAM,OAAO,GAAG,CAAC,QAAqC,EAAE,EAAE;YACxD,kEAAkE;YAClE,MAAM,KAAK,GAAG,iBAAiB,CAAC,QAA8B,CAAC,CAAC;YAChE,KAAK,MAAM,IAAI,IAAI,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE,CAAC;gBAC/C,IAAI,KAAK,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC;oBAAE,cAAc,CAAC,IAAI,EAAE,KAAK,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC;YACtF,CAAC;YACD,kEAAkE;YAClE,WAAW,CAAC,IAAI,EAAE,GAAG,QAAQ,CAAC,UAAU,CAAC,CAAC;QAC5C,CAAC,CAAC;QAEF,oEAAoE;QACpE,MAAM,aAAa,GAAgC;YACjD,GAAG,MAAM;YACT,YAAY,EAAE,KAAK;YACnB,QAAQ,EAAE,MAAM,EAAE,QAAU,GAAG,CAAC;SACjC,CAAC;QACF,IAAI,aAAa,CAAC,QAAQ,KAAK,CAAC;YAAE,MAAM,IAAI,KAAK,CAAC,kCAAkC,CAAC,CAAC;QAEtF,gCAAgC;QAChC,IAAI,GAAG,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,GAAG,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC;YAChD,IAAI,CAAC,GAAG,CAAC,2CAA2C,EAAE,GAAG,CAAC,CAAC;YAC3D,MAAM,IAAI,CAAC,gBAAgB,CAAC,GAAG,EAAE,aAAa,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;YAE9D,gCAAgC;QAClC,CAAC;aAAM,IAAI,MAAM,EAAE,OAAO,EAAE,QAAQ,CAAC,KAAK,CAAC,IAAI,MAAM,EAAE,OAAO,EAAE,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC;YACjF,MAAM,OAAO,GAAG,GAAG,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,OAAO,IAAI,GAAG,EAAE,CAAC;YACvE,IAAI,CAAC,GAAG,CAAC,2CAA2C,EAAE,OAAO,CAAC,CAAC;YAC/D,MAAM,IAAI,CAAC,gBAAgB,CAAC,OAAO,EAAE,aAAa,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;YAElE,+BAA+B;QACjC,CAAC;aAAM,IAAI,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,GAAG,EAAE,CAAC;YACjC,IAAI,CAAC,GAAG,CAAC,0CAA0C,EAAE,GAAG,CAAC,CAAC;YAC1D,MAAM,IAAI,CAAC,eAAe,CAAC,GAAG,EAAE,aAAa,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;YAE7D,+BAA+B;QACjC,CAAC;aAAM,CAAC;YACN,MAAM,OAAO,GACX,MAAM,EAAE,OAAO,IAAI,MAAM,EAAE,OAAO,KAAK,GAAG,CAAC,CAAC,CAAC,GAAG,MAAM,EAAE,OAAO,IAAI,GAAG,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC;YACjF,IAAI,CAAC,GAAG,CAAC,0CAA0C,EAAE,OAAO,CAAC,CAAC;YAC9D,MAAM,IAAI,CAAC,eAAe,CAAC,OAAO,EAAE,aAAa,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QACnE,CAAC;IACH,CAAC,CAAC;IAEW,mCAAmB,GAAmB,UAAU,IAAI,EAAE,MAAM;QACvE,MAAM,IAAI,GAAG,IAAe,CAAC;QAC7B,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,EAAE,WAAW,EAAE,CAAC;QAE5C,uEAAuE;QACvE,IAAI,CAAC,MAAM,EAAE,OAAO;YAAE,OAAO;QAE7B,2FAA2F;QAC3F,MAAM,GAAG,GAAG,YAAY,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;QACtC,MAAM,IAAI,GAAG,YAAY,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;QACxC,MAAM,MAAM,GAAG,qBAAqB,CAAC,IAAI,EAAE,QAAQ,EAAE,GAAG,CAAC,CAAC;QAE1D,iFAAiF;QACjF,MAAM,OAAO,GAAG,GAAG,IAAI,IAAI,IAAI,MAAM,CAAC;QACtC,IAAI,CAAC,OAAO,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC;YAAE,OAAO;QAEjD,MAAM,OAAO,GAAG,GAAG,MAAM,CAAC,OAAO,IAAI,OAAO,EAAE,CAAC;QAC/C,IAAI,CAAC,GAAG,CAAC,4BAA4B,EAAE,OAAO,CAAC,CAAC;QAEhD,IAAI,MAAM,EAAE,CAAC;YACX,qBAAqB,CAAC,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,GAAG,CAAC,CAAC;QACtD,CAAC;aAAM,IAAI,WAAW,CAAC,IAAI,EAAE,SAAS,CAAC,EAAE,CAAC;YACxC,gBAAgB,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;QACxD,CAAC;aAAM,IAAI,OAAO,KAAK,KAAK,EAAE,CAAC;YAC5B,IAAyB,CAAC,GAAG,GAAG,OAAO,CAAC;QAC3C,CAAC;aAAM,IAAI,OAAO,KAAK,GAAG,EAAE,CAAC;YAC3B,YAAY,CAAC,OAAO,CAAC,IAAyB,EAAE,OAAO,CAAC,CAAC;QAC3D,CAAC;aAAM,IAAI,OAAO,KAAK,QAAQ,EAAE,CAAC;YAC/B,IAA0B,CAAC,GAAG,GAAG,OAAO,CAAC;QAC5C,CAAC;aAAM,IAAI,OAAO,KAAK,OAAO,EAAE,CAAC;YAC9B,IAAyB,CAAC,GAAG,GAAG,OAAO,CAAC;QAC3C,CAAC;aAAM,IAAI,OAAO,KAAK,OAAO,EAAE,CAAC;YAC9B,IAAyB,CAAC,GAAG,GAAG,OAAO,CAAC;QAC3C,CAAC;aAAM,IAAI,OAAO,KAAK,OAAO,EAAE,CAAC;YAC9B,IAAyB,CAAC,GAAG,GAAG,OAAO,CAAC;QAC3C,CAAC;aAAM,IAAI,OAAO,KAAK,OAAO,EAAE,CAAC;YAC9B,IAAyB,CAAC,GAAG,GAAG,OAAO,CAAC;QAC3C,CAAC;aAAM,IAAI,OAAO,KAAK,MAAM,EAAE,CAAC;YAC9B,UAAU,CAAC,OAAO,CAAC,IAAuB,EAAE,OAAO,CAAC,CAAC;QACvD,CAAC;aAAM,CAAC;YACN,IAAI,CAAC,GAAG,CAAC,6CAA6C,EAAE,OAAO,CAAC,CAAC;QACnE,CAAC;IACH,CAAC,CAAC;IAEW,sCAAsB,GAAmB,UAAU,IAAI,EAAE,MAAM;QAC1E,MAAM,IAAI,GAAG,IAAe,CAAC;QAC7B,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,EAAE,WAAW,EAAE,CAAC;QAE5C,MAAM,aAAa,GAAG,CAAC,YAAY,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,YAAY,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC,EAAE,WAAW,EAAE,CAAC;QAC7F,IAAI,CAAC,UAAU,EAAE,KAAK,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,aAAa,EAAE,CAAC;YAC3D,IAAI,OAAO,KAAK,KAAK,IAAI,YAAY,CAAC,IAAI,EAAE,MAAM,CAAC,KAAK,UAAU;gBAAE,OAAO;YAC3E,IAAI,CAAC,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,aAAa,CAAC,EAAE,CAAC;gBAC7C,IAAI,CAAC,GAAG,CAAC,+BAA+B,aAAa,IAAI,EAAE,YAAY,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC,CAAC;gBAEpF,wEAAwE;gBACxE,uFAAuF;gBACvF,gDAAgD;gBAChD,MAAM,OAAO,GAAI,IAA4B,CAAC,OAAO,IAAI,IAAI,CAAC;gBAC9D,MAAM,YAAY,GAAG,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC;gBACnD,0DAA0D;gBAC1D,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,YAAY,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;oBAC7C,eAAe,CAAC,mBAAmB,CAAC,IAAI,CAAC,IAAI,EAAE,YAAY,CAAC,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC;gBAC1E,CAAC;gBAED,gDAAgD;gBAChD,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,aAAa,EAAE,IAAI,CAAC,CAAC;gBAE9C,yCAAyC;gBACzC,WAAW,CAAC,IAAI,CAAC,UAAY,EAAE,IAAI,CAAC,CAAC;YACvC,CAAC;QACH,CAAC;IACH,CAAC,CAAC;IAEW,qCAAqB,GAAmB,UAAU,IAAI,EAAE,MAAM;QACzE,MAAM,IAAI,GAAG,IAAe,CAAC;QAC7B,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,EAAE,WAAW,EAAE,CAAC;QAE5C,IAAI,OAAO,GAAG,OAAO,CAAC;QACtB,IAAI,OAAO,KAAK,KAAK;YAAE,OAAO,GAAG,YAAY,CAAC,IAAI,EAAE,MAAM,CAAC,EAAE,WAAW,EAAE,IAAI,OAAO,CAAC;QACtF,IAAI,OAAO,IAAI,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,CAAC;YACjD,IAAI,CAAC,GAAG,CAAC,8BAA8B,OAAO,IAAI,EAAE,YAAY,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC,CAAC;YAC7E,MAAM,QAAQ,GAAG,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,OAAO,CAA0B,CAAC;YAC5E,MAAM,KAAK,GAAG,CAAC,QAAQ,CAAC,OAAO,IAAI,QAAQ,CAAC,CAAC,SAAS,CAAC,IAAI,CAAY,CAAC;YAExE,yEAAyE;YACzE,MAAM,KAAK,GAAG,iBAAiB,CAAC,KAAK,CAAC,CAAC;YACvC,IAAI,KAAK,EAAE,CAAC;gBACV,KAAK,MAAM,IAAI,IAAI,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE,CAAC;oBAC/C,IAAI,OAAO,KAAK,KAAK,IAAI,IAAI,CAAC,IAAI,KAAK,MAAM;wBAAE,cAAc,CAAC,IAAI,EAAE,KAAK,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC;gBACxF,CAAC;YACH,CAAC;YAED,mFAAmF;YACnF,MAAM,IAAI,GAAG,IAAI,QAAQ,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC;YAC3C,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAE,CAAa,CAAC,OAAO,EAAE,WAAW,EAAE,KAAK,MAAM,CAAC,CAAC;YAChF,IAAI,IAAI;gBAAE,WAAW,CAAC,IAAI,EAAE,GAAG,IAAI,CAAC,UAAU,CAAC,CAAC;YAEhD,oEAAoE;YACpE,WAAW,CAAC,IAAI,EAAE,GAAG,KAAK,CAAC,UAAU,CAAC,CAAC;QACzC,CAAC;IACH,CAAC,CAAC;IAEW,0CAA0B,GAAmB,UAAU,IAAI,EAAE,MAAM;QAC9E,MAAM,OAAO,GAAG,IAAI,CAAC,SAAS,IAAI,EAAE,CAAC;QACrC,IAAI,IAAI,CAAC,QAAQ,KAAK,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,EAAE;YAAE,OAAO;QACpD,IAAI,CAAC,GAAG,CAAC,kCAAkC,EAAE,SAAS,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC,CAAC;QAEtE,qDAAqD;QACrD,MAAM,OAAO,GAAG,IAAI,MAAM,CAAC,iBAAiB,CAAC,CAAC;QAC9C,MAAM,WAAW,GAAG,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;QAEnF,2FAA2F;QAC3F,mBAAmB;QACnB,OAAO,IAAI,CAAC,MAAM,CAAC;YACjB,IAAI,cAAc,GAAG,OAAO,CAAC;YAC7B,KAAK,MAAM,IAAI,IAAI,WAAW,EAAE,CAAC;gBAC/B,MAAM,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAW,CAAC;gBAC1D,cAAc,GAAG,cAAc,CAAC,OAAO,CAAC,MAAM,IAAI,KAAK,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC;YAC3E,CAAC;YACD,IAAI,CAAC,SAAS,GAAG,cAAc,CAAC;QAClC,CAAC,CAAC,CAAC;IACL,CAAC,CAAC;IAEW,oCAAoB,GAAmB,KAAK,WAAW,IAAI,EAAE,MAAM;QAC9E,IAAI,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC;YAAE,OAAO;QACtC,MAAM,IAAI,GAAG,IAAe,CAAC;QAC7B,MAAM,QAAQ,GAAG,qBAAqB,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,CAAC,CAAC;QAC1D,IAAI,QAAQ,EAAE,CAAC;YACb,IAAI,CAAC,GAAG,CAAC,6BAA6B,EAAE,YAAY,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC,CAAC;YAEjE,sCAAsC;YACtC,wBAAwB,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,CAAC,CAAC;YAE5C,IAAI,WAAsB,CAAC;YAE3B,wDAAwD;YACxD,IAAI,WAAW,CAAC,IAAI,EAAE,UAAU,CAAC,EAAE,CAAC;gBAClC,WAAW,GAAI,IAAY,CAAC,QAAqB,CAAC;gBAClD,IAAI,CAAC,GAAG,CAAC,wCAAwC,EAAE,YAAY,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,CAAC;YAC7E,CAAC;iBAAM,CAAC;gBACN,WAAW,GAAG,IAAI,CAAC,WAAW,EAAE,CAAC;gBACjC,uEAAuE;gBACvE,WAAW,CAAC,IAAe,EAAE,UAAU,EAAE,WAAW,CAAC,CAAC;gBACtD,IAAI,CAAC,GAAG,CAAC,gDAAgD,EAAE,YAAY,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,CAAC;YACrF,CAAC;YAED,2BAA2B;YAC3B,MAAM,MAAM,GAAG,WAAW,CAAC,IAAI,CAAC,QAAQ,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAW,CAAC;YAErE,2CAA2C;YAC3C,4EAA4E;YAC5E,MAAM,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,WAAW,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;YAExF,kFAAkF;YAClF,4DAA4D;YAC5D,IAAI,WAAW,KAAK,IAAI;gBAAE,OAAO;YAEjC,oEAAoE;YACpE,KAAK,MAAM,KAAK,IAAI,QAAQ,CAAC,IAAI,EAAE,IAAI,CAAC,UAAU,CAAC,EAAE,CAAC;gBACpD,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;YAC7B,CAAC;YAED,+CAA+C;YAC/C,MAAM,WAAW,CAAC,KAAK,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;QACxC,CAAC;IACH,CAAC,CAAC;IAEW,qCAAqB,GAAmB,UAAU,IAAI,EAAE,MAAM;QACzE,IAAI,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC;YAAE,OAAO;QACtC,MAAM,IAAI,GAAG,IAAmB,CAAC;QACjC,MAAM,SAAS,GAAG,qBAAqB,CAAC,IAAI,EAAE,OAAO,EAAE,GAAG,CAAC,CAAC;QAC5D,IAAI,SAAS,EAAE,CAAC;YACd,IAAI,CAAC,GAAG,CAAC,8BAA8B,EAAE,YAAY,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC,CAAC;YAElE,sCAAsC;YACtC,wBAAwB,CAAC,IAAI,EAAE,OAAO,EAAE,GAAG,CAAC,CAAC;YAE7C,8CAA8C;YAC9C,MAAM,aAAa,GAAG,YAAY,CAAC,IAAI,EAAE,OAAO,CAAC,IAAI,EAAE,CAAC;YAExD,iCAAiC;YACjC,OAAO,IAAI,CAAC,MAAM,CAAC;gBACjB,MAAM,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;gBACrD,gBAAgB,CACd,IAAI,EACJ,OAAO,EACP,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,aAAa,IAAI,MAAM,EAAE,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,IAAI,EAAE,CAC/D,CAAC;YACJ,CAAC,CAAC,CAAC;QACL,CAAC;IACH,CAAC,CAAC;IAEW,qCAAqB,GAAmB,UAAU,IAAI,EAAE,MAAM;QACzE,IAAI,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC;YAAE,OAAO;QACtC,MAAM,IAAI,GAAG,IAAe,CAAC;QAC7B,MAAM,QAAQ,GAAG,qBAAqB,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,CAAC,CAAC;QAC1D,IAAI,QAAQ,EAAE,CAAC;YACb,IAAI,CAAC,GAAG,CAAC,6BAA6B,EAAE,YAAY,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC,CAAC;YAEjE,sCAAsC;YACtC,wBAAwB,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,CAAC,CAAC;YAE5C,wDAAwD;YACxD,MAAM,cAAc,GAAG,CAAC,OAAe,EAAE,EAAE,CAAC,IAAI,CAAC,WAAW,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;YAC5E,OAAO,IAAI,CAAC,MAAM,CAAC;gBACjB,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAW,CAAC,CAAC;YACjE,CAAC,CAAC,CAAC;QACL,CAAC;IACH,CAAC,CAAC;IAEW,oCAAoB,GAAmB,KAAK,WAAW,IAAI,EAAE,MAAM;QAC9E,IAAI,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC;YAAE,OAAO;QACtC,MAAM,IAAI,GAAG,IAAe,CAAC;QAC7B,MAAM,QAAQ,GAAG,qBAAqB,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,CAAC,CAAC;QAC1D,IAAI,QAAQ,EAAE,CAAC;YACb,IAAI,CAAC,GAAG,CAAC,6BAA6B,EAAE,YAAY,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC,CAAC;YAEjE,sCAAsC;YACtC,wBAAwB,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,CAAC,CAAC;YAE5C,wDAAwD;YACxD,OAAO,IAAI,CAAC,MAAM,CAAC;gBACjB,MAAM,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAW,CAAC;gBAC9D,OAAO,IAAI,OAAO,CAAC,KAAK,EAAE,OAAO,EAAE,EAAE;oBACnC,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,gBAAgB,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;oBAC7D,MAAM,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC;oBAChC,eAAe,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;oBAChC,OAAO,EAAE,CAAC;gBACZ,CAAC,CAAC,CAAC;YACL,CAAC,CAAC,CAAC;QACL,CAAC;IACH,CAAC,CAAC;IAEW,sCAAsB,GAAmB,UAAU,IAAI,EAAE,MAAM;QAC1E,IAAI,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC;YAAE,OAAO;QACtC,MAAM,IAAI,GAAG,IAAe,CAAC;QAC7B,KAAK,MAAM,IAAI,IAAI,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,IAAI,EAAE,CAAC,EAAE,CAAC;YACrD,IAAI,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC,EAAE,CAAC;gBACrE,IAAI,SAAS,GAAW,EAAE,CAAC;gBAC3B,IAAI,SAAS,GAAa,EAAE,CAAC;gBAE7B,IAAI,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,EAAE,CAAC;oBACjC,CAAC,SAAS,EAAE,GAAG,SAAS,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;gBAC5E,CAAC;qBAAM,IAAI,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC,EAAE,CAAC;oBAC5C,CAAC,SAAS,EAAE,GAAG,SAAS,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;gBAChF,CAAC;gBAED,IAAI,CAAC,SAAS;oBAAE,MAAM,IAAI,KAAK,CAAC,4BAA4B,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC;gBACzE,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,EAAE,uBAAuB,EAAE,YAAY,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC,CAAC;gBAEtE,6CAA6C;gBAC7C,wBAAwB,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC;gBAE1C,sFAAsF;gBACtF,MAAM,cAAc,GAAG,SAAS,KAAK,QAAQ,IAAI,IAAI,CAAC,OAAO,CAAC,WAAW,EAAE,KAAK,MAAM,CAAC;gBAEvF,IAAI,CAAC,gBAAgB,EAAE,CAAC,SAAS,EAAE,CAAC,KAAK,EAAE,EAAE;oBAC3C,IAAI,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC,IAAI,cAAc,EAAE,CAAC;wBACpD,KAAK,CAAC,cAAc,EAAE,CAAC;oBACzB,CAAC;oBACD,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,CAAC;gBAC/D,CAAC,CAAC,CAAC;YACL,CAAC;QACH,CAAC;IACH,CAAC,CAAC;IAEW,mCAAmB,GAAmB,KAAK,WAAW,IAAI,EAAE,MAAM;QAC7E,IAAI,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC;YAAE,OAAO;QACtC,MAAM,IAAI,GAAG,IAAe,CAAC;QAC7B,MAAM,OAAO,GAAG,qBAAqB,CAAC,IAAI,EAAE,KAAK,EAAE,GAAG,CAAC,EAAE,IAAI,EAAE,CAAC;QAChE,IAAI,OAAO,EAAE,CAAC;YACZ,IAAI,CAAC,GAAG,CAAC,4BAA4B,EAAE,YAAY,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC,CAAC;YAEhE,6CAA6C;YAC7C,wBAAwB,CAAC,IAAI,EAAE,KAAK,EAAE,GAAG,CAAC,CAAC;YAE3C,0EAA0E;YAC1E,KAAK,MAAM,KAAK,IAAI,QAAQ,CAAC,IAAI,EAAE,IAAI,CAAC,UAAU,CAAC,EAAE,CAAC;gBACpD,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;YAC7B,CAAC;YAED,oDAAoD;YACpD,0FAA0F;YAC1F,MAAM,aAAa,GAAG,YAAY,CAAC,IAAI,EAAE,OAAO,CAAC,IAAI,EAAE,CAAC;YACxD,YAAY,CAAC,IAAI,EAAE,OAAO,EAAE,gBAAgB,CAAC,CAAC;YAE9C,mDAAmD;YACnD,MAAM,MAAM,GAAG,IAAI,CAAC,UAAY,CAAC;YACjC,MAAM,QAAQ,GAAG,IAAI,CAAC,aAAa,CAAC,UAAU,EAAE,IAAI,CAAC,aAAa,CAAC,CAAC;YACpE,YAAY,CAAC,MAAM,EAAE,QAAgB,EAAE,IAAI,CAAC,CAAC;YAC7C,WAAW,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;YAC1B,WAAW,CAAC,QAAgB,EAAE,IAAI,CAAC,CAAC;YACpC,IAAI,CAAC,GAAG,CAAC,kBAAkB,EAAE,YAAY,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC,CAAC;YAE1D,kFAAkF;YAClF,MAAM,MAAM,GAAG,OAAO,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;YACxC,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBACxB,MAAM,IAAI,KAAK,CAAC,0BAA0B,OAAO,uCAAuC,CAAC,CAAC;YAC5F,CAAC;YAED,2CAA2C;YAC3C,MAAM,QAAQ,GAAW,EAAE,CAAC;YAE5B,2DAA2D;YAC3D,MAAM,CAAC,OAAO,EAAE,SAAS,CAAC,GAAG,MAAM,CAAC;YACpC,MAAM,IAAI,CAAC,MAAM,CAAC;gBAChB,MAAM,KAAK,GAAG,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;gBACpD,IAAI,CAAC,GAAG,CAAC,kBAAkB,EAAE,KAAK,CAAC,CAAC;gBAEpC,oDAAoD;gBACpD,QAAQ,CAAC,MAAM,CAAC,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,EAAE;oBACpD,WAAW,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;oBAC3B,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;gBAChC,CAAC,CAAC,CAAC;gBAEH,wDAAwD;gBACxD,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;oBAC1B,OAAO,CAAC,KAAK,CAAC,sCAAsC,SAAS,WAAW,KAAK,IAAI,CAAC,CAAC;oBACnF,OAAO,OAAO,CAAC,OAAO,EAAE,CAAC;gBAC3B,CAAC;gBAED,oCAAoC;gBACpC,MAAM,QAAQ,GAAoB,EAAE,CAAC;gBACrC,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;oBACzB,8EAA8E;oBAC9E,MAAM,WAAW,GAAG,IAAI,CAAC,WAAW,EAAE,CAAC;oBAEvC,4EAA4E;oBAC5E,WAAW,CAAC,MAAM,CAAC,GAAG,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;oBAEtC,uEAAuE;oBACvE,MAAM,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;oBAElC,0CAA0C;oBAC1C,YAAY,CAAC,IAAe,EAAE,OAAO,EAAE,aAAa,CAAC,CAAC;oBAEtD,yCAAyC;oBACzC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;oBAEpB,kFAAkF;oBAClF,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;oBAE1B,4CAA4C;oBAC5C,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC,CAAC;oBAC/C,IAAI,CAAC,GAAG,CAAC,wBAAwB,EAAE,YAAY,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC,CAAC;gBAC9D,CAAC;gBAED,qDAAqD;gBACrD,MAAM,SAAS,GAAG,QAAQ,CAAC,WAAwB,CAAC;gBACpD,KAAK,MAAM,KAAK,IAAI,QAAQ,EAAE,CAAC;oBAC7B,YAAY,CAAC,MAAM,EAAE,KAAK,EAAE,SAAS,CAAC,CAAC;gBACzC,CAAC;gBAED,OAAO,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;YAC/B,CAAC,CAAC,CAAC;QACL,CAAC;IACH,CAAC,CAAC;IAEW,oCAAoB,GAAmB,UAAU,IAAI,EAAE,MAAM;QACxE,IAAI,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC;YAAE,OAAO;QACtC,MAAM,IAAI,GAAG,IAAwB,CAAC;QACtC,MAAM,QAAQ,GAAG,qBAAqB,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,CAAC,CAAC;QAC1D,IAAI,QAAQ,EAAE,CAAC;YACb,IAAI,CAAC,GAAG,CAAC,6BAA6B,EAAE,YAAY,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC,CAAC;YAEjE,4DAA4D;YAC5D,MAAM,aAAa,GAAG,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;YAC1C,MAAM,YAAY,GAChB,YAAY,CAAC,IAAI,EAAE,UAAU,CAAC,EAAE,KAAK,CAAC,GAAG,CAAC;gBAC1C,IAAI,CAAC,OAAO,EAAE,CAAC,QAAQ,CAAC,EAAE,KAAK,CAAC,GAAG,CAAC;gBACpC,aAAa,CAAC;YAEhB,6CAA6C;YAC7C,wBAAwB,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,CAAC,CAAC;YAC5C,eAAe,CAAC,IAAI,EAAE,UAAU,CAAC,CAAC;YAClC,eAAe,CAAC,IAAI,EAAE,cAAc,CAAC,CAAC;YAEtC,yEAAyE;YACzE,MAAM,IAAI,GAAG,YAAY,CAAC,IAAI,EAAE,MAAM,CAAC,KAAK,UAAU,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC;YAE7E,8EAA8E;YAC9E,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC;gBACnD,2EAA2E;gBAC3E,IAAI,CAAC,GAAG,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC;YACzB,CAAC;YAED,uEAAuE;YACvE,IAAI,CAAC,MAAM,CAAC;gBACV,MAAM,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;gBACpD,IAAI,IAAI,KAAK,SAAS;oBAAE,IAAI,CAAC,OAAO,GAAG,CAAC,CAAC,MAAM,CAAC;;oBAC3C,IAAI,CAAC,KAAK,GAAG,MAAgB,CAAC;YACrC,CAAC,CAAC,CAAC;YAEH,oCAAoC;YACpC,MAAM,QAAQ,GAAG,GAAG,QAAQ,YAAY,IAAI,EAAE,CAAC;YAE/C,yCAAyC;YACzC,KAAK,MAAM,KAAK,IAAI,YAAY,EAAE,CAAC;gBACjC,IAAI,CAAC,gBAAgB,CAAC,KAAK,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;YAC3E,CAAC;QACH,CAAC;IACH,CAAC,CAAC;IAEW,oCAAoB,GAAmB,UAAU,IAAI,EAAE,MAAM;QACxE,IAAI,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC;YAAE,OAAO;QACtC,MAAM,IAAI,GAAG,IAAmB,CAAC;QACjC,MAAM,QAAQ,GAAG,qBAAqB,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,CAAC,CAAC;QAC1D,IAAI,QAAQ,EAAE,CAAC;YACb,IAAI,CAAC,GAAG,CAAC,6BAA6B,EAAE,YAAY,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC,CAAC;YAEjE,6CAA6C;YAC7C,wBAAwB,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,CAAC,CAAC;YAE5C,yFAAyF;YACzF,8DAA8D;YAE9D,gEAAgE;YAChE,MAAM,OAAO,GACX,IAAI,CAAC,KAAK,EAAE,OAAO,KAAK,MAAM;gBAC5B,CAAC,CAAC,EAAE;gBACJ,CAAC,CAAC,IAAI,CAAC,KAAK,EAAE,OAAO;oBACnB,YAAY,CAAC,IAAI,EAAE,OAAO,CAAC;wBACzB,EAAE,KAAK,CAAC,GAAG,CAAC;wBACZ,EAAE,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,SAAS,CAAC;wBAC5C,EAAE,KAAK,CAAC,GAAG,CAAC;wBACZ,EAAE,EAAE,CAAC,CAAC,CAAC;wBACP,EAAE,IAAI,EAAE,CAAC;YAEjB,wDAAwD;YACxD,IAAI,CAAC,MAAM,CAAC;gBACV,MAAM,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;gBACpD,0DAA0D;gBAC1D,IAAI,IAAI,CAAC,KAAK;oBAAE,IAAI,CAAC,KAAK,CAAC,OAAO,GAAG,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC;;oBAC1D,gBAAgB,CAAC,IAAI,EAAE,OAAO,EAAE,YAAY,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC;YACjF,CAAC,CAAC,CAAC;QACL,CAAC;IACH,CAAC,CAAC;IAEW,sCAAsB,GAAmB,UAAU,IAAI,EAAE,MAAM;QAC1E,IAAI,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC;YAAE,OAAO;QACtC,MAAM,IAAI,GAAG,IAAe,CAAC;QAC7B,KAAK,MAAM,IAAI,IAAI,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,IAAI,EAAE,CAAC,EAAE,CAAC;YACrD,MAAM,OAAO,GAAG,QAAQ,CAAC;YACzB,MAAM,OAAO,GAAG,YAAY,CAAC;YAC7B,IAAI,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,EAAE,CAAC;gBACnE,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,EAAE,uBAAuB,EAAE,YAAY,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC,CAAC;gBAEtE,6CAA6C;gBAC7C,eAAe,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC;gBAEjC,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAG,CAAC;gBAChF,IAAI,CAAC,MAAM,CAAC;oBACV,MAAM,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;oBACzD,YAAY,CAAC,IAAI,EAAE,QAAQ,EAAE,SAAmB,CAAC,CAAC;gBACpD,CAAC,CAAC,CAAC;YACL,CAAC;QACH,CAAC;IACH,CAAC,CAAC;IAEW,qCAAqB,GAAmB,UAAU,IAAI,EAAE,MAAM;QACzE,IAAI,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC;YAAE,OAAO;QACtC,MAAM,IAAI,GAAG,IAAe,CAAC;QAC7B,KAAK,MAAM,IAAI,IAAI,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,IAAI,EAAE,CAAC,EAAE,CAAC;YACrD,MAAM,OAAO,GAAG,QAAQ,CAAC;YACzB,MAAM,OAAO,GAAG,YAAY,CAAC;YAC7B,IAAI,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,EAAE,CAAC;gBACnE,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,EAAE,sBAAsB,EAAE,YAAY,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC,CAAC;gBAErE,6CAA6C;gBAC7C,eAAe,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC;gBAEjC,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAG,CAAC;gBAChF,MAAM,QAAQ,GAAG,wBAAwB,CAAC,QAAQ,CAAC,CAAC;gBACpD,IAAI,CAAC,MAAM,CAAC;oBACV,MAAM,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;oBACzD,WAAW,CAAC,IAAI,EAAE,QAAQ,EAAE,SAAS,CAAC,CAAC;gBACzC,CAAC,CAAC,CAAC;YACL,CAAC;QACH,CAAC;IACH,CAAC,CAAC;IAEW,0BAAU,GAAmB,UAAU,IAAI,EAAE,MAAM;QAC9D,MAAM,IAAI,GAAG,IAAe,CAAC;QAE7B,0CAA0C;QAC1C,IAAI,YAAY,CAAC,IAAI,EAAE,QAAQ,CAAC,EAAE,CAAC;YACjC,eAAe,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;QAClC,CAAC;QACD,IAAI,YAAY,CAAC,IAAI,EAAE,YAAY,CAAC,EAAE,CAAC;YACrC,eAAe,CAAC,IAAI,EAAE,YAAY,CAAC,CAAC;QACtC,CAAC;IACH,CAAC,CAAC;IAEF;;;;OAIG;IACU,sCAAsB,GAAmB,KAAK,WAAW,IAAI,EAAE,MAAM;QAChF,IAAI,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC;YAAE,OAAO;QACtC,MAAM,IAAI,GAAG,IAAe,CAAC;QAC7B,MAAM,GAAG,GAAG,qBAAqB,CAAC,IAAI,EAAE,QAAQ,EAAE,GAAG,CAAC,CAAC;QACvD,IAAI,CAAC,GAAG;YAAE,OAAO;QAEjB,IAAI,CAAC,GAAG,CAAC,4BAA4B,GAAG,EAAE,CAAC,CAAC;QAE5C,6DAA6D;QAC7D,wBAAwB,CAAC,IAAI,EAAE,QAAQ,EAAE,GAAG,CAAC,CAAC;QAE9C,IAAI,WAAsB,CAAC;QAE3B,wDAAwD;QACxD,IAAI,WAAW,CAAC,IAAI,EAAE,UAAU,CAAC,EAAE,CAAC;YAClC,WAAW,GAAI,IAAY,CAAC,QAAqB,CAAC;YAClD,IAAI,CAAC,GAAG,CAAC,2CAA2C,EAAE,YAAY,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,CAAC;QAChF,CAAC;aAAM,CAAC;YACN,iEAAiE;YACjE,WAAW,GAAG,IAAI,CAAC,WAAW,EAAE,CAAC;YACjC,WAAW,CAAC,IAAI,EAAE,UAAU,EAAE,WAAW,CAAC,CAAC;QAC7C,CAAC;QAED,sDAAsD;QACtD,MAAM,WAAW,CAAC,KAAK,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;QAEtC,qDAAqD;QACrD,uGAAuG;QACvG,KAAK,MAAM,KAAK,IAAI,QAAQ,CAAC,IAAI,EAAE,IAAI,CAAC,UAAU,CAAC,EAAE,CAAC;YACpD,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;QAC7B,CAAC;QAED,6DAA6D;QAC7D,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,yBAAyB,CAAC,GAAG,CAAC,CAAC;YAC3D,IAAI,OAAO,MAAM,CAAC,OAAO,KAAK,UAAU,EAAE,CAAC;gBACzC,MAAM,MAAM,CAAC,OAAO,CAAC,IAAI,EAAE,WAAW,CAAC,CAAC;YAC1C,CAAC;iBAAM,IAAI,MAAM,CAAC,OAAO,KAAK,SAAS,EAAE,CAAC;gBACxC,OAAO,CAAC,IAAI,CAAC,UAAU,GAAG,mCAAmC,CAAC,CAAC;YACjE,CAAC;QACH,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,OAAO,CAAC,KAAK,CAAC,sCAAsC,GAAG,GAAG,EAAE,GAAG,CAAC,CAAC;QACnE,CAAC;IACH,CAAC,CAAC;AACJ,CAAC,EA/lBgB,eAAe,KAAf,eAAe,QA+lB/B"}
@@ -1,11 +1,14 @@
1
- import { ParserParams, RenderParams } from "./interfaces.js";
1
+ import type { ParserParams, RenderParams } from "./interfaces.js";
2
2
  import { SignalStore } from "./store.js";
3
+ import type { StoreState } from "./store.js";
3
4
  export type EvalListener = (result: any, dependencies: string[]) => any;
4
5
  /**
5
6
  * Represents an abstract class for rendering and manipulating HTML content.
6
7
  * Extends the `ReactiveProxyStore` class.
8
+ *
9
+ * @template T - The type of the store state. Defaults to `StoreState`.
7
10
  */
8
- export declare abstract class IRenderer extends SignalStore {
11
+ export declare abstract class IRenderer<T extends StoreState = StoreState> extends SignalStore<T> {
9
12
  abstract readonly impl: string;
10
13
  protected debugging: boolean;
11
14
  protected readonly dirpath: string;
package/dist/renderer.js CHANGED
@@ -6,6 +6,8 @@ import { setupQueryParamBindings } from "./query.js";
6
6
  /**
7
7
  * Represents an abstract class for rendering and manipulating HTML content.
8
8
  * Extends the `ReactiveProxyStore` class.
9
+ *
10
+ * @template T - The type of the store state. Defaults to `StoreState`.
9
11
  */
10
12
  export class IRenderer extends SignalStore {
11
13
  debugging = false;
@@ -122,7 +124,7 @@ export class IRenderer extends SignalStore {
122
124
  this.log("Preprocessing node:\n", nodeToString(node, 128));
123
125
  // Resolve all the includes in the node.
124
126
  await RendererPlugins.resolveIncludes.call(this, node, params);
125
- // Resolve all the relative paths in the node.
127
+ // Resolve all the relative paths in the node (including :render).
126
128
  await RendererPlugins.rebaseRelativePaths.call(this, node, params);
127
129
  // Register all the custom elements in the node.
128
130
  await RendererPlugins.registerCustomElements.call(this, node, params);
@@ -147,8 +149,10 @@ export class IRenderer extends SignalStore {
147
149
  // Do these steps one at a time to avoid any potential race conditions.
148
150
  for (const node of traverse(root, this._skipNodes)) {
149
151
  this.log("Rendering node:\n", nodeToString(node, 128));
150
- // Resolve the :for attribute in the node.
152
+ // Resolve :for first - creates copies before other plugins modify the template.
151
153
  await RendererPlugins.resolveForAttribute.call(this, node, params);
154
+ // Resolve :render - creates subrenderer, mounts, then runs init after descendants.
155
+ await RendererPlugins.resolveRenderAttribute.call(this, node, params);
152
156
  // Resolve the :data attribute in the node.
153
157
  await RendererPlugins.resolveDataAttribute.call(this, node, params);
154
158
  // Resolve the :text attribute in the node.
@@ -1 +1 @@
1
- {"version":3,"file":"renderer.js","sourceRoot":"","sources":["../src/renderer.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AACzC,OAAO,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAC/C,OAAO,EAAE,OAAO,EAAE,YAAY,EAAE,WAAW,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAC;AACzE,OAAO,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AACzC,OAAO,EAAE,uBAAuB,EAAE,MAAM,YAAY,CAAC;AAIrD;;;GAGG;AACH,MAAM,OAAgB,SAAU,SAAQ,WAAW;IAEvC,SAAS,GAAY,KAAK,CAAC;IAClB,OAAO,GAAW,EAAE,CAAC;IAC/B,UAAU,GAAc,IAAI,GAAG,EAAE,CAAC;IAClC,eAAe,GAAsB,IAAI,GAAG,EAAE,CAAC;IAMxD;;;;;OAKG;IACH,KAAK,CAAC,IAAa;QACjB,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;QACtB,OAAO,IAAI,CAAC;IACd,CAAC;IAED;;;;;OAKG;IACH,KAAK,CAAC,WAAW,CAAC,KAAa,EAAE,MAAqB;QACpD,OAAO,KAAK,CAAC,KAAK,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,IAAI,SAAS,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC,CAAC;IACvF,CAAC;IAED;;;;;;OAMG;IACH,KAAK,CAAC,UAAU,CAAC,KAAa,EAAE,MAAqB;QACnD,OAAO,IAAI,CAAC,WAAW,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;IACzC,CAAC;IAED;;;;;;OAMG;IACH,KAAK,CAAC,gBAAgB,CACpB,OAAe,EACf,MAAoC;QAEpC,IAAI,CAAC,GAAG,CAAC,6CAA6C,EAAE,MAAM,CAAC,CAAC;QAChE,MAAM,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;QACjD,MAAM,IAAI,CAAC,cAAc,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;QAC5C,OAAO,QAAQ,CAAC;IAClB,CAAC;IAED;;;;;OAKG;IACH,KAAK,CAAC,gBAAgB,CACpB,KAAa,EACb,MAAoC;QAEpC,MAAM,YAAY,GAAgB,EAAE,CAAC;QACrC,IAAI,MAAM,EAAE,KAAK;YAAE,YAAY,CAAC,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC;QACrD,MAAM,OAAO,GAAG,MAAM,KAAK,CAAC,KAAK,EAAE,YAAY,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC,CAAC;QAC3E,OAAO,IAAI,CAAC,gBAAgB,CAAC,OAAO,EAAE;YACpC,GAAG,MAAM;YACT,OAAO,EAAE,OAAO,CAAC,KAAK,CAAC;YACvB,YAAY,EAAE,MAAM,EAAE,YAAY,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,WAAW,CAAC;SACnE,CAAC,CAAC;IACL,CAAC;IAED;;;;;OAKG;IACH,KAAK,CAAC,eAAe,CACnB,KAAa,EACb,MAAoC;QAEpC,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,UAAU,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;QACrD,OAAO,IAAI,CAAC,gBAAgB,CAAC,OAAO,EAAE;YACpC,GAAG,MAAM;YACT,OAAO,EAAE,OAAO,CAAC,KAAK,CAAC;YACvB,YAAY,EAAE,MAAM,EAAE,YAAY,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,WAAW,CAAC;SACnE,CAAC,CAAC;IACL,CAAC;IAED;;;OAGG;IACH,WAAW;QACT,MAAM,QAAQ,GAAG,IAAK,IAAI,CAAC,WAAmB,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAc,CAAC;QAEpF,4EAA4E;QAE5E,sDAAsD;QACtD,QAAQ,CAAC,MAAM,CAAC,GAAG,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC;QAErC,iFAAiF;QACjF,QAAQ,CAAC,MAAM,CAAC,GAAG,CAAC,eAAe,EAAE,IAAI,CAAC,GAAG,CAAC,eAAe,CAAC,IAAI,IAAI,CAAC,CAAC;QAExE,mDAAmD;QAClD,QAAgB,CAAC,eAAe,GAAG,IAAI,CAAC,eAAe,CAAC;QAEzD,OAAO,QAAqB,CAAC;IAC/B,CAAC;IAED;;;OAGG;IACH,GAAG,CAAC,GAAG,IAAW;QAChB,IAAI,IAAI,CAAC,SAAS;YAAE,OAAO,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC,CAAC;IAC7C,CAAC;IAED;;;;;;;OAOG;IACH,KAAK,CAAC,cAAc,CAClB,IAAO,EACP,MAAqB;QAErB,MAAM,GAAG,EAAE,OAAO,EAAE,IAAI,CAAC,OAAO,EAAE,QAAQ,EAAE,EAAE,EAAE,GAAG,MAAM,EAAE,CAAC;QAE5D,MAAM,QAAQ,GAAG,IAAI,QAAQ,CAAC,QAAQ,CAAC,IAAI,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,EAAE,IAAI,EAAE,EAAE;YAChF,IAAI,CAAC,GAAG,CAAC,uBAAuB,EAAE,YAAY,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC,CAAC;YAC3D,wCAAwC;YACxC,MAAM,eAAe,CAAC,eAAe,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,EAAE,MAAM,CAAC,CAAC;YAC/D,8CAA8C;YAC9C,MAAM,eAAe,CAAC,mBAAmB,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,EAAE,MAAM,CAAC,CAAC;YACnE,gDAAgD;YAChD,MAAM,eAAe,CAAC,sBAAsB,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,EAAE,MAAM,CAAC,CAAC;YACtE,+CAA+C;YAC/C,MAAM,eAAe,CAAC,qBAAqB,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,EAAE,MAAM,CAAC,CAAC;QACvE,CAAC,CAAC,CAAC;QAEH,qDAAqD;QACrD,MAAM,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,SAAS,EAAE,CAAC,CAAC;QAExC,iEAAiE;QACjE,OAAO,IAAI,CAAC;IACd,CAAC;IAED;;;;;;;OAOG;IACH,KAAK,CAAC,UAAU,CACd,IAAO,EACP,MAAqB;QAErB,6DAA6D;QAC7D,uEAAuE;QACvE,KAAK,MAAM,IAAI,IAAI,QAAQ,CAAC,IAAI,EAAE,IAAI,CAAC,UAAU,CAAC,EAAE,CAAC;YACnD,IAAI,CAAC,GAAG,CAAC,mBAAmB,EAAE,YAAY,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC,CAAC;YACvD,0CAA0C;YAC1C,MAAM,eAAe,CAAC,mBAAmB,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,EAAE,MAAM,CAAC,CAAC;YACnE,2CAA2C;YAC3C,MAAM,eAAe,CAAC,oBAAoB,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,EAAE,MAAM,CAAC,CAAC;YACpE,2CAA2C;YAC3C,MAAM,eAAe,CAAC,qBAAqB,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,EAAE,MAAM,CAAC,CAAC;YACrE,2CAA2C;YAC3C,MAAM,eAAe,CAAC,oBAAoB,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,EAAE,MAAM,CAAC,CAAC;YACpE,2CAA2C;YAC3C,MAAM,eAAe,CAAC,oBAAoB,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,EAAE,MAAM,CAAC,CAAC;YACpE,4CAA4C;YAC5C,MAAM,eAAe,CAAC,qBAAqB,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,EAAE,MAAM,CAAC,CAAC;YACrE,2CAA2C;YAC3C,MAAM,eAAe,CAAC,oBAAoB,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,EAAE,MAAM,CAAC,CAAC;YACpE,gDAAgD;YAChD,MAAM,eAAe,CAAC,sBAAsB,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,EAAE,MAAM,CAAC,CAAC;YACtE,+CAA+C;YAC/C,MAAM,eAAe,CAAC,0BAA0B,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,EAAE,MAAM,CAAC,CAAC;YAC1E,kDAAkD;YAClD,MAAM,eAAe,CAAC,sBAAsB,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,EAAE,MAAM,CAAC,CAAC;YACtE,kDAAkD;YAClD,MAAM,eAAe,CAAC,qBAAqB,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,EAAE,MAAM,CAAC,CAAC;YACrE,+DAA+D;YAC/D,MAAM,eAAe,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,EAAE,MAAM,CAAC,CAAC;QAC5D,CAAC;QAED,6DAA6D;QAC7D,OAAO,IAAI,CAAC;IACd,CAAC;IAED;;;;;;OAMG;IACH,KAAK,CAAC,KAAK,CAAC,IAAwC,EAAE,MAAqB;QACzE,MAAM,GAAG,EAAE,GAAG,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;QAEvC,qCAAqC;QACrC,WAAW,CAAC,IAAe,EAAE,UAAU,EAAE,IAAI,CAAC,CAAC;QAE/C,iDAAiD;QACjD,4EAA4E;QAC5E,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,WAAW,EAAE,IAAI,CAAC,CAAC;QAEnC,yDAAyD;QACzD,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,eAAe,CAAC,EAAE,CAAC;YAC/B,4EAA4E;YAC5E,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,eAAe,EAAE,IAAI,CAAC,CAAC;QACzC,CAAC;QAED,8DAA8D;QAC9D,IAAI,IAAI,CAAC,GAAG,CAAC,eAAe,CAAC,KAAK,IAAI,EAAE,CAAC;YACvC,MAAM,uBAAuB,CAAC,IAAI,CAAC,CAAC;QACtC,CAAC;QAED,iDAAiD;QACjD,MAAM,IAAI,CAAC,cAAc,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;QAExC,sDAAsD;QACtD,MAAM,IAAI,CAAC,UAAU,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;IACtC,CAAC;CACF"}
1
+ {"version":3,"file":"renderer.js","sourceRoot":"","sources":["../src/renderer.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,7 @@
1
- import { ParserParams, RenderParams } from "./interfaces.js";
1
+ import type { ParserParams, RenderParams } from "./interfaces.js";
2
2
  import { IRenderer } from "./renderer.js";
3
- export declare class Renderer extends IRenderer {
3
+ import type { StoreState } from "./store.js";
4
+ export declare class Renderer<T extends StoreState = StoreState> extends IRenderer<T> {
4
5
  readonly impl = "safe_browser";
5
6
  protected readonly dirpath: string;
6
7
  parseHTML(content: string, params?: ParserParams): Document | DocumentFragment;
@@ -9,4 +10,4 @@ export declare class Renderer extends IRenderer {
9
10
  createElement(tag: string, owner?: Document | null): Element;
10
11
  textContent(node: Node, content: string): void;
11
12
  }
12
- export declare const Mancha: Renderer;
13
+ export declare const Mancha: Renderer<StoreState>;
@@ -1 +1 @@
1
- const t={};function e(t){0}class s{constructor(t,e){this.privateDoNotAccessOrElseWrappedAttributePrefix=e}toString(){return this.privateDoNotAccessOrElseWrappedAttributePrefix}}const i=s;function r(t){if(function(t){return t instanceof s}(t))return t.privateDoNotAccessOrElseWrappedAttributePrefix;throw new Error("")}function n(t){return Object.isFrozen(t)&&Object.isFrozen(t.raw)}function a(t){return-1===t.toString().indexOf("`")}a(t=>t``)||a(t=>t`\0`)||a(t=>t`\n`)||a(t=>t`\u0000`),n``&&n`\0`&&n`\n`&&n`\u0000`;function o(e){const s=e[0].toLowerCase();return new i(t,s)}let l,c="google#safe";function h(){var t;return""!==c&&null!==(t=function(){if("undefined"!=typeof window)return window.trustedTypes}())&&void 0!==t?t:null}class u{constructor(t,s){e(),this.privateDoNotAccessOrElseWrappedHtml=t}toString(){return this.privateDoNotAccessOrElseWrappedHtml.toString()}}function d(e,s){return null!=s?s:new u(e,t)}"undefined"!=typeof window&&window.TrustedHTML;function p(t){var e;const s=t;return d(s,null===(e=function(){var t,e;if(void 0===l)try{l=null!==(e=null===(t=h())||void 0===t?void 0:t.createPolicy(c,{createHTML:t=>t,createScript:t=>t,createScriptURL:t=>t}))&&void 0!==e?e:null}catch(t){l=null}return l}())||void 0===e?void 0:e.createHTML(s))}function f(t){var e;if(null===(e=h())||void 0===e?void 0:e.isHTML(t))return t;if(t instanceof u)return t.privateDoNotAccessOrElseWrappedHtml;throw new Error("")}"undefined"!=typeof window&&window.TrustedScriptURL;"undefined"!=typeof window&&window.TrustedScript;function _(t,e){e.appendChild(t);let s=(new XMLSerializer).serializeToString(e);return s=s.slice(s.indexOf(">")+1,s.lastIndexOf("</")),p(s)}const m=["data:","http:","https:","mailto:","ftp:"],E=/^\s*(?!javascript:)(?:[\w+.-]+:|[^:/?#]*(?:[/?#]|$))/i;function w(t){if(!function(t){const e=!E.test(t);return e}(t))return t}function v(t){return w(t)}function b(t){const e=function(t){let e;try{e=new URL(t)}catch(t){return"https:"}return e.protocol}(t);return void 0!==e&&-1!==m.indexOf(e.toLowerCase())?t:"about:invalid#zClosurez"}function g(t,e){const s=e.createRange();s.selectNode(e.body);return function(t,e){return t.createContextualFragment(f(e))}(s,p(t))}function y(t){const e=t.nodeName;return"string"==typeof e?e:"FORM"}function A(t){return 3===t.nodeType}function T(t){const e=t.nodeType;return 1===e||"number"!=typeof e}var R,O;function N(t){try{return new URL(t,window.document.baseURI)}catch(t){return new URL("about:invalid")}}function I(t){return{valueOf:t}.valueOf()}!function(t){t[t.STYLE_TAG=0]="STYLE_TAG",t[t.STYLE_ATTRIBUTE=1]="STYLE_ATTRIBUTE",t[t.HTML_ATTRIBUTE=2]="HTML_ATTRIBUTE"}(R||(R={}));class P{constructor(t,e,s,i,r){this.allowedElements=t,this.elementPolicies=e,this.allowedGlobalAttributes=s,this.globalAttributePolicies=i,this.globallyAllowedAttributePrefixes=r}isAllowedElement(t){return"FORM"!==t&&(this.allowedElements.has(t)||this.elementPolicies.has(t))}getAttributePolicy(t,e){const s=this.elementPolicies.get(e);if(null==s?void 0:s.has(t))return s.get(t);if(this.allowedGlobalAttributes.has(t))return{policyAction:O.KEEP};const i=this.globalAttributePolicies.get(t);return i||(this.globallyAllowedAttributePrefixes&&[...this.globallyAllowedAttributePrefixes].some(e=>0===t.indexOf(e))?{policyAction:O.KEEP}:{policyAction:O.DROP})}}!function(t){t[t.DROP=0]="DROP",t[t.KEEP=1]="KEEP",t[t.KEEP_AND_SANITIZE_URL=2]="KEEP_AND_SANITIZE_URL",t[t.KEEP_AND_NORMALIZE=3]="KEEP_AND_NORMALIZE",t[t.KEEP_AND_SANITIZE_STYLE=4]="KEEP_AND_SANITIZE_STYLE",t[t.KEEP_AND_USE_RESOURCE_URL_POLICY=5]="KEEP_AND_USE_RESOURCE_URL_POLICY",t[t.KEEP_AND_USE_RESOURCE_URL_POLICY_FOR_SRCSET=6]="KEEP_AND_USE_RESOURCE_URL_POLICY_FOR_SRCSET"}(O||(O={}));const S=new Set(["ANNOTATION-XML","COLOR-PROFILE","FONT-FACE","FONT-FACE-SRC","FONT-FACE-URI","FONT-FACE-FORMAT","FONT-FACE-NAME","MISSING-GLYPH"]);const x=["ARTICLE","SECTION","NAV","ASIDE","H1","H2","H3","H4","H5","H6","HEADER","FOOTER","ADDRESS","P","HR","PRE","BLOCKQUOTE","OL","UL","LH","LI","DL","DT","DD","FIGURE","FIGCAPTION","MAIN","DIV","EM","STRONG","SMALL","S","CITE","Q","DFN","ABBR","RUBY","RB","RT","RTC","RP","DATA","TIME","CODE","VAR","SAMP","KBD","SUB","SUP","I","B","U","MARK","BDI","BDO","SPAN","BR","WBR","INS","DEL","PICTURE","PARAM","TRACK","MAP","TABLE","CAPTION","COLGROUP","COL","TBODY","THEAD","TFOOT","TR","TD","TH","SELECT","DATALIST","OPTGROUP","OPTION","OUTPUT","PROGRESS","METER","FIELDSET","LEGEND","DETAILS","SUMMARY","MENU","DIALOG","SLOT","CANVAS","FONT","CENTER","ACRONYM","BASEFONT","BIG","DIR","HGROUP","STRIKE","TT"],C=[["A",new Map([["href",{policyAction:O.KEEP_AND_SANITIZE_URL}]])],["AREA",new Map([["href",{policyAction:O.KEEP_AND_SANITIZE_URL}]])],["LINK",new Map([["href",{policyAction:O.KEEP_AND_USE_RESOURCE_URL_POLICY,conditions:new Map([["rel",new Set(["alternate","author","bookmark","canonical","cite","help","icon","license","next","prefetch","dns-prefetch","prerender","preconnect","preload","prev","search","subresource"])]])}]])],["SOURCE",new Map([["src",{policyAction:O.KEEP_AND_USE_RESOURCE_URL_POLICY}],["srcset",{policyAction:O.KEEP_AND_USE_RESOURCE_URL_POLICY_FOR_SRCSET}]])],["IMG",new Map([["src",{policyAction:O.KEEP_AND_USE_RESOURCE_URL_POLICY}],["srcset",{policyAction:O.KEEP_AND_USE_RESOURCE_URL_POLICY_FOR_SRCSET}]])],["VIDEO",new Map([["src",{policyAction:O.KEEP_AND_USE_RESOURCE_URL_POLICY}]])],["AUDIO",new Map([["src",{policyAction:O.KEEP_AND_USE_RESOURCE_URL_POLICY}]])]],L=["title","aria-atomic","aria-autocomplete","aria-busy","aria-checked","aria-current","aria-disabled","aria-dropeffect","aria-expanded","aria-haspopup","aria-hidden","aria-invalid","aria-label","aria-level","aria-live","aria-multiline","aria-multiselectable","aria-orientation","aria-posinset","aria-pressed","aria-readonly","aria-relevant","aria-required","aria-selected","aria-setsize","aria-sort","aria-valuemax","aria-valuemin","aria-valuenow","aria-valuetext","alt","align","autocapitalize","autocomplete","autocorrect","autofocus","autoplay","bgcolor","border","cellpadding","cellspacing","checked","color","cols","colspan","controls","datetime","disabled","download","draggable","enctype","face","formenctype","frameborder","height","hreflang","hidden","ismap","label","lang","loop","max","maxlength","media","minlength","min","multiple","muted","nonce","open","placeholder","preload","rel","required","reversed","role","rows","rowspan","selected","shape","size","sizes","slot","span","spellcheck","start","step","summary","translate","type","valign","value","width","wrap","itemscope","itemtype","itemid","itemprop","itemref"],k=[["dir",{policyAction:O.KEEP_AND_NORMALIZE,conditions:I(()=>new Map([["dir",new Set(["auto","ltr","rtl"])]]))}],["async",{policyAction:O.KEEP_AND_NORMALIZE,conditions:I(()=>new Map([["async",new Set(["async"])]]))}],["cite",{policyAction:O.KEEP_AND_SANITIZE_URL}],["loading",{policyAction:O.KEEP_AND_NORMALIZE,conditions:I(()=>new Map([["loading",new Set(["eager","lazy"])]]))}],["poster",{policyAction:O.KEEP_AND_SANITIZE_URL}],["target",{policyAction:O.KEEP_AND_NORMALIZE,conditions:I(()=>new Map([["target",new Set(["_self","_blank"])]]))}]],D=new P(new Set(x),new Map(C),new Set(L),new Map(k));new P(new Set(I(()=>x.concat(["STYLE"]))),new Map(C),new Set(I(()=>L.concat(["id","name","class"]))),new Map(I(()=>k.concat([["style",{policyAction:O.KEEP_AND_SANITIZE_STYLE}]]))));class U{constructor(t,s,i,r,n){this.sanitizerTable=t,this.styleElementSanitizer=i,this.styleAttributeSanitizer=r,this.resourceUrlPolicy=n,this.changes=[],e()}sanitizeAssertUnchanged(t){return this.sanitize(t)}sanitize(t){const e=document.implementation.createHTMLDocument("");return _(this.sanitizeToFragmentInternal(t,e),e.body)}sanitizeToFragment(t){const e=document.implementation.createHTMLDocument("");return this.sanitizeToFragmentInternal(t,e)}sanitizeToFragmentInternal(t,e){const s=g(t,e),i=document.createTreeWalker(s,5,t=>this.nodeFilter(t));let r=i.nextNode();const n=e.createDocumentFragment();let a=n;for(;null!==r;){let t;if(A(r))if(this.styleElementSanitizer&&"STYLE"===a.nodeName){const e=this.styleElementSanitizer(r.data);t=this.createTextNode(e)}else t=this.sanitizeTextNode(r);else{if(!T(r)){throw new Error("")}t=this.sanitizeElementNode(r,e)}if(a.appendChild(t),r=i.firstChild(),r)a=t;else for(;!(r=i.nextSibling())&&(r=i.parentNode());)a=a.parentNode}return n}createTextNode(t){return document.createTextNode(t)}sanitizeTextNode(t){return this.createTextNode(t.data)}sanitizeElementNode(t,e){const s=y(t),i=e.createElement(s),r=t.attributes;for(const{name:t,value:e}of r){const n=this.sanitizerTable.getAttributePolicy(t,s);if(this.satisfiesAllConditions(n.conditions,r))switch(n.policyAction){case O.KEEP:z(i,t,e);break;case O.KEEP_AND_SANITIZE_URL:const r=b(e);r!==e&&this.recordChange(`Url in attribute ${t} was modified during sanitization. Original url:"${e}" was sanitized to: "${r}"`),z(i,t,r);break;case O.KEEP_AND_NORMALIZE:z(i,t,e.toLowerCase());break;case O.KEEP_AND_SANITIZE_STYLE:if(this.styleAttributeSanitizer){z(i,t,this.styleAttributeSanitizer(e))}else z(i,t,e);break;case O.KEEP_AND_USE_RESOURCE_URL_POLICY:if(this.resourceUrlPolicy){const r={type:R.HTML_ATTRIBUTE,attributeName:t,tagName:s},n=N(e),a=this.resourceUrlPolicy(n,r);a&&z(i,t,a.toString())}else z(i,t,e);break;case O.KEEP_AND_USE_RESOURCE_URL_POLICY_FOR_SRCSET:if(this.resourceUrlPolicy){const r={type:R.HTML_ATTRIBUTE,attributeName:t,tagName:s},n=$(e),a={parts:[]};for(const t of n.parts){const e=N(t.url),s=this.resourceUrlPolicy(e,r);s&&a.parts.push({url:s.toString(),descriptor:t.descriptor})}z(i,t,M(a))}else z(i,t,e);break;case O.DROP:this.recordChange(`Attribute: ${t} was dropped`)}else this.recordChange(`Not all conditions satisfied for attribute: ${t}.`)}return i}nodeFilter(t){if(A(t))return 1;if(!T(t))return 2;const e=y(t);return null===e?(this.recordChange(`Node name was null for node: ${t}`),2):this.sanitizerTable.isAllowedElement(e)?1:(this.recordChange(`Element: ${e} was dropped`),2)}recordChange(t){0}satisfiesAllConditions(t,e){var s;if(!t)return!0;for(const[i,r]of t){const t=null===(s=e.getNamedItem(i))||void 0===s?void 0:s.value;if(t&&!r.has(t))return!1}return!0}}function z(t,e,s){t.setAttribute(e,s)}function $(t){const e=[];for(const s of t.split(",")){const[t,i]=s.trim().split(/\s+/,2);e.push({url:t,descriptor:i})}return{parts:e}}function M(t){return t.parts.map(t=>{const{url:e,descriptor:s}=t;return`${e}${s?` ${s}`:""}`}).join(" , ")}class F{constructor(){this.calledBuild=!1,this.sanitizerTable=D}onlyAllowElements(t){const e=new Set,s=new Map;for(let i of t){if(i=i.toUpperCase(),!this.sanitizerTable.isAllowedElement(i))throw new Error(`Element: ${i}, is not allowed by html5_contract.textpb`);const t=this.sanitizerTable.elementPolicies.get(i);void 0!==t?s.set(i,t):e.add(i)}return this.sanitizerTable=new P(e,s,this.sanitizerTable.allowedGlobalAttributes,this.sanitizerTable.globalAttributePolicies),this}allowCustomElement(t,e){const s=new Set(this.sanitizerTable.allowedElements),i=new Map(this.sanitizerTable.elementPolicies);if(t=t.toUpperCase(),r=t,S.has(r.toUpperCase())||!/^[a-z][-_.a-z0-9]*-[-_.a-z0-9]*$/i.test(r))throw new Error(`Element: ${t} is not a custom element`);var r;if(e){const s=new Map;for(const t of e)s.set(t,{policyAction:O.KEEP});i.set(t,s)}else s.add(t);return this.sanitizerTable=new P(s,i,this.sanitizerTable.allowedGlobalAttributes,this.sanitizerTable.globalAttributePolicies),this}onlyAllowAttributes(t){const e=new Set,s=new Map,i=new Map;for(const i of t)this.sanitizerTable.allowedGlobalAttributes.has(i)&&e.add(i),this.sanitizerTable.globalAttributePolicies.has(i)&&s.set(i,this.sanitizerTable.globalAttributePolicies.get(i));for(const[e,s]of this.sanitizerTable.elementPolicies.entries()){const r=new Map;for(const[e,i]of s.entries())t.has(e)&&r.set(e,i);i.set(e,r)}return this.sanitizerTable=new P(this.sanitizerTable.allowedElements,i,e,s),this}allowDataAttributes(t){const e=new Set(this.sanitizerTable.allowedGlobalAttributes);for(const s of t){if(0!==s.indexOf("data-"))throw new Error(`data attribute: ${s} does not begin with the prefix "data-"`);e.add(s)}return this.sanitizerTable=new P(this.sanitizerTable.allowedElements,this.sanitizerTable.elementPolicies,e,this.sanitizerTable.globalAttributePolicies),this}allowStyleAttributes(){const t=new Map(this.sanitizerTable.globalAttributePolicies);return t.set("style",{policyAction:O.KEEP_AND_SANITIZE_STYLE}),this.sanitizerTable=new P(this.sanitizerTable.allowedElements,this.sanitizerTable.elementPolicies,this.sanitizerTable.allowedGlobalAttributes,t),this}allowClassAttributes(){const t=new Set(this.sanitizerTable.allowedGlobalAttributes);return t.add("class"),this.sanitizerTable=new P(this.sanitizerTable.allowedElements,this.sanitizerTable.elementPolicies,t,this.sanitizerTable.globalAttributePolicies),this}allowIdAttributes(){const t=new Set(this.sanitizerTable.allowedGlobalAttributes);return t.add("id"),this.sanitizerTable=new P(this.sanitizerTable.allowedElements,this.sanitizerTable.elementPolicies,t,this.sanitizerTable.globalAttributePolicies),this}allowIdReferenceAttributes(){const t=new Set(this.sanitizerTable.allowedGlobalAttributes);return t.add("aria-activedescendant").add("aria-controls").add("aria-labelledby").add("aria-owns").add("for").add("list"),this.sanitizerTable=new P(this.sanitizerTable.allowedElements,this.sanitizerTable.elementPolicies,t,this.sanitizerTable.globalAttributePolicies),this}withResourceUrlPolicy(t){return this.resourceUrlPolicy=t,this}build(){if(this.calledBuild)throw new Error("this sanitizer has already called build");return this.calledBuild=!0,new U(this.sanitizerTable,t,void 0,void 0,this.resourceUrlPolicy)}}function G(t,e,s,i){if(0===t.length){throw new Error("")}const n=t.map(t=>r(t)),a=s.toLowerCase();if(n.every(t=>0!==a.indexOf(t)))throw new Error(`Attribute "${s}" does not match any of the allowed prefixes.`);e.setAttribute(s,i)}function K(t,e,s){return t.parseFromString(f(e),s)}Error;const H=[o`:`,o`style`,o`class`];function*W(t,e=new Set){const s=new Set,i=Array.from(t.childNodes).filter(t=>!e.has(t));for(yield t;i.length;){const t=i.shift();s.has(t)||(s.add(t),yield t),t.childNodes&&Array.from(t.childNodes).filter(t=>!e.has(t)).forEach(t=>i.push(t))}}function Y(t,e){return void 0!==t?.[e]}function B(t,e){return"function"==typeof t?.[e]}function V(t){return t.replace(/-./g,t=>t[1].toUpperCase())}function Z(t,e){return Y(t,"attribs")?t.attribs?.[e]??null:t.getAttribute?.(e)??null}function j(t,e,s=""){return Z(t,s+e)||(t.dataset?.[V(e)]??null)}function q(t,e,s){Y(t,"attribs")?t.attribs[e]=s:t.setAttribute?.(e,s)}function X(t,e,s){Y(t,"attribs")?t.attribs[e]=s:G(H,t,e,s)}function Q(t,e,s){switch(e){case"disabled":return void(t.disabled=s);case"selected":return void(t.selected=s);case"checked":return void(t.checked=s);default:t[e]=s}}function J(t,e){Y(t,"attribs")?delete t.attribs[e]:t.removeAttribute?.(e)}function tt(t,e,s=""){J(t,`${s}${e}`),J(t,`data-${e}`)}function et(t,e,s){if(Y(t,"attribs")&&Y(e,"attribs"))e.attribs[s]=t.attribs[s];else if(s.startsWith("data-")){const i=V(s.slice(5));e.dataset[i]=t.dataset?.[i]}else{const i=t?.getAttribute?.(s);X(e,s,i||"")}}function st(t){if(Y(t,"firstElementChild"))return t.firstElementChild;return Array.from(t.children).find(t=>1===t.nodeType)}function it(t,...e){if(B(t,"replaceWith"))return t.replaceWith(...e);{const s=t,i=s.parentNode,r=Array.from(i.childNodes).indexOf(s);e.forEach(t=>t.parentNode=i),i.childNodes=[].concat(Array.from(i.childNodes).slice(0,r)).concat(e).concat(Array.from(i.childNodes).slice(r+1))}}function rt(t,...e){B(t,"replaceChildren")?t.replaceChildren(...e):(t.childNodes=e,e.forEach(e=>e.parentNode=t))}function nt(t,e){return B(e,"appendChild")?t.appendChild(e):(t.childNodes.push(e),e.parentNode=t,e)}function at(t,e){return B(e,"removeChild")?t.removeChild(e):(rt(t,...Array.from(t.childNodes).filter(t=>t!==e)),e)}function ot(t,e,s){return s?B(t,"insertBefore")?t.insertBefore(e,s):(it(s,e,s),e):nt(t,e)}function lt(t,e=0){return t?t.length<=e?t:t.slice(0,e-1)+"…":""}function ct(t,e=0){return globalThis.DocumentFragment&&t instanceof DocumentFragment?Array.from(t.childNodes).map(t=>ct(t,e)).join(""):lt(t.outerHTML||t.nodeValue||String(t),e)}function ht(t){return t.includes("/")?t.split("/").slice(0,-1).join("/"):""}class ut{iterable;constructor(t){this.iterable=t}filter(t){return new ut(ut.filterGenerator(t,this.iterable))}map(t){return new ut(ut.mapGenerator(t,this.iterable))}find(t){for(const e of this.iterable)if(t(e))return e}array(){return Array.from(this.iterable)}*generator(){for(const t of this.iterable)yield t}static*filterGenerator(t,e){for(const s of e)t(s)&&(yield s)}static*mapGenerator(t,e){for(const s of e)yield t(s)}static equals(t,e){const s=t[Symbol.iterator](),i=e[Symbol.iterator]();let r=s.next(),n=i.next();for(;!r.done&&!n.done;){if(r.value!==n.value)return!1;r=s.next(),n=i.next()}return r.done===n.done}}var dt;!function(t){t.resolveIncludes=async function(t,e){const s=t,i=s.tagName?.toLowerCase();if(!["include","link"].includes(i))return;if("link"===i&&"subresource"!==Z(s,"rel"))return;this.log("include directive found in:\n",ct(t,128)),this.log("include params:",e);const r="link"===s.tagName.toLocaleLowerCase()?"href":"src",n=Z(s,r);if(!n)throw new Error(`"${r}" attribute missing from ${ct(t,128)}.`);const a=[];"include"===i&&a.push("src"),"link"===i&&a.push("rel","href");const o=e=>{const i=st(e);for(const t of Array.from(s.attributes))i&&!a.includes(t.name)&&et(s,i,t.name);it(t,...e.childNodes)},l={...e,rootDocument:!1,maxdepth:e?.maxdepth-1};if(0===l.maxdepth)throw new Error("Maximum recursion depth reached.");if(n.includes("://")||n.startsWith("//"))this.log("Including remote file from absolute path:",n),await this.preprocessRemote(n,l).then(o);else if(e?.dirpath?.includes("://")||e?.dirpath?.startsWith("//")){const t=n.startsWith("/")?n:`${e.dirpath}/${n}`;this.log("Including remote file from relative path:",t),await this.preprocessRemote(t,l).then(o)}else if("/"===n.charAt(0))this.log("Including local file from absolute path:",n),await this.preprocessLocal(n,l).then(o);else{const t=e?.dirpath&&"."!==e?.dirpath?`${e?.dirpath}/${n}`:n;this.log("Including local file from relative path:",t),await this.preprocessLocal(t,l).then(o)}},t.rebaseRelativePaths=async function(t,e){const s=t,i=s.tagName?.toLowerCase();if(!e?.dirpath)return;const r=Z(s,"src"),n=Z(s,"href"),a=r||n;if(!a||((o=a).includes("://")||o.startsWith("/")||o.startsWith("#")||o.startsWith("data:")))return;var o;const l=`${e.dirpath}/${a}`;this.log("Rebasing relative path as:",l),Y(s,"attribs")?X(s,r?"src":"href",l):"img"===i?s.src=l:"a"===i?function(t,e){const s=v(e);void 0!==s&&(t.href=s)}(s,l):"source"===i||"audio"===i||"video"===i||"track"===i||"input"===i?s.src=l:"area"===i?function(t,e){const s=v(e);void 0!==s&&(t.href=s)}(s,l):this.log("Unable to rebase relative path for element:",i)},t.registerCustomElements=async function(t,e){const s=t,i=s.tagName?.toLowerCase(),r=(Z(s,"is")||Z(s,"alt"))?.toLowerCase();if(["template","div"].includes(i)&&r){if("div"===i&&"template"!==Z(s,"role"))return;this._customElements.has(r)||(this.log(`Registering custom element: ${r}\n`,ct(s,128)),this._customElements.set(r,s),at(s.parentNode,s))}},t.resolveCustomElements=async function(t,e){const s=t,i=s.tagName?.toLowerCase();let r=i;if("div"===r&&(r=Z(s,"role")?.toLowerCase()||r),r&&this._customElements.has(r)){this.log(`Processing custom element: ${r}\n`,ct(s,128));const e=this._customElements.get(r),n=(e.content||e).cloneNode(!0),a=st(n);if(a)for(const t of Array.from(s.attributes))"div"===i&&"role"===t.name||et(s,a,t.name);const o=new ut(W(n)).find(t=>"slot"===t.tagName?.toLowerCase());o&&it(o,...s.childNodes),it(t,...n.childNodes)}},t.resolveTextNodeExpressions=async function(t,e){const s=t.nodeValue||"";if(3!==t.nodeType||!s?.trim())return;this.log("Processing node content value:\n",lt(s,128));const i=new RegExp(/{{ ([^}]+) }}/gm),r=Array.from(s.matchAll(i)).map(t=>t[1]);return this.effect(function(){let e=s;for(const s of r){const i=this.eval(s,{$elem:t});e=e.replace(`{{ ${s} }}`,String(i))}t.nodeValue=e})},t.resolveDataAttribute=async function(t,e){if(this._skipNodes.has(t))return;const s=t,i=j(s,"data",":");if(i){this.log(":data attribute found in:\n",ct(t,128)),tt(s,"data",":");const r=e?.rootNode===t?this:this.subrenderer();t.renderer=r;const n=r.eval(i,{$elem:t});if(await Promise.all(Object.entries(n).map(([t,e])=>r._store.set(t,e))),r!==this)for(const e of W(t,this._skipNodes))this._skipNodes.add(e);await r.mount(t,e)}},t.resolveClassAttribute=async function(t,e){if(this._skipNodes.has(t))return;const s=t,i=j(s,"class",":");if(i){this.log(":class attribute found in:\n",ct(t,128)),tt(s,"class",":");const e=Z(s,"class")||"";return this.effect(function(){const r=this.eval(i,{$elem:t});X(s,"class",(r?`${e} ${r}`:e).trim())})}},t.resolveTextAttributes=async function(t,e){if(this._skipNodes.has(t))return;const s=t,i=j(s,"text",":");if(i){this.log(":text attribute found in:\n",ct(t,128)),tt(s,"text",":");const e=e=>this.textContent(t,e);return this.effect(function(){e(this.eval(i,{$elem:t}))})}},t.resolveHtmlAttribute=async function(t,e){if(this._skipNodes.has(t))return;const s=t,i=j(s,"html",":");return i?(this.log(":html attribute found in:\n",ct(t,128)),tt(s,"html",":"),this.effect(function(){const r=this.eval(i,{$elem:t});return new Promise(async t=>{const i=await this.preprocessString(r,e);await this.renderNode(i),rt(s,i),t()})})):void 0},t.resolveEventAttributes=async function(t,e){if(this._skipNodes.has(t))return;const s=t;for(const e of Array.from(s.attributes||[]))if(e.name.startsWith(":on:")||e.name.startsWith("data-on-")){let i="",r=[];if(e.name.startsWith(":on:")?[i,...r]=e.name.substring(4).split("."):e.name.startsWith("data-on-")&&([i,...r]=e.name.substring(8).split(".")),!i)throw new Error(`Invalid event attribute: ${e.name}`);this.log(e.name,"attribute found in:\n",ct(t,128)),tt(s,e.name);const n="submit"===i&&"FORM"===s.tagName.toUpperCase();t.addEventListener?.(i,s=>((r.includes("prevent")||n)&&s.preventDefault(),this.eval(e.value,{$elem:t,$event:s})))}},t.resolveForAttribute=async function(t,e){if(this._skipNodes.has(t))return;const s=t,i=j(s,"for",":")?.trim();if(i){this.log(":for attribute found in:\n",ct(t,128)),tt(s,"for",":");for(const e of W(t,this._skipNodes))this._skipNodes.add(e);const r=Z(s,"style")||"";q(s,"style","display: none;");const n=t.parentNode,a=this.createElement("template",t.ownerDocument);ot(n,a,t),at(n,t),nt(a,t),this.log(":for template:\n",ct(a,128));const o=i.split(" in ",2);if(2!==o.length)throw new Error(`Invalid :for format: \`${i}\`. Expected "{key} in {expression}".`);const l=[],[c,h]=o;await this.effect(function(){const s=this.eval(h,{$elem:t});if(this.log(":for list items:",s),l.splice(0,l.length).forEach(t=>{at(n,t),this._skipNodes.delete(t)}),!Array.isArray(s))return console.error(`Expression did not yield a list: \`${h}\` => \`${s}\``),Promise.resolve();const i=[];for(const n of s){const s=this.subrenderer();s._store.set(c,n);const a=t.cloneNode(!0);q(a,"style",r),l.push(a),this._skipNodes.add(a),i.push(s.mount(a,e)),this.log("Rendered list child:\n",ct(a,128))}const o=a.nextSibling;for(const t of l)ot(n,t,o);return Promise.all(i)})}},t.resolveBindAttribute=async function(t,e){if(this._skipNodes.has(t))return;const s=t,i=j(s,"bind",":");if(i){this.log(":bind attribute found in:\n",ct(t,128));const e=["change","input"],r=Z(s,":bind:on")?.split(",")||s.dataset?.bindOn?.split(",")||e;tt(s,"bind",":"),J(s,":bind:on"),J(s,"data-bind-on");const n="checkbox"===Z(s,"type")?"checked":"value";i.includes(".")||this.has(i)||this.set(i,""),this.effect(function(){const e=this.eval(i,{$elem:t});"checked"===n?s.checked=!!e:s.value=e});const a=`${i} = $elem.${n}`;for(const e of r)t.addEventListener(e,()=>this.eval(a,{$elem:t}))}},t.resolveShowAttribute=async function(t,e){if(this._skipNodes.has(t))return;const s=t,i=j(s,"show",":");if(i){this.log(":show attribute found in:\n",ct(t,128)),tt(s,"show",":");const e="none"===s.style?.display?"":s.style?.display??Z(s,"style")?.split(";")?.find(t=>"display"===t.split(":")[0])?.split(":")?.at(1)?.trim();this.effect(function(){const r=this.eval(i,{$elem:t});s.style?s.style.display=r?e:"none":X(s,"style",`display: ${r?e:"none"};`)})}},t.resolveCustomAttribute=async function(t,e){if(this._skipNodes.has(t))return;const s=t;for(const e of Array.from(s.attributes||[])){const i=":attr:",r="data-attr-";if(e.name.startsWith(i)||e.name.startsWith(r)){this.log(e.name,"attribute found in:\n",ct(t,128)),J(s,e.name);const n=e.name.split(i,2).at(-1)?.split(r,2).at(-1);this.effect(function(){const i=this.eval(e.value,{$elem:t});q(s,n,i)})}}},t.resolveCustomProperty=async function(t,e){if(this._skipNodes.has(t))return;const s=t;for(const e of Array.from(s.attributes||[])){const i=":prop:",r="data-prop-";if(e.name.startsWith(i)||e.name.startsWith(r)){this.log(e.name,"property found in:\n",ct(t,128)),J(s,e.name);const n=e.name.split(i,2).at(-1)?.split(r,2).at(-1),a=V(n);this.effect(function(){const i=this.eval(e.value,{$elem:t});Q(s,a,i)})}}},t.stripTypes=async function(t,e){const s=t;Z(s,":types")&&J(s,":types"),Z(s,"data-types")&&J(s,"data-types")}}(dt||(dt={}));const pt=["this"],ft=["+","-","!"],_t=["=","+","-","*","/","%","^","==","!=",">","<",">=","<=","||","&&","??","&","===","!==","|","|>"],mt={"!":0,":":0,",":0,")":0,"]":0,"}":0,"|>":1,"?":2,"??":3,"||":4,"&&":5,"|":6,"^":7,"&":8,"!=":9,"==":9,"!==":9,"===":9,">=":10,">":10,"<=":10,"<":10,"+":11,"-":11,"%":12,"/":12,"*":12,"(":13,"[":13,".":13,"{":13},Et=["==","!=","<=",">=","||","&&","??","|>"],wt=["===","!=="];var vt;!function(t){t[t.STRING=1]="STRING",t[t.IDENTIFIER=2]="IDENTIFIER",t[t.DOT=3]="DOT",t[t.COMMA=4]="COMMA",t[t.COLON=5]="COLON",t[t.INTEGER=6]="INTEGER",t[t.DECIMAL=7]="DECIMAL",t[t.OPERATOR=8]="OPERATOR",t[t.GROUPER=9]="GROUPER",t[t.KEYWORD=10]="KEYWORD",t[t.ARROW=11]="ARROW"}(vt||(vt={}));const bt=(t,e,s=0)=>({kind:t,value:e,precedence:s}),gt=t=>9===t||10===t||13===t||32===t,yt=t=>95===t||36===t||65<=(t&=-33)&&t<=90,At=t=>yt(t)||Tt(t),Tt=t=>48<=t&&t<=57;class Rt{_input;_index=-1;_tokenStart=0;_next;constructor(t){this._input=t,this._advance()}nextToken(){for(;gt(this._next);)this._advance(!0);if(34===(t=this._next)||39===t)return this._tokenizeString();var t;if(yt(this._next))return this._tokenizeIdentOrKeyword();if(Tt(this._next))return this._tokenizeNumber();if(46===this._next)return this._tokenizeDot();if(44===this._next)return this._tokenizeComma();if(58===this._next)return this._tokenizeColon();if((t=>43===t||45===t||42===t||47===t||33===t||38===t||37===t||60===t||61===t||62===t||63===t||94===t||124===t)(this._next))return this._tokenizeOperator();if((t=>40===t||41===t||91===t||93===t||123===t||125===t)(this._next))return this._tokenizeGrouper();if(this._advance(),void 0!==this._next)throw new Error(`Expected end of input, got ${this._next}`)}_advance(t){this._index++,this._index<this._input.length?(this._next=this._input.charCodeAt(this._index),!0===t&&(this._tokenStart=this._index)):this._next=void 0}_getValue(t=0){const e=this._input.substring(this._tokenStart,this._index+t);return 0===t&&this._clearValue(),e}_clearValue(){this._tokenStart=this._index}_tokenizeString(){const t="unterminated string",e=this._next;for(this._advance(!0);this._next!==e;){if(void 0===this._next)throw new Error(t);if(92===this._next&&(this._advance(),void 0===this._next))throw new Error(t);this._advance()}const s=bt(vt.STRING,this._getValue().replace(/\\(.)/g,(t,e)=>{switch(e){case"n":return"\n";case"r":return"\r";case"t":return"\t";case"b":return"\b";case"f":return"\f";default:return e}}));return this._advance(),s}_tokenizeIdentOrKeyword(){do{this._advance()}while(At(this._next));const t=this._getValue(),e=(s=t,-1!==pt.indexOf(s)?vt.KEYWORD:vt.IDENTIFIER);var s;return bt(e,t)}_tokenizeNumber(){do{this._advance()}while(Tt(this._next));return 46===this._next?this._tokenizeDot():bt(vt.INTEGER,this._getValue())}_tokenizeDot(){return this._advance(),Tt(this._next)?this._tokenizeFraction():(this._clearValue(),bt(vt.DOT,".",13))}_tokenizeComma(){return this._advance(!0),bt(vt.COMMA,",")}_tokenizeColon(){return this._advance(!0),bt(vt.COLON,":")}_tokenizeFraction(){do{this._advance()}while(Tt(this._next));return bt(vt.DECIMAL,this._getValue())}_tokenizeOperator(){this._advance();let t=this._getValue(2);if(-1!==wt.indexOf(t))this._advance(),this._advance();else{if(t=this._getValue(1),"=>"===t)return this._advance(),bt(vt.ARROW,t);-1!==Et.indexOf(t)&&this._advance()}return t=this._getValue(),bt(vt.OPERATOR,t,mt[t])}_tokenizeGrouper(){const t=String.fromCharCode(this._next),e=bt(vt.GROUPER,t,mt[t]);return this._advance(!0),e}}class Ot{_kind;_tokenizer;_ast;_token;_value;constructor(t,e){this._tokenizer=new Rt(t),this._ast=e}parse(){return this._advance(),this._parseExpression()}_advance(t,e){if(!this._matches(t,e))throw new Error(`Expected kind ${t} (${e}), was ${this._token?.kind} (${this._token?.value})`);const s=this._tokenizer.nextToken();this._token=s,this._kind=s?.kind,this._value=s?.value}_matches(t,e){return!(t&&this._kind!==t||e&&this._value!==e)}_parseExpression(){if(!this._token)return this._ast.empty();const t=this._parseUnary();return void 0===t?void 0:this._parsePrecedence(t,0)}_parsePrecedence(t,e){if(void 0===t)throw new Error("Expected left to be defined.");for(;this._token;)if(this._matches(vt.GROUPER,"(")){const e=this._parseArguments();t=this._ast.invoke(t,void 0,e)}else if(this._matches(vt.GROUPER,"[")){const e=this._parseIndex();t=this._ast.index(t,e)}else if(this._matches(vt.DOT)){this._advance();const e=this._parseUnary();t=this._makeInvokeOrGetter(t,e)}else{if(this._matches(vt.KEYWORD))break;if(!(this._matches(vt.OPERATOR)&&this._token.precedence>=e))break;t="?"===this._value?this._parseTernary(t):this._parseBinary(t,this._token)}return t}_makeInvokeOrGetter(t,e){if(void 0===e)throw new Error("expected identifier");if("ID"===e.type)return this._ast.getter(t,e.value);if("Invoke"===e.type&&"ID"===e.receiver.type){const s=e.receiver;return this._ast.invoke(t,s.value,e.arguments)}throw new Error(`expected identifier: ${e}`)}_parseBinary(t,e){if(-1===_t.indexOf(e.value))throw new Error(`unknown operator: ${e.value}`);this._advance();let s=this._parseUnary();for(;(this._kind===vt.OPERATOR||this._kind===vt.DOT||this._kind===vt.GROUPER)&&this._token.precedence>e.precedence;)s=this._parsePrecedence(s,this._token.precedence);return this._ast.binary(t,e.value,s)}_parseUnary(){if(this._matches(vt.OPERATOR)){const t=this._value;if(this._advance(),"+"===t||"-"===t){if(this._matches(vt.INTEGER))return this._parseInteger(t);if(this._matches(vt.DECIMAL))return this._parseDecimal(t)}if(-1===ft.indexOf(t))throw new Error(`unexpected token: ${t}`);const e=this._parsePrecedence(this._parsePrimary(),13);return this._ast.unary(t,e)}return this._parsePrimary()}_parseTernary(t){this._advance(vt.OPERATOR,"?");const e=this._parseExpression();this._advance(vt.COLON);const s=this._parseExpression();return this._ast.ternary(t,e,s)}_parsePrimary(){switch(this._kind){case vt.KEYWORD:const t=this._value;if("this"===t)return this._advance(),this._ast.id(t);if(-1!==pt.indexOf(t))throw new Error(`unexpected keyword: ${t}`);throw new Error(`unrecognized keyword: ${t}`);case vt.IDENTIFIER:return this._parseInvokeOrIdentifier();case vt.STRING:return this._parseString();case vt.INTEGER:return this._parseInteger();case vt.DECIMAL:return this._parseDecimal();case vt.GROUPER:return"("===this._value?this._parseParenOrFunction():"{"===this._value?this._parseMap():"["===this._value?this._parseList():void 0;case vt.COLON:throw new Error('unexpected token ":"');default:return}}_parseList(){const t=[];do{if(this._advance(),this._matches(vt.GROUPER,"]"))break;t.push(this._parseExpression())}while(this._matches(vt.COMMA));return this._advance(vt.GROUPER,"]"),this._ast.list(t)}_parseMap(){const t={};do{if(this._advance(),this._matches(vt.GROUPER,"}"))break;const e=this._value;(this._matches(vt.STRING)||this._matches(vt.IDENTIFIER))&&this._advance(),this._advance(vt.COLON),t[e]=this._parseExpression()}while(this._matches(vt.COMMA));return this._advance(vt.GROUPER,"}"),this._ast.map(t)}_parseInvokeOrIdentifier(){const t=this._value;if("true"===t)return this._advance(),this._ast.literal(!0);if("false"===t)return this._advance(),this._ast.literal(!1);if("null"===t)return this._advance(),this._ast.literal(null);if("undefined"===t)return this._advance(),this._ast.literal(void 0);const e=this._parseIdentifier(),s=this._parseArguments();return s?this._ast.invoke(e,void 0,s):e}_parseIdentifier(){if(!this._matches(vt.IDENTIFIER))throw new Error(`expected identifier: ${this._value}`);const t=this._value;return this._advance(),this._ast.id(t)}_parseArguments(){if(!this._matches(vt.GROUPER,"("))return;const t=[];do{if(this._advance(),this._matches(vt.GROUPER,")"))break;const e=this._parseExpression();t.push(e)}while(this._matches(vt.COMMA));return this._advance(vt.GROUPER,")"),t}_parseIndex(){this._advance();const t=this._parseExpression();return this._advance(vt.GROUPER,"]"),t}_parseParenOrFunction(){const t=this._parseArguments();if(this._matches(vt.ARROW)){this._advance();const e=this._parseExpression(),s=t?.map(t=>t.value)??[];return this._ast.arrowFunction(s,e)}return this._ast.paren(t[0])}_parseString(){const t=this._ast.literal(this._value);return this._advance(),t}_parseInteger(t=""){const e=this._ast.literal(parseInt(`${t}${this._value}`,10));return this._advance(),e}_parseDecimal(t=""){const e=this._ast.literal(parseFloat(`${t}${this._value}`));return this._advance(),e}}const Nt={"+":(t,e)=>t+e,"-":(t,e)=>t-e,"*":(t,e)=>t*e,"/":(t,e)=>t/e,"%":(t,e)=>t%e,"==":(t,e)=>t==e,"!=":(t,e)=>t!=e,"===":(t,e)=>t===e,"!==":(t,e)=>t!==e,">":(t,e)=>t>e,">=":(t,e)=>t>=e,"<":(t,e)=>t<e,"<=":(t,e)=>t<=e,"||":(t,e)=>t||e,"&&":(t,e)=>t&&e,"??":(t,e)=>t??e,"|":(t,e)=>e(t),"|>":(t,e)=>e(t)},It={"+":t=>t,"-":t=>-t,"!":t=>!t};class Pt{timeouts=new Map;debounce(t,e){return new Promise((s,i)=>{const r=this.timeouts.get(e);r&&clearTimeout(r),this.timeouts.set(e,setTimeout(()=>{try{s(e()),this.timeouts.delete(e)}catch(t){i(t)}},t))})}}const St=new class{empty(){return{type:"Empty",evaluate:t=>t,getIds:t=>t}}literal(t){return{type:"Literal",value:t,evaluate(t){return this.value},getIds:t=>t}}id(t){return{type:"ID",value:t,evaluate(t){return"this"===this.value?t:t?.[this.value]},getIds(t){return t.push(this.value),t}}}unary(t,e){const s=It[t];return{type:"Unary",operator:t,child:e,evaluate(t){return s(this.child.evaluate(t))},getIds(t){return this.child.getIds(t)}}}binary(t,e,s){const i=Nt[e];return{type:"Binary",operator:e,left:t,right:s,evaluate(t){if("="===this.operator){if("ID"!==this.left.type&&"Getter"!==this.left.type&&"Index"!==this.left.type)throw new Error(`Invalid assignment target: ${this.left}`);const e=this.right.evaluate(t);let s,i;return"Getter"===this.left.type?(s=this.left.receiver.evaluate(t),i=this.left.name):"Index"===this.left.type?(s=this.left.receiver.evaluate(t),i=this.left.argument.evaluate(t)):"ID"===this.left.type&&(s=t,i=this.left.value),void 0===s?void 0:s[i]=e}return i(this.left.evaluate(t),this.right.evaluate(t))},getIds(t){return this.left.getIds(t),this.right.getIds(t),t}}}getter(t,e){return{type:"Getter",receiver:t,name:e,evaluate(t){return this.receiver.evaluate(t)?.[this.name]},getIds(t){return this.receiver.getIds(t),t}}}invoke(t,e,s){if(null!=e&&"string"!=typeof e)throw new Error("method not a string");return{type:"Invoke",receiver:t,method:e,arguments:s,evaluate(t){const s=this.receiver.evaluate(t),i=this.method?s:t?.this??t,r=this.method?s?.[e]:s,n=(this.arguments??[]).map(e=>e?.evaluate(t));return r?.apply?.(i,n)},getIds(t){return this.receiver.getIds(t),this.arguments?.forEach(e=>e?.getIds(t)),t}}}paren(t){return t}index(t,e){return{type:"Index",receiver:t,argument:e,evaluate(t){return this.receiver.evaluate(t)?.[this.argument.evaluate(t)]},getIds(t){return this.receiver.getIds(t),t}}}ternary(t,e,s){return{type:"Ternary",condition:t,trueExpr:e,falseExpr:s,evaluate(t){return this.condition.evaluate(t)?this.trueExpr.evaluate(t):this.falseExpr.evaluate(t)},getIds(t){return this.condition.getIds(t),this.trueExpr.getIds(t),this.falseExpr.getIds(t),t}}}map(t){return{type:"Map",entries:t,evaluate(e){const s={};if(t&&this.entries)for(const i in t){const t=this.entries[i];t&&(s[i]=t.evaluate(e))}return s},getIds(e){if(t&&this.entries)for(const s in t){const t=this.entries[s];t&&t.getIds(e)}return e}}}list(t){return{type:"List",items:t,evaluate(t){return this.items?.map(e=>e?.evaluate(t))},getIds(t){return this.items?.forEach(e=>e?.getIds(t)),t}}}arrowFunction(t,e){return{type:"ArrowFunction",params:t,body:e,evaluate(t){const e=this.params,s=this.body;return function(...i){const r=Object.fromEntries(e.map((t,e)=>[t,i[e]])),n=new Proxy(t??{},{set:(t,e,s)=>(r.hasOwnProperty(e)&&(r[e]=s),t[e]=s),get:(t,e)=>r.hasOwnProperty(e)?r[e]:t[e]});return s.evaluate(n)}},getIds(t){return this.body.getIds(t).filter(t=>!this.params.includes(t))}}}};function xt(t,e){const s=t?._store;return s?.has(e)?s.get(e):s?.has("$parent")?xt(s.get("$parent"),e):null}function Ct(t,e){const s=t?._store;return s?.has(e)?t:s?.has("$parent")?Ct(s.get("$parent"),e):null}class Lt extends Pt{evalkeys=["$elem","$event"];expressionCache=new Map;observers=new Map;keyHandlers=new Map;_observer=null;_store=new Map;_lock=Promise.resolve();constructor(t){super();for(let[e,s]of Object.entries(t||{}))this.set(e,s)}wrapFunction(t){return(...e)=>t.call(this.$,...e)}wrapObject(t,e){return null==t||((s=t)instanceof Lt||s.__is_proxy__)||t.constructor!==Object&&!Array.isArray(t)?t:new Proxy(t,{deleteProperty:(t,s)=>s in t&&(delete t[s],e(),!0),set:(s,i,r,n)=>{"object"==typeof r&&null!=t&&(r=this.wrapObject(r,e));const a=Reflect.set(s,i,r,n);return e(),a},get:(t,e,s)=>"__is_proxy__"===e||Reflect.get(t,e,s)});var s}watch(t,e){const s=Ct(this,t);if(!s)throw new Error(`Cannot watch key "${t}" as it does not exist in the store.`);s.observers.has(t)||s.observers.set(t,new Set),s.observers.get(t)?.has(e)||s.observers.get(t)?.add(e)}addKeyHandler(t,e){this.keyHandlers.has(t)||this.keyHandlers.set(t,new Set),this.keyHandlers.get(t).add(e)}async notify(t,e=10){const s=Ct(this,t),i=Array.from(s?.observers.get(t)||[]);await this.debounce(e,()=>Promise.all(i.map(t=>t.call(this.proxify(t)))))}get(t,e){return e&&this.watch(t,e),xt(this,t)}async set(t,e){if(e===this._store.get(t))return;const s=()=>this.notify(t);e&&"function"==typeof e&&(e=this.wrapFunction(e)),e&&"object"==typeof e&&(e=this.wrapObject(e,s)),function(t,e,s){const i=Ct(t,e);i?i._store.set(e,s):t._store.set(e,s)}(this,t,e);for(const[s,i]of this.keyHandlers.entries())if(s.test(t))for(const s of i)await Promise.resolve(s.call(this.$,t,e));await s()}async del(t){await this.set(t,null),this._store.delete(t),this.observers.delete(t)}keys(){return Array.from(this._store.keys())}has(t){return this._store.has(t)}effect(t){return t.call(this.proxify(t))}proxify(t){const e=Array.from(this._store.entries()).map(([t])=>t),s=Object.fromEntries(e.map(t=>[t,null]));return new Proxy(s,{get:(e,s,i)=>"string"==typeof s&&Ct(this,s)?this.get(s,t):"$"===s?this.proxify(t):Reflect.get(this,s,i),set:(t,e,s,i)=>("string"!=typeof e||e in this?Reflect.set(this,e,s,i):this.set(e,s),!0)})}get $(){return this.proxify()}makeEvalFunction(t){if(t.includes(";"))throw new Error("Complex expressions are not supported.");let e=null;if(t.includes(" = ")){const[s,i]=t.split(" = ");e=s.trim(),t=i.trim()}return(s,i)=>{const r=((t,e)=>new Ot(t,e).parse())(t,St),n=r?.getIds([])?.map(t=>[t,i[t]??s[t]??globalThis[t]]),a=r?.evaluate(Object.fromEntries(n||[]));if(!e)return a;!function(t,e,s){const i=e.split(".");for(let e=0;e<i.length-1;e++)i[e]in t||(t[i[e]]={}),t=t[i[e]];t[i[i.length-1]]=s}(s,e,a)}}cachedExpressionFunction(t){return t=t.trim(),this.expressionCache.has(t)||this.expressionCache.set(t,this.makeEvalFunction(t)),this.expressionCache.get(t)}eval(t,e={}){const s=this._observer?this:this.$;if(this._store.has(t))return s[t];{const i=this.cachedExpressionFunction(t);try{return i(s,e)}catch(e){return console.error(`Failed to evaluate expression: ${t}`),console.error(e),null}}}}const kt="$$";function Dt(){return new URL(globalThis.window?.location?.href||"http://localhost/")}function Ut(t){return`${kt}${t}`}function zt(t){return t.keys().filter(t=>t.startsWith(kt))}function $t(t,e,s){const i=function(t){return t.substring(2)}(e);let r=!1;if(s){const e=String(s);t.searchParams.get(i)!==e&&(t.searchParams.set(i,e),r=!0)}else t.searchParams.has(i)&&(t.searchParams.delete(i),r=!0);return r}async function Mt(t){const e=Dt();await async function(t,e){for(const[s,i]of e.searchParams.entries()){const e=Ut(s);t.get(e)!==i&&await t.set(e,i)}}(t,e),function(t,e){let s=!1;for(const i of zt(e))$t(t,i,e.get(i))&&(s=!0);s&&globalThis.window?.history?.replaceState({},"",t.toString())}(e,t),t.addKeyHandler(new RegExp("^\\$\\$"),(t,e)=>{const s=Dt();$t(s,t,e)&&globalThis.window?.history?.replaceState({},"",s.toString())}),globalThis.window?.addEventListener("popstate",function(t){return async()=>{const e=Dt(),s=new Set;for(const[i,r]of e.searchParams.entries()){const e=Ut(i);s.add(e),t.get(e)!==r&&t.set(e,r)}const i=zt(t);for(const e of i)s.has(e)||t.del(e)}}(t))}class Ft extends Lt{debugging=!1;dirpath="";_skipNodes=new Set;_customElements=new Map;debug(t){return this.debugging=t,this}async fetchRemote(t,e){return fetch(t,{cache:e?.cache??"default"}).then(t=>t.text())}async fetchLocal(t,e){return this.fetchRemote(t,e)}async preprocessString(t,e){this.log("Preprocessing string content with params:\n",e);const s=this.parseHTML(t,e);return await this.preprocessNode(s,e),s}async preprocessRemote(t,e){const s={};e?.cache&&(s.cache=e.cache);const i=await fetch(t,s).then(t=>t.text());return this.preprocessString(i,{...e,dirpath:ht(t),rootDocument:e?.rootDocument??!t.endsWith(".tpl.html")})}async preprocessLocal(t,e){const s=await this.fetchLocal(t,e);return this.preprocessString(s,{...e,dirpath:ht(t),rootDocument:e?.rootDocument??!t.endsWith(".tpl.html")})}subrenderer(){const t=(new this.constructor).debug(this.debugging);return t._store.set("$parent",this),t._store.set("$rootRenderer",this.get("$rootRenderer")??this),t._customElements=this._customElements,t}log(...t){this.debugging&&console.debug(...t)}async preprocessNode(t,e){e={dirpath:this.dirpath,maxdepth:10,...e};const s=new ut(W(t,this._skipNodes)).map(async t=>{this.log("Preprocessing node:\n",ct(t,128)),await dt.resolveIncludes.call(this,t,e),await dt.rebaseRelativePaths.call(this,t,e),await dt.registerCustomElements.call(this,t,e),await dt.resolveCustomElements.call(this,t,e)});return await Promise.all(s.generator()),t}async renderNode(t,e){for(const s of W(t,this._skipNodes))this.log("Rendering node:\n",ct(s,128)),await dt.resolveForAttribute.call(this,s,e),await dt.resolveDataAttribute.call(this,s,e),await dt.resolveTextAttributes.call(this,s,e),await dt.resolveHtmlAttribute.call(this,s,e),await dt.resolveShowAttribute.call(this,s,e),await dt.resolveClassAttribute.call(this,s,e),await dt.resolveBindAttribute.call(this,s,e),await dt.resolveEventAttributes.call(this,s,e),await dt.resolveTextNodeExpressions.call(this,s,e),await dt.resolveCustomAttribute.call(this,s,e),await dt.resolveCustomProperty.call(this,s,e),await dt.stripTypes.call(this,s,e);return t}async mount(t,e){e={...e,rootNode:t},Q(t,"renderer",this),this._store.set("$rootNode",t),this.has("$rootRenderer")||this._store.set("$rootRenderer",this),this.get("$rootRenderer")===this&&await Mt(this),await this.preprocessNode(t,e),await this.renderNode(t,e)}}const Gt=[":data",":for",":text",":html",":show",":class",":bind",":on:click",":on:click.prevent",":on:input",":on:input.prevent",":on:change",":on:change.prevent",":on:submit",":on:submit.prevent",":attr:src",":attr:href",":attr:title",":prop:checked",":prop:selected",":prop:disabled"],Kt=[...Gt.map(t=>(t=>`data-${t.slice(1).replace(":","-")}`)(t)),"data-testid"];class Ht extends Ft{impl="safe_browser";dirpath=ht(globalThis.location?.href??"http://localhost/");parseHTML(t,e={rootDocument:!1}){for(const e of Gt)t=t.replace(new RegExp(`\\s:${e.slice(1)}=`,"g"),` data-${e.slice(1).replace(":","-")}=`);t=(t=(t=t.replace(/<include(.*) src="([^"]+)"(.*)><\/include>/g,'<link $1 rel="subresource" href="$2" $3>')).replace(/<template is="([^"]+)">([\s\S]*)<\/template>/g,'<div role="template" alt="$1">$2</div>')).replace(/<(\w+)-(\w+)(.*)>([\s\S]*)<\/(\w+)-(\w+)>/g,'<div role="$1-$2" $3>$4</div>');const s=(new F).allowDataAttributes(Kt).allowClassAttributes().allowStyleAttributes().build();if(this.log("parseHTML",t),this.log("sanitized",String(s.sanitize(t))),e.rootDocument){return K(new DOMParser,s.sanitize(t),"text/html")}return s.sanitizeToFragment(t)}serializeHTML(t){return(new XMLSerializer).serializeToString(t).replace(/\s?xmlns="[^"]+"/gm,"")}preprocessLocal(t,e){return this.preprocessRemote(t,e)}createElement(t,e){return(e||document).createElement(t)}textContent(t,e){t.textContent=e}}const Wt=new Ht;export{Wt as Mancha,Ht as Renderer};
1
+ const e={};function t(e){0}class s{constructor(e,t){this.privateDoNotAccessOrElseWrappedAttributePrefix=t}toString(){return this.privateDoNotAccessOrElseWrappedAttributePrefix}}const r=s;function i(e){if(function(e){return e instanceof s}(e))return e.privateDoNotAccessOrElseWrappedAttributePrefix;throw new Error("")}function n(e){return Object.isFrozen(e)&&Object.isFrozen(e.raw)}function a(e){return-1===e.toString().indexOf("`")}a(e=>e``)||a(e=>e`\0`)||a(e=>e`\n`)||a(e=>e`\u0000`),n``&&n`\0`&&n`\n`&&n`\u0000`;function o(t){const s=t[0].toLowerCase();return new r(e,s)}let l,c="google#safe";function h(){var e;return""!==c&&null!==(e=function(){if("undefined"!=typeof window)return window.trustedTypes}())&&void 0!==e?e:null}class u{constructor(e,s){t(),this.privateDoNotAccessOrElseWrappedHtml=e}toString(){return this.privateDoNotAccessOrElseWrappedHtml.toString()}}function d(t,s){return null!=s?s:new u(t,e)}"undefined"!=typeof window&&window.TrustedHTML;function p(e){var t;const s=e;return d(s,null===(t=function(){var e,t;if(void 0===l)try{l=null!==(t=null===(e=h())||void 0===e?void 0:e.createPolicy(c,{createHTML:e=>e,createScript:e=>e,createScriptURL:e=>e}))&&void 0!==t?t:null}catch(e){l=null}return l}())||void 0===t?void 0:t.createHTML(s))}function f(e){var t;if(null===(t=h())||void 0===t?void 0:t.isHTML(e))return e;if(e instanceof u)return e.privateDoNotAccessOrElseWrappedHtml;throw new Error("")}"undefined"!=typeof window&&window.TrustedScriptURL;"undefined"!=typeof window&&window.TrustedScript;function _(e,t){t.appendChild(e);let s=(new XMLSerializer).serializeToString(t);return s=s.slice(s.indexOf(">")+1,s.lastIndexOf("</")),p(s)}const m=["data:","http:","https:","mailto:","ftp:"],E=/^\s*(?!javascript:)(?:[\w+.-]+:|[^:/?#]*(?:[/?#]|$))/i;function v(e){if(!function(e){const t=!E.test(e);return t}(e))return e}function w(e){return v(e)}function b(e){const t=function(e){let t;try{t=new URL(e)}catch(e){return"https:"}return t.protocol}(e);return void 0!==t&&-1!==m.indexOf(t.toLowerCase())?e:"about:invalid#zClosurez"}function g(e,t){const s=t.createRange();s.selectNode(t.body);return function(e,t){return e.createContextualFragment(f(t))}(s,p(e))}function y(e){const t=e.nodeName;return"string"==typeof t?t:"FORM"}function A(e){return 3===e.nodeType}function R(e){const t=e.nodeType;return 1===t||"number"!=typeof t}var T,O;function P(e){try{return new URL(e,window.document.baseURI)}catch(e){return new URL("about:invalid")}}function I(e){return{valueOf:e}.valueOf()}!function(e){e[e.STYLE_TAG=0]="STYLE_TAG",e[e.STYLE_ATTRIBUTE=1]="STYLE_ATTRIBUTE",e[e.HTML_ATTRIBUTE=2]="HTML_ATTRIBUTE"}(T||(T={}));class N{constructor(e,t,s,r,i){this.allowedElements=e,this.elementPolicies=t,this.allowedGlobalAttributes=s,this.globalAttributePolicies=r,this.globallyAllowedAttributePrefixes=i}isAllowedElement(e){return"FORM"!==e&&(this.allowedElements.has(e)||this.elementPolicies.has(e))}getAttributePolicy(e,t){const s=this.elementPolicies.get(t);if(null==s?void 0:s.has(e))return s.get(e);if(this.allowedGlobalAttributes.has(e))return{policyAction:O.KEEP};const r=this.globalAttributePolicies.get(e);return r||(this.globallyAllowedAttributePrefixes&&[...this.globallyAllowedAttributePrefixes].some(t=>0===e.indexOf(t))?{policyAction:O.KEEP}:{policyAction:O.DROP})}}!function(e){e[e.DROP=0]="DROP",e[e.KEEP=1]="KEEP",e[e.KEEP_AND_SANITIZE_URL=2]="KEEP_AND_SANITIZE_URL",e[e.KEEP_AND_NORMALIZE=3]="KEEP_AND_NORMALIZE",e[e.KEEP_AND_SANITIZE_STYLE=4]="KEEP_AND_SANITIZE_STYLE",e[e.KEEP_AND_USE_RESOURCE_URL_POLICY=5]="KEEP_AND_USE_RESOURCE_URL_POLICY",e[e.KEEP_AND_USE_RESOURCE_URL_POLICY_FOR_SRCSET=6]="KEEP_AND_USE_RESOURCE_URL_POLICY_FOR_SRCSET"}(O||(O={}));const S=new Set(["ANNOTATION-XML","COLOR-PROFILE","FONT-FACE","FONT-FACE-SRC","FONT-FACE-URI","FONT-FACE-FORMAT","FONT-FACE-NAME","MISSING-GLYPH"]);const x=["ARTICLE","SECTION","NAV","ASIDE","H1","H2","H3","H4","H5","H6","HEADER","FOOTER","ADDRESS","P","HR","PRE","BLOCKQUOTE","OL","UL","LH","LI","DL","DT","DD","FIGURE","FIGCAPTION","MAIN","DIV","EM","STRONG","SMALL","S","CITE","Q","DFN","ABBR","RUBY","RB","RT","RTC","RP","DATA","TIME","CODE","VAR","SAMP","KBD","SUB","SUP","I","B","U","MARK","BDI","BDO","SPAN","BR","WBR","INS","DEL","PICTURE","PARAM","TRACK","MAP","TABLE","CAPTION","COLGROUP","COL","TBODY","THEAD","TFOOT","TR","TD","TH","SELECT","DATALIST","OPTGROUP","OPTION","OUTPUT","PROGRESS","METER","FIELDSET","LEGEND","DETAILS","SUMMARY","MENU","DIALOG","SLOT","CANVAS","FONT","CENTER","ACRONYM","BASEFONT","BIG","DIR","HGROUP","STRIKE","TT"],k=[["A",new Map([["href",{policyAction:O.KEEP_AND_SANITIZE_URL}]])],["AREA",new Map([["href",{policyAction:O.KEEP_AND_SANITIZE_URL}]])],["LINK",new Map([["href",{policyAction:O.KEEP_AND_USE_RESOURCE_URL_POLICY,conditions:new Map([["rel",new Set(["alternate","author","bookmark","canonical","cite","help","icon","license","next","prefetch","dns-prefetch","prerender","preconnect","preload","prev","search","subresource"])]])}]])],["SOURCE",new Map([["src",{policyAction:O.KEEP_AND_USE_RESOURCE_URL_POLICY}],["srcset",{policyAction:O.KEEP_AND_USE_RESOURCE_URL_POLICY_FOR_SRCSET}]])],["IMG",new Map([["src",{policyAction:O.KEEP_AND_USE_RESOURCE_URL_POLICY}],["srcset",{policyAction:O.KEEP_AND_USE_RESOURCE_URL_POLICY_FOR_SRCSET}]])],["VIDEO",new Map([["src",{policyAction:O.KEEP_AND_USE_RESOURCE_URL_POLICY}]])],["AUDIO",new Map([["src",{policyAction:O.KEEP_AND_USE_RESOURCE_URL_POLICY}]])]],L=["title","aria-atomic","aria-autocomplete","aria-busy","aria-checked","aria-current","aria-disabled","aria-dropeffect","aria-expanded","aria-haspopup","aria-hidden","aria-invalid","aria-label","aria-level","aria-live","aria-multiline","aria-multiselectable","aria-orientation","aria-posinset","aria-pressed","aria-readonly","aria-relevant","aria-required","aria-selected","aria-setsize","aria-sort","aria-valuemax","aria-valuemin","aria-valuenow","aria-valuetext","alt","align","autocapitalize","autocomplete","autocorrect","autofocus","autoplay","bgcolor","border","cellpadding","cellspacing","checked","color","cols","colspan","controls","datetime","disabled","download","draggable","enctype","face","formenctype","frameborder","height","hreflang","hidden","ismap","label","lang","loop","max","maxlength","media","minlength","min","multiple","muted","nonce","open","placeholder","preload","rel","required","reversed","role","rows","rowspan","selected","shape","size","sizes","slot","span","spellcheck","start","step","summary","translate","type","valign","value","width","wrap","itemscope","itemtype","itemid","itemprop","itemref"],C=[["dir",{policyAction:O.KEEP_AND_NORMALIZE,conditions:I(()=>new Map([["dir",new Set(["auto","ltr","rtl"])]]))}],["async",{policyAction:O.KEEP_AND_NORMALIZE,conditions:I(()=>new Map([["async",new Set(["async"])]]))}],["cite",{policyAction:O.KEEP_AND_SANITIZE_URL}],["loading",{policyAction:O.KEEP_AND_NORMALIZE,conditions:I(()=>new Map([["loading",new Set(["eager","lazy"])]]))}],["poster",{policyAction:O.KEEP_AND_SANITIZE_URL}],["target",{policyAction:O.KEEP_AND_NORMALIZE,conditions:I(()=>new Map([["target",new Set(["_self","_blank"])]]))}]],D=new N(new Set(x),new Map(k),new Set(L),new Map(C));new N(new Set(I(()=>x.concat(["STYLE"]))),new Map(k),new Set(I(()=>L.concat(["id","name","class"]))),new Map(I(()=>C.concat([["style",{policyAction:O.KEEP_AND_SANITIZE_STYLE}]]))));class ${constructor(e,s,r,i,n){this.sanitizerTable=e,this.styleElementSanitizer=r,this.styleAttributeSanitizer=i,this.resourceUrlPolicy=n,this.changes=[],t()}sanitizeAssertUnchanged(e){return this.sanitize(e)}sanitize(e){const t=document.implementation.createHTMLDocument("");return _(this.sanitizeToFragmentInternal(e,t),t.body)}sanitizeToFragment(e){const t=document.implementation.createHTMLDocument("");return this.sanitizeToFragmentInternal(e,t)}sanitizeToFragmentInternal(e,t){const s=g(e,t),r=document.createTreeWalker(s,5,e=>this.nodeFilter(e));let i=r.nextNode();const n=t.createDocumentFragment();let a=n;for(;null!==i;){let e;if(A(i))if(this.styleElementSanitizer&&"STYLE"===a.nodeName){const t=this.styleElementSanitizer(i.data);e=this.createTextNode(t)}else e=this.sanitizeTextNode(i);else{if(!R(i)){throw new Error("")}e=this.sanitizeElementNode(i,t)}if(a.appendChild(e),i=r.firstChild(),i)a=e;else for(;!(i=r.nextSibling())&&(i=r.parentNode());)a=a.parentNode}return n}createTextNode(e){return document.createTextNode(e)}sanitizeTextNode(e){return this.createTextNode(e.data)}sanitizeElementNode(e,t){const s=y(e),r=t.createElement(s),i=e.attributes;for(const{name:e,value:t}of i){const n=this.sanitizerTable.getAttributePolicy(e,s);if(this.satisfiesAllConditions(n.conditions,i))switch(n.policyAction){case O.KEEP:U(r,e,t);break;case O.KEEP_AND_SANITIZE_URL:const i=b(t);i!==t&&this.recordChange(`Url in attribute ${e} was modified during sanitization. Original url:"${t}" was sanitized to: "${i}"`),U(r,e,i);break;case O.KEEP_AND_NORMALIZE:U(r,e,t.toLowerCase());break;case O.KEEP_AND_SANITIZE_STYLE:if(this.styleAttributeSanitizer){U(r,e,this.styleAttributeSanitizer(t))}else U(r,e,t);break;case O.KEEP_AND_USE_RESOURCE_URL_POLICY:if(this.resourceUrlPolicy){const i={type:T.HTML_ATTRIBUTE,attributeName:e,tagName:s},n=P(t),a=this.resourceUrlPolicy(n,i);a&&U(r,e,a.toString())}else U(r,e,t);break;case O.KEEP_AND_USE_RESOURCE_URL_POLICY_FOR_SRCSET:if(this.resourceUrlPolicy){const i={type:T.HTML_ATTRIBUTE,attributeName:e,tagName:s},n=z(t),a={parts:[]};for(const e of n.parts){const t=P(e.url),s=this.resourceUrlPolicy(t,i);s&&a.parts.push({url:s.toString(),descriptor:e.descriptor})}U(r,e,M(a))}else U(r,e,t);break;case O.DROP:this.recordChange(`Attribute: ${e} was dropped`)}else this.recordChange(`Not all conditions satisfied for attribute: ${e}.`)}return r}nodeFilter(e){if(A(e))return 1;if(!R(e))return 2;const t=y(e);return null===t?(this.recordChange(`Node name was null for node: ${e}`),2):this.sanitizerTable.isAllowedElement(t)?1:(this.recordChange(`Element: ${t} was dropped`),2)}recordChange(e){0}satisfiesAllConditions(e,t){var s;if(!e)return!0;for(const[r,i]of e){const e=null===(s=t.getNamedItem(r))||void 0===s?void 0:s.value;if(e&&!i.has(e))return!1}return!0}}function U(e,t,s){e.setAttribute(t,s)}function z(e){const t=[];for(const s of e.split(",")){const[e,r]=s.trim().split(/\s+/,2);t.push({url:e,descriptor:r})}return{parts:t}}function M(e){return e.parts.map(e=>{const{url:t,descriptor:s}=e;return`${t}${s?` ${s}`:""}`}).join(" , ")}class F{constructor(){this.calledBuild=!1,this.sanitizerTable=D}onlyAllowElements(e){const t=new Set,s=new Map;for(let r of e){if(r=r.toUpperCase(),!this.sanitizerTable.isAllowedElement(r))throw new Error(`Element: ${r}, is not allowed by html5_contract.textpb`);const e=this.sanitizerTable.elementPolicies.get(r);void 0!==e?s.set(r,e):t.add(r)}return this.sanitizerTable=new N(t,s,this.sanitizerTable.allowedGlobalAttributes,this.sanitizerTable.globalAttributePolicies),this}allowCustomElement(e,t){const s=new Set(this.sanitizerTable.allowedElements),r=new Map(this.sanitizerTable.elementPolicies);if(e=e.toUpperCase(),i=e,S.has(i.toUpperCase())||!/^[a-z][-_.a-z0-9]*-[-_.a-z0-9]*$/i.test(i))throw new Error(`Element: ${e} is not a custom element`);var i;if(t){const s=new Map;for(const e of t)s.set(e,{policyAction:O.KEEP});r.set(e,s)}else s.add(e);return this.sanitizerTable=new N(s,r,this.sanitizerTable.allowedGlobalAttributes,this.sanitizerTable.globalAttributePolicies),this}onlyAllowAttributes(e){const t=new Set,s=new Map,r=new Map;for(const r of e)this.sanitizerTable.allowedGlobalAttributes.has(r)&&t.add(r),this.sanitizerTable.globalAttributePolicies.has(r)&&s.set(r,this.sanitizerTable.globalAttributePolicies.get(r));for(const[t,s]of this.sanitizerTable.elementPolicies.entries()){const i=new Map;for(const[t,r]of s.entries())e.has(t)&&i.set(t,r);r.set(t,i)}return this.sanitizerTable=new N(this.sanitizerTable.allowedElements,r,t,s),this}allowDataAttributes(e){const t=new Set(this.sanitizerTable.allowedGlobalAttributes);for(const s of e){if(0!==s.indexOf("data-"))throw new Error(`data attribute: ${s} does not begin with the prefix "data-"`);t.add(s)}return this.sanitizerTable=new N(this.sanitizerTable.allowedElements,this.sanitizerTable.elementPolicies,t,this.sanitizerTable.globalAttributePolicies),this}allowStyleAttributes(){const e=new Map(this.sanitizerTable.globalAttributePolicies);return e.set("style",{policyAction:O.KEEP_AND_SANITIZE_STYLE}),this.sanitizerTable=new N(this.sanitizerTable.allowedElements,this.sanitizerTable.elementPolicies,this.sanitizerTable.allowedGlobalAttributes,e),this}allowClassAttributes(){const e=new Set(this.sanitizerTable.allowedGlobalAttributes);return e.add("class"),this.sanitizerTable=new N(this.sanitizerTable.allowedElements,this.sanitizerTable.elementPolicies,e,this.sanitizerTable.globalAttributePolicies),this}allowIdAttributes(){const e=new Set(this.sanitizerTable.allowedGlobalAttributes);return e.add("id"),this.sanitizerTable=new N(this.sanitizerTable.allowedElements,this.sanitizerTable.elementPolicies,e,this.sanitizerTable.globalAttributePolicies),this}allowIdReferenceAttributes(){const e=new Set(this.sanitizerTable.allowedGlobalAttributes);return e.add("aria-activedescendant").add("aria-controls").add("aria-labelledby").add("aria-owns").add("for").add("list"),this.sanitizerTable=new N(this.sanitizerTable.allowedElements,this.sanitizerTable.elementPolicies,e,this.sanitizerTable.globalAttributePolicies),this}withResourceUrlPolicy(e){return this.resourceUrlPolicy=e,this}build(){if(this.calledBuild)throw new Error("this sanitizer has already called build");return this.calledBuild=!0,new $(this.sanitizerTable,e,void 0,void 0,this.resourceUrlPolicy)}}function G(e,t,s,r){if(0===e.length){throw new Error("")}const n=e.map(e=>i(e)),a=s.toLowerCase();if(n.every(e=>0!==a.indexOf(e)))throw new Error(`Attribute "${s}" does not match any of the allowed prefixes.`);t.setAttribute(s,r)}function K(e,t,s){return e.parseFromString(f(t),s)}Error;const H=[o`:`,o`style`,o`class`];function*W(e,t=new Set){const s=new Set,r=Array.from(e.childNodes).filter(e=>!t.has(e));for(yield e;r.length;){const e=r.shift();s.has(e)||(s.add(e),yield e),e.childNodes&&Array.from(e.childNodes).filter(e=>!t.has(e)).forEach(e=>r.push(e))}}function Y(e,t){return void 0!==e?.[t]}function B(e,t){return"function"==typeof e?.[t]}function V(e){return e.replace(/-./g,e=>e[1].toUpperCase())}function Z(e,t){return Y(e,"attribs")?e.attribs?.[t]??null:e.getAttribute?.(t)??null}function j(e,t){return Y(e,"attribs")?t in(e.attribs||{}):e.hasAttribute?.(t)??!1}function q(e,t,s=""){return Z(e,s+t)||Z(e,`data-${t}`)||(e.dataset?.[V(t)]??null)}function X(e,t,s){Y(e,"attribs")?e.attribs[t]=s:e.setAttribute?.(t,s)}function Q(e,t,s){Y(e,"attribs")?e.attribs[t]=s:G(H,e,t,s)}function J(e,t,s){switch(t){case"disabled":return void(e.disabled=s);case"selected":return void(e.selected=s);case"checked":return void(e.checked=s);default:e[t]=s}}function ee(e,t){Y(e,"attribs")?delete e.attribs[t]:e.removeAttribute?.(t)}function te(e,t,s=""){ee(e,`${s}${t}`),ee(e,`data-${t}`)}function se(e,t,s){if(Y(e,"attribs")&&Y(t,"attribs"))t.attribs[s]=e.attribs[s];else if(s.startsWith("data-")){const r=V(s.slice(5));t.dataset[r]=e.dataset?.[r]}else{const r=e?.getAttribute?.(s);Q(t,s,r||"")}}function re(e){if(Y(e,"firstElementChild"))return e.firstElementChild;return Array.from(e.children).find(e=>1===e.nodeType)}function ie(e,...t){if(B(e,"replaceWith"))return e.replaceWith(...t);{const s=e,r=s.parentNode,i=Array.from(r.childNodes).indexOf(s);t.forEach(e=>e.parentNode=r),r.childNodes=[].concat(Array.from(r.childNodes).slice(0,i)).concat(t).concat(Array.from(r.childNodes).slice(i+1))}}function ne(e,...t){B(e,"replaceChildren")?e.replaceChildren(...t):(e.childNodes=t,t.forEach(t=>t.parentNode=e))}function ae(e,t){return B(t,"appendChild")?e.appendChild(t):(e.childNodes.push(t),t.parentNode=e,t)}function oe(e,t){return B(t,"removeChild")?e.removeChild(t):(ne(e,...Array.from(e.childNodes).filter(e=>e!==t)),t)}function le(e,t,s){return s?B(e,"insertBefore")?e.insertBefore(t,s):(ie(s,t,s),t):ae(e,t)}function ce(e,t=0){return e?e.length<=t?e:e.slice(0,t-1)+"…":""}function he(e,t=0){return globalThis.DocumentFragment&&e instanceof DocumentFragment?Array.from(e.childNodes).map(e=>he(e,t)).join(""):ce(e.outerHTML||e.nodeValue||String(e),t)}function ue(e){return e.includes("/")?e.split("/").slice(0,-1).join("/"):""}class de{iterable;constructor(e){this.iterable=e}filter(e){return new de(de.filterGenerator(e,this.iterable))}map(e){return new de(de.mapGenerator(e,this.iterable))}find(e){for(const t of this.iterable)if(e(t))return t}array(){return Array.from(this.iterable)}*generator(){for(const e of this.iterable)yield e}static*filterGenerator(e,t){for(const s of t)e(s)&&(yield s)}static*mapGenerator(e,t){for(const s of t)yield e(s)}static equals(e,t){const s=e[Symbol.iterator](),r=t[Symbol.iterator]();let i=s.next(),n=r.next();for(;!i.done&&!n.done;){if(i.value!==n.value)return!1;i=s.next(),n=r.next()}return i.done===n.done}}var pe;!function(e){e.resolveIncludes=async function(e,t){const s=e,r=s.tagName?.toLowerCase();if(!["include","link"].includes(r))return;if("link"===r&&"subresource"!==Z(s,"rel"))return;this.log("include directive found in:\n",he(e,128)),this.log("include params:",t);const i="link"===s.tagName.toLocaleLowerCase()?"href":"src",n=Z(s,i);if(!n)throw new Error(`"${i}" attribute missing from ${he(e,128)}.`);const a=[];"include"===r&&a.push("src"),"link"===r&&a.push("rel","href");const o=t=>{const r=re(t);for(const e of Array.from(s.attributes))r&&!a.includes(e.name)&&se(s,r,e.name);ie(e,...t.childNodes)},l={...t,rootDocument:!1,maxdepth:t?.maxdepth-1};if(0===l.maxdepth)throw new Error("Maximum recursion depth reached.");if(n.includes("://")||n.startsWith("//"))this.log("Including remote file from absolute path:",n),await this.preprocessRemote(n,l).then(o);else if(t?.dirpath?.includes("://")||t?.dirpath?.startsWith("//")){const e=n.startsWith("/")?n:`${t.dirpath}/${n}`;this.log("Including remote file from relative path:",e),await this.preprocessRemote(e,l).then(o)}else if("/"===n.charAt(0))this.log("Including local file from absolute path:",n),await this.preprocessLocal(n,l).then(o);else{const e=t?.dirpath&&"."!==t?.dirpath?`${t?.dirpath}/${n}`:n;this.log("Including local file from relative path:",e),await this.preprocessLocal(e,l).then(o)}},e.rebaseRelativePaths=function(e,t){const s=e,r=s.tagName?.toLowerCase();if(!t?.dirpath)return;const i=Z(s,"src"),n=Z(s,"href"),a=q(s,"render",":"),o=i||n||a;if(!o||((l=o).includes("://")||l.startsWith("/")||l.startsWith("#")||l.startsWith("data:")))return;var l;const c=`${t.dirpath}/${o}`;this.log("Rebasing relative path as:",c),a?function(e,t,s,r=""){j(e,`${r}${t}`)?X(e,`${r}${t}`,s):j(e,`data-${t}`)?X(e,`data-${t}`,s):X(e,`${r}${t}`,s)}(s,"render",c,":"):Y(s,"attribs")?Q(s,i?"src":"href",c):"img"===r?s.src=c:"a"===r?function(e,t){const s=w(t);void 0!==s&&(e.href=s)}(s,c):"source"===r||"audio"===r||"video"===r||"track"===r||"input"===r?s.src=c:"area"===r?function(e,t){const s=w(t);void 0!==s&&(e.href=s)}(s,c):this.log("Unable to rebase relative path for element:",r)},e.registerCustomElements=function(t,s){const r=t,i=r.tagName?.toLowerCase(),n=(Z(r,"is")||Z(r,"alt"))?.toLowerCase();if(["template","div"].includes(i)&&n){if("div"===i&&"template"!==Z(r,"role"))return;if(!this._customElements.has(n)){this.log(`Registering custom element: ${n}\n`,he(r,128));const t=r.content||r,i=Array.from(W(t));for(let t=1;t<i.length;t++)e.rebaseRelativePaths.call(this,i[t],s);this._customElements.set(n,r),oe(r.parentNode,r)}}},e.resolveCustomElements=function(e,t){const s=e,r=s.tagName?.toLowerCase();let i=r;if("div"===i&&(i=Z(s,"role")?.toLowerCase()||i),i&&this._customElements.has(i)){this.log(`Processing custom element: ${i}\n`,he(s,128));const t=this._customElements.get(i),n=(t.content||t).cloneNode(!0),a=re(n);if(a)for(const e of Array.from(s.attributes))"div"===r&&"role"===e.name||se(s,a,e.name);const o=new de(W(n)).find(e=>"slot"===e.tagName?.toLowerCase());o&&ie(o,...s.childNodes),ie(e,...n.childNodes)}},e.resolveTextNodeExpressions=function(e,t){const s=e.nodeValue||"";if(3!==e.nodeType||!s?.trim())return;this.log("Processing node content value:\n",ce(s,128));const r=new RegExp(/{{ ([^}]+) }}/gm),i=Array.from(s.matchAll(r)).map(e=>e[1]);return this.effect(function(){let t=s;for(const s of i){const r=this.eval(s,{$elem:e});t=t.replace(`{{ ${s} }}`,String(r))}e.nodeValue=t})},e.resolveDataAttribute=async function(e,t){if(this._skipNodes.has(e))return;const s=e,r=q(s,"data",":");if(r){let i;this.log(":data attribute found in:\n",he(e,128)),te(s,"data",":"),Y(e,"renderer")?(i=e.renderer,this.log("Reusing existing subrenderer for node:",he(e,64))):(i=this.subrenderer(),J(e,"renderer",i),this.log("Created and attached new subrenderer for node:",he(e,64)));const n=i.eval(r,{$elem:e});if(await Promise.all(Object.entries(n).map(([e,t])=>i._store.set(e,t))),i===this)return;for(const t of W(e,this._skipNodes))this._skipNodes.add(t);await i.mount(e,t)}},e.resolveClassAttribute=function(e,t){if(this._skipNodes.has(e))return;const s=e,r=q(s,"class",":");if(r){this.log(":class attribute found in:\n",he(e,128)),te(s,"class",":");const t=Z(s,"class")||"";return this.effect(function(){const i=this.eval(r,{$elem:e});Q(s,"class",(i?`${t} ${i}`:t).trim())})}},e.resolveTextAttributes=function(e,t){if(this._skipNodes.has(e))return;const s=e,r=q(s,"text",":");if(r){this.log(":text attribute found in:\n",he(e,128)),te(s,"text",":");const t=t=>this.textContent(e,t);return this.effect(function(){t(this.eval(r,{$elem:e}))})}},e.resolveHtmlAttribute=async function(e,t){if(this._skipNodes.has(e))return;const s=e,r=q(s,"html",":");return r?(this.log(":html attribute found in:\n",he(e,128)),te(s,"html",":"),this.effect(function(){const i=this.eval(r,{$elem:e});return new Promise(async e=>{const r=await this.preprocessString(i,t);await this.renderNode(r),ne(s,r),e()})})):void 0},e.resolveEventAttributes=function(e,t){if(this._skipNodes.has(e))return;const s=e;for(const t of Array.from(s.attributes||[]))if(t.name.startsWith(":on:")||t.name.startsWith("data-on-")){let r="",i=[];if(t.name.startsWith(":on:")?[r,...i]=t.name.substring(4).split("."):t.name.startsWith("data-on-")&&([r,...i]=t.name.substring(8).split(".")),!r)throw new Error(`Invalid event attribute: ${t.name}`);this.log(t.name,"attribute found in:\n",he(e,128)),te(s,t.name);const n="submit"===r&&"FORM"===s.tagName.toUpperCase();e.addEventListener?.(r,s=>((i.includes("prevent")||n)&&s.preventDefault(),this.eval(t.value,{$elem:e,$event:s})))}},e.resolveForAttribute=async function(e,t){if(this._skipNodes.has(e))return;const s=e,r=q(s,"for",":")?.trim();if(r){this.log(":for attribute found in:\n",he(e,128)),te(s,"for",":");for(const t of W(e,this._skipNodes))this._skipNodes.add(t);const i=Z(s,"style")||"";X(s,"style","display: none;");const n=e.parentNode,a=this.createElement("template",e.ownerDocument);le(n,a,e),oe(n,e),ae(a,e),this.log(":for template:\n",he(a,128));const o=r.split(" in ",2);if(2!==o.length)throw new Error(`Invalid :for format: \`${r}\`. Expected "{key} in {expression}".`);const l=[],[c,h]=o;await this.effect(function(){const s=this.eval(h,{$elem:e});if(this.log(":for list items:",s),l.splice(0,l.length).forEach(e=>{oe(n,e),this._skipNodes.delete(e)}),!Array.isArray(s))return console.error(`Expression did not yield a list: \`${h}\` => \`${s}\``),Promise.resolve();const r=[];for(const n of s){const s=this.subrenderer();s._store.set(c,n);const a=e.cloneNode(!0);X(a,"style",i),l.push(a),this._skipNodes.add(a),r.push(s.mount(a,t)),this.log("Rendered list child:\n",he(a,128))}const o=a.nextSibling;for(const e of l)le(n,e,o);return Promise.all(r)})}},e.resolveBindAttribute=function(e,t){if(this._skipNodes.has(e))return;const s=e,r=q(s,"bind",":");if(r){this.log(":bind attribute found in:\n",he(e,128));const t=["change","input"],i=Z(s,":bind:on")?.split(",")||s.dataset?.bindOn?.split(",")||t;te(s,"bind",":"),ee(s,":bind:on"),ee(s,"data-bind-on");const n="checkbox"===Z(s,"type")?"checked":"value";r.includes(".")||this.has(r)||this.set(r,""),this.effect(function(){const t=this.eval(r,{$elem:e});"checked"===n?s.checked=!!t:s.value=t});const a=`${r} = $elem.${n}`;for(const t of i)e.addEventListener(t,()=>this.eval(a,{$elem:e}))}},e.resolveShowAttribute=function(e,t){if(this._skipNodes.has(e))return;const s=e,r=q(s,"show",":");if(r){this.log(":show attribute found in:\n",he(e,128)),te(s,"show",":");const t="none"===s.style?.display?"":s.style?.display??Z(s,"style")?.split(";")?.find(e=>"display"===e.split(":")[0])?.split(":")?.at(1)?.trim();this.effect(function(){const i=this.eval(r,{$elem:e});s.style?s.style.display=i?t:"none":Q(s,"style",`display: ${i?t:"none"};`)})}},e.resolveCustomAttribute=function(e,t){if(this._skipNodes.has(e))return;const s=e;for(const t of Array.from(s.attributes||[])){const r=":attr:",i="data-attr-";if(t.name.startsWith(r)||t.name.startsWith(i)){this.log(t.name,"attribute found in:\n",he(e,128)),ee(s,t.name);const n=t.name.split(r,2).at(-1)?.split(i,2).at(-1);this.effect(function(){const r=this.eval(t.value,{$elem:e});X(s,n,r)})}}},e.resolveCustomProperty=function(e,t){if(this._skipNodes.has(e))return;const s=e;for(const t of Array.from(s.attributes||[])){const r=":prop:",i="data-prop-";if(t.name.startsWith(r)||t.name.startsWith(i)){this.log(t.name,"property found in:\n",he(e,128)),ee(s,t.name);const n=t.name.split(r,2).at(-1)?.split(i,2).at(-1),a=V(n);this.effect(function(){const r=this.eval(t.value,{$elem:e});J(s,a,r)})}}},e.stripTypes=function(e,t){const s=e;Z(s,":types")&&ee(s,":types"),Z(s,"data-types")&&ee(s,"data-types")},e.resolveRenderAttribute=async function(e,t){if(this._skipNodes.has(e))return;const s=e,r=q(s,"render",":");if(!r)return;let i;this.log(`:render attribute found: ${r}`),te(s,"render",":"),Y(e,"renderer")?(i=e.renderer,this.log("Reusing existing subrenderer for :render:",he(e,64))):(i=this.subrenderer(),J(s,"renderer",i)),await i.mount(e,t);for(const t of W(e,this._skipNodes))this._skipNodes.add(t);try{const e=await import(r);"function"==typeof e.default?await e.default(s,i):void 0!==e.default&&console.warn(`Module ${r} default export is not a function`)}catch(e){console.error(`Failed to execute render init from ${r}:`,e)}}}(pe||(pe={}));const fe=new Set(["this","typeof"]),_e=new Set(["in"]),me=new Set(["+","-","!","typeof"]),Ee=new Set(["=","+","-","*","/","%","^","==","!=",">","<",">=","<=","||","&&","??","&","===","!==","|","in"]),ve={"!":0,":":0,",":0,")":0,"]":0,"}":0,"?":2,"??":3,"||":4,"&&":5,"|":6,"^":7,"&":8,"!=":9,"==":9,"!==":9,"===":9,">=":10,">":10,"<=":10,"<":10,in:10,"+":11,"-":11,"%":12,"/":12,"*":12,"(":13,"[":13,".":13,"?.":13,"{":13},we={"+":(e,t)=>e+t,"-":(e,t)=>e-t,"*":(e,t)=>e*t,"/":(e,t)=>e/t,"%":(e,t)=>e%t,"==":(e,t)=>e==t,"!=":(e,t)=>e!=t,"===":(e,t)=>e===t,"!==":(e,t)=>e!==t,">":(e,t)=>e>t,">=":(e,t)=>e>=t,"<":(e,t)=>e<t,"<=":(e,t)=>e<=t,"||":(e,t)=>e||t,"&&":(e,t)=>e&&t,"??":(e,t)=>e??t,"|":(e,t)=>t(e),in:(e,t)=>e in t},be={"+":e=>e,"-":e=>-e,"!":e=>!e,typeof:e=>typeof e};const ge=new Set(["==","!=","<=",">=","||","&&","??","?."]),ye=new Set(["===","!=="]);var Ae;!function(e){e[e.STRING=1]="STRING",e[e.IDENTIFIER=2]="IDENTIFIER",e[e.DOT=3]="DOT",e[e.COMMA=4]="COMMA",e[e.COLON=5]="COLON",e[e.INTEGER=6]="INTEGER",e[e.DECIMAL=7]="DECIMAL",e[e.OPERATOR=8]="OPERATOR",e[e.GROUPER=9]="GROUPER",e[e.KEYWORD=10]="KEYWORD",e[e.ARROW=11]="ARROW",e[e.OPTIONAL_DOT=12]="OPTIONAL_DOT",e[e.SPREAD=13]="SPREAD"}(Ae||(Ae={}));const Re=(e,t,s=0)=>({kind:e,value:t,precedence:s}),Te=e=>9===e||10===e||13===e||32===e,Oe=e=>95===e||36===e||65<=(e&=-33)&&e<=90,Pe=e=>Oe(e)||Ie(e),Ie=e=>48<=e&&e<=57;class Ne{_input;_index=-1;_tokenStart=0;_next;constructor(e){this._input=e,this._advance()}nextToken(){for(;Te(this._next);)this._advance(!0);if(34===(e=this._next)||39===e)return this._tokenizeString();var e;if(Oe(this._next))return this._tokenizeIdentOrKeyword();if(Ie(this._next))return this._tokenizeNumber();if(46===this._next)return this._tokenizeDot();if(44===this._next)return this._tokenizeComma();if(58===this._next)return this._tokenizeColon();if((e=>43===e||45===e||42===e||47===e||33===e||38===e||37===e||60===e||61===e||62===e||63===e||94===e||124===e)(this._next))return this._tokenizeOperator();if((e=>40===e||41===e||91===e||93===e||123===e||125===e)(this._next))return this._tokenizeGrouper();if(this._advance(),void 0!==this._next)throw new Error(`Expected end of input, got ${this._next}`)}_advance(e){this._index++,this._index<this._input.length?(this._next=this._input.charCodeAt(this._index),!0===e&&(this._tokenStart=this._index)):this._next=void 0}_getValue(e=0){const t=this._input.substring(this._tokenStart,this._index+e);return 0===e&&this._clearValue(),t}_clearValue(){this._tokenStart=this._index}_tokenizeString(){const e="unterminated string",t=this._next;for(this._advance(!0);this._next!==t;){if(void 0===this._next)throw new Error(e);if(92===this._next&&(this._advance(),void 0===this._next))throw new Error(e);this._advance()}const s=Re(Ae.STRING,this._getValue().replace(/\\(.)/g,(e,t)=>{switch(t){case"n":return"\n";case"r":return"\r";case"t":return"\t";case"b":return"\b";case"f":return"\f";default:return t}}));return this._advance(),s}_tokenizeIdentOrKeyword(){do{this._advance()}while(Pe(this._next));const e=this._getValue(),t=(s=e,fe.has(s)?Ae.KEYWORD:_e.has(e)?Ae.OPERATOR:Ae.IDENTIFIER);var s;return Re(t,e,ve[e]??0)}_tokenizeNumber(){do{this._advance()}while(Ie(this._next));return 46===this._next?this._tokenizeDot():Re(Ae.INTEGER,this._getValue())}_tokenizeDot(){if(this._advance(),Ie(this._next))return this._tokenizeFraction();if(46===this._next){if(this._advance(),46===this._next)return this._advance(),this._clearValue(),Re(Ae.SPREAD,"...");throw new Error("Unexpected token ..")}return this._clearValue(),Re(Ae.DOT,".",13)}_tokenizeComma(){return this._advance(!0),Re(Ae.COMMA,",")}_tokenizeColon(){return this._advance(!0),Re(Ae.COLON,":")}_tokenizeFraction(){do{this._advance()}while(Ie(this._next));return Re(Ae.DECIMAL,this._getValue())}_tokenizeOperator(){this._advance();let e=this._getValue(2);if(ye.has(e))this._advance(),this._advance();else{if(e=this._getValue(1),"=>"===e)return this._advance(),Re(Ae.ARROW,e);ge.has(e)&&this._advance()}return e=this._getValue(),"?."===e?Re(Ae.OPTIONAL_DOT,e,13):Re(Ae.OPERATOR,e,ve[e])}_tokenizeGrouper(){const e=String.fromCharCode(this._next),t=Re(Ae.GROUPER,e,ve[e]);return this._advance(!0),t}}class Se{_kind;_tokenizer;_ast;_token;_value;constructor(e,t){this._tokenizer=new Ne(e),this._ast=t}parse(){this._advance();const e=this._parseExpression();if(this._token)throw new Error(`Unexpected token: ${this._token.value}`);return e}_advance(e,t){if(!this._matches(e,t))throw new Error(`Expected kind ${e} (${t}), was ${this._token?.kind} (${this._token?.value})`);const s=this._tokenizer.nextToken();this._token=s,this._kind=s?.kind,this._value=s?.value}_matches(e,t){return!(e&&this._kind!==e||t&&this._value!==t)}_parseExpression(){if(!this._token)return this._ast.empty();const e=this._parseUnary();return void 0===e?void 0:this._parsePrecedence(e,0)}_parsePrecedence(e,t){if(void 0===e)throw new Error("Expected left to be defined.");for(;this._token;)if(this._matches(Ae.GROUPER,"(")){const t=this._parseArguments();e=this._ast.invoke(e,void 0,t)}else if(this._matches(Ae.GROUPER,"[")){const t=this._parseIndex();e=this._ast.index(e,t)}else if(this._matches(Ae.DOT)||this._matches(Ae.OPTIONAL_DOT)){const t=this._kind===Ae.OPTIONAL_DOT;if(this._advance(),t&&this._matches(Ae.GROUPER,"[")){const t=this._parseIndex();e=this._ast.index(e,t,!0)}else if(t&&this._matches(Ae.GROUPER,"(")){const t=this._parseArguments();e=this._ast.invoke(e,void 0,t,!0)}else{const s=this._parseUnary();e=this._makeInvokeOrGetter(e,s,t)}}else{if(this._matches(Ae.KEYWORD))break;if(!(this._matches(Ae.OPERATOR)&&this._token.precedence>=t))break;e="?"===this._value?this._parseTernary(e):this._parseBinary(e,this._token)}return e}_makeInvokeOrGetter(e,t,s){if(void 0===t)throw new Error("expected identifier");if("ID"===t.type)return this._ast.getter(e,t.value,s);if("Invoke"===t.type&&"ID"===t.receiver.type){const r=t.receiver;return this._ast.invoke(e,r.value,t.arguments,s)}throw new Error(`expected identifier: ${t}`)}_parseBinary(e,t){if(!Ee.has(t.value))throw new Error(`unknown operator: ${t.value}`);this._advance();let s=this._parseUnary();for(;(this._kind===Ae.OPERATOR||this._kind===Ae.DOT||this._kind===Ae.GROUPER)&&this._token.precedence>t.precedence;)s=this._parsePrecedence(s,this._token.precedence);if(void 0===s)throw new Error(`Expected expression after ${t.value}`);return this._ast.binary(e,t.value,s)}_parseUnary(){if(this._matches(Ae.KEYWORD,"typeof")){this._advance();const e=this._parsePrecedence(this._parsePrimary(),13);return this._ast.unary("typeof",e)}if(this._matches(Ae.OPERATOR)){const e=this._value;if(this._advance(),"+"===e||"-"===e){if(this._matches(Ae.INTEGER))return this._parseInteger(e);if(this._matches(Ae.DECIMAL))return this._parseDecimal(e)}if(!me.has(e))throw new Error(`unexpected token: ${e}`);const t=this._parsePrecedence(this._parsePrimary(),13);return this._ast.unary(e,t)}return this._parsePrimary()}_parseTernary(e){this._advance(Ae.OPERATOR,"?");const t=this._parseExpression();this._advance(Ae.COLON);const s=this._parseExpression();return this._ast.ternary(e,t,s)}_parsePrimary(){switch(this._kind){case Ae.KEYWORD:const e=this._value;if("this"===e)return this._advance(),this._ast.id(e);if(fe.has(e))throw new Error(`unexpected keyword: ${e}`);throw new Error(`unrecognized keyword: ${e}`);case Ae.IDENTIFIER:return this._parseInvokeOrIdentifier();case Ae.STRING:return this._parseString();case Ae.INTEGER:return this._parseInteger();case Ae.DECIMAL:return this._parseDecimal();case Ae.GROUPER:return"("===this._value?this._parseParenOrFunction():"{"===this._value?this._parseMap():"["===this._value?this._parseList():void 0;case Ae.COLON:throw new Error('unexpected token ":"');default:return}}_parseList(){const e=[];do{if(this._advance(),this._matches(Ae.GROUPER,"]"))break;if(this._matches(Ae.SPREAD)){this._advance();const t=this._parseExpression();t&&e.push(this._ast.spreadElement(t))}else e.push(this._parseExpression())}while(this._matches(Ae.COMMA));return this._advance(Ae.GROUPER,"]"),this._ast.list(e)}_parseMap(){const e=[];do{if(this._advance(),this._matches(Ae.GROUPER,"}"))break;if(this._matches(Ae.SPREAD)){this._advance();const t=this._parseExpression();t&&e.push(this._ast.spreadProperty(t))}else{const t=this._value;if((this._matches(Ae.STRING)||this._matches(Ae.IDENTIFIER))&&this._advance(),this._matches(Ae.COLON)){this._advance(Ae.COLON);const s=this._parseExpression();s&&e.push(this._ast.property(t,s))}else e.push(this._ast.property(t,this._ast.id(t)))}}while(this._matches(Ae.COMMA));return this._advance(Ae.GROUPER,"}"),this._ast.map(e)}_parseInvokeOrIdentifier(){const e=this._value;if("true"===e)return this._advance(),this._ast.literal(!0);if("false"===e)return this._advance(),this._ast.literal(!1);if("null"===e)return this._advance(),this._ast.literal(null);if("undefined"===e)return this._advance(),this._ast.literal(void 0);const t=this._parseIdentifier(),s=this._parseArguments();return s?this._ast.invoke(t,void 0,s):t}_parseIdentifier(){if(!this._matches(Ae.IDENTIFIER))throw new Error(`expected identifier: ${this._value}`);const e=this._value;return this._advance(),this._ast.id(e)}_parseArguments(){if(!this._matches(Ae.GROUPER,"("))return;const e=[];do{if(this._advance(),this._matches(Ae.GROUPER,")"))break;if(this._matches(Ae.SPREAD)){this._advance();const t=this._parseExpression();t&&e.push(this._ast.spreadElement(t))}else{const t=this._parseExpression();e.push(t)}}while(this._matches(Ae.COMMA));return this._advance(Ae.GROUPER,")"),e}_parseIndex(){this._advance();const e=this._parseExpression();return this._advance(Ae.GROUPER,"]"),e}_parseParenOrFunction(){const e=this._parseArguments();if(this._matches(Ae.ARROW)){this._advance();const t=this._parseExpression(),s=e?.map(e=>e.value)??[];return this._ast.arrowFunction(s,t)}return this._ast.paren(e[0])}_parseString(){const e=this._ast.literal(this._value);return this._advance(),e}_parseInteger(e=""){const t=this._ast.literal(parseInt(`${e}${this._value}`,10));return this._advance(),t}_parseDecimal(e=""){const t=this._ast.literal(parseFloat(`${e}${this._value}`));return this._advance(),t}}class xe{timeouts=new Map;debounce(e,t){return new Promise((s,r)=>{const i=this.timeouts.get(t);i&&clearTimeout(i),this.timeouts.set(t,setTimeout(()=>{try{s(t()),this.timeouts.delete(t)}catch(e){r(e)}},e))})}}const ke=new class{empty(){return{type:"Empty",evaluate:e=>e,getIds:e=>e}}literal(e){return{type:"Literal",value:e,evaluate(e){return this.value},getIds:e=>e}}id(e){return{type:"ID",value:e,evaluate(e){return"this"===this.value?e:e?.[this.value]},getIds(e){return e.push(this.value),e}}}unary(e,t){const s=be[e];return{type:"Unary",operator:e,child:t,evaluate(e){return s(this.child.evaluate(e))},getIds(e){return this.child.getIds(e)}}}binary(e,t,s){const r=we[t];return{type:"Binary",operator:t,left:e,right:s,evaluate(e){if("="===this.operator){if("ID"!==this.left.type&&"Getter"!==this.left.type&&"Index"!==this.left.type)throw new Error(`Invalid assignment target: ${this.left}`);const t=this.right.evaluate(e);let s,r;return"Getter"===this.left.type?(s=this.left.receiver.evaluate(e),r=this.left.name):"Index"===this.left.type?(s=this.left.receiver.evaluate(e),r=String(this.left.argument.evaluate(e))):"ID"===this.left.type&&(s=e,r=this.left.value),void 0===s?void 0:s[r]=t}return r(this.left.evaluate(e),this.right.evaluate(e))},getIds(e){return this.left.getIds(e),this.right.getIds(e),e}}}getter(e,t,s){return{type:"Getter",receiver:e,name:t,optional:s,evaluate(e){const t=this.receiver.evaluate(e);if(!this.optional||null!=t)return t?.[this.name]},getIds(e){return this.receiver.getIds(e),e}}}invoke(e,t,s,r){if(null!=t&&"string"!=typeof t)throw new Error("method not a string");return{type:"Invoke",receiver:e,method:t,arguments:s,optional:r,evaluate(e){const t=this.receiver.evaluate(e);if(this.optional&&null==t)return;const s=this.method?t:e?.this??e,r=this.method?t?.[this.method]:t,i=this.arguments??[],n=[];for(const t of i)if("SpreadElement"===t?.type){const s=t.evaluate(e);s&&"function"==typeof s[Symbol.iterator]&&n.push(...s)}else n.push(t?.evaluate(e));return r?.apply?.(s,n)},getIds(e){return this.receiver.getIds(e),this.arguments?.forEach(t=>t?.getIds(e)),e}}}paren(e){return e}index(e,t,s){return{type:"Index",receiver:e,argument:t,optional:s,evaluate(e){const t=this.receiver.evaluate(e);if(this.optional&&null==t)return;const s=this.argument.evaluate(e);return t?.[s]},getIds(e){return this.receiver.getIds(e),e}}}ternary(e,t,s){return{type:"Ternary",condition:e,trueExpr:t,falseExpr:s,evaluate(e){return this.condition.evaluate(e)?this.trueExpr.evaluate(e):this.falseExpr.evaluate(e)},getIds(e){return this.condition.getIds(e),this.trueExpr.getIds(e),this.falseExpr.getIds(e),e}}}map(e){return{type:"Map",properties:e,evaluate(t){const s={};if(e&&this.properties)for(const e of this.properties)"SpreadProperty"===e.type?Object.assign(s,e.evaluate(t)):s[e.key]=e.value.evaluate(t);return s},getIds(t){if(e&&this.properties)for(const e of this.properties)"SpreadProperty"===e.type?e.expression.getIds(t):e.value.getIds(t);return t}}}property(e,t){return{type:"Property",key:e,value:t,evaluate(e){return this.value.evaluate(e)},getIds(e){return this.value.getIds(e)}}}list(e){return{type:"List",items:e,evaluate(e){if(!this.items)return[];const t=[];for(const s of this.items)if("SpreadElement"===s?.type){const r=s.evaluate(e);r&&"function"==typeof r[Symbol.iterator]&&t.push(...r)}else t.push(s?.evaluate(e));return t},getIds(e){return this.items?.forEach(t=>t?.getIds(e)),e}}}arrowFunction(e,t){return{type:"ArrowFunction",params:e,body:t,evaluate(e){const t=this.params,s=this.body;return function(...r){const i=Object.fromEntries(t.map((e,t)=>[e,r[t]])),n=new Proxy(e??{},{set:(e,t,s)=>(i.hasOwnProperty(t)&&(i[t]=s),e[t]=s),get:(e,t)=>i.hasOwnProperty(t)?i[t]:e[t]});return s.evaluate(n)}},getIds(e){return this.body.getIds(e).filter(e=>!this.params.includes(e))}}}spreadProperty(e){return{type:"SpreadProperty",expression:e,evaluate(e){return this.expression.evaluate(e)},getIds(e){return this.expression.getIds(e)}}}spreadElement(e){return{type:"SpreadElement",expression:e,evaluate(e){return this.expression.evaluate(e)},getIds(e){return this.expression.getIds(e)}}}},Le="__is_proxy__";function Ce(e,t){const s=e?._store;return s?.has(t)?s.get(t):s?.has("$parent")?Ce(s.get("$parent"),t):void 0}function De(e,t){const s=e?._store;return s?.has(t)?e:s?.has("$parent")?De(s.get("$parent"),t):null}class $e extends xe{evalkeys=["$elem","$event"];expressionCache=new Map;observers=new Map;keyHandlers=new Map;_observer=null;_store=new Map;_lock=Promise.resolve();constructor(e){super();for(const[t,s]of Object.entries(e||{}))this.set(t,s)}wrapFunction(e){return(...t)=>e.call(this.$,...t)}wrapObject(e,t){return null==e||((s=e)instanceof $e||!0===s[Le])||e.constructor!==Object&&!Array.isArray(e)?e:new Proxy(e,{deleteProperty:(e,s)=>"string"==typeof s&&s in e&&(delete e[s],t(),!0),set:(e,s,r,i)=>{"object"==typeof r&&null!==r&&(r=this.wrapObject(r,t));const n=Reflect.set(e,s,r,i);return t(),n},get:(e,t,s)=>t===Le||Reflect.get(e,t,s)});var s}watch(e,t){const s=De(this,e);if(!s)throw new Error(`Cannot watch key "${e}" as it does not exist in the store.`);s.observers.has(e)||s.observers.set(e,new Set),s.observers.get(e)?.has(t)||s.observers.get(e)?.add(t)}addKeyHandler(e,t){this.keyHandlers.has(e)||this.keyHandlers.set(e,new Set),this.keyHandlers.get(e).add(t)}async notify(e,t=10){const s=De(this,e),r=Array.from(s?.observers.get(e)||[]);await this.debounce(t,()=>Promise.all(r.map(e=>e.call(this.proxify(e)))))}get(e,t){return t&&this.watch(e,t),Ce(this,e)}async set(e,t){if(this._store.has(e)&&t===this._store.get(e))return;const s=()=>this.notify(e);t&&"function"==typeof t&&(t=this.wrapFunction(t)),t&&"object"==typeof t&&(t=this.wrapObject(t,s)),function(e,t,s){const r=De(e,t);r?r._store.set(t,s):e._store.set(t,s)}(this,e,t);for(const[s,r]of this.keyHandlers.entries())if(s.test(e))for(const s of r)await Promise.resolve(s.call(this.$,e,t));await s()}async del(e){await this.set(e,null),this._store.delete(e),this.observers.delete(e)}keys(){return Array.from(this._store.keys())}has(e){return this._store.has(e)}effect(e){return e.call(this.proxify(e))}proxify(e){const t=Array.from(this._store.entries()).map(([e])=>e),s=Object.fromEntries(t.map(e=>[e,null]));return new Proxy(s,{has:(e,t)=>{if("string"==typeof t){if(De(this,t))return!0;if(Reflect.has(this,t))return!0}return Reflect.has(s,t)},get:(t,s,r)=>{if("string"==typeof s){if(De(this,s))return this.get(s,e);if(e&&s!==Le&&!Reflect.has(this,s))return this.set(s,void 0),this.get(s,e)}return"$"===s?this.proxify(e):Reflect.get(this,s,r)},set:(e,t,s,r)=>("string"!=typeof t||t in this?Reflect.set(this,t,s,r):this.set(t,s),!0)})}get $(){return this.proxify()}makeEvalFunction(e){if(e.includes(";"))throw new Error("Complex expressions are not supported.");return(t,s)=>{const r=((e,t)=>new Se(e,t).parse())(e,ke),i=new Proxy(s,{has:(e,s)=>s in e||s in t||s in globalThis,get(e,s){if("string"==typeof s)return s in e?e[s]:s in t?t[s]:s in globalThis?globalThis[s]:t[s]},set:(e,s,r)=>"string"==typeof s&&(s in e?(e[s]=r,!0):(t[s]=r,!0))});return r?.evaluate(i)}}cachedExpressionFunction(e){return e=e.trim(),this.expressionCache.has(e)||this.expressionCache.set(e,this.makeEvalFunction(e)),this.expressionCache.get(e)}eval(e,t={}){const s=this._observer?this:this.$;if(this._store.has(e))return s[e];{const r=this.cachedExpressionFunction(e);try{return r(s,t)}catch(t){return console.error(`Failed to evaluate expression: ${e}`),console.error(t),null}}}$resolve(e,t){const s={$pending:!0,$result:null,$error:null};return Promise.resolve().then(()=>e(t)).then(e=>{s.$result=e}).catch(e=>{s.$error=e instanceof Error?e:new Error(String(e))}).finally(()=>{s.$pending=!1}),s}}const Ue="$$";function ze(){return new URL(globalThis.window?.location?.href||"http://localhost/")}function Me(e){return`${Ue}${e}`}function Fe(e){return e.keys().filter(e=>e.startsWith(Ue))}function Ge(e,t,s){const r=function(e){return e.substring(2)}(t);let i=!1;if(s){const t=String(s);e.searchParams.get(r)!==t&&(e.searchParams.set(r,t),i=!0)}else e.searchParams.has(r)&&(e.searchParams.delete(r),i=!0);return i}async function Ke(e){const t=ze();await async function(e,t){for(const[s,r]of t.searchParams.entries()){const t=Me(s);e.get(t)!==r&&await e.set(t,r)}}(e,t),function(e,t){let s=!1;for(const r of Fe(t))Ge(e,r,t.get(r))&&(s=!0);s&&globalThis.window?.history?.replaceState({},"",e.toString())}(t,e),e.addKeyHandler(new RegExp("^\\$\\$"),(e,t)=>{const s=ze();Ge(s,e,t)&&globalThis.window?.history?.replaceState({},"",s.toString())}),globalThis.window?.addEventListener("popstate",function(e){return async()=>{const t=ze(),s=new Set;for(const[r,i]of t.searchParams.entries()){const t=Me(r);s.add(t),e.get(t)!==i&&e.set(t,i)}const r=Fe(e);for(const t of r)s.has(t)||e.del(t)}}(e))}class He extends $e{debugging=!1;dirpath="";_skipNodes=new Set;_customElements=new Map;debug(e){return this.debugging=e,this}async fetchRemote(e,t){return fetch(e,{cache:t?.cache??"default"}).then(e=>e.text())}async fetchLocal(e,t){return this.fetchRemote(e,t)}async preprocessString(e,t){this.log("Preprocessing string content with params:\n",t);const s=this.parseHTML(e,t);return await this.preprocessNode(s,t),s}async preprocessRemote(e,t){const s={};t?.cache&&(s.cache=t.cache);const r=await fetch(e,s).then(e=>e.text());return this.preprocessString(r,{...t,dirpath:ue(e),rootDocument:t?.rootDocument??!e.endsWith(".tpl.html")})}async preprocessLocal(e,t){const s=await this.fetchLocal(e,t);return this.preprocessString(s,{...t,dirpath:ue(e),rootDocument:t?.rootDocument??!e.endsWith(".tpl.html")})}subrenderer(){const e=(new this.constructor).debug(this.debugging);return e._store.set("$parent",this),e._store.set("$rootRenderer",this.get("$rootRenderer")??this),e._customElements=this._customElements,e}log(...e){this.debugging&&console.debug(...e)}async preprocessNode(e,t){t={dirpath:this.dirpath,maxdepth:10,...t};const s=new de(W(e,this._skipNodes)).map(async e=>{this.log("Preprocessing node:\n",he(e,128)),await pe.resolveIncludes.call(this,e,t),await pe.rebaseRelativePaths.call(this,e,t),await pe.registerCustomElements.call(this,e,t),await pe.resolveCustomElements.call(this,e,t)});return await Promise.all(s.generator()),e}async renderNode(e,t){for(const s of W(e,this._skipNodes))this.log("Rendering node:\n",he(s,128)),await pe.resolveForAttribute.call(this,s,t),await pe.resolveRenderAttribute.call(this,s,t),await pe.resolveDataAttribute.call(this,s,t),await pe.resolveTextAttributes.call(this,s,t),await pe.resolveHtmlAttribute.call(this,s,t),await pe.resolveShowAttribute.call(this,s,t),await pe.resolveClassAttribute.call(this,s,t),await pe.resolveBindAttribute.call(this,s,t),await pe.resolveEventAttributes.call(this,s,t),await pe.resolveTextNodeExpressions.call(this,s,t),await pe.resolveCustomAttribute.call(this,s,t),await pe.resolveCustomProperty.call(this,s,t),await pe.stripTypes.call(this,s,t);return e}async mount(e,t){t={...t,rootNode:e},J(e,"renderer",this),this._store.set("$rootNode",e),this.has("$rootRenderer")||this._store.set("$rootRenderer",this),this.get("$rootRenderer")===this&&await Ke(this),await this.preprocessNode(e,t),await this.renderNode(e,t)}}const We=[":data",":for",":text",":html",":show",":class",":bind",":render",":on:click",":on:click.prevent",":on:input",":on:input.prevent",":on:change",":on:change.prevent",":on:submit",":on:submit.prevent",":attr:src",":attr:href",":attr:title",":attr:data-testid",":prop:checked",":prop:selected",":prop:disabled"],Ye=[...We.map(e=>(e=>`data-${e.slice(1).replace(":","-")}`)(e)),"data-testid"];class Be extends He{impl="safe_browser";dirpath=ue(globalThis.location?.href??"http://localhost/");parseHTML(e,t={rootDocument:!1}){for(const t of We)e=e.replace(new RegExp(`\\s:${t.slice(1)}=`,"g"),` data-${t.slice(1).replace(":","-")}=`);e=(e=(e=e.replace(/<include(.*) src="([^"]+)"(.*)><\/include>/g,'<link $1 rel="subresource" href="$2" $3>')).replace(/<template is="([^"]+)">([\s\S]*)<\/template>/g,'<div role="template" alt="$1">$2</div>')).replace(/<(\w+)-(\w+)(.*)>([\s\S]*)<\/(\w+)-(\w+)>/g,'<div role="$1-$2" $3>$4</div>');const s=(new F).allowDataAttributes(Ye).allowClassAttributes().allowStyleAttributes().build();if(this.log("parseHTML",e),this.log("sanitized",String(s.sanitize(e))),t.rootDocument){return K(new DOMParser,s.sanitize(e),"text/html")}return s.sanitizeToFragment(e)}serializeHTML(e){return(new XMLSerializer).serializeToString(e).replace(/\s?xmlns="[^"]+"/gm,"")}preprocessLocal(e,t){return this.preprocessRemote(e,t)}createElement(e,t){return(t||document).createElement(e)}textContent(e,t){e.textContent=t}}const Ve=new Be;export{Ve as Mancha,Be as Renderer};
@@ -1 +1 @@
1
- {"version":3,"file":"safe_browser.js","sourceRoot":"","sources":["../src/safe_browser.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,oBAAoB,EAAE,MAAM,YAAY,CAAC;AAClD,OAAO,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAC/C,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAEpC,OAAO,EAAE,SAAS,EAAE,MAAM,eAAe,CAAC;AAC1C,OAAO,EAAE,iBAAiB,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAE7E,MAAM,OAAO,QAAS,SAAQ,SAAS;IAC5B,IAAI,GAAG,cAAc,CAAC;IACZ,OAAO,GAAW,OAAO,CAAC,UAAU,CAAC,QAAQ,EAAE,IAAI,IAAI,mBAAmB,CAAC,CAAC;IAC/F,SAAS,CACP,OAAe,EACf,SAAuB,EAAE,YAAY,EAAE,KAAK,EAAE;QAE9C,kFAAkF;QAClF,KAAK,MAAM,IAAI,IAAI,eAAe,EAAE,CAAC;YACnC,OAAO,GAAG,OAAO,CAAC,OAAO,CACvB,IAAI,MAAM,CAAC,OAAO,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,EAAE,GAAG,CAAC,EACxC,SAAS,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,EAAE,GAAG,CAAC,GAAG,CAC5C,CAAC;QACJ,CAAC;QAED,kFAAkF;QAClF,OAAO,GAAG,OAAO,CAAC,OAAO,CACvB,6CAA6C,EAC7C,0CAA0C,CAC3C,CAAC;QAEF,yEAAyE;QACzE,OAAO,GAAG,OAAO,CAAC,OAAO,CACvB,+CAA+C,EAC/C,wCAAwC,CACzC,CAAC;QAEF,kEAAkE;QAClE,OAAO,GAAG,OAAO,CAAC,OAAO,CACvB,4CAA4C,EAC5C,+BAA+B,CAChC,CAAC;QAEF,+DAA+D;QAC/D,wBAAwB;QACxB,MAAM,SAAS,GAAG,IAAI,oBAAoB,EAAE;aACzC,mBAAmB,CAAC,iBAAiB,CAAC;aACtC,oBAAoB,EAAE;aACtB,oBAAoB,EAAE;aACtB,KAAK,EAAE,CAAC;QAEX,IAAI,CAAC,GAAG,CAAC,WAAW,EAAE,OAAO,CAAC,CAAC;QAC/B,IAAI,CAAC,GAAG,CAAC,WAAW,EAAE,MAAM,CAAC,SAAS,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;QAC3D,IAAI,MAAM,CAAC,YAAY,EAAE,CAAC;YACxB,MAAM,MAAM,GAAG,IAAI,SAAS,EAAE,CAAC;YAC/B,OAAO,aAAa,CAAC,eAAe,CAAC,MAAM,EAAE,SAAS,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,WAAW,CAAC,CAAC;QACzF,CAAC;aAAM,CAAC;YACN,OAAO,SAAS,CAAC,kBAAkB,CAAC,OAAO,CAAC,CAAC;QAC/C,CAAC;IACH,CAAC;IACD,aAAa,CAAC,IAA6B;QACzC,OAAO,IAAI,aAAa,EAAE,CAAC,iBAAiB,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,oBAAoB,EAAE,EAAE,CAAC,CAAC;IACvF,CAAC;IACD,eAAe,CACb,KAAa,EACb,MAAoC;QAEpC,6EAA6E;QAC7E,OAAO,IAAI,CAAC,gBAAgB,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;IAC9C,CAAC;IACD,aAAa,CAAC,GAAW,EAAE,KAAuB;QAChD,OAAO,CAAC,KAAK,IAAI,QAAQ,CAAC,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC;IAChD,CAAC;IACD,WAAW,CAAC,IAAU,EAAE,OAAe;QACrC,IAAI,CAAC,WAAW,GAAG,OAAO,CAAC;IAC7B,CAAC;CACF;AAED,MAAM,CAAC,MAAM,MAAM,GAAG,IAAI,QAAQ,EAAE,CAAC"}
1
+ {"version":3,"file":"safe_browser.js","sourceRoot":"","sources":["../src/safe_browser.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,oBAAoB,EAAE,MAAM,YAAY,CAAC;AAClD,OAAO,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAC/C,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAEpC,OAAO,EAAE,SAAS,EAAE,MAAM,eAAe,CAAC;AAE1C,OAAO,EAAE,iBAAiB,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAE7E,MAAM,OAAO,QAA4C,SAAQ,SAAY;IAClE,IAAI,GAAG,cAAc,CAAC;IACZ,OAAO,GAAW,OAAO,CAAC,UAAU,CAAC,QAAQ,EAAE,IAAI,IAAI,mBAAmB,CAAC,CAAC;IAC/F,SAAS,CACP,OAAe,EACf,SAAuB,EAAE,YAAY,EAAE,KAAK,EAAE;QAE9C,kFAAkF;QAClF,KAAK,MAAM,IAAI,IAAI,eAAe,EAAE,CAAC;YACnC,OAAO,GAAG,OAAO,CAAC,OAAO,CACvB,IAAI,MAAM,CAAC,OAAO,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,EAAE,GAAG,CAAC,EACxC,SAAS,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,EAAE,GAAG,CAAC,GAAG,CAC5C,CAAC;QACJ,CAAC;QAED,kFAAkF;QAClF,OAAO,GAAG,OAAO,CAAC,OAAO,CACvB,6CAA6C,EAC7C,0CAA0C,CAC3C,CAAC;QAEF,yEAAyE;QACzE,OAAO,GAAG,OAAO,CAAC,OAAO,CACvB,+CAA+C,EAC/C,wCAAwC,CACzC,CAAC;QAEF,kEAAkE;QAClE,OAAO,GAAG,OAAO,CAAC,OAAO,CACvB,4CAA4C,EAC5C,+BAA+B,CAChC,CAAC;QAEF,+DAA+D;QAC/D,wBAAwB;QACxB,MAAM,SAAS,GAAG,IAAI,oBAAoB,EAAE;aACzC,mBAAmB,CAAC,iBAAiB,CAAC;aACtC,oBAAoB,EAAE;aACtB,oBAAoB,EAAE;aACtB,KAAK,EAAE,CAAC;QAEX,IAAI,CAAC,GAAG,CAAC,WAAW,EAAE,OAAO,CAAC,CAAC;QAC/B,IAAI,CAAC,GAAG,CAAC,WAAW,EAAE,MAAM,CAAC,SAAS,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;QAC3D,IAAI,MAAM,CAAC,YAAY,EAAE,CAAC;YACxB,MAAM,MAAM,GAAG,IAAI,SAAS,EAAE,CAAC;YAC/B,OAAO,aAAa,CAAC,eAAe,CAAC,MAAM,EAAE,SAAS,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,WAAW,CAAC,CAAC;QACzF,CAAC;aAAM,CAAC;YACN,OAAO,SAAS,CAAC,kBAAkB,CAAC,OAAO,CAAC,CAAC;QAC/C,CAAC;IACH,CAAC;IACD,aAAa,CAAC,IAA6B;QACzC,OAAO,IAAI,aAAa,EAAE,CAAC,iBAAiB,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,oBAAoB,EAAE,EAAE,CAAC,CAAC;IACvF,CAAC;IACD,eAAe,CACb,KAAa,EACb,MAAoC;QAEpC,6EAA6E;QAC7E,OAAO,IAAI,CAAC,gBAAgB,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;IAC9C,CAAC;IACD,aAAa,CAAC,GAAW,EAAE,KAAuB;QAChD,OAAO,CAAC,KAAK,IAAI,QAAQ,CAAC,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC;IAChD,CAAC;IACD,WAAW,CAAC,IAAU,EAAE,OAAe;QACrC,IAAI,CAAC,WAAW,GAAG,OAAO,CAAC;IAC7B,CAAC;CACF;AAED,MAAM,CAAC,MAAM,MAAM,GAAG,IAAI,QAAQ,EAAE,CAAC"}
package/dist/store.d.ts CHANGED
@@ -1,4 +1,28 @@
1
- type SignalStoreProxy = SignalStore & {
1
+ /**
2
+ * Internal store properties that are always present. These are managed by the framework
3
+ * and should not be set directly by users.
4
+ */
5
+ export type InternalStoreState = {
6
+ /** Reference to the parent store in a hierarchy. */
7
+ $parent?: SignalStore;
8
+ /** Reference to the root renderer instance. */
9
+ $rootRenderer?: SignalStore;
10
+ /** Reference to the root DOM node. */
11
+ $rootNode?: Node;
12
+ } & {
13
+ [key: `$$${string}`]: string | null;
14
+ };
15
+ /**
16
+ * Base type for user-defined store state. Uses `any` intentionally to allow flexible
17
+ * user-defined state types without requiring explicit index signatures.
18
+ */
19
+ export type StoreState = Record<string, any>;
20
+ /** Type for expression evaluation function. */
21
+ type EvalFunction = (thisArg: SignalStoreProxy, args: Record<string, unknown>) => unknown;
22
+ /**
23
+ * Internal proxy type used within the store implementation. Uses `any` for dynamic property access.
24
+ */
25
+ type SignalStoreProxy = SignalStore & InternalStoreState & {
2
26
  [key: string]: any;
3
27
  };
4
28
  type Observer<T> = (this: SignalStoreProxy) => T;
@@ -9,34 +33,36 @@ declare abstract class IDebouncer {
9
33
  }
10
34
  /** Default debouncer time in millis. */
11
35
  export declare const REACTIVE_DEBOUNCE_MILLIS = 10;
12
- export declare function getAncestorValue(store: SignalStore | null, key: string): unknown | null;
36
+ export declare function getAncestorValue(store: SignalStore | null, key: string): unknown;
13
37
  export declare function getAncestorKeyStore(store: SignalStore | null, key: string): SignalStore | null;
14
38
  export declare function setAncestorValue(store: SignalStore, key: string, value: unknown): void;
15
- export declare function setNestedProperty(obj: any, path: string, value: any): void;
16
- export declare class SignalStore extends IDebouncer {
39
+ export declare function setNestedProperty(obj: Record<string, unknown>, path: string, value: unknown): void;
40
+ export declare class SignalStore<T extends StoreState = StoreState> extends IDebouncer {
17
41
  protected readonly evalkeys: string[];
18
- protected readonly expressionCache: Map<string, Function>;
42
+ protected readonly expressionCache: Map<string, EvalFunction>;
19
43
  protected readonly observers: Map<string, Set<Observer<unknown>>>;
20
44
  protected readonly keyHandlers: Map<RegExp, Set<KeyValueHandler>>;
21
45
  protected _observer: Observer<unknown> | null;
22
46
  readonly _store: Map<string, unknown>;
23
47
  _lock: Promise<void>;
24
- constructor(data?: {
25
- [key: string]: any;
26
- });
48
+ constructor(data?: T);
27
49
  private wrapFunction;
28
50
  private wrapObject;
29
51
  watch<T>(key: string, observer: Observer<T>): void;
30
52
  addKeyHandler(pattern: RegExp, handler: KeyValueHandler): void;
31
53
  notify(key: string, debounceMillis?: number): Promise<void>;
32
- get<T>(key: string, observer?: Observer<T>): unknown | null;
54
+ get<T>(key: string, observer?: Observer<T>): unknown;
33
55
  set(key: string, value: unknown): Promise<void>;
34
56
  del(key: string): Promise<void>;
35
57
  keys(): string[];
58
+ /**
59
+ * Checks if a key exists in THIS store only (not ancestors).
60
+ * Use `get(key) !== null` to check if a key exists anywhere in the chain.
61
+ */
36
62
  has(key: string): boolean;
37
63
  effect<T>(observer: Observer<T>): T;
38
64
  private proxify;
39
- get $(): SignalStoreProxy;
65
+ get $(): SignalStore<T> & InternalStoreState & T;
40
66
  /**
41
67
  * Creates an evaluation function for the provided expression.
42
68
  * @param expr The expression to be evaluated.
@@ -49,8 +75,28 @@ export declare class SignalStore extends IDebouncer {
49
75
  * @returns The cached expression function.
50
76
  */
51
77
  private cachedExpressionFunction;
52
- eval(expr: string, args?: {
53
- [key: string]: any;
54
- }): unknown;
78
+ eval(expr: string, args?: Record<string, unknown>): unknown;
79
+ /**
80
+ * Executes an async function and returns a reactive state object that tracks the result.
81
+ *
82
+ * @param fn - The async function to execute.
83
+ * @param options - Optional arguments to pass to the function.
84
+ * @returns A reactive state object with $pending, $result, and $error properties.
85
+ *
86
+ * @example
87
+ * // In :data attribute - executes on mount
88
+ * :data="{ users: $resolve(api.listUsers) }"
89
+ *
90
+ * // With options
91
+ * :data="{ user: $resolve(api.getUser, { path: { id: userId } }) }"
92
+ *
93
+ * // In :on:click - executes on click
94
+ * :on:click="result = $resolve(api.deleteUser, { path: { id } })"
95
+ */
96
+ $resolve<T, O = unknown>(fn: (options?: O) => Promise<T>, options?: O): {
97
+ $pending: boolean;
98
+ $result: T | null;
99
+ $error: Error | null;
100
+ };
55
101
  }
56
102
  export {};