@dooboostore/simple-boot-http-server-ssr 1.0.14 → 1.0.16

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 (184) hide show
  1. package/README.md +98 -0
  2. package/dist/cjs/SimpleBootHttpSSRFactory.js.map +1 -1
  3. package/dist/cjs/SimpleBootHttpSSRServer.js +1 -0
  4. package/dist/cjs/SimpleBootHttpSSRServer.js.map +2 -2
  5. package/dist/cjs/bundle-entry.js +0 -4
  6. package/dist/cjs/bundle-entry.js.map +2 -2
  7. package/dist/cjs/filters/SSRDomParserFilter.js +54 -89
  8. package/dist/cjs/filters/SSRDomParserFilter.js.map +2 -2
  9. package/dist/cjs/filters/SSRFilter.js +10 -14
  10. package/dist/cjs/filters/SSRFilter.js.map +2 -2
  11. package/dist/cjs/filters/{SSRLinkDomDomFilter.js → SSRLinkDomFilter.js} +17 -21
  12. package/dist/cjs/filters/SSRLinkDomFilter.js.map +7 -0
  13. package/dist/cjs/filters/SSRSimpleWebComponentDomParserFilter.js +81 -0
  14. package/dist/cjs/filters/SSRSimpleWebComponentDomParserFilter.js.map +7 -0
  15. package/dist/cjs/filters/SSRSimpleWebComponentFilter.js +223 -0
  16. package/dist/cjs/filters/SSRSimpleWebComponentFilter.js.map +7 -0
  17. package/dist/cjs/filters/SSRWorker.js +2 -2
  18. package/dist/cjs/filters/SSRWorker.js.map +2 -2
  19. package/dist/cjs/filters/index.js +9 -3
  20. package/dist/cjs/filters/index.js.map +2 -2
  21. package/dist/cjs/index.js +16 -8
  22. package/dist/cjs/index.js.map +2 -2
  23. package/dist/cjs/initializers/DomParserInitializer.js +5 -2
  24. package/dist/cjs/initializers/DomParserInitializer.js.map +2 -2
  25. package/dist/cjs/proxy/SSRDomParserFilterDataHydrationProxy.js +92 -0
  26. package/dist/cjs/proxy/SSRDomParserFilterDataHydrationProxy.js.map +7 -0
  27. package/dist/cjs/proxy/index.js +2 -8
  28. package/dist/cjs/proxy/index.js.map +2 -2
  29. package/dist/esm/SimpleBootHttpSSRFactory.js.map +1 -1
  30. package/dist/esm/SimpleBootHttpSSRServer.js +1 -0
  31. package/dist/esm/SimpleBootHttpSSRServer.js.map +2 -2
  32. package/dist/esm/bundle-entry.js +0 -2
  33. package/dist/esm/bundle-entry.js.map +2 -2
  34. package/dist/esm/filters/SSRDomParserFilter.js +52 -87
  35. package/dist/esm/filters/SSRDomParserFilter.js.map +2 -2
  36. package/dist/esm/filters/SSRFilter.js +7 -11
  37. package/dist/esm/filters/SSRFilter.js.map +2 -2
  38. package/dist/esm/filters/{SSRLinkDomDomFilter.js → SSRLinkDomFilter.js} +10 -14
  39. package/dist/esm/filters/SSRLinkDomFilter.js.map +7 -0
  40. package/dist/esm/filters/SSRSimpleWebComponentDomParserFilter.js +58 -0
  41. package/dist/esm/filters/SSRSimpleWebComponentDomParserFilter.js.map +7 -0
  42. package/dist/esm/filters/SSRSimpleWebComponentFilter.js +190 -0
  43. package/dist/esm/filters/SSRSimpleWebComponentFilter.js.map +7 -0
  44. package/dist/esm/filters/SSRWorker.js +1 -1
  45. package/dist/esm/filters/SSRWorker.js.map +2 -2
  46. package/dist/esm/filters/index.js +4 -1
  47. package/dist/esm/filters/index.js.map +2 -2
  48. package/dist/esm/index.js +6 -4
  49. package/dist/esm/index.js.map +2 -2
  50. package/dist/esm/initializers/DomParserInitializer.js +6 -3
  51. package/dist/esm/initializers/DomParserInitializer.js.map +2 -2
  52. package/dist/esm/proxy/SSRDomParserFilterDataHydrationProxy.js +69 -0
  53. package/dist/esm/proxy/SSRDomParserFilterDataHydrationProxy.js.map +7 -0
  54. package/dist/esm/proxy/index.js +1 -4
  55. package/dist/esm/proxy/index.js.map +2 -2
  56. package/dist/esm-bundle/dooboostore-simple-boot-http-server-ssr.esm.js +56266 -10404
  57. package/dist/esm-bundle/dooboostore-simple-boot-http-server-ssr.esm.js.map +4 -4
  58. package/dist/types/SimpleBootHttpSSRFactory.d.ts +1 -1
  59. package/dist/types/SimpleBootHttpSSRFactory.d.ts.map +1 -1
  60. package/dist/types/SimpleBootHttpSSRServer.d.ts +3 -2
  61. package/dist/types/SimpleBootHttpSSRServer.d.ts.map +1 -1
  62. package/dist/types/bundle-entry.d.ts +0 -2
  63. package/dist/types/bundle-entry.d.ts.map +1 -1
  64. package/dist/types/filters/SSRDomParserFilter.d.ts +12 -18
  65. package/dist/types/filters/SSRDomParserFilter.d.ts.map +1 -1
  66. package/dist/types/filters/SSRFilter.d.ts +1 -1
  67. package/dist/types/filters/SSRFilter.d.ts.map +1 -1
  68. package/dist/types/filters/{SSRLinkDomDomFilter.d.ts → SSRLinkDomFilter.d.ts} +6 -6
  69. package/dist/types/filters/SSRLinkDomFilter.d.ts.map +1 -0
  70. package/dist/types/filters/SSRSimpleWebComponentDomParserFilter.d.ts +37 -0
  71. package/dist/types/filters/SSRSimpleWebComponentDomParserFilter.d.ts.map +1 -0
  72. package/dist/types/filters/SSRSimpleWebComponentFilter.d.ts +57 -0
  73. package/dist/types/filters/SSRSimpleWebComponentFilter.d.ts.map +1 -0
  74. package/dist/types/filters/SSRWorker.d.ts +1 -1
  75. package/dist/types/filters/SSRWorker.d.ts.map +1 -1
  76. package/dist/types/filters/index.d.ts +4 -1
  77. package/dist/types/filters/index.d.ts.map +1 -1
  78. package/dist/types/index.d.ts +6 -2
  79. package/dist/types/index.d.ts.map +1 -1
  80. package/dist/types/initializers/DomParserInitializer.d.ts +2 -0
  81. package/dist/types/initializers/DomParserInitializer.d.ts.map +1 -1
  82. package/dist/types/proxy/SSRDomParserFilterDataHydrationProxy.d.ts +7 -0
  83. package/dist/types/proxy/SSRDomParserFilterDataHydrationProxy.d.ts.map +1 -0
  84. package/dist/types/proxy/index.d.ts +1 -4
  85. package/dist/types/proxy/index.d.ts.map +1 -1
  86. package/dist/umd-bundle/dooboostore-simple-boot-http-server-ssr.umd.js +56265 -10408
  87. package/dist/umd-bundle/dooboostore-simple-boot-http-server-ssr.umd.js.map +4 -4
  88. package/package.json +22 -15
  89. package/src/SimpleBootHttpSSRFactory.ts +1 -1
  90. package/src/SimpleBootHttpSSRServer.ts +5 -4
  91. package/src/bundle-entry.ts +0 -2
  92. package/src/filters/SSRDomParserFilter.ts +113 -126
  93. package/src/filters/SSRFilter.ts +7 -12
  94. package/src/filters/{SSRLinkDomDomFilter.ts → SSRLinkDomFilter.ts} +10 -15
  95. package/src/filters/SSRSimpleWebComponentDomParserFilter.ts +106 -0
  96. package/src/filters/SSRSimpleWebComponentFilter.ts +306 -0
  97. package/src/filters/SSRWorker.ts +1 -2
  98. package/src/filters/index.ts +5 -2
  99. package/src/index.ts +6 -9
  100. package/src/initializers/DomParserInitializer.ts +9 -2
  101. package/src/proxy/SSRDomParserFilterDataHydrationProxy.ts +63 -0
  102. package/src/proxy/index.ts +1 -4
  103. package/tsconfig.json +1 -0
  104. package/README.MD +0 -36
  105. package/dist/cjs/codes/HttpHeaders.js +0 -41
  106. package/dist/cjs/codes/HttpHeaders.js.map +0 -7
  107. package/dist/cjs/codes/Mimes.js +0 -33
  108. package/dist/cjs/codes/Mimes.js.map +0 -7
  109. package/dist/cjs/codes/index.js +0 -24
  110. package/dist/cjs/codes/index.js.map +0 -7
  111. package/dist/cjs/decorators/LoadAroundBefore.js +0 -54
  112. package/dist/cjs/decorators/LoadAroundBefore.js.map +0 -7
  113. package/dist/cjs/decorators/SaveAroundAfter.js +0 -53
  114. package/dist/cjs/decorators/SaveAroundAfter.js.map +0 -7
  115. package/dist/cjs/decorators/index.js +0 -24
  116. package/dist/cjs/decorators/index.js.map +0 -7
  117. package/dist/cjs/filters/IntentSchemeFilter.js +0 -92
  118. package/dist/cjs/filters/IntentSchemeFilter.js.map +0 -7
  119. package/dist/cjs/filters/SSRLinkDomDomFilter.js.map +0 -7
  120. package/dist/cjs/proxy/IntentSchemeFrontProxy.js +0 -87
  121. package/dist/cjs/proxy/IntentSchemeFrontProxy.js.map +0 -7
  122. package/dist/cjs/proxy/IntentSchemeServerProxy.js +0 -67
  123. package/dist/cjs/proxy/IntentSchemeServerProxy.js.map +0 -7
  124. package/dist/cjs/proxy/SymbolIntentApiServiceProxy.js +0 -138
  125. package/dist/cjs/proxy/SymbolIntentApiServiceProxy.js.map +0 -7
  126. package/dist/cjs/proxy/SymbolIntentApiServiceProxyBase.js +0 -35
  127. package/dist/cjs/proxy/SymbolIntentApiServiceProxyBase.js.map +0 -7
  128. package/dist/esm/codes/HttpHeaders.js +0 -17
  129. package/dist/esm/codes/HttpHeaders.js.map +0 -7
  130. package/dist/esm/codes/Mimes.js +0 -10
  131. package/dist/esm/codes/Mimes.js.map +0 -7
  132. package/dist/esm/codes/index.js +0 -3
  133. package/dist/esm/codes/index.js.map +0 -7
  134. package/dist/esm/decorators/LoadAroundBefore.js +0 -31
  135. package/dist/esm/decorators/LoadAroundBefore.js.map +0 -7
  136. package/dist/esm/decorators/SaveAroundAfter.js +0 -29
  137. package/dist/esm/decorators/SaveAroundAfter.js.map +0 -7
  138. package/dist/esm/decorators/index.js +0 -3
  139. package/dist/esm/decorators/index.js.map +0 -7
  140. package/dist/esm/filters/IntentSchemeFilter.js +0 -69
  141. package/dist/esm/filters/IntentSchemeFilter.js.map +0 -7
  142. package/dist/esm/filters/SSRLinkDomDomFilter.js.map +0 -7
  143. package/dist/esm/proxy/IntentSchemeFrontProxy.js +0 -64
  144. package/dist/esm/proxy/IntentSchemeFrontProxy.js.map +0 -7
  145. package/dist/esm/proxy/IntentSchemeServerProxy.js +0 -44
  146. package/dist/esm/proxy/IntentSchemeServerProxy.js.map +0 -7
  147. package/dist/esm/proxy/SymbolIntentApiServiceProxy.js +0 -115
  148. package/dist/esm/proxy/SymbolIntentApiServiceProxy.js.map +0 -7
  149. package/dist/esm/proxy/SymbolIntentApiServiceProxyBase.js +0 -12
  150. package/dist/esm/proxy/SymbolIntentApiServiceProxyBase.js.map +0 -7
  151. package/dist/types/codes/HttpHeaders.d.ts +0 -45
  152. package/dist/types/codes/HttpHeaders.d.ts.map +0 -1
  153. package/dist/types/codes/Mimes.d.ts +0 -31
  154. package/dist/types/codes/Mimes.d.ts.map +0 -1
  155. package/dist/types/codes/index.d.ts +0 -3
  156. package/dist/types/codes/index.d.ts.map +0 -1
  157. package/dist/types/decorators/LoadAroundBefore.d.ts +0 -2
  158. package/dist/types/decorators/LoadAroundBefore.d.ts.map +0 -1
  159. package/dist/types/decorators/SaveAroundAfter.d.ts +0 -3
  160. package/dist/types/decorators/SaveAroundAfter.d.ts.map +0 -1
  161. package/dist/types/decorators/index.d.ts +0 -3
  162. package/dist/types/decorators/index.d.ts.map +0 -1
  163. package/dist/types/filters/IntentSchemeFilter.d.ts +0 -20
  164. package/dist/types/filters/IntentSchemeFilter.d.ts.map +0 -1
  165. package/dist/types/filters/SSRLinkDomDomFilter.d.ts.map +0 -1
  166. package/dist/types/proxy/IntentSchemeFrontProxy.d.ts +0 -4
  167. package/dist/types/proxy/IntentSchemeFrontProxy.d.ts.map +0 -1
  168. package/dist/types/proxy/IntentSchemeServerProxy.d.ts +0 -4
  169. package/dist/types/proxy/IntentSchemeServerProxy.d.ts.map +0 -1
  170. package/dist/types/proxy/SymbolIntentApiServiceProxy.d.ts +0 -18
  171. package/dist/types/proxy/SymbolIntentApiServiceProxy.d.ts.map +0 -1
  172. package/dist/types/proxy/SymbolIntentApiServiceProxyBase.d.ts +0 -5
  173. package/dist/types/proxy/SymbolIntentApiServiceProxyBase.d.ts.map +0 -1
  174. package/src/codes/HttpHeaders.ts +0 -17
  175. package/src/codes/Mimes.ts +0 -6
  176. package/src/codes/index.ts +0 -2
  177. package/src/decorators/LoadAroundBefore.ts +0 -28
  178. package/src/decorators/SaveAroundAfter.ts +0 -27
  179. package/src/decorators/index.ts +0 -2
  180. package/src/filters/IntentSchemeFilter.ts +0 -69
  181. package/src/proxy/IntentSchemeFrontProxy.ts +0 -67
  182. package/src/proxy/IntentSchemeServerProxy.ts +0 -35
  183. package/src/proxy/SymbolIntentApiServiceProxy.ts +0 -115
  184. package/src/proxy/SymbolIntentApiServiceProxyBase.ts +0 -19
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../src/filters/SSRWorker.ts"],
4
- "sourcesContent": ["import { ConstructorType } from '@dooboostore/core/types';\nimport {FactoryAndParams} from './SSRFilter';\nimport {JsdomInitializer} from '../initializers/JsdomInitializer';\nimport JSDOM from 'jsdom';\nimport {RandomUtils} from '@dooboostore/core/random/RandomUtils';\nimport {SimpleBootFront} from '@dooboostore/simple-boot-front/SimpleBootFront';\n\nexport class SSRWorker {\n public welcomUrl = 'http://localhost'\n private simpleBootFront?: SimpleBootFront;\n\n constructor(public factory: FactoryAndParams, public otherInstanceSim?: Map<ConstructorType<any>, any>) {\n\n }\n\n async run() {\n this.simpleBootFront = await this.makeFront();\n }\n\n async makeJsdom() {\n const jsdom = await new JsdomInitializer(this.factory.frontDistPath, this.factory.frontDistIndexFileName || 'index.html', {url: this.welcomUrl}).run();\n return jsdom;\n }\n\n async makeFront(jsdom?: JSDOM.JSDOM) {\n if (!jsdom) {\n jsdom = await this.makeJsdom();\n }\n const name = RandomUtils.uuid();\n // const jsdom = await this.makeJsdom();\n const window = jsdom.window as unknown as Window & typeof globalThis;\n (window as any).ssrUse = false;\n const option = this.factory.factorySimFrontOption(window);\n // option.name = name;\n const simpleBootFront = await this.factory.factory.create(option, this.factory.using, this.factory.domExcludes);\n simpleBootFront.run(this.otherInstanceSim);\n (simpleBootFront as any).jsdom = jsdom;\n return simpleBootFront;\n }\n\n\n async getHtml(url: string) {\n if (this.simpleBootFront && (this.simpleBootFront.option.window as any).ssrUse) {\n\n } else if (this.simpleBootFront) {\n (this.simpleBootFront.option.window as any).ssrUse = true;\n delete (this.simpleBootFront.option.window as any).server_side_data;\n\n // run\n await this.simpleBootFront.goRouting(url);\n let html = this.simpleBootFront.option.window.document.documentElement.outerHTML;\n\n const serverSideData = (this.simpleBootFront.option.window as any).server_side_data;\n if (serverSideData) {\n const data = Object.entries(serverSideData).map(([k, v]) => {\n if (typeof v === 'string') {\n return `window.server_side_data.${k} = ${v}`;\n } else {\n return `window.server_side_data.${k} = ${JSON.stringify(v)}`;\n }\n }).join(';');\n if (data) {\n html = html.replace('</head>', `<script> window.server_side_data={}; ${data}; </script></head>`);\n }\n }\n\n this.makeFront().then(it => {\n this.simpleBootFront = it;\n });\n return html;\n } {\n\n }\n\n }\n}"],
5
- "mappings": ";;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAEA,8BAA+B;AAE/B,yBAA0B;AAGnB,MAAM,UAAU;AAAA,EAInB,YAAmB,SAAkC,kBAAmD;AAArF;AAAkC;AAHrD,SAAO,YAAY;AAAA,EAKnB;AAAA,EAEA,MAAM,MAAM;AACR,SAAK,kBAAkB,MAAM,KAAK,UAAU;AAAA,EAChD;AAAA,EAEA,MAAM,YAAY;AACd,UAAM,QAAQ,MAAM,IAAI,yCAAiB,KAAK,QAAQ,eAAe,KAAK,QAAQ,0BAA0B,cAAc,EAAC,KAAK,KAAK,UAAS,CAAC,EAAE,IAAI;AACrJ,WAAO;AAAA,EACX;AAAA,EAEA,MAAM,UAAU,OAAqB;AACjC,QAAI,CAAC,OAAO;AACR,cAAQ,MAAM,KAAK,UAAU;AAAA,IACjC;AACA,UAAM,OAAO,+BAAY,KAAK;AAE9B,UAAM,SAAS,MAAM;AACrB,IAAC,OAAe,SAAS;AACzB,UAAM,SAAS,KAAK,QAAQ,sBAAsB,MAAM;AAExD,UAAM,kBAAkB,MAAM,KAAK,QAAQ,QAAQ,OAAO,QAAQ,KAAK,QAAQ,OAAO,KAAK,QAAQ,WAAW;AAC9G,oBAAgB,IAAI,KAAK,gBAAgB;AACzC,IAAC,gBAAwB,QAAQ;AACjC,WAAO;AAAA,EACX;AAAA,EAGA,MAAM,QAAQ,KAAa;AACvB,QAAI,KAAK,mBAAoB,KAAK,gBAAgB,OAAO,OAAe,QAAQ;AAAA,IAEhF,WAAW,KAAK,iBAAiB;AAC7B,MAAC,KAAK,gBAAgB,OAAO,OAAe,SAAS;AACrD,aAAQ,KAAK,gBAAgB,OAAO,OAAe;AAGnD,YAAM,KAAK,gBAAgB,UAAU,GAAG;AACxC,UAAI,OAAO,KAAK,gBAAgB,OAAO,OAAO,SAAS,gBAAgB;AAEvE,YAAM,iBAAkB,KAAK,gBAAgB,OAAO,OAAe;AACnE,UAAI,gBAAgB;AAChB,cAAM,OAAO,OAAO,QAAQ,cAAc,EAAE,IAAI,CAAC,CAAC,GAAG,CAAC,MAAM;AACxD,cAAI,OAAO,MAAM,UAAU;AACvB,mBAAO,2BAA2B,CAAC,MAAM,CAAC;AAAA,UAC9C,OAAO;AACH,mBAAO,2BAA2B,CAAC,MAAM,KAAK,UAAU,CAAC,CAAC;AAAA,UAC9D;AAAA,QACJ,CAAC,EAAE,KAAK,GAAG;AACX,YAAI,MAAM;AACN,iBAAO,KAAK,QAAQ,WAAW,wCAAwC,IAAI,oBAAoB;AAAA,QACnG;AAAA,MACJ;AAEA,WAAK,UAAU,EAAE,KAAK,QAAM;AACxB,aAAK,kBAAkB;AAAA,MAC3B,CAAC;AACD,aAAO;AAAA,IACX;AAAE;AAAA,IAEF;AAAA,EAEJ;AACJ;",
4
+ "sourcesContent": ["import { ConstructorType, RandomUtils } from '@dooboostore/core';\nimport {FactoryAndParams} from './SSRFilter';\nimport {JsdomInitializer} from '../initializers/JsdomInitializer';\nimport JSDOM from 'jsdom';\nimport {SimpleBootFront} from '@dooboostore/simple-boot-front/SimpleBootFront';\n\nexport class SSRWorker {\n public welcomUrl = 'http://localhost'\n private simpleBootFront?: SimpleBootFront;\n\n constructor(public factory: FactoryAndParams, public otherInstanceSim?: Map<ConstructorType<any>, any>) {\n\n }\n\n async run() {\n this.simpleBootFront = await this.makeFront();\n }\n\n async makeJsdom() {\n const jsdom = await new JsdomInitializer(this.factory.frontDistPath, this.factory.frontDistIndexFileName || 'index.html', {url: this.welcomUrl}).run();\n return jsdom;\n }\n\n async makeFront(jsdom?: JSDOM.JSDOM) {\n if (!jsdom) {\n jsdom = await this.makeJsdom();\n }\n const name = RandomUtils.uuid();\n // const jsdom = await this.makeJsdom();\n const window = jsdom.window as unknown as Window & typeof globalThis;\n (window as any).ssrUse = false;\n const option = this.factory.factorySimFrontOption(window);\n // option.name = name;\n const simpleBootFront = await this.factory.factory.create(option, this.factory.using, this.factory.domExcludes);\n simpleBootFront.run(this.otherInstanceSim);\n (simpleBootFront as any).jsdom = jsdom;\n return simpleBootFront;\n }\n\n\n async getHtml(url: string) {\n if (this.simpleBootFront && (this.simpleBootFront.option.window as any).ssrUse) {\n\n } else if (this.simpleBootFront) {\n (this.simpleBootFront.option.window as any).ssrUse = true;\n delete (this.simpleBootFront.option.window as any).server_side_data;\n\n // run\n await this.simpleBootFront.goRouting(url);\n let html = this.simpleBootFront.option.window.document.documentElement.outerHTML;\n\n const serverSideData = (this.simpleBootFront.option.window as any).server_side_data;\n if (serverSideData) {\n const data = Object.entries(serverSideData).map(([k, v]) => {\n if (typeof v === 'string') {\n return `window.server_side_data.${k} = ${v}`;\n } else {\n return `window.server_side_data.${k} = ${JSON.stringify(v)}`;\n }\n }).join(';');\n if (data) {\n html = html.replace('</head>', `<script> window.server_side_data={}; ${data}; </script></head>`);\n }\n }\n\n this.makeFront().then(it => {\n this.simpleBootFront = it;\n });\n return html;\n } {\n\n }\n\n }\n}"],
5
+ "mappings": ";;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,kBAA6C;AAE7C,8BAA+B;AAIxB,MAAM,UAAU;AAAA,EAInB,YAAmB,SAAkC,kBAAmD;AAArF;AAAkC;AAHrD,SAAO,YAAY;AAAA,EAKnB;AAAA,EAEA,MAAM,MAAM;AACR,SAAK,kBAAkB,MAAM,KAAK,UAAU;AAAA,EAChD;AAAA,EAEA,MAAM,YAAY;AACd,UAAM,QAAQ,MAAM,IAAI,yCAAiB,KAAK,QAAQ,eAAe,KAAK,QAAQ,0BAA0B,cAAc,EAAC,KAAK,KAAK,UAAS,CAAC,EAAE,IAAI;AACrJ,WAAO;AAAA,EACX;AAAA,EAEA,MAAM,UAAU,OAAqB;AACjC,QAAI,CAAC,OAAO;AACR,cAAQ,MAAM,KAAK,UAAU;AAAA,IACjC;AACA,UAAM,OAAO,wBAAY,KAAK;AAE9B,UAAM,SAAS,MAAM;AACrB,IAAC,OAAe,SAAS;AACzB,UAAM,SAAS,KAAK,QAAQ,sBAAsB,MAAM;AAExD,UAAM,kBAAkB,MAAM,KAAK,QAAQ,QAAQ,OAAO,QAAQ,KAAK,QAAQ,OAAO,KAAK,QAAQ,WAAW;AAC9G,oBAAgB,IAAI,KAAK,gBAAgB;AACzC,IAAC,gBAAwB,QAAQ;AACjC,WAAO;AAAA,EACX;AAAA,EAGA,MAAM,QAAQ,KAAa;AACvB,QAAI,KAAK,mBAAoB,KAAK,gBAAgB,OAAO,OAAe,QAAQ;AAAA,IAEhF,WAAW,KAAK,iBAAiB;AAC7B,MAAC,KAAK,gBAAgB,OAAO,OAAe,SAAS;AACrD,aAAQ,KAAK,gBAAgB,OAAO,OAAe;AAGnD,YAAM,KAAK,gBAAgB,UAAU,GAAG;AACxC,UAAI,OAAO,KAAK,gBAAgB,OAAO,OAAO,SAAS,gBAAgB;AAEvE,YAAM,iBAAkB,KAAK,gBAAgB,OAAO,OAAe;AACnE,UAAI,gBAAgB;AAChB,cAAM,OAAO,OAAO,QAAQ,cAAc,EAAE,IAAI,CAAC,CAAC,GAAG,CAAC,MAAM;AACxD,cAAI,OAAO,MAAM,UAAU;AACvB,mBAAO,2BAA2B,CAAC,MAAM,CAAC;AAAA,UAC9C,OAAO;AACH,mBAAO,2BAA2B,CAAC,MAAM,KAAK,UAAU,CAAC,CAAC;AAAA,UAC9D;AAAA,QACJ,CAAC,EAAE,KAAK,GAAG;AACX,YAAI,MAAM;AACN,iBAAO,KAAK,QAAQ,WAAW,wCAAwC,IAAI,oBAAoB;AAAA,QACnG;AAAA,MACJ;AAEA,WAAK,UAAU,EAAE,KAAK,QAAM;AACxB,aAAK,kBAAkB;AAAA,MAC3B,CAAC;AACD,aAAO;AAAA,IACX;AAAE;AAAA,IAEF;AAAA,EAEJ;AACJ;",
6
6
  "names": []
7
7
  }
@@ -14,13 +14,19 @@ var __reExport = (target, mod, secondTarget) => (__copyProps(target, mod, "defau
14
14
  var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
15
15
  var filters_exports = {};
16
16
  module.exports = __toCommonJS(filters_exports);
17
- __reExport(filters_exports, require("./IntentSchemeFilter"), module.exports);
18
17
  __reExport(filters_exports, require("./SSRFilter"), module.exports);
19
18
  __reExport(filters_exports, require("./SSRWorker"), module.exports);
19
+ __reExport(filters_exports, require("./SSRSimpleWebComponentFilter"), module.exports);
20
+ __reExport(filters_exports, require("./SSRSimpleWebComponentDomParserFilter"), module.exports);
21
+ __reExport(filters_exports, require("./SSRDomParserFilter"), module.exports);
22
+ __reExport(filters_exports, require("./SSRLinkDomFilter"), module.exports);
20
23
  // Annotate the CommonJS export names for ESM import in node:
21
24
  0 && (module.exports = {
22
- ...require("./IntentSchemeFilter"),
23
25
  ...require("./SSRFilter"),
24
- ...require("./SSRWorker")
26
+ ...require("./SSRWorker"),
27
+ ...require("./SSRSimpleWebComponentFilter"),
28
+ ...require("./SSRSimpleWebComponentDomParserFilter"),
29
+ ...require("./SSRDomParserFilter"),
30
+ ...require("./SSRLinkDomFilter")
25
31
  });
26
32
  //# sourceMappingURL=index.js.map
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../src/filters/index.ts"],
4
- "sourcesContent": ["export * from './IntentSchemeFilter';\nexport * from './SSRFilter';\nexport * from './SSRWorker';"],
5
- "mappings": ";;;;;;;;;;;;;;AAAA;AAAA;AAAA,4BAAc,iCAAd;AACA,4BAAc,wBADd;AAEA,4BAAc,wBAFd;",
4
+ "sourcesContent": ["export * from './SSRFilter';\nexport * from './SSRWorker';\nexport * from './SSRSimpleWebComponentFilter';\nexport * from './SSRSimpleWebComponentDomParserFilter';\nexport * from './SSRDomParserFilter';\nexport * from './SSRLinkDomFilter';"],
5
+ "mappings": ";;;;;;;;;;;;;;AAAA;AAAA;AAAA,4BAAc,wBAAd;AACA,4BAAc,wBADd;AAEA,4BAAc,0CAFd;AAGA,4BAAc,mDAHd;AAIA,4BAAc,iCAJd;AAKA,4BAAc,+BALd;",
6
6
  "names": []
7
7
  }
package/dist/cjs/index.js CHANGED
@@ -2,10 +2,6 @@ var __defProp = Object.defineProperty;
2
2
  var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
3
3
  var __getOwnPropNames = Object.getOwnPropertyNames;
4
4
  var __hasOwnProp = Object.prototype.hasOwnProperty;
5
- var __export = (target, all) => {
6
- for (var name in all)
7
- __defProp(target, name, { get: all[name], enumerable: true });
8
- };
9
5
  var __copyProps = (to, from, except, desc) => {
10
6
  if (from && typeof from === "object" || typeof from === "function") {
11
7
  for (let key of __getOwnPropNames(from))
@@ -14,11 +10,23 @@ var __copyProps = (to, from, except, desc) => {
14
10
  }
15
11
  return to;
16
12
  };
13
+ var __reExport = (target, mod, secondTarget) => (__copyProps(target, mod, "default"), secondTarget && __copyProps(secondTarget, mod, "default"));
17
14
  var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
18
15
  var src_exports = {};
19
- __export(src_exports, {
20
- default: () => src_default
21
- });
22
16
  module.exports = __toCommonJS(src_exports);
23
- var src_default = {};
17
+ __reExport(src_exports, require("./filters"), module.exports);
18
+ __reExport(src_exports, require("./initializers"), module.exports);
19
+ __reExport(src_exports, require("./option"), module.exports);
20
+ __reExport(src_exports, require("./proxy"), module.exports);
21
+ __reExport(src_exports, require("./SimpleBootHttpSSRFactory"), module.exports);
22
+ __reExport(src_exports, require("./SimpleBootHttpSSRServer"), module.exports);
23
+ // Annotate the CommonJS export names for ESM import in node:
24
+ 0 && (module.exports = {
25
+ ...require("./filters"),
26
+ ...require("./initializers"),
27
+ ...require("./option"),
28
+ ...require("./proxy"),
29
+ ...require("./SimpleBootHttpSSRFactory"),
30
+ ...require("./SimpleBootHttpSSRServer")
31
+ });
24
32
  //# sourceMappingURL=index.js.map
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../src/index.ts"],
4
- "sourcesContent": ["// export * from './codes';\n// export * from './decorators';\n// export * from './filters';\n// export * from './initializers';\n// export * from './option';\n// export * from './proxy';\n// export * from './SimpleBootHttpSSRFactory';\n// export * from './SimpleBootHttpSSRServer';\nexport default {}"],
5
- "mappings": ";;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAQA,IAAO,cAAQ,CAAC;",
4
+ "sourcesContent": ["export * from './filters';\nexport * from './initializers';\nexport * from './option';\nexport * from './proxy';\nexport * from './SimpleBootHttpSSRFactory';\nexport * from './SimpleBootHttpSSRServer';"],
5
+ "mappings": ";;;;;;;;;;;;;;AAAA;AAAA;AAAA,wBAAc,sBAAd;AACA,wBAAc,2BADd;AAEA,wBAAc,qBAFd;AAGA,wBAAc,oBAHd;AAIA,wBAAc,uCAJd;AAKA,wBAAc,sCALd;",
6
6
  "names": []
7
7
  }
@@ -45,8 +45,8 @@ class DomParserInitializer {
45
45
  async run() {
46
46
  const pathStr = import_path.default.join(this.frontDistPath, this.frontDistIndexFileName);
47
47
  const html = import_fs.default.readFileSync(pathStr, "utf8");
48
- const w = (0, import_dom_parser.parseHTML)(html, { href: this.reconfigureSettings.url });
49
- ;
48
+ this.domParser = new import_dom_parser.DomParser(html, { href: this.reconfigureSettings?.url });
49
+ const w = this.domParser.window;
50
50
  w.location ??= { href: "about:blank" };
51
51
  if (this.reconfigureSettings?.url) {
52
52
  w.location.href = this.reconfigureSettings.url;
@@ -71,6 +71,9 @@ class DomParserInitializer {
71
71
  global.ImageData = w.ImageData;
72
72
  return w;
73
73
  }
74
+ destroy() {
75
+ this.domParser?.destroy();
76
+ }
74
77
  }
75
78
  // Annotate the CommonJS export names for ESM import in node:
76
79
  0 && (module.exports = {
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../src/initializers/DomParserInitializer.ts"],
4
- "sourcesContent": ["import fs from 'fs';\nimport path from 'path';\nimport { parseHTML } from '@dooboostore/dom-parser';\n\nexport class DomParserInitializer {\n constructor(\n private frontDistPath: string,\n private frontDistIndexFileName: string,\n private reconfigureSettings?: {url: string}\n ) {}\n\n public static loadFile(distPath: string, filePath: string): string {\n return fs.readFileSync(path.join(distPath, filePath), 'utf8');\n }\n\n async run(): Promise<Window> {\n // const indexHTML = fs.readFileSync(path.join(this.frontDistPath, 'index.html'), 'utf8');\n // const indexHTML = JsdomInitializer.loadFile(this.frontDistPath, this.frontDistIndexFileName);\n const pathStr = path.join(this.frontDistPath, this.frontDistIndexFileName);\n\n const html = fs.readFileSync(pathStr,'utf8');\n\n const w = parseHTML(html, {href: this.reconfigureSettings.url}) as unknown as Window & typeof globalThis; ;\n\n // @ts-ignore\n w.location ??= { href: 'about:blank'};\n if(this.reconfigureSettings?.url){\n // console.log('--',w,w.location);\n // @ts-ignore\n w.location.href = this.reconfigureSettings.url;\n }\n // console.log('!!!!!!!!!!!', html, w.document);\n // @ts-ignore\n // global.document = w.document;\n // @ts-ignore\n // global.window = w as unknown as Window & typeof globalThis;\n // @ts-ignore\n // global.window.requestAnimationFrame = () => {};\n // global.window.scrollTo = () => {};\n // @ts-ignore\n // global.history = w.history;\n global.Event = w.Event;\n // @ts-ignore\n global.PopStateEvent = w.Event;\n global.IntersectionObserver = w.IntersectionObserver;\n // @ts-ignore\n // global.Error = ErrorBase;\n // @ts-ignore\n // global.navigator = w.navigator;\n global.NodeFilter = w.NodeFilter;\n global.Node = w.Node;\n global.DocumentFragment = w.DocumentFragment;\n global.HTMLElement = w.HTMLElement;\n global.HTMLMetaElement = w.HTMLMetaElement;\n global.Element = w.Element;\n global.HTMLCanvasElement = w.HTMLCanvasElement;\n global.HTMLCanvasElement.prototype.getContext = () => {\n return null;\n };\n global.CanvasRenderingContext2D = w.CanvasRenderingContext2D;\n global.CanvasPattern = w.CanvasPattern;\n global.CanvasGradient = w.CanvasGradient;\n global.Path2D = w.Path2D;\n global.ImageData = w.ImageData;\n // console.log('cvvvvvvvvvvvvvv', w.Node.DOCUMENT_FRAGMENT_NODE);\n return w;\n }\n}\n//\n// export default new JsdomInitializer();\n"],
5
- "mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,gBAAe;AACf,kBAAiB;AACjB,wBAA0B;AAEnB,MAAM,qBAAqB;AAAA,EAChC,YACU,eACA,wBACA,qBACR;AAHQ;AACA;AACA;AAAA,EACP;AAAA,EAEH,OAAc,SAAS,UAAkB,UAA0B;AACjE,WAAO,UAAAA,QAAG,aAAa,YAAAC,QAAK,KAAK,UAAU,QAAQ,GAAG,MAAM;AAAA,EAC9D;AAAA,EAEA,MAAM,MAAuB;AAG3B,UAAM,UAAU,YAAAA,QAAK,KAAK,KAAK,eAAe,KAAK,sBAAsB;AAEzE,UAAM,OAAO,UAAAD,QAAG,aAAa,SAAQ,MAAM;AAE3C,UAAM,QAAI,6BAAU,MAAM,EAAC,MAAM,KAAK,oBAAoB,IAAG,CAAC;AAA4C;AAG1G,MAAE,aAAa,EAAE,MAAM,cAAa;AACpC,QAAG,KAAK,qBAAqB,KAAI;AAG/B,QAAE,SAAS,OAAO,KAAK,oBAAoB;AAAA,IAC7C;AAWA,WAAO,QAAQ,EAAE;AAEjB,WAAO,gBAAgB,EAAE;AACzB,WAAO,uBAAuB,EAAE;AAKhC,WAAO,aAAa,EAAE;AACtB,WAAO,OAAO,EAAE;AAChB,WAAO,mBAAmB,EAAE;AAC5B,WAAO,cAAc,EAAE;AACvB,WAAO,kBAAkB,EAAE;AAC3B,WAAO,UAAU,EAAE;AACnB,WAAO,oBAAoB,EAAE;AAC7B,WAAO,kBAAkB,UAAU,aAAa,MAAM;AACpD,aAAO;AAAA,IACT;AACA,WAAO,2BAA2B,EAAE;AACpC,WAAO,gBAAgB,EAAE;AACzB,WAAO,iBAAiB,EAAE;AAC1B,WAAO,SAAS,EAAE;AAClB,WAAO,YAAY,EAAE;AAErB,WAAO;AAAA,EACT;AACF;",
4
+ "sourcesContent": ["import fs from 'fs';\nimport path from 'path';\nimport { DomParser } from '@dooboostore/dom-parser';\n\nexport class DomParserInitializer {\n private domParser: DomParser;\n constructor(\n private frontDistPath: string,\n private frontDistIndexFileName: string,\n private reconfigureSettings?: {url: string}\n ) {}\n\n public static loadFile(distPath: string, filePath: string): string {\n return fs.readFileSync(path.join(distPath, filePath), 'utf8');\n }\n\n async run(): Promise<Window> {\n // const indexHTML = fs.readFileSync(path.join(this.frontDistPath, 'index.html'), 'utf8');\n // const indexHTML = JsdomInitializer.loadFile(this.frontDistPath, this.frontDistIndexFileName);\n const pathStr = path.join(this.frontDistPath, this.frontDistIndexFileName);\n\n const html = fs.readFileSync(pathStr,'utf8');\n\n this.domParser = new DomParser(html, {href: this.reconfigureSettings?.url});\n const w = this.domParser.window as unknown as Window & typeof globalThis;\n\n // @ts-ignore\n w.location ??= { href: 'about:blank'};\n if(this.reconfigureSettings?.url){\n // console.log('--',w,w.location);\n // @ts-ignore\n w.location.href = this.reconfigureSettings.url;\n }\n // console.log('!!!!!!!!!!!', html, w.document);\n // @ts-ignore\n // global.document = w.document;\n // @ts-ignore\n // global.window = w as unknown as Window & typeof globalThis;\n // @ts-ignore\n // global.window.requestAnimationFrame = () => {};\n // global.window.scrollTo = () => {};\n // @ts-ignore\n // global.history = w.history;\n global.Event = w.Event;\n // @ts-ignore\n global.PopStateEvent = w.Event;\n global.IntersectionObserver = w.IntersectionObserver;\n // @ts-ignore\n // global.Error = ErrorBase;\n // @ts-ignore\n // global.navigator = w.navigator;\n global.NodeFilter = w.NodeFilter;\n global.Node = w.Node;\n global.DocumentFragment = w.DocumentFragment;\n global.HTMLElement = w.HTMLElement;\n global.HTMLMetaElement = w.HTMLMetaElement;\n global.Element = w.Element;\n global.HTMLCanvasElement = w.HTMLCanvasElement;\n global.HTMLCanvasElement.prototype.getContext = () => {\n return null;\n };\n global.CanvasRenderingContext2D = w.CanvasRenderingContext2D;\n global.CanvasPattern = w.CanvasPattern;\n global.CanvasGradient = w.CanvasGradient;\n global.Path2D = w.Path2D;\n global.ImageData = w.ImageData;\n // console.log('cvvvvvvvvvvvvvv', w.Node.DOCUMENT_FRAGMENT_NODE);\n return w;\n }\n\n destroy(): void {\n this.domParser?.destroy();\n }\n\n}\n//\n// export default new JsdomInitializer();\n"],
5
+ "mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,gBAAe;AACf,kBAAiB;AACjB,wBAA0B;AAEnB,MAAM,qBAAqB;AAAA,EAEhC,YACU,eACA,wBACA,qBACR;AAHQ;AACA;AACA;AAAA,EACP;AAAA,EAEH,OAAc,SAAS,UAAkB,UAA0B;AACjE,WAAO,UAAAA,QAAG,aAAa,YAAAC,QAAK,KAAK,UAAU,QAAQ,GAAG,MAAM;AAAA,EAC9D;AAAA,EAEA,MAAM,MAAuB;AAG3B,UAAM,UAAU,YAAAA,QAAK,KAAK,KAAK,eAAe,KAAK,sBAAsB;AAEzE,UAAM,OAAO,UAAAD,QAAG,aAAa,SAAQ,MAAM;AAE3C,SAAK,YAAY,IAAI,4BAAU,MAAM,EAAC,MAAM,KAAK,qBAAqB,IAAG,CAAC;AAC1E,UAAM,IAAI,KAAK,UAAU;AAGzB,MAAE,aAAa,EAAE,MAAM,cAAa;AACpC,QAAG,KAAK,qBAAqB,KAAI;AAG/B,QAAE,SAAS,OAAO,KAAK,oBAAoB;AAAA,IAC7C;AAWA,WAAO,QAAQ,EAAE;AAEjB,WAAO,gBAAgB,EAAE;AACzB,WAAO,uBAAuB,EAAE;AAKhC,WAAO,aAAa,EAAE;AACtB,WAAO,OAAO,EAAE;AAChB,WAAO,mBAAmB,EAAE;AAC5B,WAAO,cAAc,EAAE;AACvB,WAAO,kBAAkB,EAAE;AAC3B,WAAO,UAAU,EAAE;AACnB,WAAO,oBAAoB,EAAE;AAC7B,WAAO,kBAAkB,UAAU,aAAa,MAAM;AACpD,aAAO;AAAA,IACT;AACA,WAAO,2BAA2B,EAAE;AACpC,WAAO,gBAAgB,EAAE;AACzB,WAAO,iBAAiB,EAAE;AAC1B,WAAO,SAAS,EAAE;AAClB,WAAO,YAAY,EAAE;AAErB,WAAO;AAAA,EACT;AAAA,EAEA,UAAgB;AACd,SAAK,WAAW,QAAQ;AAAA,EAC1B;AAEF;",
6
6
  "names": ["fs", "path"]
7
7
  }
@@ -0,0 +1,92 @@
1
+ var __defProp = Object.defineProperty;
2
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
3
+ var __getOwnPropNames = Object.getOwnPropertyNames;
4
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
5
+ var __export = (target, all) => {
6
+ for (var name in all)
7
+ __defProp(target, name, { get: all[name], enumerable: true });
8
+ };
9
+ var __copyProps = (to, from, except, desc) => {
10
+ if (from && typeof from === "object" || typeof from === "function") {
11
+ for (let key of __getOwnPropNames(from))
12
+ if (!__hasOwnProp.call(to, key) && key !== except)
13
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
14
+ }
15
+ return to;
16
+ };
17
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
18
+ var SSRDomParserFilterDataHydrationProxy_exports = {};
19
+ __export(SSRDomParserFilterDataHydrationProxy_exports, {
20
+ SSRDomParserFilterDataHydrationProxy: () => SSRDomParserFilterDataHydrationProxy
21
+ });
22
+ module.exports = __toCommonJS(SSRDomParserFilterDataHydrationProxy_exports);
23
+ var import_simple_boot = require("@dooboostore/simple-boot");
24
+ var import_simple_boot_front = require("@dooboostore/simple-boot-front");
25
+ var import_core_web = require("@dooboostore/core-web");
26
+ var import_simple_boot2 = require("@dooboostore/simple-boot");
27
+ var __decorate = function(decorators, target, key, desc) {
28
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
29
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
30
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
31
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
32
+ };
33
+ var __metadata = function(k, v) {
34
+ if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
35
+ };
36
+ var __param = function(paramIndex, decorator) {
37
+ return function(target, key) {
38
+ decorator(target, key, paramIndex);
39
+ };
40
+ };
41
+ var _a;
42
+ let SSRDomParserFilterDataHydrationProxy = class SSRDomParserFilterDataHydrationProxy2 {
43
+ constructor(simpleBootFront) {
44
+ this.simpleBootFront = simpleBootFront;
45
+ }
46
+ get(target, prop, receiver) {
47
+ const value = Reflect.get(target, prop, receiver);
48
+ let current = target;
49
+ let simConfig = (0, import_simple_boot.getSim)(current);
50
+ if (typeof value === "function" && simConfig?.symbol) {
51
+ const methodName = String(prop);
52
+ const symbolStr = simConfig.symbol.toString();
53
+ return (...args) => {
54
+ const pureArgs = args.filter((it) => typeof it !== "function");
55
+ const key = `${symbolStr}.${methodName}(${JSON.stringify(pureArgs)})`;
56
+ if (import_core_web.ValidUtils.isBrowser()) {
57
+ const hydratedData = this.simpleBootFront.cutDataHydration(key);
58
+ if (hydratedData !== void 0) {
59
+ return Promise.resolve(hydratedData);
60
+ }
61
+ }
62
+ const result = Reflect.apply(value, target, args);
63
+ if (!import_core_web.ValidUtils.isBrowser()) {
64
+ const saveData = (data) => {
65
+ this.simpleBootFront.saveDataHydration(key, data);
66
+ };
67
+ if (result instanceof Promise) {
68
+ return result.then((data) => {
69
+ saveData(data);
70
+ return data;
71
+ });
72
+ } else {
73
+ saveData(result);
74
+ return result;
75
+ }
76
+ }
77
+ return result;
78
+ };
79
+ }
80
+ return value;
81
+ }
82
+ };
83
+ SSRDomParserFilterDataHydrationProxy = __decorate([
84
+ import_simple_boot.Sim,
85
+ __param(0, (0, import_simple_boot2.Inject)({ type: import_simple_boot_front.SimpleBootFront })),
86
+ __metadata("design:paramtypes", [typeof (_a = typeof import_simple_boot_front.SimpleBootFront !== "undefined" && import_simple_boot_front.SimpleBootFront) === "function" ? _a : Object])
87
+ ], SSRDomParserFilterDataHydrationProxy);
88
+ // Annotate the CommonJS export names for ESM import in node:
89
+ 0 && (module.exports = {
90
+ SSRDomParserFilterDataHydrationProxy
91
+ });
92
+ //# sourceMappingURL=SSRDomParserFilterDataHydrationProxy.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../src/proxy/SSRDomParserFilterDataHydrationProxy.ts"],
4
+ "sourcesContent": ["import { Sim, getSim } from '@dooboostore/simple-boot';\nimport { SimpleBootFront } from '@dooboostore/simple-boot-front';\nimport { ValidUtils } from '@dooboostore/core-web';\nimport { Inject } from '@dooboostore/simple-boot';\n\n@Sim\nexport class SSRDomParserFilterDataHydrationProxy implements ProxyHandler<any> {\n constructor(@Inject({ type: SimpleBootFront }) private simpleBootFront: SimpleBootFront) {}\n\n get(target: any, prop: string | symbol, receiver: any): any {\n const value = Reflect.get(target, prop, receiver);\n let current: any = target;\n let simConfig = getSim(current);\n // console.log('SSRDomParserFilterDataHydrationProxy*****', simConfig);\n // while (!simConfig && current && typeof current === 'object') {\n // const origin = current._SimpleBoot_origin ?? current._domRender_origin ?? current._DomRender_origin ?? current.__target__;\n // if (origin && origin !== current) {\n // current = origin;\n // simConfig = getSim(current);\n // } else {\n // break;\n // }\n // }\n\n if (typeof value === 'function' && simConfig?.symbol) {\n const methodName = String(prop);\n const symbolStr = simConfig.symbol.toString();\n\n return (...args: any[]) => {\n const pureArgs = args.filter(it => typeof it !== 'function');\n const key = `${symbolStr}.${methodName}(${JSON.stringify(pureArgs)})`;\n\n if (ValidUtils.isBrowser()) {\n const hydratedData = this.simpleBootFront.cutDataHydration(key);\n if (hydratedData !== undefined) {\n return Promise.resolve(hydratedData);\n }\n }\n\n const result = Reflect.apply(value, target, args);\n\n if (!ValidUtils.isBrowser()) {\n const saveData = (data: any) => {\n this.simpleBootFront.saveDataHydration(key, data);\n };\n\n if (result instanceof Promise) {\n return result.then(data => {\n saveData(data);\n return data;\n });\n } else {\n saveData(result);\n return result;\n }\n }\n\n return result;\n };\n }\n return value;\n }\n}\n"],
5
+ "mappings": ";;;;;;;;;;;;;;;;;;;;;;AAAA,yBAA4B;AAC5B,+BAAgC;AAChC,sBAA2B;AAC3B,IAAAA,sBAAuB;;;;;;;;;;;;;;;;AAGhB,IAAM,uCAAN,MAAMC,sCAAoC;EAC/C,YAAuD,iBAAgC;AAAhC,SAAA,kBAAA;EAAmC;EAE1F,IAAI,QAAa,MAAuB,UAAa;AACnD,UAAM,QAAQ,QAAQ,IAAI,QAAQ,MAAM,QAAQ;AAChD,QAAI,UAAe;AACnB,QAAI,gBAAY,2BAAO,OAAO;AAY9B,QAAI,OAAO,UAAU,cAAc,WAAW,QAAQ;AACpD,YAAM,aAAa,OAAO,IAAI;AAC9B,YAAM,YAAY,UAAU,OAAO,SAAQ;AAE3C,aAAO,IAAI,SAAe;AACxB,cAAM,WAAW,KAAK,OAAO,QAAM,OAAO,OAAO,UAAU;AAC3D,cAAM,MAAM,GAAG,SAAS,IAAI,UAAU,IAAI,KAAK,UAAU,QAAQ,CAAC;AAElE,YAAI,2BAAW,UAAS,GAAI;AAC1B,gBAAM,eAAe,KAAK,gBAAgB,iBAAiB,GAAG;AAC9D,cAAI,iBAAiB,QAAW;AAC9B,mBAAO,QAAQ,QAAQ,YAAY;UACrC;QACF;AAEA,cAAM,SAAS,QAAQ,MAAM,OAAO,QAAQ,IAAI;AAEhD,YAAI,CAAC,2BAAW,UAAS,GAAI;AAC3B,gBAAM,WAAW,CAAC,SAAa;AAC7B,iBAAK,gBAAgB,kBAAkB,KAAK,IAAI;UAClD;AAEA,cAAI,kBAAkB,SAAS;AAC7B,mBAAO,OAAO,KAAK,UAAO;AACxB,uBAAS,IAAI;AACb,qBAAO;YACT,CAAC;UACH,OAAO;AACL,qBAAS,MAAM;AACf,mBAAO;UACT;QACF;AAEA,eAAO;MACT;IACF;AACA,WAAO;EACT;;AAvDW,uCAAoC,WAAA;EADhD;EAEc,QAAA,OAAA,4BAAO,EAAE,MAAM,yCAAe,CAAE,CAAC;uDAA0B,6CAAe,eAAf,8CAAe,aAAA,KAAA,MAAA,CAAA;GAD5E,oCAAoC;",
6
+ "names": ["import_simple_boot", "SSRDomParserFilterDataHydrationProxy"]
7
+ }
@@ -14,15 +14,9 @@ var __reExport = (target, mod, secondTarget) => (__copyProps(target, mod, "defau
14
14
  var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
15
15
  var proxy_exports = {};
16
16
  module.exports = __toCommonJS(proxy_exports);
17
- __reExport(proxy_exports, require("./IntentSchemeFrontProxy"), module.exports);
18
- __reExport(proxy_exports, require("./IntentSchemeServerProxy"), module.exports);
19
- __reExport(proxy_exports, require("./SymbolIntentApiServiceProxy"), module.exports);
20
- __reExport(proxy_exports, require("./SymbolIntentApiServiceProxyBase"), module.exports);
17
+ __reExport(proxy_exports, require("./SSRDomParserFilterDataHydrationProxy"), module.exports);
21
18
  // Annotate the CommonJS export names for ESM import in node:
22
19
  0 && (module.exports = {
23
- ...require("./IntentSchemeFrontProxy"),
24
- ...require("./IntentSchemeServerProxy"),
25
- ...require("./SymbolIntentApiServiceProxy"),
26
- ...require("./SymbolIntentApiServiceProxyBase")
20
+ ...require("./SSRDomParserFilterDataHydrationProxy")
27
21
  });
28
22
  //# sourceMappingURL=index.js.map
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../src/proxy/index.ts"],
4
- "sourcesContent": ["export * from './IntentSchemeFrontProxy';\nexport * from './IntentSchemeServerProxy';\nexport * from './SymbolIntentApiServiceProxy';\nexport * from './SymbolIntentApiServiceProxyBase';"],
5
- "mappings": ";;;;;;;;;;;;;;AAAA;AAAA;AAAA,0BAAc,qCAAd;AACA,0BAAc,sCADd;AAEA,0BAAc,0CAFd;AAGA,0BAAc,8CAHd;",
4
+ "sourcesContent": ["export * from './SSRDomParserFilterDataHydrationProxy';\n"],
5
+ "mappings": ";;;;;;;;;;;;;;AAAA;AAAA;AAAA,0BAAc,mDAAd;",
6
6
  "names": []
7
7
  }
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../src/SimpleBootHttpSSRFactory.ts"],
4
- "sourcesContent": ["import { SimpleBootFront } from '@dooboostore/simple-boot-front/SimpleBootFront';\nimport { ConstructorType } from '@dooboostore/core/types';\nimport { SimFrontOption } from '@dooboostore/simple-boot-front/option/SimFrontOption';\nexport abstract class SimpleBootHttpSSRFactory {\n public abstract factory(simFrontOption: SimFrontOption, using: (ConstructorType<any> | Function)[], domExcludes: ConstructorType<any>[]): Promise<SimpleBootFront> ;\n\n public async create(simFrontOption: SimFrontOption, using: (ConstructorType<any> | Function)[] = [], domExcludes: ConstructorType<any>[] = []): Promise<SimpleBootFront> {\n const front = await this.factory(simFrontOption, using, domExcludes);\n return front;\n }\n}\n"],
4
+ "sourcesContent": ["import { SimpleBootFront } from '@dooboostore/simple-boot-front/SimpleBootFront';\nimport { ConstructorType } from '@dooboostore/core';\nimport { SimFrontOption } from '@dooboostore/simple-boot-front/option/SimFrontOption';\nexport abstract class SimpleBootHttpSSRFactory {\n public abstract factory(simFrontOption: SimFrontOption, using: (ConstructorType<any> | Function)[], domExcludes: ConstructorType<any>[]): Promise<SimpleBootFront> ;\n\n public async create(simFrontOption: SimFrontOption, using: (ConstructorType<any> | Function)[] = [], domExcludes: ConstructorType<any>[] = []): Promise<SimpleBootFront> {\n const front = await this.factory(simFrontOption, using, domExcludes);\n return front;\n }\n}\n"],
5
5
  "mappings": "AAGO,MAAe,yBAAyB;AAAA,EAG3C,MAAa,OAAO,gBAAgC,QAA6C,CAAC,GAAG,cAAsC,CAAC,GAA6B;AACrK,UAAM,QAAQ,MAAM,KAAK,QAAQ,gBAAgB,OAAO,WAAW;AACnE,WAAO;AAAA,EACX;AACJ;",
6
6
  "names": []
7
7
  }
@@ -5,6 +5,7 @@ class SimpleBootHttpSSRServer extends SimpleBootHttpServer {
5
5
  }
6
6
  run(otherInstanceSim) {
7
7
  const oi = /* @__PURE__ */ new Map();
8
+ oi.set(SimpleBootHttpSSRServer, this);
8
9
  otherInstanceSim?.forEach((value, key) => oi.set(key, value));
9
10
  return super.run(oi);
10
11
  }
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../src/SimpleBootHttpSSRServer.ts"],
4
- "sourcesContent": ["import { SimpleBootHttpServer } from '@dooboostore/simple-boot-http-server/SimpleBootHttpServer';\n// import { SimstanceManager } from '@dooboostore/simple-boot/simstance/SimstanceManager';\nimport { HttpSSRServerOption } from './option/HttpSSRServerOption';\nimport { ConstructorType } from '@dooboostore/core/types';\n\nexport class SimpleBootHttpSSRServer extends SimpleBootHttpServer {\n constructor(option?: HttpSSRServerOption) {\n super(option)\n }\n\n run(otherInstanceSim?: Map<ConstructorType<any>, any>) {\n const oi = new Map<ConstructorType<any>, any>()\n otherInstanceSim?.forEach((value, key) => oi.set(key, value));\n return super.run(oi);\n }\n\n // TODO: \uB098\uC911\uC5D0 \uBB50\uB77C\uB3C4..\n stop(){\n\n }\n}\n"],
5
- "mappings": "AAAA,SAAS,4BAA4B;AAK9B,MAAM,gCAAgC,qBAAqB;AAAA,EAChE,YAAY,QAA8B;AACxC,UAAM,MAAM;AAAA,EACd;AAAA,EAEA,IAAI,kBAAmD;AACrD,UAAM,KAAK,oBAAI,IAA+B;AAC9C,sBAAkB,QAAQ,CAAC,OAAO,QAAQ,GAAG,IAAI,KAAK,KAAK,CAAC;AAC5D,WAAO,MAAM,IAAI,EAAE;AAAA,EACrB;AAAA;AAAA,EAGA,OAAM;AAAA,EAEN;AACF;",
4
+ "sourcesContent": ["import { SimpleBootHttpServer } from '@dooboostore/simple-boot-http-server/SimpleBootHttpServer';\nimport { HttpSSRServerOption } from './option/HttpSSRServerOption';\nimport { ConstructorType } from '@dooboostore/core';\nimport {SimConfig} from \"@dooboostore/simple-boot/decorators/SimDecorator\";\n\nexport class SimpleBootHttpSSRServer extends SimpleBootHttpServer {\n constructor(option?: HttpSSRServerOption) {\n super(option)\n }\n\n run(otherInstanceSim?: Map<ConstructorType<any> | Function | SimConfig | symbol, any>) {\n const oi = new Map<ConstructorType<any> | Function | SimConfig | symbol, any>();\n oi.set(SimpleBootHttpSSRServer, this);\n otherInstanceSim?.forEach((value, key) => oi.set(key, value));\n return super.run(oi);\n }\n\n // TODO: \uB098\uC911\uC5D0 \uBB50\uB77C\uB3C4..\n stop(){\n\n }\n}\n"],
5
+ "mappings": "AAAA,SAAS,4BAA4B;AAK9B,MAAM,gCAAgC,qBAAqB;AAAA,EAChE,YAAY,QAA8B;AACxC,UAAM,MAAM;AAAA,EACd;AAAA,EAEA,IAAI,kBAAmF;AACrF,UAAM,KAAK,oBAAI,IAA+D;AAC9E,OAAG,IAAI,yBAAyB,IAAI;AACpC,sBAAkB,QAAQ,CAAC,OAAO,QAAQ,GAAG,IAAI,KAAK,KAAK,CAAC;AAC5D,WAAO,MAAM,IAAI,EAAE;AAAA,EACrB;AAAA;AAAA,EAGA,OAAM;AAAA,EAEN;AACF;",
6
6
  "names": []
7
7
  }
@@ -1,5 +1,3 @@
1
- export * from "./codes/index.js";
2
- export * from "./decorators/index.js";
3
1
  export * from "./filters/index.js";
4
2
  export * from "./initializers/index.js";
5
3
  export * from "./option/index.js";
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../src/bundle-entry.ts"],
4
- "sourcesContent": ["export * from './codes';\nexport * from './decorators';\nexport * from './filters';\nexport * from './initializers';\nexport * from './option';\nexport * from './proxy';\nexport * from './SimpleBootHttpSSRFactory';\nexport * from './SimpleBootHttpSSRServer';"],
5
- "mappings": "AAAA,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;",
4
+ "sourcesContent": ["export * from './filters';\nexport * from './initializers';\nexport * from './option';\nexport * from './proxy';\nexport * from './SimpleBootHttpSSRFactory';\nexport * from './SimpleBootHttpSSRServer';"],
5
+ "mappings": "AAAA,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;",
6
6
  "names": []
7
7
  }
@@ -1,118 +1,96 @@
1
+ import { RequestResponse } from "@dooboostore/simple-boot-http-server/models/RequestResponse";
1
2
  import { HttpHeaders } from "@dooboostore/simple-boot-http-server/codes/HttpHeaders";
3
+ import { RandomUtils, MessageOperator, MessageInternal } from "@dooboostore/core";
2
4
  import { Mimes } from "@dooboostore/simple-boot-http-server/codes/Mimes";
3
5
  import { HttpStatus } from "@dooboostore/simple-boot-http-server/codes/HttpStatus";
4
- import { AsyncBlockingQueue } from "@dooboostore/core/queues/AsyncBlockingQueue";
5
- import { RandomUtils } from "@dooboostore/core/random/RandomUtils";
6
6
  import { NotFoundError } from "@dooboostore/simple-boot-http-server/errors/NotFoundError";
7
- import { DomRenderProxy } from "@dooboostore/dom-render/DomRenderProxy";
8
- import { filter } from "@dooboostore/core/message/operators/filter";
9
- import { first } from "@dooboostore/core/message/operators/first";
10
- import { firstValueFrom } from "@dooboostore/core/message/internal/firstValueFrom";
11
- import { Promises } from "@dooboostore/core/promise/Promises";
7
+ import { DomRenderProxy } from "@dooboostore/dom-render";
12
8
  import { DomParserInitializer } from "../initializers/DomParserInitializer.js";
13
9
  class SSRDomParserFilter {
10
+ // private poolGeneration = 0;
11
+ // private intervalId?: NodeJS.Timeout;
14
12
  constructor(config, otherInstanceSim) {
15
13
  this.config = config;
16
14
  this.otherInstanceSim = otherInstanceSim;
17
- this.simpleBootFrontPool = [];
18
- this.simpleBootFrontQueue = new AsyncBlockingQueue();
15
+ // private simpleBootFrontPool: SimpleBootFront[] = [];
16
+ // private simpleBootFrontQueue = new AsyncBlockingQueue<SimpleBootFront>();
19
17
  // private indexHTML: string;
20
18
  this.welcomUrl = "http://localhost";
21
- this.poolGeneration = 0;
22
19
  config.frontDistIndexFileName = config.frontDistIndexFileName || "index.html";
23
20
  }
24
21
  async onInit(app) {
25
- for (let i = 0; i < this.config.poolOption.min; i++) {
26
- await this.pushQueue();
27
- }
28
- if (this.config.poolOption.clearIntervalTime && this.config.poolOption.clearIntervalTime > 0) {
29
- this.intervalId = setInterval(() => {
30
- this.poolGeneration++;
31
- }, this.config.poolOption.clearIntervalTime);
32
- }
33
22
  }
34
23
  async onDestroy() {
35
- if (this.intervalId) {
36
- clearInterval(this.intervalId);
37
- }
38
- this.simpleBootFrontPool.forEach((front) => {
39
- front.jsdom?.window.close();
40
- });
41
- this.simpleBootFrontPool = [];
42
24
  }
43
- async makePage() {
44
- let windowPromise = await new DomParserInitializer(
45
- this.config.frontDistPath,
46
- this.config.frontDistIndexFileName || "index.html",
47
- { url: this.welcomUrl }
48
- ).run();
49
- return windowPromise;
25
+ async makePage(url = this.welcomUrl) {
26
+ const domParserInitializer = new DomParserInitializer(this.config.frontDistPath, this.config.frontDistIndexFileName || "index.html", { url });
27
+ const window = await domParserInitializer.run();
28
+ return { window, domParserInitializer };
50
29
  }
51
- async makeFront(window) {
30
+ async makeFront(window, otherInstanceSim) {
52
31
  const name = RandomUtils.uuid();
53
32
  window.ssrUse = false;
54
33
  const option = this.config.factorySimFrontOption(DomRenderProxy.final(window));
55
- const simpleBootFront = await this.config.factory.create(option, this.config.using, this.config.domExcludes);
56
- simpleBootFront.run(this.otherInstanceSim);
57
- simpleBootFront.generation = this.poolGeneration;
34
+ const domExcludes = [RequestResponse, ...this.config.domExcludes || []];
35
+ const simpleBootFront = await this.config.factory.create(option, this.config.using, domExcludes);
36
+ otherInstanceSim ??= /* @__PURE__ */ new Map();
37
+ this.otherInstanceSim?.forEach((v, k) => otherInstanceSim.set(k, v));
38
+ simpleBootFront.run(otherInstanceSim);
58
39
  return simpleBootFront;
59
40
  }
60
- enqueueFrontApp(simpleBootFront) {
61
- this.simpleBootFrontPool.push(simpleBootFront);
62
- this.simpleBootFrontQueue.enqueue(simpleBootFront);
63
- }
64
- async pushQueue() {
65
- if (this.simpleBootFrontPool.length < this.config.poolOption.max) {
66
- this.enqueueFrontApp(await this.makeFront(await this.makePage()));
67
- }
68
- }
41
+ // enqueueFrontApp(simpleBootFront: SimpleBootFront) {
42
+ // // this.simpleBootFrontPool.set(simpleBootFront.option.name!, simpleBootFront);
43
+ // this.simpleBootFrontPool.push(simpleBootFront);
44
+ // this.simpleBootFrontQueue.enqueue(simpleBootFront);
45
+ // }
46
+ //
47
+ // async pushQueue() {
48
+ // if (this.simpleBootFrontPool.length < this.config.poolOption.max) {
49
+ // this.enqueueFrontApp(await this.makeFront(await this.makePage()));
50
+ // }
51
+ // }
69
52
  async proceedBefore({ rr, app }) {
70
53
  if (this.config.ssrExcludeFilter?.(rr)) {
71
54
  return false;
72
55
  }
73
56
  if (rr.reqHasAcceptHeader(Mimes.TextHtml) || rr.reqHasAcceptHeader(Mimes.All)) {
74
- if (this.simpleBootFrontQueue.isEmpty()) {
75
- await this.pushQueue();
76
- }
77
- const simpleBootFront = await this.simpleBootFrontQueue.dequeue();
57
+ const url = rr.reqUrlObj({ host: "localhost" });
58
+ const targetUrl = url.toString() ?? this.welcomUrl;
59
+ const { window, domParserInitializer } = await this.makePage(targetUrl);
60
+ const otherSim = /* @__PURE__ */ new Map();
61
+ otherSim.set(RequestResponse, rr);
62
+ const simpleBootFront = await this.makeFront(window, otherSim);
78
63
  try {
79
64
  simpleBootFront.option.window.ssrUse = true;
80
- delete simpleBootFront.option.window.server_side_data;
81
- const url = rr.reqUrlObj({ host: "localhost" });
82
65
  if (this.config.simpleBootFront?.notFoundError) {
83
- const intent = await simpleBootFront.getIntent(url.pathname);
66
+ const intent = await simpleBootFront.routingRouterModule(url.pathname);
84
67
  if (intent.module === void 0 && !intent.getRouterPathData(rr.reqUrlPathName)) {
85
68
  throw new NotFoundError({ message: `Not Found: ${rr.reqUrlPathName}` });
86
69
  }
87
70
  }
88
- const targetUrl = url.toString();
89
- await simpleBootFront.goRouting(targetUrl);
90
- await Promises.sleep(0);
91
- const data = await firstValueFrom(
92
- simpleBootFront.routingSubjectObservable.pipe(
93
- filter(
94
- (it) => it.triggerPoint === "end" && typeof it.routerModule.intent.uri === "string" && targetUrl.endsWith(it.routerModule.intent.uri)
95
- ),
71
+ const data = await MessageInternal.firstValueFrom(
72
+ simpleBootFront.routingObservable.pipe(
73
+ MessageOperator.filter((it) => {
74
+ const sw = it.triggerPoint === "end" && typeof it.routerModule.intent.uri === "string" && targetUrl.endsWith(it.routerModule.intent.uri);
75
+ return sw;
76
+ }),
96
77
  // delay(1000),
97
- first()
78
+ MessageOperator.first()
98
79
  )
99
80
  );
100
- await Promises.sleep(0);
81
+ simpleBootFront.writeDataHydration();
82
+ simpleBootFront.clearDataHydration();
101
83
  const html = this.makeHTML(simpleBootFront);
102
84
  await this.writeOkHtmlAndEnd({ rr }, html);
103
85
  } finally {
104
- simpleBootFront.option.window.ssrUse = false;
105
- delete simpleBootFront.option.window.server_side_data;
106
- if (simpleBootFront.generation < this.poolGeneration) {
107
- const jsdom = simpleBootFront.jsdom;
108
- jsdom?.window.close();
109
- const index = this.simpleBootFrontPool.indexOf(simpleBootFront);
110
- if (index > -1) {
111
- this.simpleBootFrontPool.splice(index, 1);
112
- }
113
- this.pushQueue();
114
- } else {
115
- this.simpleBootFrontQueue.enqueue(simpleBootFront);
86
+ try {
87
+ simpleBootFront.option.window.ssrUse = false;
88
+ window.close();
89
+ simpleBootFront.onDestroy();
90
+ simpleBootFront.option.window?.close?.();
91
+ domParserInitializer.destroy();
92
+ } catch (e) {
93
+ console.log("eeeeee", e);
116
94
  }
117
95
  }
118
96
  return false;
@@ -133,19 +111,6 @@ class SSRDomParserFilter {
133
111
  html = "<!DOCTYPE html>" + html;
134
112
  }
135
113
  html = html.replace(/\$\{[\s\S]*?\}\$/g, "");
136
- const serverSideData = simpleBootFront.option.window.server_side_data;
137
- if (serverSideData) {
138
- const data = Object.entries(serverSideData).map(([k, v]) => {
139
- if (typeof v === "string") {
140
- return `window.server_side_data.${k} = ${v}`;
141
- } else {
142
- return `window.server_side_data.${k} = ${JSON.stringify(v)}`;
143
- }
144
- }).join(";");
145
- if (data) {
146
- html = html.replace("</head>", `<script> window.server_side_data={}; ${data}; </script></head>`);
147
- }
148
- }
149
114
  return html;
150
115
  }
151
116
  async writeOkHtmlAndEnd({ rr, status = HttpStatus.Ok }, html) {