mates-fullstack 1.0.0-beta.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (202) hide show
  1. package/README.md +311 -0
  2. package/dist/arctic-auth.d.ts +101 -0
  3. package/dist/arctic-auth.d.ts.map +1 -0
  4. package/dist/arctic-auth.js +538 -0
  5. package/dist/arctic-auth.js.map +1 -0
  6. package/dist/asset-manifest.d.ts +14 -0
  7. package/dist/asset-manifest.d.ts.map +1 -0
  8. package/dist/asset-manifest.js +102 -0
  9. package/dist/asset-manifest.js.map +1 -0
  10. package/dist/browser.d.ts +18 -0
  11. package/dist/browser.d.ts.map +1 -0
  12. package/dist/browser.js +25 -0
  13. package/dist/browser.js.map +1 -0
  14. package/dist/build-esbuild.d.ts +29 -0
  15. package/dist/build-esbuild.d.ts.map +1 -0
  16. package/dist/build-esbuild.js +699 -0
  17. package/dist/build-esbuild.js.map +1 -0
  18. package/dist/build-prod.d.ts +126 -0
  19. package/dist/build-prod.d.ts.map +1 -0
  20. package/dist/build-prod.js +1014 -0
  21. package/dist/build-prod.js.map +1 -0
  22. package/dist/cli-new.d.ts +14 -0
  23. package/dist/cli-new.d.ts.map +1 -0
  24. package/dist/cli-new.js +637 -0
  25. package/dist/cli-new.js.map +1 -0
  26. package/dist/client.d.ts +43 -0
  27. package/dist/client.d.ts.map +1 -0
  28. package/dist/client.js +130 -0
  29. package/dist/client.js.map +1 -0
  30. package/dist/cors.d.ts +16 -0
  31. package/dist/cors.d.ts.map +1 -0
  32. package/dist/cors.js +60 -0
  33. package/dist/cors.js.map +1 -0
  34. package/dist/ctx.d.ts +78 -0
  35. package/dist/ctx.d.ts.map +1 -0
  36. package/dist/ctx.js +280 -0
  37. package/dist/ctx.js.map +1 -0
  38. package/dist/dev-watcher.d.ts +23 -0
  39. package/dist/dev-watcher.d.ts.map +1 -0
  40. package/dist/dev-watcher.js +136 -0
  41. package/dist/dev-watcher.js.map +1 -0
  42. package/dist/docs-generator.d.ts +69 -0
  43. package/dist/docs-generator.d.ts.map +1 -0
  44. package/dist/docs-generator.js +557 -0
  45. package/dist/docs-generator.js.map +1 -0
  46. package/dist/docs-page.d.ts +20 -0
  47. package/dist/docs-page.d.ts.map +1 -0
  48. package/dist/docs-page.js +1152 -0
  49. package/dist/docs-page.js.map +1 -0
  50. package/dist/download.d.ts +78 -0
  51. package/dist/download.d.ts.map +1 -0
  52. package/dist/download.js +202 -0
  53. package/dist/download.js.map +1 -0
  54. package/dist/env-loader.d.ts +76 -0
  55. package/dist/env-loader.d.ts.map +1 -0
  56. package/dist/env-loader.js +213 -0
  57. package/dist/env-loader.js.map +1 -0
  58. package/dist/errors.d.ts +146 -0
  59. package/dist/errors.d.ts.map +1 -0
  60. package/dist/errors.js +386 -0
  61. package/dist/errors.js.map +1 -0
  62. package/dist/head.d.ts +31 -0
  63. package/dist/head.d.ts.map +1 -0
  64. package/dist/head.js +245 -0
  65. package/dist/head.js.map +1 -0
  66. package/dist/index.d.ts +30 -0
  67. package/dist/index.d.ts.map +1 -0
  68. package/dist/index.js +30 -0
  69. package/dist/index.js.map +1 -0
  70. package/dist/internal-prefixes.d.ts +16 -0
  71. package/dist/internal-prefixes.d.ts.map +1 -0
  72. package/dist/internal-prefixes.js +16 -0
  73. package/dist/internal-prefixes.js.map +1 -0
  74. package/dist/internal.d.ts +25 -0
  75. package/dist/internal.d.ts.map +1 -0
  76. package/dist/internal.js +25 -0
  77. package/dist/internal.js.map +1 -0
  78. package/dist/jwt.d.ts +166 -0
  79. package/dist/jwt.d.ts.map +1 -0
  80. package/dist/jwt.js +261 -0
  81. package/dist/jwt.js.map +1 -0
  82. package/dist/log.d.ts +44 -0
  83. package/dist/log.d.ts.map +1 -0
  84. package/dist/log.js +66 -0
  85. package/dist/log.js.map +1 -0
  86. package/dist/logger.d.ts +76 -0
  87. package/dist/logger.d.ts.map +1 -0
  88. package/dist/logger.js +138 -0
  89. package/dist/logger.js.map +1 -0
  90. package/dist/main-runner.d.ts +59 -0
  91. package/dist/main-runner.d.ts.map +1 -0
  92. package/dist/main-runner.js +157 -0
  93. package/dist/main-runner.js.map +1 -0
  94. package/dist/mates-auth.d.ts +82 -0
  95. package/dist/mates-auth.d.ts.map +1 -0
  96. package/dist/mates-auth.js +323 -0
  97. package/dist/mates-auth.js.map +1 -0
  98. package/dist/middleware.d.ts +30 -0
  99. package/dist/middleware.d.ts.map +1 -0
  100. package/dist/middleware.js +67 -0
  101. package/dist/middleware.js.map +1 -0
  102. package/dist/project-resolver.d.ts +102 -0
  103. package/dist/project-resolver.d.ts.map +1 -0
  104. package/dist/project-resolver.js +271 -0
  105. package/dist/project-resolver.js.map +1 -0
  106. package/dist/rate-limit.d.ts +37 -0
  107. package/dist/rate-limit.d.ts.map +1 -0
  108. package/dist/rate-limit.js +109 -0
  109. package/dist/rate-limit.js.map +1 -0
  110. package/dist/redirect.d.ts +84 -0
  111. package/dist/redirect.d.ts.map +1 -0
  112. package/dist/redirect.js +105 -0
  113. package/dist/redirect.js.map +1 -0
  114. package/dist/renderer.d.ts +91 -0
  115. package/dist/renderer.d.ts.map +1 -0
  116. package/dist/renderer.js +630 -0
  117. package/dist/renderer.js.map +1 -0
  118. package/dist/request-logger.d.ts +12 -0
  119. package/dist/request-logger.d.ts.map +1 -0
  120. package/dist/request-logger.js +55 -0
  121. package/dist/request-logger.js.map +1 -0
  122. package/dist/rest.d.ts +25 -0
  123. package/dist/rest.d.ts.map +1 -0
  124. package/dist/rest.js +93 -0
  125. package/dist/rest.js.map +1 -0
  126. package/dist/router.d.ts +71 -0
  127. package/dist/router.d.ts.map +1 -0
  128. package/dist/router.js +222 -0
  129. package/dist/router.js.map +1 -0
  130. package/dist/rpc-registry.d.ts +84 -0
  131. package/dist/rpc-registry.d.ts.map +1 -0
  132. package/dist/rpc-registry.js +271 -0
  133. package/dist/rpc-registry.js.map +1 -0
  134. package/dist/rpc-runner.d.ts +82 -0
  135. package/dist/rpc-runner.d.ts.map +1 -0
  136. package/dist/rpc-runner.js +564 -0
  137. package/dist/rpc-runner.js.map +1 -0
  138. package/dist/sanitize.d.ts +61 -0
  139. package/dist/sanitize.d.ts.map +1 -0
  140. package/dist/sanitize.js +193 -0
  141. package/dist/sanitize.js.map +1 -0
  142. package/dist/security-headers.d.ts +114 -0
  143. package/dist/security-headers.d.ts.map +1 -0
  144. package/dist/security-headers.js +121 -0
  145. package/dist/security-headers.js.map +1 -0
  146. package/dist/server-fn.d.ts +323 -0
  147. package/dist/server-fn.d.ts.map +1 -0
  148. package/dist/server-fn.js +373 -0
  149. package/dist/server-fn.js.map +1 -0
  150. package/dist/server-public.d.ts +13 -0
  151. package/dist/server-public.d.ts.map +1 -0
  152. package/dist/server-public.js +12 -0
  153. package/dist/server-public.js.map +1 -0
  154. package/dist/server-timeout.d.ts +38 -0
  155. package/dist/server-timeout.d.ts.map +1 -0
  156. package/dist/server-timeout.js +46 -0
  157. package/dist/server-timeout.js.map +1 -0
  158. package/dist/server.d.ts +100 -0
  159. package/dist/server.d.ts.map +1 -0
  160. package/dist/server.js +1218 -0
  161. package/dist/server.js.map +1 -0
  162. package/dist/socket-router.d.ts +153 -0
  163. package/dist/socket-router.d.ts.map +1 -0
  164. package/dist/socket-router.js +612 -0
  165. package/dist/socket-router.js.map +1 -0
  166. package/dist/sso.d.ts +90 -0
  167. package/dist/sso.d.ts.map +1 -0
  168. package/dist/sso.js +261 -0
  169. package/dist/sso.js.map +1 -0
  170. package/dist/ssr-context.d.ts +49 -0
  171. package/dist/ssr-context.d.ts.map +1 -0
  172. package/dist/ssr-context.js +85 -0
  173. package/dist/ssr-context.js.map +1 -0
  174. package/dist/ssr-globals.d.ts +32 -0
  175. package/dist/ssr-globals.d.ts.map +1 -0
  176. package/dist/ssr-globals.js +1010 -0
  177. package/dist/ssr-globals.js.map +1 -0
  178. package/dist/ssr-template.d.ts +73 -0
  179. package/dist/ssr-template.d.ts.map +1 -0
  180. package/dist/ssr-template.js +507 -0
  181. package/dist/ssr-template.js.map +1 -0
  182. package/dist/stack-mapper.d.ts +25 -0
  183. package/dist/stack-mapper.d.ts.map +1 -0
  184. package/dist/stack-mapper.js +139 -0
  185. package/dist/stack-mapper.js.map +1 -0
  186. package/dist/stream.d.ts +89 -0
  187. package/dist/stream.d.ts.map +1 -0
  188. package/dist/stream.js +299 -0
  189. package/dist/stream.js.map +1 -0
  190. package/dist/upload.d.ts +69 -0
  191. package/dist/upload.d.ts.map +1 -0
  192. package/dist/upload.js +110 -0
  193. package/dist/upload.js.map +1 -0
  194. package/dist/validate.d.ts +58 -0
  195. package/dist/validate.d.ts.map +1 -0
  196. package/dist/validate.js +89 -0
  197. package/dist/validate.js.map +1 -0
  198. package/dist/verify-package.d.ts +3 -0
  199. package/dist/verify-package.d.ts.map +1 -0
  200. package/dist/verify-package.js +128 -0
  201. package/dist/verify-package.js.map +1 -0
  202. package/package.json +79 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ssr-globals.js","sourceRoot":"","sources":["../src/ssr-globals.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AAEH,iFAAiF;AAEjF,MAAM,IAAI,GAAG,GAAS,EAAE,GAAE,CAAC,CAAC;AAC5B,MAAM,UAAU,GACd,CAAI,CAAI,EAAE,EAAE,CACZ,GAAM,EAAE,CACN,CAAC,CAAC;AAEN,gFAAgF;AAChF,EAAE;AACF,8EAA8E;AAC9E,uEAAuE;AACvE,wEAAwE;AACxE,wEAAwE;AACxE,+DAA+D;AAC/D,EAAE;AACF,6EAA6E;AAC7E,+EAA+E;AAE/E,MAAM,cAAc,GAAG;IACrB,kBAAkB;IAClB,QAAQ,EAAE,CAAC;IACX,QAAQ,EAAE,KAAK;IACf,OAAO,EAAE,KAAK;IACd,OAAO,EAAE,mBAAmB;IAC5B,aAAa,EAAE,IAAW;IAC1B,UAAU,EAAE,IAAI;IAChB,aAAa,EAAE,IAAI;IACnB,UAAU,EAAE,EAAW;IACvB,QAAQ,EAAE,EAAW;IACrB,UAAU,EAAE,IAAI;IAChB,SAAS,EAAE,IAAI;IACf,WAAW,EAAE,IAAI;IACjB,eAAe,EAAE,IAAI;IACrB,WAAW,EAAE,EAAE;IACf,SAAS,EAAE,IAAI;IACf,WAAW,EAAE,KAAK;IAElB,qBAAqB;IACrB,SAAS,EAAE,EAAE;IACb,SAAS,EAAE,EAAE;IACb,EAAE,EAAE,EAAE;IACN,SAAS,EAAE,EAAE;IACb,SAAS,EAAE;QACT,GAAG,EAAE,IAAI;QACT,MAAM,EAAE,IAAI;QACZ,QAAQ,EAAE,UAAU,CAAC,KAAK,CAAC;QAC3B,MAAM,EAAE,UAAU,CAAC,KAAK,CAAC;QACzB,OAAO,EAAE,IAAI;QACb,IAAI,EAAE,UAAU,CAAC,IAAI,CAAC;QACtB,OAAO,EAAE,UAAU,CAAC,EAAE,CAAC;QACvB,IAAI,EAAE,UAAU,CAAC,EAAE,CAAC;QACpB,MAAM,EAAE,UAAU,CAAC,EAAE,CAAC;QACtB,OAAO,EAAE,IAAI;QACb,MAAM,EAAE,CAAC;QACT,QAAQ,EAAE,UAAU,CAAC,EAAE,CAAC;QACxB,KAAK,EAAE,EAAE;KACV;IACD,KAAK,EAAE,EAAyB;IAChC,OAAO,EAAE,EAA4B;IACrC,UAAU,EAAE,EAAE,MAAM,EAAE,CAAC,EAAS;IAChC,QAAQ,EAAE,CAAC,CAAC;IACZ,GAAG,EAAE,EAAE;IACP,MAAM,EAAE,KAAK;IACb,IAAI,EAAE,EAAE;IACR,KAAK,EAAE,EAAE;IACT,IAAI,EAAE,EAAE;IACR,SAAS,EAAE,CAAC;IACZ,UAAU,EAAE,CAAC;IACb,WAAW,EAAE,CAAC;IACd,YAAY,EAAE,CAAC;IACf,SAAS,EAAE,CAAC;IACZ,UAAU,EAAE,CAAC;IACb,WAAW,EAAE,CAAC;IACd,YAAY,EAAE,CAAC;IACf,SAAS,EAAE,CAAC;IACZ,UAAU,EAAE,CAAC;IACb,WAAW,EAAE,CAAC;IACd,YAAY,EAAE,CAAC;IACf,YAAY,EAAE,IAAI;IAClB,SAAS,EAAE,KAAK;IAChB,YAAY,EAAE,8BAA8B;IAC5C,MAAM,EAAE,IAAI;IAEZ,iEAAiE;IACjE,OAAO,EAAE,IAAW;IAEpB,UAAU;IACV,YAAY,EAAE,IAAI;IAClB,YAAY,EAAE,UAAU,CAAC,IAAI,CAAC;IAC9B,iBAAiB,EAAE,UAAU,CAAC,EAAE,CAAC;IACjC,YAAY,EAAE,UAAU,CAAC,KAAK,CAAC;IAC/B,aAAa,EAAE,UAAU,CAAC,KAAK,CAAC;IAChC,eAAe,EAAE,IAAI;IACrB,eAAe,EAAE,UAAU,CAAC,KAAK,CAAC;IAClC,cAAc,EAAE,IAAI;IACpB,cAAc,EAAE,UAAU,CAAC,IAAI,CAAC;IAChC,iBAAiB,EAAE,IAAI;IAEvB,gBAAgB,EAAE,IAAI;IACtB,mBAAmB,EAAE,IAAI;IACzB,aAAa,EAAE,UAAU,CAAC,KAAK,CAAC;IAEhC,WAAW,EAAE,UAAU,KAAU;QAC/B,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAC5B,IAAI,IAAI,CAAC,QAAQ;YAAE,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAC7C,KAAK,CAAC,UAAU,GAAG,IAAI,CAAC;QACxB,OAAO,KAAK,CAAC;IACf,CAAC;IACD,WAAW,EAAE,UAAU,KAAU;QAC/B,MAAM,GAAG,GAAG,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;QAC3C,IAAI,GAAG,KAAK,CAAC,CAAC;YAAE,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;QAC/C,OAAO,KAAK,CAAC;IACf,CAAC;IACD,YAAY,EAAE,UAAU,KAAU,EAAE,IAAS;QAC3C,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAC5B,KAAK,CAAC,UAAU,GAAG,IAAI,CAAC;QACxB,OAAO,KAAK,CAAC;IACf,CAAC;IACD,YAAY,EAAE,UAAU,KAAU,EAAE,GAAQ;QAC1C,MAAM,GAAG,GAAG,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;QACzC,IAAI,GAAG,KAAK,CAAC,CAAC;YAAE,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,GAAG,EAAE,CAAC,EAAE,KAAK,CAAC,CAAC;QACtD,OAAO,GAAG,CAAC;IACb,CAAC;IACD,QAAQ,EAAE,UAAU,CAAC,KAAK,CAAC;IAC3B,aAAa,EAAE,UAAU,CAAC,KAAK,CAAC;IAChC,SAAS,EAAE,UAAqB,KAAe;QAC7C,kDAAkD;QAClD,OAAO,EAAE,GAAG,IAAI,EAAE,UAAU,EAAE,EAAE,EAAE,QAAQ,EAAE,EAAE,EAAE,CAAC;IACnD,CAAC;IACD,WAAW,EAAE,UAAU,CAAC,IAAI,CAAC;IAC7B,UAAU,EAAE,UAAqB,KAAU;QACzC,OAAO,IAAI,KAAK,KAAK,CAAC;IACxB,CAAC;IACD,uBAAuB,EAAE,UAAU,CAAC,CAAC,CAAC;IACtC,SAAS,EAAE,IAAI;IAEf,OAAO,EAAE,UAAU,CAAC,IAAI,CAAC;IACzB,OAAO,EAAE,UAAU,CAAC,KAAK,CAAC;IAC1B,aAAa,EAAE,UAAU,CAAC,IAAI,CAAC;IAC/B,gBAAgB,EAAE,UAAU,CAAC,EAAE,CAAC;IAChC,oBAAoB,EAAE,UAAU,CAAC,EAAE,CAAC;IACpC,sBAAsB,EAAE,UAAU,CAAC,EAAE,CAAC;IACtC,iBAAiB,EAAE,UAAU,CAAC,EAAE,CAAC;IAEjC,qBAAqB,EAAE,UAAU,CAAC;QAChC,CAAC,EAAE,CAAC;QACJ,CAAC,EAAE,CAAC;QACJ,KAAK,EAAE,CAAC;QACR,MAAM,EAAE,CAAC;QACT,GAAG,EAAE,CAAC;QACN,KAAK,EAAE,CAAC;QACR,MAAM,EAAE,CAAC;QACT,IAAI,EAAE,CAAC;QACP,MAAM,EAAE,UAAU,CAAC,EAAE,CAAC;KACvB,CAAC;IACF,cAAc,EAAE,UAAU,CAAC,EAAE,CAAC;IAE9B,cAAc,EAAE,IAAI;IACpB,MAAM,EAAE,IAAI;IACZ,QAAQ,EAAE,IAAI;IACd,QAAQ,EAAE,IAAI;IACd,KAAK,EAAE,IAAI;IACX,IAAI,EAAE,IAAI;IACV,KAAK,EAAE,IAAI;IAEX,kBAAkB,EAAE,IAAI;IACxB,qBAAqB,EAAE,UAAU,CAAC,IAAI,CAAC;IACvC,kBAAkB,EAAE,IAAI;IAExB,WAAW,EAAE,UAAqB,GAAG,KAAY;QAC/C,IAAI,IAAI,CAAC,UAAU,EAAE,CAAC;YACpB,IAAI,CAAC,UAAU,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;QACpC,CAAC;IACH,CAAC;IACD,MAAM,EAAE;QACN,IAAI,IAAI,CAAC,UAAU,EAAE,CAAC;YACpB,IAAI,CAAC,UAAU,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;QACpC,CAAC;IACH,CAAC;IACD,MAAM,EAAE,IAAI;IACZ,KAAK,EAAE,IAAI;IACX,OAAO,EAAE,IAAI;IACb,MAAM,EAAE,IAAI;IAEZ,YAAY,EAAE,UAAU,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;IACtD,UAAU,EAAE,IAAI;IAEhB,eAAe;IACf,aAAa,EAAE,UAAU,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;IAC9C,OAAO,EAAE,UAAU,CAAC,IAAI,CAAC;IAEzB,oCAAoC;IACpC,KAAK,EAAE,EAAE;IACT,OAAO,EAAE,KAAK;IACd,QAAQ,EAAE,KAAK;IACf,IAAI,EAAE,EAAE;IACR,IAAI,EAAE,MAAM;IACZ,IAAI,EAAE,IAAI;IACV,KAAK,EAAE,IAAI;IACX,cAAc,EAAE,CAAC;IACjB,YAAY,EAAE,CAAC;IACf,QAAQ,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE;IACzB,iBAAiB,EAAE,EAAE;IACrB,cAAc,EAAE,UAAU,CAAC,IAAI,CAAC;IAChC,iBAAiB,EAAE,IAAI;IACvB,MAAM,EAAE,IAAI;IAEZ,iBAAiB;IACjB,OAAO,EAAE,IAAW;IACpB,mBAAmB,EAAE,IAAW;IAEhC,QAAQ;QACN,OAAO,WAAW,IAAI,CAAC,OAAO,IAAI,SAAS,GAAG,CAAC;IACjD,CAAC;CACF,CAAC;AAEF,SAAS,aAAa,CACpB,OAAO,GAAG,KAAK,EACf,SAAS,GAAG,8BAA8B;IAE1C,MAAM,EAAE,GAAG,MAAM,CAAC,MAAM,CAAC,cAAc,CAAwB,CAAC;IAChE,EAAE,CAAC,QAAQ,GAAG,OAAO,CAAC;IACtB,EAAE,CAAC,OAAO,GAAG,OAAO,CAAC;IACrB,EAAE,CAAC,SAAS,GAAG,OAAO,CAAC,WAAW,EAAE,CAAC;IACrC,EAAE,CAAC,YAAY,GAAG,SAAS,CAAC;IAC5B,EAAE,CAAC,aAAa,GAAG,EAAE,CAAC,CAAC,qBAAqB;IAC5C,EAAE,CAAC,OAAO,GAAG,MAAM,CAAC,MAAM,CAAC,cAAc,CAAC,CAAC;IAC3C,EAAE,CAAC,OAAO,CAAC,aAAa,GAAG,EAAE,CAAC;IAC9B,EAAE,CAAC,OAAO,CAAC,UAAU,GAAG,EAAE,CAAC;IAC3B,EAAE,CAAC,OAAO,CAAC,QAAQ,GAAG,EAAE,CAAC;IACzB,OAAO,EAAE,CAAC;AACZ,CAAC;AAED,iFAAiF;AAEjF;;;GAGG;AACH,MAAM,UAAU,iBAAiB;IAC/B,MAAM,CAAC,GAAG,UAAiC,CAAC;IAE5C,MAAM,QAAQ,GAAG,aAAa,EAAE,CAAC;IACjC,MAAM,QAAQ,GAAG,aAAa,EAAE,CAAC;IAEjC,+EAA+E;IAC/E,IAAI,OAAO,CAAC,CAAC,QAAQ,KAAK,WAAW,EAAE,CAAC;QACtC,CAAC,CAAC,QAAQ,GAAG;YACX,4DAA4D;YAC5D,aAAa,EAAE,CAAC,IAAY,EAAE,EAAE,CAAC,aAAa,EAAE;YAChD,eAAe,EAAE,CAAC,GAAW,EAAE,IAAY,EAAE,EAAE,CAAC,aAAa,EAAE;YAC/D,aAAa,EAAE,CAAC,KAAa,EAAE,EAAE,CAAC,CAAC,EAAE,QAAQ,EAAE,CAAC,EAAE,IAAI,EAAE,KAAK,IAAI,EAAE,EAAE,CAAC;YACtE,cAAc,EAAE,CAAC,IAAY,EAAE,EAAE,CAAC,CAAC,EAAE,QAAQ,EAAE,CAAC,EAAE,IAAI,EAAE,IAAI,IAAI,EAAE,EAAE,CAAC;YACrE,sBAAsB,EAAE,GAAG,EAAE,CAAC,aAAa,EAAE;YAC7C,eAAe,EAAE,CAAC,KAAa,EAAE,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC;YAChE,iBAAiB,EAAE,CAAC,GAAW,EAAE,KAAa,EAAE,EAAE,CAAC,CAAC;gBAClD,IAAI,EAAE,KAAK;gBACX,KAAK,EAAE,EAAE;aACV,CAAC;YACF,WAAW,EAAE,GAAG,EAAE,CAAC,CAAC;gBAClB,QAAQ,EAAE,IAAI;gBACd,MAAM,EAAE,IAAI;gBACZ,UAAU,EAAE,IAAI;gBAChB,kBAAkB,EAAE,IAAI;gBACxB,qBAAqB,EAAE,UAAU,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,CAAC;gBACtE,cAAc,EAAE,UAAU,CAAC,EAAE,CAAC;gBAC9B,uBAAuB,EAAE,IAAI;gBAC7B,cAAc,EAAE,IAAI;gBACpB,WAAW,EAAE,CAAC;gBACd,YAAY,EAAE,IAAI;gBAClB,SAAS,EAAE,CAAC;gBACZ,SAAS,EAAE,IAAI;gBACf,QAAQ,EAAE,UAAU,CAAC,EAAE,CAAC;gBACxB,UAAU,EAAE,UAAU,CAAC,IAAI,CAAC;gBAC5B,MAAM,EAAE,IAAI;gBACZ,cAAc,EAAE,IAAI;gBACpB,eAAe,EAAE,UAAU,CAAC,IAAI,CAAC;gBACjC,UAAU,EAAE,IAAI;gBAChB,gBAAgB,EAAE,IAAI;aACvB,CAAC;YACF,gBAAgB,EAAE,GAAG,EAAE,CAAC,CAAC;gBACvB,IAAI,EAAE,aAAa,EAAE;gBACrB,UAAU,EAAE,UAAU;gBACtB,MAAM,EAAE,IAAI;gBACZ,QAAQ,EAAE,UAAU,CAAC,IAAI,CAAC;gBAC1B,YAAY,EAAE,UAAU,CAAC,IAAI,CAAC;gBAC9B,UAAU,EAAE,UAAU,CAAC,IAAI,CAAC;gBAC5B,SAAS,EAAE,UAAU,CAAC,IAAI,CAAC;gBAC3B,WAAW,EAAE,UAAU,CAAC,IAAI,CAAC;gBAC7B,eAAe,EAAE,UAAU,CAAC,IAAI,CAAC;gBACjC,UAAU,EAAE,UAAU,CAAC,IAAI,CAAC;gBAC5B,WAAW,EAAE,IAAI;aAClB,CAAC;YACF,kBAAkB,EAAE,GAAG,EAAE,CAAC,CAAC;gBACzB,QAAQ,EAAE,UAAU,CAAC,IAAI,CAAC;gBAC1B,YAAY,EAAE,UAAU,CAAC,IAAI,CAAC;gBAC9B,MAAM,EAAE,IAAI;aACb,CAAC;YACF,WAAW,EAAE,CAAC,KAAa,EAAE,EAAE,CAAC,CAAC;gBAC/B,IAAI,EAAE,KAAK;gBACX,SAAS,EAAE,IAAI;gBACf,cAAc,EAAE,IAAI;gBACpB,eAAe,EAAE,IAAI;aACtB,CAAC;YACF,gBAAgB,EAAE,UAAU,CAAC,IAAI,CAAC;YAClC,gBAAgB,EAAE,UAAU,CAAC,IAAI,CAAC;YAClC,QAAQ,EAAE,UAAU,CAAC,IAAI,CAAC;YAE1B,UAAU;YACV,aAAa,EAAE,UAAU,CAAC,IAAI,CAAC;YAC/B,gBAAgB,EAAE,UAAU,CAAC,EAAE,CAAC;YAChC,cAAc,EAAE,UAAU,CAAC,IAAI,CAAC;YAChC,oBAAoB,EAAE,UAAU,CAAC,EAAE,CAAC;YACpC,sBAAsB,EAAE,UAAU,CAAC,EAAE,CAAC;YACtC,iBAAiB,EAAE,UAAU,CAAC,EAAE,CAAC;YAEjC,YAAY;YACZ,YAAY,EAAE,UAAU,CAAC,IAAI,CAAC;YAC9B,mBAAmB,EAAE,UAAU,CAAC,IAAI,CAAC;YACrC,sBAAsB,EAAE,UAAU,CAAC,IAAI,CAAC;YACxC,gBAAgB,EAAE,UAAU,CAAC,IAAI,CAAC;YAClC,iBAAiB,EAAE,UAAU,CAAC,EAAE,CAAC;YAEjC,SAAS;YACT,MAAM,EAAE,EAAE;YAEV,oBAAoB;YACpB,IAAI,EAAE,QAAQ;YACd,IAAI,EAAE,QAAQ;YACd,eAAe,EAAE,aAAa,EAAE;YAChC,KAAK,EAAE,EAAE;YACT,UAAU,EAAE,UAAU;YACtB,GAAG,EAAE,mBAAmB;YACxB,WAAW,EAAE,mBAAmB;YAChC,OAAO,EAAE,mBAAmB;YAC5B,UAAU,EAAE,YAAY;YACxB,YAAY,EAAE,OAAO;YACrB,OAAO,EAAE,OAAO;YAChB,WAAW,EAAE,WAAW;YACxB,UAAU,EAAE,KAAK;YACjB,GAAG,EAAE,KAAK;YACV,MAAM,EAAE,KAAK;YACb,eAAe,EAAE,SAAS;YAC1B,YAAY,EAAE,EAAE;YAChB,QAAQ,EAAE,EAAE;YACZ,MAAM,EAAE,WAAW;YACnB,QAAQ,EAAE,CAAC,CAAC,QAAQ,IAAI;gBACtB,IAAI,EAAE,mBAAmB;gBACzB,MAAM,EAAE,kBAAkB;gBAC1B,QAAQ,EAAE,GAAG;gBACb,MAAM,EAAE,EAAE;gBACV,IAAI,EAAE,EAAE;aACT;YACD,WAAW,EAAE,CAAC,CAAC,MAAM,IAAI,IAAI;YAC7B,cAAc,EAAE;gBACd,UAAU,EAAE,UAAU,CAAC,IAAI,CAAC;gBAC5B,kBAAkB,EAAE,UAAU,CAAC,IAAI,CAAC;gBACpC,cAAc,EAAE,UAAU,CAAC,IAAI,CAAC;gBAChC,kBAAkB,EAAE,UAAU,CAAC,IAAI,CAAC;aACrC;YACD,gBAAgB,EAAE,IAAI;YACtB,aAAa,EAAE,QAAQ;YACvB,iBAAiB,EAAE,IAAI;YACvB,kBAAkB,EAAE,IAAI;YACxB,KAAK,EAAE;gBACL,KAAK,EAAE,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC;gBAC1B,gBAAgB,EAAE,IAAI;gBACtB,mBAAmB,EAAE,IAAI;gBACzB,KAAK,EAAE,UAAU,CAAC,IAAI,CAAC;gBACvB,IAAI,EAAE,UAAU,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;aACtC;YACD,QAAQ,EAAE;gBACR,WAAW,EAAE,IAAI;aAClB;YACD,OAAO,EAAE,EAAE;YACX,SAAS,EAAE,EAAE;YACb,UAAU,EAAE,EAAE;YACd,UAAU,EAAE,EAAE;YACd,OAAO,EAAE,EAAE;YACX,OAAO,EAAE,EAAW;YACpB,OAAO,EAAE,EAAW;YACpB,KAAK,EAAE,EAAW;YAClB,MAAM,EAAE,EAAW;YACnB,KAAK,EAAE,EAAW;YAClB,OAAO,EAAE,EAAW;YACpB,OAAO,EAAE,EAAW;YACpB,WAAW,EAAE,EAAW;YACxB,MAAM,EAAE,EAAW;YAEnB,oEAAoE;YACpE,kBAAkB,EAAE,EAAW;YAE/B,SAAS;YACT,gBAAgB,EAAE,IAAI;YACtB,mBAAmB,EAAE,IAAI;YACzB,aAAa,EAAE,UAAU,CAAC,KAAK,CAAC;YAChC,MAAM,EAAE,IAAI;YACZ,kBAAkB,EAAE,IAAI;YACxB,QAAQ,EAAE,IAAI;YACd,QAAQ,EAAE,IAAI;YACd,OAAO,EAAE,IAAI;YAEb,sDAAsD;YACtD,UAAU,EAAE,CAAC,IAAS,EAAE,KAAe,EAAE,EAAE,CAAC,IAAI;YAEhD,oCAAoC;YACpC,KAAK,EAAE,IAAI;YACX,OAAO,EAAE,IAAI;YACb,IAAI,EAAE,IAAI;YACV,KAAK,EAAE,IAAI;YACX,KAAK,EAAE,IAAI;YAEX,mBAAmB;YACnB,QAAQ,EAAE,UAAU,CAAC,KAAK,CAAC;YAC3B,gBAAgB,EAAE,UAAU,CAAC,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;YAEpD,oDAAoD;YACpD,WAAW,EAAE,UAAU,CAAC,KAAK,CAAC;YAC9B,qBAAqB,EAAE,UAAU,CAAC,KAAK,CAAC;YACxC,mBAAmB,EAAE,UAAU,CAAC,KAAK,CAAC;YACtC,iBAAiB,EAAE,UAAU,CAAC,KAAK,CAAC;YACpC,iBAAiB,EAAE,UAAU,CAAC,EAAE,CAAC;SAClC,CAAC;IACJ,CAAC;IAED,gFAAgF;IAChF,8DAA8D;IAC9D,IAAI,OAAO,CAAC,CAAC,aAAa,KAAK,WAAW,EAAE,CAAC;QAC3C,CAAC,CAAC,aAAa,GAAG,MAAM,iBAAiB;YACvC,QAAQ,GAAU,EAAE,CAAC;YACrB,WAAW,CAAC,KAAa,IAAS,CAAC;YACnC,OAAO,CAAC,KAAa;gBACnB,OAAO,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;YAC/B,CAAC;YACD,UAAU,CAAC,IAAY,EAAE,KAAK,GAAG,CAAC;gBAChC,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,EAAE,IAAI,CAAC,CAAC;gBACrC,OAAO,KAAK,CAAC;YACf,CAAC;YACD,UAAU,CAAC,MAAc,IAAS,CAAC;SACpC,CAAC;IACJ,CAAC;IAED,+EAA+E;IAC/E,IAAI,OAAO,CAAC,CAAC,MAAM,KAAK,WAAW,EAAE,CAAC;QACpC,CAAC,CAAC,MAAM,GAAG;YACT,6DAA6D;YAC7D,UAAU,EAAE,IAAI;YAChB,WAAW,EAAE,GAAG;YAChB,UAAU,EAAE,IAAI;YAChB,WAAW,EAAE,GAAG;YAChB,gBAAgB,EAAE,CAAC;YACnB,OAAO,EAAE,CAAC;YACV,OAAO,EAAE,CAAC;YAEV,SAAS;YACT,MAAM,EAAE;gBACN,KAAK,EAAE,IAAI;gBACX,MAAM,EAAE,IAAI;gBACZ,UAAU,EAAE,IAAI;gBAChB,WAAW,EAAE,IAAI;gBACjB,UAAU,EAAE,EAAE;gBACd,UAAU,EAAE,EAAE;gBACd,GAAG,EAAE,CAAC;gBACN,IAAI,EAAE,CAAC;gBACP,QAAQ,EAAE,CAAC;gBACX,SAAS,EAAE,CAAC;gBACZ,WAAW,EAAE;oBACX,IAAI,EAAE,mBAAmB;oBACzB,KAAK,EAAE,CAAC;oBACR,gBAAgB,EAAE,IAAI;oBACtB,mBAAmB,EAAE,IAAI;oBACzB,aAAa,EAAE,UAAU,CAAC,KAAK,CAAC;iBACjC;aACF;YAED,kBAAkB;YAClB,cAAc,EAAE;gBACd,KAAK,EAAE,IAAI;gBACX,MAAM,EAAE,GAAG;gBACX,KAAK,EAAE,CAAC;gBACR,UAAU,EAAE,CAAC;gBACb,SAAS,EAAE,CAAC;gBACZ,QAAQ,EAAE,CAAC;gBACX,OAAO,EAAE,CAAC;gBACV,gBAAgB,EAAE,IAAI;gBACtB,mBAAmB,EAAE,IAAI;gBACzB,aAAa,EAAE,UAAU,CAAC,KAAK,CAAC;gBAChC,QAAQ,EAAE,IAAI;gBACd,QAAQ,EAAE,IAAI;aACf;YAED,WAAW;YACX,MAAM,EAAE,kBAAkB;YAC1B,eAAe,EAAE,KAAK;YACtB,mBAAmB,EAAE,KAAK;YAE1B,+DAA+D;YAC/D,QAAQ,EAAE;gBACR,IAAI,EAAE,mBAAmB;gBACzB,MAAM,EAAE,kBAAkB;gBAC1B,QAAQ,EAAE,OAAO;gBACjB,IAAI,EAAE,WAAW;gBACjB,QAAQ,EAAE,WAAW;gBACrB,IAAI,EAAE,EAAE;gBACR,QAAQ,EAAE,GAAG;gBACb,MAAM,EAAE,EAAE;gBACV,IAAI,EAAE,EAAE;gBACR,MAAM,EAAE,IAAI;gBACZ,OAAO,EAAE,IAAI;gBACb,MAAM,EAAE,IAAI;aACb;YAED,UAAU;YACV,OAAO,EAAE;gBACP,MAAM,EAAE,CAAC;gBACT,SAAS,EAAE,IAAI;gBACf,YAAY,EAAE,IAAI;gBAClB,EAAE,EAAE,IAAI;gBACR,IAAI,EAAE,IAAI;gBACV,OAAO,EAAE,IAAI;gBACb,KAAK,EAAE,IAAI;aACZ;YAED,UAAU;YACV,YAAY,EAAE;gBACZ,OAAO,EAAE,UAAU,CAAC,IAAI,CAAC;gBACzB,OAAO,EAAE,IAAI;gBACb,UAAU,EAAE,IAAI;gBAChB,KAAK,EAAE,IAAI;gBACX,MAAM,EAAE,CAAC;gBACT,GAAG,EAAE,UAAU,CAAC,IAAI,CAAC;aACtB;YACD,cAAc,EAAE;gBACd,OAAO,EAAE,UAAU,CAAC,IAAI,CAAC;gBACzB,OAAO,EAAE,IAAI;gBACb,UAAU,EAAE,IAAI;gBAChB,KAAK,EAAE,IAAI;gBACX,MAAM,EAAE,CAAC;gBACT,GAAG,EAAE,UAAU,CAAC,IAAI,CAAC;aACtB;YAED,SAAS;YACT,gBAAgB,EAAE,IAAI;YACtB,mBAAmB,EAAE,IAAI;YACzB,aAAa,EAAE,UAAU,CAAC,KAAK,CAAC;YAEhC,SAAS;YACT,qBAAqB,EAAE,CAAC,EAAwB,EAAU,EAAE;gBAC1D,6CAA6C;gBAC7C,UAAU,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC;gBAClB,OAAO,CAAC,CAAC;YACX,CAAC;YACD,oBAAoB,EAAE,IAAI;YAC1B,mBAAmB,EAAE,CAAC,EAAuB,EAAU,EAAE;gBACvD,UAAU,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,EAAE,aAAa,EAAE,GAAG,EAAE,CAAC,EAAE,EAAE,UAAU,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;gBACxE,OAAO,CAAC,CAAC;YACX,CAAC;YACD,kBAAkB,EAAE,IAAI;YACxB,UAAU,EAAE,UAAU,CAAC,UAAU,CAAC,IAAI,CAAC,UAAU,CAAC;YAClD,YAAY,EAAE,UAAU,CAAC,YAAY,CAAC,IAAI,CAAC,UAAU,CAAC;YACtD,WAAW,EAAE,UAAU,CAAC,WAAW,CAAC,IAAI,CAAC,UAAU,CAAC;YACpD,aAAa,EAAE,UAAU,CAAC,aAAa,CAAC,IAAI,CAAC,UAAU,CAAC;YAExD,0BAA0B;YAC1B,gBAAgB,EAAE;gBAChB,OAAO,KAAU,CAAC;gBAClB,UAAU,KAAU,CAAC;gBACrB,WAAW;oBACT,OAAO,EAAE,CAAC;gBACZ,CAAC;aACF;YACD,cAAc,EAAE;gBACd,OAAO,KAAU,CAAC;gBAClB,UAAU,KAAU,CAAC;gBACrB,SAAS,KAAU,CAAC;aACrB;YACD,oBAAoB,EAAE;gBACpB,OAAO,KAAU,CAAC;gBAClB,UAAU,KAAU,CAAC;gBACrB,SAAS,KAAU,CAAC;aACrB;YAED,eAAe;YACf,gBAAgB,EAAE,CAAC,GAAY,EAAgC,EAAE,CAAC,CAAC,EAAE,CAAC;YACtE,UAAU,EAAE,CAAC,MAAc,EAAE,EAAE,CAAC,CAAC;gBAC/B,OAAO,EAAE,KAAK;gBACd,KAAK,EAAE,MAAM;gBACb,QAAQ,EAAE,IAAI;gBACd,WAAW,EAAE,IAAI;gBACjB,cAAc,EAAE,IAAI;gBACpB,gBAAgB,EAAE,IAAI;gBACtB,mBAAmB,EAAE,IAAI;gBACzB,aAAa,EAAE,UAAU,CAAC,KAAK,CAAC;aACjC,CAAC;YAEF,cAAc;YACd,WAAW,EAAE;gBACX,GAAG,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,GAAG,EAAE;gBACrB,IAAI,EAAE,IAAI;gBACV,OAAO,EAAE,IAAI;gBACb,UAAU,EAAE,IAAI;gBAChB,aAAa,EAAE,IAAI;gBACnB,gBAAgB,EAAE,UAAU,CAAC,EAAE,CAAC;gBAChC,gBAAgB,EAAE,UAAU,CAAC,EAAE,CAAC;aACjC;YAED,YAAY;YACZ,SAAS,EAAE;gBACT,SAAS,EAAE,WAAW;gBACtB,QAAQ,EAAE,OAAO;gBACjB,SAAS,EAAE,CAAC,OAAO,CAAC;gBACpB,MAAM,EAAE,IAAI;gBACZ,QAAQ,EAAE,QAAQ;aACnB;YAED,OAAO;YACP,QAAQ,EAAE,IAAI;YACd,QAAQ,EAAE,IAAI;YACd,IAAI,EAAE,UAAU,CAAC,IAAI,CAAC;YACtB,KAAK,EAAE,IAAI;YACX,KAAK,EAAE,IAAI;YACX,IAAI,EAAE,IAAI;YACV,KAAK,EAAE,IAAI;YACX,OAAO,EAAE,UAAU,CAAC,KAAK,CAAC;YAC1B,MAAM,EAAE,UAAU,CAAC,IAAI,CAAC;YACxB,KAAK,EAAE,OAAO,KAAK,KAAK,WAAW,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS;YACvD,MAAM,EACJ,OAAO,MAAM,KAAK,WAAW;gBAC3B,CAAC,CAAC,MAAM;gBACR,CAAC,CAAC;oBACE,eAAe,EAAE,CAAC,GAAQ,EAAE,EAAE,CAAC,GAAG;oBAClC,UAAU,EAAE,GAAG,EAAE,CAAC,UAAU;iBAC7B;YAEP,iBAAiB;YACjB,IAAI,IAAI;gBACN,OAAO,CAAC,CAAC,MAAM,CAAC;YAClB,CAAC;YACD,IAAI,GAAG;gBACL,OAAO,CAAC,CAAC,MAAM,CAAC;YAClB,CAAC;YACD,IAAI,MAAM;gBACR,OAAO,CAAC,CAAC,MAAM,CAAC;YAClB,CAAC;YACD,IAAI,UAAU;gBACZ,OAAO,CAAC,CAAC;YACX,CAAC;SACF,CAAC;QAEF,mEAAmE;QACnE,IAAI,OAAO,CAAC,CAAC,QAAQ,KAAK,WAAW;YAAE,CAAC,CAAC,QAAQ,GAAG,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC;QACtE,IAAI,OAAO,CAAC,CAAC,OAAO,KAAK,WAAW;YAAE,CAAC,CAAC,OAAO,GAAG,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC;QACnE,IAAI,OAAO,CAAC,CAAC,WAAW,KAAK,WAAW;YACtC,CAAC,CAAC,WAAW,GAAG,CAAC,CAAC,MAAM,CAAC,WAAW,CAAC;QACvC,IAAI,OAAO,CAAC,CAAC,SAAS,KAAK,WAAW;YAAE,CAAC,CAAC,SAAS,GAAG,CAAC,CAAC,MAAM,CAAC,SAAS,CAAC;QACzE,IAAI,OAAO,CAAC,CAAC,YAAY,KAAK,WAAW;YACvC,CAAC,CAAC,YAAY,GAAG,CAAC,CAAC,MAAM,CAAC,YAAY,CAAC;QACzC,IAAI,OAAO,CAAC,CAAC,cAAc,KAAK,WAAW;YACzC,CAAC,CAAC,cAAc,GAAG,CAAC,CAAC,MAAM,CAAC,cAAc,CAAC;QAC7C,IAAI,OAAO,CAAC,CAAC,MAAM,KAAK,WAAW;YAAE,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC;QAChE,IAAI,OAAO,CAAC,CAAC,qBAAqB,KAAK,WAAW;YAChD,CAAC,CAAC,qBAAqB,GAAG,CAAC,CAAC,MAAM,CAAC,qBAAqB,CAAC;QAC3D,IAAI,OAAO,CAAC,CAAC,oBAAoB,KAAK,WAAW;YAC/C,CAAC,CAAC,oBAAoB,GAAG,CAAC,CAAC,MAAM,CAAC,oBAAoB,CAAC;QACzD,IAAI,OAAO,CAAC,CAAC,gBAAgB,KAAK,WAAW;YAC3C,CAAC,CAAC,gBAAgB,GAAG,CAAC,CAAC,MAAM,CAAC,gBAAgB,CAAC;QACjD,IAAI,OAAO,CAAC,CAAC,cAAc,KAAK,WAAW;YACzC,CAAC,CAAC,cAAc,GAAG,CAAC,CAAC,MAAM,CAAC,cAAc,CAAC;QAC7C,IAAI,OAAO,CAAC,CAAC,oBAAoB,KAAK,WAAW;YAC/C,CAAC,CAAC,oBAAoB,GAAG,CAAC,CAAC,MAAM,CAAC,oBAAoB,CAAC;QACzD,IAAI,OAAO,CAAC,CAAC,UAAU,KAAK,WAAW;YAAE,CAAC,CAAC,UAAU,GAAG,CAAC,CAAC,MAAM,CAAC,UAAU,CAAC;IAC9E,CAAC;IAED,+EAA+E;IAC/E,IAAI,OAAO,CAAC,CAAC,cAAc,KAAK,WAAW,EAAE,CAAC;QAC5C,MAAM,SAAS,GAAG,IAAI,GAAG,EAAe,CAAC;QACzC,CAAC,CAAC,cAAc,GAAG;YACjB,GAAG,EAAE,CAAC,IAAY,EAAE,EAAE,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC;YAC1C,WAAW,EAAE,CAAC,KAAa,EAAE,EAAE,CAAC,OAAO,CAAC,OAAO,EAAE;YACjD,OAAO,EAAE,IAAI;YACb,MAAM,CACJ,IAAY,EACZ,WAAqC,EACrC,QAAmC;gBAEnC,6DAA6D;gBAC7D,+BAA+B;gBAC/B,IAAI,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC;oBAAE,OAAO;gBAChC,SAAS,CAAC,GAAG,CAAC,IAAI,EAAE,WAAW,CAAC,CAAC;YACnC,CAAC;SACF,CAAC;IACJ,CAAC;SAAM,IAAI,CAAC,CAAC,cAAc,IAAI,CAAC,CAAC,CAAC,cAAc,CAAC,0BAA0B,EAAE,CAAC;QAC5E,6EAA6E;QAC7E,MAAM,IAAI,GAAG,CAAC,CAAC,cAAc,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC;QAC5D,CAAC,CAAC,cAAc,CAAC,MAAM,GAAG,UACxB,IAAY,EACZ,IAA8B,EAC9B,IAA+B;YAE/B,IAAI,CAAC,CAAC,cAAc,CAAC,GAAG,CAAC,IAAI,CAAC;gBAAE,OAAO;YACvC,IAAI,CAAC;gBACH,IAAI,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;YACzB,CAAC;YAAC,MAAM,CAAC;gBACP,YAAY;YACd,CAAC;QACH,CAAC,CAAC;QACF,CAAC,CAAC,cAAc,CAAC,0BAA0B,GAAG,IAAI,CAAC;IACrD,CAAC;IAED,+EAA+E;IAC/E,mEAAmE;IACnE,yDAAyD;IACzD,gFAAgF;IAChF,6EAA6E;IAC7E,yEAAyE;IACzE,4EAA4E;IAC5E,2EAA2E;IAC3E,+BAA+B;IAE/B,IAAI,OAAO,CAAC,CAAC,WAAW,KAAK,WAAW,EAAE,CAAC;QACzC,CAAC,CAAC,WAAW,GAAG,MAAM,eAAe;YACnC,wEAAwE;YACxE,QAAQ,GAAG,CAAC,CAAC;YACb,QAAQ,GAAG,EAAE,CAAC;YACd,OAAO,GAAG,EAAE,CAAC;YACb,OAAO,GAAG,mBAAmB,CAAC;YAC9B,aAAa,GAAQ,IAAI,CAAC;YAC1B,UAAU,GAAQ,IAAI,CAAC;YACvB,aAAa,GAAQ,IAAI,CAAC;YAC1B,UAAU,GAAU,EAAE,CAAC;YACvB,QAAQ,GAAU,EAAE,CAAC;YACrB,UAAU,GAAQ,IAAI,CAAC;YACvB,SAAS,GAAQ,IAAI,CAAC;YACtB,WAAW,GAAQ,IAAI,CAAC;YACxB,eAAe,GAAQ,IAAI,CAAC;YAC5B,WAAW,GAAG,EAAE,CAAC;YACjB,SAAS,GAAQ,IAAI,CAAC;YACtB,WAAW,GAAG,KAAK,CAAC;YAEpB,wEAAwE;YACxE,SAAS,GAAG,EAAE,CAAC;YACf,SAAS,GAAG,EAAE,CAAC;YACf,EAAE,GAAG,EAAE,CAAC;YACR,SAAS,GAAG,EAAE,CAAC;YACf,SAAS,GAAG;gBACV,GAAG,EAAE,IAAI;gBACT,MAAM,EAAE,IAAI;gBACZ,QAAQ,EAAE,UAAU,CAAC,KAAK,CAAC;gBAC3B,MAAM,EAAE,UAAU,CAAC,KAAK,CAAC;gBACzB,OAAO,EAAE,IAAI;gBACb,IAAI,EAAE,UAAU,CAAC,IAAI,CAAC;gBACtB,gBAAgB,EAAE,IAAI;gBACtB,mBAAmB,EAAE,IAAI;gBACzB,OAAO,EAAE,IAAI;gBACb,MAAM,EAAE,CAAC;gBACT,QAAQ,EAAE,UAAU,CAAC,EAAE,CAAC;gBACxB,KAAK,EAAE,EAAE;aACV,CAAC;YACF,KAAK,GAAwB,EAAE,CAAC;YAChC,OAAO,GAA2B,EAAE,CAAC;YACrC,UAAU,GAAQ,EAAE,MAAM,EAAE,CAAC,EAAE,CAAC;YAChC,QAAQ,GAAG,CAAC,CAAC,CAAC;YACd,GAAG,GAAG,EAAE,CAAC;YACT,MAAM,GAAG,KAAK,CAAC;YACf,IAAI,GAAG,EAAE,CAAC;YACV,IAAI,GAAG,EAAE,CAAC;YACV,SAAS,GAAG,CAAC,CAAC;YACd,UAAU,GAAG,CAAC,CAAC;YACf,SAAS,GAAG,CAAC,CAAC;YACd,UAAU,GAAG,CAAC,CAAC;YACf,WAAW,GAAG,CAAC,CAAC;YAChB,YAAY,GAAG,CAAC,CAAC;YACjB,YAAY,GAAQ,IAAI,CAAC;YACzB,SAAS,GAAG,EAAE,CAAC;YACf,YAAY,GAAG,8BAA8B,CAAC;YAC9C,MAAM,GAAQ,IAAI,CAAC;YAEnB,wEAAwE;YACxE,IAAI,GAAQ,IAAI,CAAC;YACjB,SAAS,GAAQ,IAAI,CAAC;YACtB,UAAU,GAAQ,IAAI,CAAC;YAEvB,yEAAyE;YACzE,UAAU,GAAQ,IAAI,CAAC;YAEvB,0EAA0E;YAC1E,gBAAgB,GAAG,IAAI,CAAC;YACxB,mBAAmB,GAAG,IAAI,CAAC;YAC3B,aAAa,GAAG,UAAU,CAAC,KAAK,CAAC,CAAC;YAElC,YAAY,GAAG,IAAI,CAAC;YACpB,YAAY,GAAG,UAAU,CAAC,IAAI,CAAC,CAAC;YAChC,iBAAiB,GAAG,UAAU,CAAC,EAAE,CAAC,CAAC;YACnC,YAAY,GAAG,UAAU,CAAC,KAAK,CAAC,CAAC;YACjC,aAAa,GAAG,UAAU,CAAC,KAAK,CAAC,CAAC;YAClC,eAAe,GAAG,IAAI,CAAC;YACvB,eAAe,GAAG,UAAU,CAAC,KAAK,CAAC,CAAC;YAEpC,WAAW,GAAG,UAAqB,KAAU;gBAC3C,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;gBAC5B,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;gBAC1B,KAAK,CAAC,UAAU,GAAG,IAAI,CAAC;gBACxB,OAAO,KAAK,CAAC;YACf,CAAC,CAAC;YACF,WAAW,GAAG,UAAqB,KAAU;gBAC3C,MAAM,GAAG,GAAG,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;gBAC3C,IAAI,GAAG,KAAK,CAAC,CAAC;oBAAE,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;gBAC/C,OAAO,KAAK,CAAC;YACf,CAAC,CAAC;YACF,YAAY,GAAG,UAAqB,KAAU,EAAE,IAAS;gBACvD,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;gBAC5B,KAAK,CAAC,UAAU,GAAG,IAAI,CAAC;gBACxB,OAAO,KAAK,CAAC;YACf,CAAC,CAAC;YACF,YAAY,GAAG,UAAqB,KAAU,EAAE,GAAQ;gBACtD,MAAM,GAAG,GAAG,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;gBACzC,IAAI,GAAG,KAAK,CAAC,CAAC;oBAAE,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,GAAG,EAAE,CAAC,EAAE,KAAK,CAAC,CAAC;gBACtD,OAAO,GAAG,CAAC;YACb,CAAC,CAAC;YACF,QAAQ,GAAG,UAAU,CAAC,KAAK,CAAC,CAAC;YAC7B,aAAa,GAAG,UAAU,CAAC,KAAK,CAAC,CAAC;YAClC,SAAS,GAAG,UAAqB,KAAe;gBAC9C,OAAO,EAAE,GAAG,IAAI,EAAE,UAAU,EAAE,EAAE,EAAE,QAAQ,EAAE,EAAE,EAAE,CAAC;YACnD,CAAC,CAAC;YACF,WAAW,GAAG,UAAU,CAAC,IAAI,CAAC,CAAC;YAC/B,UAAU,GAAG,UAAqB,KAAU;gBAC1C,OAAO,IAAI,KAAK,KAAK,CAAC;YACxB,CAAC,CAAC;YACF,uBAAuB,GAAG,UAAU,CAAC,CAAC,CAAC,CAAC;YACxC,SAAS,GAAG,IAAI,CAAC;YAEjB,OAAO,GAAG,UAAU,CAAC,IAAI,CAAC,CAAC;YAC3B,OAAO,GAAG,UAAU,CAAC,KAAK,CAAC,CAAC;YAC5B,aAAa,GAAG,UAAU,CAAC,IAAI,CAAC,CAAC;YACjC,gBAAgB,GAAG,UAAU,CAAC,EAAE,CAAC,CAAC;YAClC,oBAAoB,GAAG,UAAU,CAAC,EAAE,CAAC,CAAC;YACtC,sBAAsB,GAAG,UAAU,CAAC,EAAE,CAAC,CAAC;YAExC,qBAAqB,GAAG,UAAU,CAAC;gBACjC,CAAC,EAAE,CAAC;gBACJ,CAAC,EAAE,CAAC;gBACJ,KAAK,EAAE,CAAC;gBACR,MAAM,EAAE,CAAC;gBACT,GAAG,EAAE,CAAC;gBACN,KAAK,EAAE,CAAC;gBACR,MAAM,EAAE,CAAC;gBACT,IAAI,EAAE,CAAC;gBACP,MAAM,EAAE,UAAU,CAAC,EAAE,CAAC;aACvB,CAAC,CAAC;YACH,cAAc,GAAG,UAAU,CAAC,EAAE,CAAC,CAAC;YAEhC,cAAc,GAAG,IAAI,CAAC;YACtB,MAAM,GAAG,IAAI,CAAC;YACd,QAAQ,GAAG,IAAI,CAAC;YAChB,QAAQ,GAAG,IAAI,CAAC;YAChB,KAAK,GAAG,IAAI,CAAC;YACb,IAAI,GAAG,IAAI,CAAC;YACZ,KAAK,GAAG,IAAI,CAAC;YAEb,kBAAkB,GAAG,IAAI,CAAC;YAC1B,qBAAqB,GAAG,UAAU,CAAC,IAAI,CAAC,CAAC;YACzC,kBAAkB,GAAG,IAAI,CAAC;YAE1B,WAAW,GAAG,IAAI,CAAC;YACnB,MAAM,GAAG,IAAI,CAAC;YACd,MAAM,GAAG,IAAI,CAAC;YACd,KAAK,GAAG,IAAI,CAAC;YACb,OAAO,GAAG,IAAI,CAAC;YACf,MAAM,GAAG,IAAI,CAAC;YAEd,YAAY,GAAG,UAAqB,KAAsB;gBACxD,MAAM,IAAI,GAAG,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,IAAI,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,SAAS,EAAE,EAAE,EAAE,CAAC;gBACxE,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;gBACvB,OAAO,IAAI,CAAC;YACd,CAAC,CAAC;YAEF,aAAa,GAAQ,UAAU,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,CAAC;YACrD,OAAO,GAAQ,UAAU,CAAC,IAAI,CAAC,CAAC;YAEhC,oDAAoD;YACpD,KAAK,GAAG,EAAE,CAAC;YACX,OAAO,GAAG,KAAK,CAAC;YAChB,QAAQ,GAAG,KAAK,CAAC;YACjB,IAAI,GAAG,EAAE,CAAC;YACV,IAAI,GAAG,MAAM,CAAC;YACd,IAAI,GAAQ,IAAI,CAAC;YACjB,KAAK,GAAQ,IAAI,CAAC;YAClB,QAAQ,GAAG,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC;YAC3B,iBAAiB,GAAG,EAAE,CAAC;YACvB,cAAc,GAAG,UAAU,CAAC,IAAI,CAAC,CAAC;YAClC,iBAAiB,GAAG,IAAI,CAAC;YACzB,MAAM,GAAG,IAAI,CAAC;YAEd,QAAQ;gBACN,OAAO,WAAW,IAAI,CAAC,OAAO,IAAI,SAAS,GAAG,CAAC;YACjD,CAAC;SACF,CAAC;IACJ,CAAC;IAED,8EAA8E;IAC9E,yEAAyE;IACzE,wEAAwE;IACxE,MAAM,UAAU,GAAG;QACjB,gBAAgB;QAChB,iBAAiB;QACjB,sBAAsB;QACtB,mBAAmB;QACnB,kBAAkB;QAClB,kBAAkB;QAClB,mBAAmB;QACnB,iBAAiB;QACjB,qBAAqB;QACrB,mBAAmB;QACnB,mBAAmB;QACnB,eAAe;QACf,kBAAkB;QAClB,kBAAkB;QAClB,kBAAkB;QAClB,qBAAqB;QACrB,sBAAsB;QACtB,oBAAoB;QACpB,eAAe;QACf,eAAe;QACf,qBAAqB;QACrB,mBAAmB;QACnB,kBAAkB;QAClB,kBAAkB;QAClB,mBAAmB;QACnB,mBAAmB;QACnB,kBAAkB;QAClB,iBAAiB;QACjB,iBAAiB;QACjB,kBAAkB;QAClB,iBAAiB;QACjB,iBAAiB;QACjB,iBAAiB;QACjB,mBAAmB;QACnB,kBAAkB;QAClB,qBAAqB;QACrB,mBAAmB;QACnB,qBAAqB;QACrB,qBAAqB;QACrB,kBAAkB;QAClB,iBAAiB;QACjB,oBAAoB;QACpB,mBAAmB;QACnB,iBAAiB;QACjB,oBAAoB;QACpB,eAAe;QACf,kBAAkB;QAClB,gBAAgB;QAChB,gBAAgB;QAChB,gBAAgB;QAChB,gBAAgB;QAChB,aAAa;QACb,gBAAgB;QAChB,eAAe;QACf,iBAAiB;QACjB,kBAAkB;KACnB,CAAC;IAEF,KAAK,MAAM,IAAI,IAAI,UAAU,EAAE,CAAC;QAC9B,IAAI,OAAQ,CAAS,CAAC,IAAI,CAAC,KAAK,WAAW,EAAE,CAAC;YAC3C,CAAS,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,WAAW,CAAC;QACnC,CAAC;IACH,CAAC;IAED,IAAI,OAAO,CAAC,CAAC,UAAU,KAAK,WAAW;QAAE,CAAC,CAAC,UAAU,GAAG,CAAC,CAAC,WAAW,CAAC;IACtE,IAAI,OAAO,CAAC,CAAC,OAAO,KAAK,WAAW;QAAE,CAAC,CAAC,OAAO,GAAG,CAAC,CAAC,WAAW,CAAC;IAChE,IAAI,OAAO,CAAC,CAAC,gBAAgB,KAAK,WAAW,EAAE,CAAC;QAC9C,CAAC,CAAC,gBAAgB,GAAG,CAAC,CAAC,WAAW,CAAC;IACrC,CAAC;IACD,IAAI,OAAO,CAAC,CAAC,IAAI,KAAK,WAAW,EAAE,CAAC;QAClC,CAAC,CAAC,IAAI,GAAG,MAAM,QAAQ;YACrB,QAAQ,GAAG,CAAC,CAAC;YACb,QAAQ,GAAG,OAAO,CAAC;YACnB,IAAI,GAAG,EAAE,CAAC;YACV,WAAW,GAAG,EAAE,CAAC;YACjB,SAAS,GAAG,EAAE,CAAC;YACf,SAAS,GAAG,UAAU,CAAC,EAAE,CAAC,CAAC;YAC3B,gBAAgB,GAAG,IAAI,CAAC;SACzB,CAAC;IACJ,CAAC;IACD,IAAI,OAAO,CAAC,CAAC,OAAO,KAAK,WAAW,EAAE,CAAC;QACrC,CAAC,CAAC,OAAO,GAAG,MAAM,WAAW;YAC3B,QAAQ,GAAG,CAAC,CAAC;YACb,QAAQ,GAAG,UAAU,CAAC;YACtB,IAAI,GAAG,EAAE,CAAC;YACV,WAAW,GAAG,EAAE,CAAC;SAClB,CAAC;IACJ,CAAC;IACD,IAAI,OAAO,CAAC,CAAC,SAAS,KAAK,WAAW,EAAE,CAAC;QACvC,CAAC,CAAC,SAAS,GAAG,MAAM,aAAa;YAC/B,eAAe;gBACb,OAAO,CAAC,CAAC,QAAQ,IAAI,EAAE,aAAa,EAAE,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC;YAC3D,CAAC;SACF,CAAC;IACJ,CAAC;IAED,IAAI,OAAO,CAAC,CAAC,IAAI,KAAK,WAAW,EAAE,CAAC;QAClC,CAAC,CAAC,IAAI,GAAG,MAAM,QAAQ;SAAG,CAAC;QAC1B,CAAC,CAAC,IAAY,CAAC,YAAY,GAAG,CAAC,CAAC;QAChC,CAAC,CAAC,IAAY,CAAC,SAAS,GAAG,CAAC,CAAC;QAC7B,CAAC,CAAC,IAAY,CAAC,YAAY,GAAG,CAAC,CAAC;QAChC,CAAC,CAAC,IAAY,CAAC,sBAAsB,GAAG,EAAE,CAAC;QAC3C,CAAC,CAAC,IAAY,CAAC,8BAA8B,GAAG,CAAC,CAAC;QAClD,CAAC,CAAC,IAAY,CAAC,2BAA2B,GAAG,CAAC,CAAC;QAC/C,CAAC,CAAC,IAAY,CAAC,2BAA2B,GAAG,CAAC,CAAC;QAC/C,CAAC,CAAC,IAAY,CAAC,0BAA0B,GAAG,CAAC,CAAC;QAC9C,CAAC,CAAC,IAAY,CAAC,8BAA8B,GAAG,EAAE,CAAC;QACnD,CAAC,CAAC,IAAY,CAAC,yCAAyC,GAAG,EAAE,CAAC;IACjE,CAAC;IACD,IAAI,OAAO,CAAC,CAAC,UAAU,KAAK,WAAW,EAAE,CAAC;QACxC,CAAC,CAAC,UAAU,GAAG;YACb,QAAQ,EAAE,UAAU;YACpB,YAAY,EAAE,CAAC;YACf,SAAS,EAAE,CAAC;YACZ,YAAY,EAAE,GAAG;YACjB,aAAa,EAAE,GAAG;YAClB,sBAAsB,EAAE,IAAI;YAC5B,aAAa,EAAE,CAAC;YAChB,aAAa,EAAE,CAAC;YAChB,WAAW,EAAE,CAAC;SACf,CAAC;IACJ,CAAC;IAED,gFAAgF;IAChF,IAAI,OAAO,CAAC,CAAC,KAAK,KAAK,WAAW,EAAE,CAAC;QACnC,CAAC,CAAC,KAAK,GAAG,MAAM,SAAS;YACvB,IAAI,CAAS;YACb,OAAO,CAAU;YACjB,UAAU,CAAU;YACpB,gBAAgB,GAAG,KAAK,CAAC;YACzB,eAAe,GAAG,IAAI,CAAC;YACvB,cAAc,GAAG,IAAI,CAAC;YACtB,wBAAwB,GAAG,IAAI,CAAC;YAChC,YAAY,IAAY,EAAE,IAAgB;gBACxC,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;gBACjB,IAAI,CAAC,OAAO,GAAG,IAAI,EAAE,OAAO,IAAI,KAAK,CAAC;gBACtC,IAAI,CAAC,UAAU,GAAG,IAAI,EAAE,UAAU,IAAI,KAAK,CAAC;YAC9C,CAAC;SACF,CAAC;IACJ,CAAC;IACD,IAAI,OAAO,CAAC,CAAC,WAAW,KAAK,WAAW,EAAE,CAAC;QACzC,CAAC,CAAC,WAAW,GAAG,MAAM,eAAgB,SAAQ,CAAC,CAAC,KAAK;YACnD,MAAM,CAAM;YACZ,YAAY,IAAY,EAAE,IAAsB;gBAC9C,KAAK,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;gBAClB,IAAI,CAAC,MAAM,GAAG,IAAI,EAAE,MAAM,IAAI,IAAI,CAAC;YACrC,CAAC;SACF,CAAC;IACJ,CAAC;AACH,CAAC"}
@@ -0,0 +1,73 @@
1
+ /**
2
+ * mates-fullstack — ssr-template.ts
3
+ *
4
+ * Serialize a lit-html TemplateResult tree directly to an HTML string.
5
+ *
6
+ * No DOM. No happy-dom. No global patching. Concurrent-safe.
7
+ *
8
+ * How lit-html TemplateResult works (v3.x):
9
+ * html`<p class=${cls}>${text}</p>`
10
+ * → { _$litType$: 1, strings: ["<p class=", ">", "</p>"], values: [cls, text] }
11
+ *
12
+ * strings — the literal template parts (safe HTML from source code)
13
+ * values — the evaluated expressions (must be sanitized)
14
+ *
15
+ * The serializer interleaves strings and values, detecting the binding type
16
+ * (child / attribute / property / boolean / event / element) from the end of
17
+ * each string, and handles each type accordingly.
18
+ *
19
+ * Special handling:
20
+ * - <x-view .view=${fn} .props=${p}> — Mates component embedding.
21
+ * Detected by tag name. Collects .view/.props, runs the component
22
+ * function, serializes the child TemplateResult recursively.
23
+ * - DirectiveResult — instantiated with a mock PartInfo, render() called.
24
+ * - Boolean attributes (?attr) — backtrack and remove if falsy.
25
+ * - Event handlers (@event) — always stripped.
26
+ * - Property bindings (.prop, except .view/.props on x-view) — always stripped.
27
+ * - Element directives (eleHook, portal, etc.) — silently skipped.
28
+ */
29
+ /** lit-html 3.x TemplateResult shape (verified from source). */
30
+ export interface TemplateResult {
31
+ _$litType$: 1 | 2 | 3;
32
+ strings: readonly string[];
33
+ values: readonly unknown[];
34
+ }
35
+ /** Context passed from renderer to serializer. */
36
+ export interface SsrTemplateCtx {
37
+ /** The mates module (withHost, pathAtom, etc.). */
38
+ mates: any;
39
+ /** Factory for SSR fake hosts (for nested x-view components). */
40
+ makeFakeHost: () => any;
41
+ /**
42
+ * The root component's fake host.
43
+ * When set, child x-view components push their async work
44
+ * (onMount queues, asyncAction promises) into this host so
45
+ * the outer async drain loop can process them.
46
+ */
47
+ rootHost?: any;
48
+ /**
49
+ * Cache for already-initialized child component template functions.
50
+ * Keyed by a stable identifier derived from the view function reference.
51
+ * Prevents re-running outer functions on re-render iterations.
52
+ * Each SSR request gets its own cache.
53
+ */
54
+ componentCache?: Map<any, {
55
+ templateFn: () => any;
56
+ host: any;
57
+ }>;
58
+ }
59
+ /** Escape for text content (child nodes). */
60
+ export declare function escapeHtml(str: string): string;
61
+ /** Escape for attribute values (inside quotes). */
62
+ export declare function escapeAttr(str: string): string;
63
+ /**
64
+ * Serialize a lit-html TemplateResult to an HTML string.
65
+ *
66
+ * Pure function — no side effects, no globals modified, concurrent-safe.
67
+ *
68
+ * @param tpl The TemplateResult returned by html`...`
69
+ * @param ctx SSR context with mates module and fake host factory
70
+ * @returns HTML string ready to inject into the page shell
71
+ */
72
+ export declare function ssrTemplate(tpl: TemplateResult, ctx: SsrTemplateCtx): string;
73
+ //# sourceMappingURL=ssr-template.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ssr-template.d.ts","sourceRoot":"","sources":["../src/ssr-template.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AAIH,gEAAgE;AAChE,MAAM,WAAW,cAAc;IAC7B,UAAU,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IACtB,OAAO,EAAE,SAAS,MAAM,EAAE,CAAC;IAC3B,MAAM,EAAE,SAAS,OAAO,EAAE,CAAC;CAC5B;AAqBD,kDAAkD;AAClD,MAAM,WAAW,cAAc;IAC7B,mDAAmD;IACnD,KAAK,EAAE,GAAG,CAAC;IACX,iEAAiE;IACjE,YAAY,EAAE,MAAM,GAAG,CAAC;IACxB;;;;;OAKG;IACH,QAAQ,CAAC,EAAE,GAAG,CAAC;IACf;;;;;OAKG;IACH,cAAc,CAAC,EAAE,GAAG,CAAC,GAAG,EAAE;QAAE,UAAU,EAAE,MAAM,GAAG,CAAC;QAAC,IAAI,EAAE,GAAG,CAAA;KAAE,CAAC,CAAC;CACjE;AAiDD,6CAA6C;AAC7C,wBAAgB,UAAU,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAO9C;AAED,mDAAmD;AACnD,wBAAgB,UAAU,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAO9C;AAkFD;;;;;;;;GAQG;AACH,wBAAgB,WAAW,CAAC,GAAG,EAAE,cAAc,EAAE,GAAG,EAAE,cAAc,GAAG,MAAM,CAY5E"}
@@ -0,0 +1,507 @@
1
+ /**
2
+ * mates-fullstack — ssr-template.ts
3
+ *
4
+ * Serialize a lit-html TemplateResult tree directly to an HTML string.
5
+ *
6
+ * No DOM. No happy-dom. No global patching. Concurrent-safe.
7
+ *
8
+ * How lit-html TemplateResult works (v3.x):
9
+ * html`<p class=${cls}>${text}</p>`
10
+ * → { _$litType$: 1, strings: ["<p class=", ">", "</p>"], values: [cls, text] }
11
+ *
12
+ * strings — the literal template parts (safe HTML from source code)
13
+ * values — the evaluated expressions (must be sanitized)
14
+ *
15
+ * The serializer interleaves strings and values, detecting the binding type
16
+ * (child / attribute / property / boolean / event / element) from the end of
17
+ * each string, and handles each type accordingly.
18
+ *
19
+ * Special handling:
20
+ * - <x-view .view=${fn} .props=${p}> — Mates component embedding.
21
+ * Detected by tag name. Collects .view/.props, runs the component
22
+ * function, serializes the child TemplateResult recursively.
23
+ * - DirectiveResult — instantiated with a mock PartInfo, render() called.
24
+ * - Boolean attributes (?attr) — backtrack and remove if falsy.
25
+ * - Event handlers (@event) — always stripped.
26
+ * - Property bindings (.prop, except .view/.props on x-view) — always stripped.
27
+ * - Element directives (eleHook, portal, etc.) — silently skipped.
28
+ */
29
+ // ─── lit-html symbols ─────────────────────────────────────────────────────────
30
+ // Verified from lit-html.js source: Symbol.for('lit-nothing') and Symbol.for('lit-noChange')
31
+ const LIT_NOTHING = Symbol.for("lit-nothing");
32
+ const LIT_NO_CHANGE = Symbol.for("lit-noChange");
33
+ // PartType constants (from directive.js)
34
+ const PART_TYPE_ATTRIBUTE = 1;
35
+ const PART_TYPE_CHILD = 2;
36
+ // ─── Type guards ──────────────────────────────────────────────────────────────
37
+ function isTemplateResult(v) {
38
+ return (typeof v === "object" &&
39
+ v !== null &&
40
+ "_$litType$" in v &&
41
+ "strings" in v &&
42
+ "values" in v);
43
+ }
44
+ function isDirectiveResult(v) {
45
+ return (typeof v === "object" &&
46
+ v !== null &&
47
+ "_$litDirective$" in v &&
48
+ "values" in v);
49
+ }
50
+ function isNothing(v) {
51
+ return (v === LIT_NOTHING || v === LIT_NO_CHANGE || v === null || v === undefined);
52
+ }
53
+ // ─── HTML escaping ────────────────────────────────────────────────────────────
54
+ /** Escape for text content (child nodes). */
55
+ export function escapeHtml(str) {
56
+ return str
57
+ .replace(/&/g, "&amp;")
58
+ .replace(/</g, "&lt;")
59
+ .replace(/>/g, "&gt;")
60
+ .replace(/"/g, "&quot;")
61
+ .replace(/'/g, "&#39;");
62
+ }
63
+ /** Escape for attribute values (inside quotes). */
64
+ export function escapeAttr(str) {
65
+ return str
66
+ .replace(/&/g, "&amp;")
67
+ .replace(/"/g, "&quot;")
68
+ .replace(/'/g, "&#39;")
69
+ .replace(/</g, "&lt;")
70
+ .replace(/>/g, "&gt;");
71
+ }
72
+ // ─── Attribute context state machine ─────────────────────────────────────────
73
+ //
74
+ // Determines the binding type for each values[i] by scanning through
75
+ // strings[0..i] and tracking open-tag state.
76
+ //
77
+ // For each string[i], we scan character-by-character to update:
78
+ // inTag: boolean — are we currently between < and > of an open tag?
79
+ // inQuote: string — are we inside a quoted attribute value?
80
+ //
81
+ // After scanning string[i], the state tells us the context for values[i].
82
+ // Within the tag, the end of string[i] reveals the attribute prefix.
83
+ function computePartContexts(strings) {
84
+ const n = strings.length - 1; // number of values
85
+ const contexts = new Array(n);
86
+ let inTag = false;
87
+ let inQuote = ""; // '' | '"' | "'"
88
+ for (let i = 0; i < n; i++) {
89
+ const str = strings[i];
90
+ // Walk through str updating inTag / inQuote state
91
+ for (let j = 0; j < str.length; j++) {
92
+ const ch = str[j];
93
+ if (inQuote) {
94
+ if (ch === inQuote)
95
+ inQuote = "";
96
+ continue;
97
+ }
98
+ if (!inTag) {
99
+ if (ch === "<") {
100
+ const next = j + 1 < str.length ? str[j + 1] : "";
101
+ // Only opening tags (not </ closing, <! declaration/comment)
102
+ if (next !== "/" && next !== "!" && next !== "?") {
103
+ inTag = true;
104
+ }
105
+ }
106
+ }
107
+ else {
108
+ if (ch === ">") {
109
+ inTag = false;
110
+ }
111
+ else if (ch === '"' || ch === "'") {
112
+ inQuote = ch;
113
+ }
114
+ }
115
+ }
116
+ // After scanning, determine context for values[i]
117
+ if (!inTag) {
118
+ contexts[i] = "child";
119
+ }
120
+ else if (inQuote) {
121
+ // Expression inside a quoted attribute value (e.g. class="todo-item ${x}")
122
+ // Treat as regular attribute context — the value is between quotes.
123
+ contexts[i] = "attr";
124
+ }
125
+ else {
126
+ // Inside an open tag but NOT inside quotes — inspect the end of the string
127
+ // for an attribute name with prefix.
128
+ const attrMatch = str.match(/(?:^|[\s])([.?@]?)([a-zA-Z_:][\w:.-]*)\s*=\s*(?:"[^"]*"|'[^']*')*\s*$/);
129
+ if (attrMatch) {
130
+ const prefix = attrMatch[1];
131
+ if (prefix === "@")
132
+ contexts[i] = "event";
133
+ else if (prefix === ".")
134
+ contexts[i] = "prop";
135
+ else if (prefix === "?")
136
+ contexts[i] = "bool";
137
+ else
138
+ contexts[i] = "attr";
139
+ }
140
+ else {
141
+ // Inside a tag but no trailing attribute assignment — element directive
142
+ contexts[i] = "element";
143
+ }
144
+ }
145
+ }
146
+ return contexts;
147
+ }
148
+ // ─── Main serializer ──────────────────────────────────────────────────────────
149
+ /**
150
+ * Serialize a lit-html TemplateResult to an HTML string.
151
+ *
152
+ * Pure function — no side effects, no globals modified, concurrent-safe.
153
+ *
154
+ * @param tpl The TemplateResult returned by html`...`
155
+ * @param ctx SSR context with mates module and fake host factory
156
+ * @returns HTML string ready to inject into the page shell
157
+ */
158
+ export function ssrTemplate(tpl, ctx) {
159
+ if (!isTemplateResult(tpl))
160
+ return "";
161
+ // lit-html uses _$litType$ to distinguish template types:
162
+ // 1 = html, 2 = svg, 3 = mathml
163
+ // During DOM rendering, lit-html wraps svg/mathml content in root elements.
164
+ // We do the same for SSR so the output is valid HTML.
165
+ const litType = tpl._$litType$;
166
+ let out = _serializeTemplate(tpl, ctx);
167
+ if (litType === 2)
168
+ out = `<svg>${out}</svg>`;
169
+ else if (litType === 3)
170
+ out = `<math>${out}</math>`;
171
+ return out;
172
+ }
173
+ function _serializeTemplate(tpl, ctx) {
174
+ const { strings, values } = tpl;
175
+ const n = strings.length - 1; // number of values = strings.length - 1
176
+ if (n === 0) {
177
+ // No expressions — just the static string
178
+ return strings[0] ?? "";
179
+ }
180
+ const contexts = computePartContexts(strings);
181
+ let out = "";
182
+ // x-view collection state
183
+ let inXView = false;
184
+ let xViewFn = null;
185
+ let xViewProps = {};
186
+ for (let i = 0; i <= n; i++) {
187
+ const str = strings[i] ?? "";
188
+ if (inXView) {
189
+ // We're collecting x-view properties — don't emit strings until
190
+ // the open tag closes
191
+ const gtIdx = str.indexOf(">");
192
+ if (gtIdx !== -1) {
193
+ // The x-view open tag is closed — run the component
194
+ inXView = false;
195
+ _serializeXView(xViewFn, xViewProps, ctx, (html) => {
196
+ out += html;
197
+ });
198
+ // Emit content after the x-view open tag close
199
+ // The rest of str after > may be the start of child content
200
+ // or contain </x-view>. Strip the </x-view> if present.
201
+ const afterGt = str.slice(gtIdx + 1);
202
+ const closeTagIdx = afterGt.indexOf("</x-view>");
203
+ if (closeTagIdx !== -1) {
204
+ // Emit whatever comes after </x-view>
205
+ out += afterGt.slice(closeTagIdx + "</x-view>".length);
206
+ }
207
+ else {
208
+ out += afterGt;
209
+ }
210
+ }
211
+ // Still collecting — don't emit anything from this string
212
+ }
213
+ else {
214
+ // Check if this string starts (or contains) an <x-view opening
215
+ const xviewIdx = str.search(/<x-view[\s>]/);
216
+ if (xviewIdx !== -1 && i < n) {
217
+ // Emit everything before <x-view
218
+ out += str.slice(0, xviewIdx);
219
+ // Enter x-view collection mode
220
+ inXView = true;
221
+ xViewFn = null;
222
+ xViewProps = {};
223
+ // Don't emit the rest of the string (it's the tag opening)
224
+ }
225
+ else {
226
+ out += str;
227
+ }
228
+ }
229
+ if (i >= n)
230
+ break; // no more values
231
+ const value = values[i];
232
+ const partCtx = contexts[i];
233
+ if (inXView) {
234
+ // Collect x-view property values
235
+ if (partCtx === "prop") {
236
+ // Extract property name from the preceding string's tail
237
+ const precedingStr = strings[i] ?? "";
238
+ const propMatch = precedingStr.match(/\.([a-zA-Z][a-zA-Z0-9-]*)\s*=\s*$/);
239
+ if (propMatch) {
240
+ const propName = propMatch[1];
241
+ if (propName === "view")
242
+ xViewFn = value;
243
+ else if (propName === "props")
244
+ xViewProps = value ?? {};
245
+ }
246
+ }
247
+ // Skip non-prop values in x-view collection mode
248
+ }
249
+ else {
250
+ const backtrackFn = (suffix) => {
251
+ // Remove suffix from the end of out.
252
+ // IMPORTANT: must be a separate statement — not inside +=
253
+ // so that out is read AFTER the mutation.
254
+ if (out.endsWith(suffix)) {
255
+ out = out.slice(0, out.length - suffix.length);
256
+ }
257
+ else {
258
+ // Fallback: regex replace
259
+ out = out.replace(new RegExp(suffix.replace(/[.*+?^${}()|[\]\\]/g, "\\$&") + "$"), "");
260
+ }
261
+ };
262
+ // CRITICAL: two separate statements — not out += _serializeValue(...)
263
+ // because += captures the old value of `out` before evaluating the RHS,
264
+ // which means the backtrack mutation would be overwritten.
265
+ const serialized = _serializeValue(value, partCtx, strings[i] ?? "", ctx, backtrackFn);
266
+ out += serialized;
267
+ }
268
+ }
269
+ return out;
270
+ }
271
+ // ─── x-view component runner ─────────────────────────────────────────────────
272
+ function _serializeXView(viewFn, props, ctx, emit) {
273
+ if (!viewFn || typeof viewFn !== "function")
274
+ return;
275
+ if (!ctx.mates?.withHost)
276
+ return;
277
+ try {
278
+ // Component caching: prevent re-running the outer function on re-render
279
+ // iterations. The outer function creates atoms, effects, and asyncAction
280
+ // instances — running it again creates NEW instances that lose the data
281
+ // resolved by the previous iteration.
282
+ let templateFn = null;
283
+ let componentHost;
284
+ if (ctx.componentCache?.has(viewFn)) {
285
+ const cached = ctx.componentCache.get(viewFn);
286
+ templateFn = cached.templateFn;
287
+ componentHost = cached.host;
288
+ }
289
+ else {
290
+ const fakeHost = ctx.makeFakeHost();
291
+ templateFn = ctx.mates.withHost(fakeHost, () => viewFn(() => props));
292
+ componentHost = fakeHost;
293
+ if (ctx.componentCache && typeof templateFn === "function") {
294
+ ctx.componentCache.set(viewFn, { templateFn, host: fakeHost });
295
+ }
296
+ }
297
+ if (typeof templateFn !== "function")
298
+ return;
299
+ const result = templateFn();
300
+ if (!result)
301
+ return;
302
+ if (isTemplateResult(result)) {
303
+ emit(_serializeTemplate(result, ctx));
304
+ }
305
+ // Push child component's async work into the root host
306
+ if (ctx.rootHost && componentHost) {
307
+ if (componentHost._asyncMountQueue?.length) {
308
+ ctx.rootHost._asyncMountQueue.push(...componentHost._asyncMountQueue.splice(0));
309
+ }
310
+ if (componentHost._ssrPromiseQueue?.length) {
311
+ ctx.rootHost._ssrPromiseQueue.push(...componentHost._ssrPromiseQueue.splice(0));
312
+ }
313
+ }
314
+ }
315
+ catch (err) {
316
+ // Component failed to render — silently emit nothing in production.
317
+ // In dev mode, log the error so the developer knows about the failure.
318
+ if (process.env.NODE_ENV !== "production") {
319
+ const name = typeof viewFn === "function" ? viewFn.name || "Anonymous" : "unknown";
320
+ console.error(`[mates-ssr] Component "${name}" failed during SSR render:`, err);
321
+ }
322
+ // The client will hydrate and render the correct output.
323
+ }
324
+ }
325
+ // ─── Value serialization ──────────────────────────────────────────────────────
326
+ function _serializeValue(value, partCtx, precedingStr, ctx, backtrack) {
327
+ // ── Always skip ────────────────────────────────────────────────────────────
328
+ // lit's nothing/noChange, JS null/undefined → produce no output.
329
+ if (isNothing(value)) {
330
+ // For boolean/event/prop, remove the attribute prefix from output
331
+ _handleSkippedBinding(partCtx, precedingStr, backtrack);
332
+ return "";
333
+ }
334
+ // ── Event handlers (@event=) ──────────────────────────────────────────────
335
+ if (partCtx === "event") {
336
+ // Remove @eventname= that was already emitted
337
+ const m = precedingStr.match(/(\s+@[\w:.-]+\s*=\s*)$/);
338
+ if (m)
339
+ backtrack(m[1]);
340
+ return "";
341
+ }
342
+ // ── Property bindings (.prop=) ────────────────────────────────────────────
343
+ // (x-view .view/.props are handled before this point in _serializeTemplate)
344
+ if (partCtx === "prop") {
345
+ const m = precedingStr.match(/(\s+\.[\w:.-]+\s*=\s*)$/);
346
+ if (m)
347
+ backtrack(m[1]);
348
+ return "";
349
+ }
350
+ // ── Element directives ────────────────────────────────────────────────────
351
+ // eleHook, lifecycleDirectives, portal, popup, etc. — skip silently.
352
+ if (partCtx === "element") {
353
+ return "";
354
+ }
355
+ // ── Boolean attributes (?attr=) ───────────────────────────────────────────
356
+ if (partCtx === "bool") {
357
+ const m = precedingStr.match(/(\s+\?)([\w:.-]+)(\s*=\s*)$/);
358
+ if (m) {
359
+ // Remove ?attrname= from output
360
+ backtrack(m[1] + m[2] + m[3]);
361
+ if (value) {
362
+ // Re-emit attrname (without ? and =)
363
+ return " " + m[2];
364
+ }
365
+ }
366
+ return "";
367
+ }
368
+ // ── TemplateResult — recurse ──────────────────────────────────────────────
369
+ if (isTemplateResult(value)) {
370
+ if (partCtx === "child")
371
+ return _serializeTemplate(value, ctx);
372
+ // TemplateResult in attribute context — unusual but handle safely
373
+ return escapeAttr(_serializeTemplate(value, ctx));
374
+ }
375
+ // ── Arrays — map each element ─────────────────────────────────────────────
376
+ if (Array.isArray(value)) {
377
+ return value
378
+ .map((item) => {
379
+ if (isNothing(item))
380
+ return "";
381
+ if (isTemplateResult(item))
382
+ return _serializeTemplate(item, ctx);
383
+ if (isDirectiveResult(item))
384
+ return _serializeDirective(item, partCtx, ctx);
385
+ if (item === null || item === undefined)
386
+ return "";
387
+ return partCtx === "child"
388
+ ? escapeHtml(String(item))
389
+ : escapeAttr(String(item));
390
+ })
391
+ .join("");
392
+ }
393
+ // ── DirectiveResult — instantiate and call render() ───────────────────────
394
+ if (isDirectiveResult(value)) {
395
+ // Extract attribute name from preceding string so directives that validate
396
+ // their attribute context (styleMap requires style=, classMap requires class=)
397
+ // get the correct name.
398
+ let attrName;
399
+ if (partCtx === "attr") {
400
+ const m = precedingStr.match(/([a-zA-Z_:][-\w:.]*)\s*=\s*$/);
401
+ attrName = m?.[1];
402
+ }
403
+ return _serializeDirective(value, partCtx, ctx, attrName);
404
+ }
405
+ // ── Functions — event handlers not caught by partCtx ─────────────────────
406
+ // In some template patterns, a function may appear in child context.
407
+ // The function is an event handler or callback — skip.
408
+ if (typeof value === "function")
409
+ return "";
410
+ // ── Boolean in child context ──────────────────────────────────────────────
411
+ // `${show && html`...`}` produces false when show is false — render nothing.
412
+ if (typeof value === "boolean")
413
+ return "";
414
+ // ── Promise — drain loop handles data, return empty placeholder ───────────
415
+ if (value &&
416
+ typeof value === "object" &&
417
+ typeof value.then === "function") {
418
+ return "";
419
+ }
420
+ // ── Primitive — escape and emit ───────────────────────────────────────────
421
+ const str = String(value);
422
+ return partCtx === "child" ? escapeHtml(str) : escapeAttr(str);
423
+ }
424
+ /** Strip already-emitted attribute prefix for bindings that produce no output. */
425
+ function _handleSkippedBinding(partCtx, precedingStr, backtrack) {
426
+ if (partCtx === "event") {
427
+ const m = precedingStr.match(/(\s+@[\w:.-]+\s*=\s*)$/);
428
+ if (m)
429
+ backtrack(m[1]);
430
+ }
431
+ else if (partCtx === "prop") {
432
+ const m = precedingStr.match(/(\s+\.[\w:.-]+\s*=\s*)$/);
433
+ if (m)
434
+ backtrack(m[1]);
435
+ }
436
+ else if (partCtx === "bool") {
437
+ const m = precedingStr.match(/(\s+\?[\w:.-]+\s*=\s*)$/);
438
+ if (m)
439
+ backtrack(m[1]);
440
+ }
441
+ else if (partCtx === "attr") {
442
+ // nothing/noChange in a regular attribute: remove the attribute entirely:
443
+ // html`<div class=${nothing}></div>` → <div></div>
444
+ const m = precedingStr.match(/(\s+[a-zA-Z_:][-\w:.]*\s*=\s*)$/);
445
+ if (m)
446
+ backtrack(m[1]);
447
+ }
448
+ }
449
+ // ─── Directive serialization ──────────────────────────────────────────────────
450
+ /** Mock PartInfo used to construct directive instances. */
451
+ const CHILD_PART_INFO = { type: PART_TYPE_CHILD };
452
+ function _makeAttrPartInfo(name) {
453
+ return { type: PART_TYPE_ATTRIBUTE, name, strings: ["", ""] };
454
+ }
455
+ function _serializeDirective(dr, partCtx, ctx, attrName) {
456
+ try {
457
+ const cls = dr._$litDirective$;
458
+ const args = dr.values;
459
+ // Choose PartInfo based on context
460
+ const partInfo = partCtx === "child"
461
+ ? CHILD_PART_INFO
462
+ : _makeAttrPartInfo(attrName ?? "class");
463
+ const instance = new cls(partInfo);
464
+ const result = instance.render(...args);
465
+ if (isNothing(result))
466
+ return "";
467
+ if (result === LIT_NO_CHANGE)
468
+ return "";
469
+ // unsafeHTML returns a TemplateResult with one string and no values —
470
+ // the single string IS the raw HTML. ssrTemplate emits it unescaped.
471
+ if (isTemplateResult(result)) {
472
+ return _serializeTemplate(result, ctx);
473
+ }
474
+ // classMap returns " class1 class2 " — trim and emit
475
+ // styleMap returns "color:red;display:flex;" — emit as-is
476
+ if (typeof result === "string") {
477
+ if (partCtx === "child")
478
+ return escapeHtml(result);
479
+ return result; // attribute values from directives are already formatted
480
+ }
481
+ // repeat() returns an array of TemplateResults
482
+ if (Array.isArray(result)) {
483
+ return result
484
+ .map((item) => {
485
+ if (isNothing(item))
486
+ return "";
487
+ if (isTemplateResult(item))
488
+ return _serializeTemplate(item, ctx);
489
+ return partCtx === "child"
490
+ ? escapeHtml(String(item))
491
+ : escapeAttr(String(item));
492
+ })
493
+ .join("");
494
+ }
495
+ if (typeof result === "boolean")
496
+ return "";
497
+ return partCtx === "child"
498
+ ? escapeHtml(String(result))
499
+ : escapeAttr(String(result));
500
+ }
501
+ catch {
502
+ // Directive failed (e.g. needs real DOM, wrong PartType, etc.) — skip.
503
+ // Never crash SSR due to a directive.
504
+ return "";
505
+ }
506
+ }
507
+ //# sourceMappingURL=ssr-template.js.map