@dooboostore/simple-boot-http-server-ssr 1.0.9 → 1.0.11

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 (197) hide show
  1. package/LICENSE.md +7 -0
  2. package/dist/cjs/SimpleBootHttpSSRFactory.d.ts.map +1 -0
  3. package/dist/cjs/SimpleBootHttpSSRFactory.js +33 -0
  4. package/dist/cjs/SimpleBootHttpSSRFactory.js.map +7 -0
  5. package/{SimpleBootHttpSSRServer.d.ts → dist/cjs/SimpleBootHttpSSRServer.d.ts} +2 -2
  6. package/dist/cjs/SimpleBootHttpSSRServer.d.ts.map +1 -0
  7. package/dist/cjs/SimpleBootHttpSSRServer.js +41 -0
  8. package/dist/cjs/SimpleBootHttpSSRServer.js.map +7 -0
  9. package/dist/cjs/codes/HttpHeaders.d.ts.map +1 -0
  10. package/dist/cjs/codes/HttpHeaders.js +41 -0
  11. package/dist/cjs/codes/HttpHeaders.js.map +7 -0
  12. package/dist/cjs/codes/Mimes.d.ts.map +1 -0
  13. package/dist/cjs/codes/Mimes.js +33 -0
  14. package/dist/cjs/codes/Mimes.js.map +7 -0
  15. package/dist/cjs/codes/index.d.ts +3 -0
  16. package/dist/cjs/codes/index.d.ts.map +1 -0
  17. package/dist/cjs/codes/index.js +24 -0
  18. package/dist/cjs/codes/index.js.map +7 -0
  19. package/dist/cjs/decorators/LoadAroundBefore.d.ts.map +1 -0
  20. package/dist/cjs/decorators/LoadAroundBefore.js +54 -0
  21. package/dist/cjs/decorators/LoadAroundBefore.js.map +7 -0
  22. package/dist/cjs/decorators/SaveAroundAfter.d.ts.map +1 -0
  23. package/dist/cjs/decorators/SaveAroundAfter.js +53 -0
  24. package/dist/cjs/decorators/SaveAroundAfter.js.map +7 -0
  25. package/dist/cjs/decorators/index.d.ts +3 -0
  26. package/dist/cjs/decorators/index.d.ts.map +1 -0
  27. package/dist/cjs/decorators/index.js +24 -0
  28. package/dist/cjs/decorators/index.js.map +7 -0
  29. package/dist/cjs/filters/IntentSchemeFilter.d.ts.map +1 -0
  30. package/dist/cjs/filters/IntentSchemeFilter.js +92 -0
  31. package/dist/cjs/filters/IntentSchemeFilter.js.map +7 -0
  32. package/{filters → dist/cjs/filters}/SSRFilter.d.ts +5 -0
  33. package/dist/cjs/filters/SSRFilter.d.ts.map +1 -0
  34. package/dist/cjs/filters/SSRFilter.js +204 -0
  35. package/dist/cjs/filters/SSRFilter.js.map +7 -0
  36. package/dist/cjs/filters/SSRWorker.d.ts.map +1 -0
  37. package/dist/cjs/filters/SSRWorker.js +85 -0
  38. package/dist/cjs/filters/SSRWorker.js.map +7 -0
  39. package/dist/cjs/filters/index.d.ts +4 -0
  40. package/dist/cjs/filters/index.d.ts.map +1 -0
  41. package/dist/cjs/filters/index.js +26 -0
  42. package/dist/cjs/filters/index.js.map +7 -0
  43. package/dist/cjs/index.d.ts +3 -0
  44. package/dist/cjs/index.d.ts.map +1 -0
  45. package/dist/cjs/index.js +24 -0
  46. package/dist/cjs/index.js.map +7 -0
  47. package/dist/cjs/initializers/JsdomInitializer.d.ts.map +1 -0
  48. package/dist/cjs/initializers/JsdomInitializer.js +82 -0
  49. package/dist/cjs/initializers/JsdomInitializer.js.map +7 -0
  50. package/dist/cjs/initializers/index.d.ts +2 -0
  51. package/dist/cjs/initializers/index.d.ts.map +1 -0
  52. package/dist/cjs/initializers/index.js +22 -0
  53. package/dist/cjs/initializers/index.js.map +7 -0
  54. package/dist/cjs/option/HttpSSRServerOption.d.ts.map +1 -0
  55. package/dist/cjs/option/HttpSSRServerOption.js +30 -0
  56. package/dist/cjs/option/HttpSSRServerOption.js.map +7 -0
  57. package/dist/cjs/option/index.d.ts +2 -0
  58. package/dist/cjs/option/index.d.ts.map +1 -0
  59. package/dist/cjs/option/index.js +22 -0
  60. package/dist/cjs/option/index.js.map +7 -0
  61. package/dist/cjs/package.json +3 -0
  62. package/dist/cjs/proxy/IntentSchemeFrontProxy.d.ts.map +1 -0
  63. package/dist/cjs/proxy/IntentSchemeFrontProxy.js +87 -0
  64. package/dist/cjs/proxy/IntentSchemeFrontProxy.js.map +7 -0
  65. package/dist/cjs/proxy/IntentSchemeServerProxy.d.ts.map +1 -0
  66. package/dist/cjs/proxy/IntentSchemeServerProxy.js +67 -0
  67. package/dist/cjs/proxy/IntentSchemeServerProxy.js.map +7 -0
  68. package/{proxy → dist/cjs/proxy}/SymbolIntentApiServiceProxy.d.ts +1 -0
  69. package/dist/cjs/proxy/SymbolIntentApiServiceProxy.d.ts.map +1 -0
  70. package/dist/cjs/proxy/SymbolIntentApiServiceProxy.js +111 -0
  71. package/dist/cjs/proxy/SymbolIntentApiServiceProxy.js.map +7 -0
  72. package/dist/cjs/proxy/SymbolIntentApiServiceProxyBase.d.ts +13 -0
  73. package/dist/cjs/proxy/SymbolIntentApiServiceProxyBase.d.ts.map +1 -0
  74. package/dist/cjs/proxy/SymbolIntentApiServiceProxyBase.js +110 -0
  75. package/dist/cjs/proxy/SymbolIntentApiServiceProxyBase.js.map +7 -0
  76. package/dist/cjs/proxy/index.d.ts +5 -0
  77. package/dist/cjs/proxy/index.d.ts.map +1 -0
  78. package/dist/cjs/proxy/index.js +28 -0
  79. package/dist/cjs/proxy/index.js.map +7 -0
  80. package/dist/esm/SimpleBootHttpSSRFactory.d.ts +8 -0
  81. package/dist/esm/SimpleBootHttpSSRFactory.d.ts.map +1 -0
  82. package/dist/esm/SimpleBootHttpSSRFactory.js +10 -0
  83. package/dist/esm/SimpleBootHttpSSRFactory.js.map +7 -0
  84. package/dist/esm/SimpleBootHttpSSRServer.d.ts +9 -0
  85. package/dist/esm/SimpleBootHttpSSRServer.d.ts.map +1 -0
  86. package/dist/esm/SimpleBootHttpSSRServer.js +18 -0
  87. package/dist/esm/SimpleBootHttpSSRServer.js.map +7 -0
  88. package/dist/esm/codes/HttpHeaders.d.ts +45 -0
  89. package/dist/esm/codes/HttpHeaders.d.ts.map +1 -0
  90. package/dist/esm/codes/HttpHeaders.js +17 -0
  91. package/dist/esm/codes/HttpHeaders.js.map +7 -0
  92. package/dist/esm/codes/Mimes.d.ts +31 -0
  93. package/dist/esm/codes/Mimes.d.ts.map +1 -0
  94. package/dist/esm/codes/Mimes.js +10 -0
  95. package/dist/esm/codes/Mimes.js.map +7 -0
  96. package/dist/esm/codes/index.d.ts +3 -0
  97. package/dist/esm/codes/index.d.ts.map +1 -0
  98. package/dist/esm/codes/index.js +3 -0
  99. package/dist/esm/codes/index.js.map +7 -0
  100. package/dist/esm/decorators/LoadAroundBefore.d.ts +2 -0
  101. package/dist/esm/decorators/LoadAroundBefore.d.ts.map +1 -0
  102. package/dist/esm/decorators/LoadAroundBefore.js +31 -0
  103. package/dist/esm/decorators/LoadAroundBefore.js.map +7 -0
  104. package/dist/esm/decorators/SaveAroundAfter.d.ts +3 -0
  105. package/dist/esm/decorators/SaveAroundAfter.d.ts.map +1 -0
  106. package/dist/esm/decorators/SaveAroundAfter.js +29 -0
  107. package/dist/esm/decorators/SaveAroundAfter.js.map +7 -0
  108. package/dist/esm/decorators/index.d.ts +3 -0
  109. package/dist/esm/decorators/index.d.ts.map +1 -0
  110. package/dist/esm/decorators/index.js +3 -0
  111. package/dist/esm/decorators/index.js.map +7 -0
  112. package/dist/esm/filters/IntentSchemeFilter.d.ts +20 -0
  113. package/dist/esm/filters/IntentSchemeFilter.d.ts.map +1 -0
  114. package/dist/esm/filters/IntentSchemeFilter.js +69 -0
  115. package/dist/esm/filters/IntentSchemeFilter.js.map +7 -0
  116. package/dist/esm/filters/SSRFilter.d.ts +59 -0
  117. package/dist/esm/filters/SSRFilter.d.ts.map +1 -0
  118. package/dist/esm/filters/SSRFilter.js +181 -0
  119. package/dist/esm/filters/SSRFilter.js.map +7 -0
  120. package/dist/esm/filters/SSRWorker.d.ts +16 -0
  121. package/dist/esm/filters/SSRWorker.d.ts.map +1 -0
  122. package/dist/esm/filters/SSRWorker.js +62 -0
  123. package/dist/esm/filters/SSRWorker.js.map +7 -0
  124. package/dist/esm/filters/index.d.ts +4 -0
  125. package/dist/esm/filters/index.d.ts.map +1 -0
  126. package/dist/esm/filters/index.js +4 -0
  127. package/dist/esm/filters/index.js.map +7 -0
  128. package/dist/esm/index.d.ts +3 -0
  129. package/dist/esm/index.d.ts.map +1 -0
  130. package/dist/esm/index.js +5 -0
  131. package/dist/esm/index.js.map +7 -0
  132. package/dist/esm/initializers/JsdomInitializer.d.ts +11 -0
  133. package/dist/esm/initializers/JsdomInitializer.d.ts.map +1 -0
  134. package/dist/esm/initializers/JsdomInitializer.js +49 -0
  135. package/dist/esm/initializers/JsdomInitializer.js.map +7 -0
  136. package/dist/esm/initializers/index.d.ts +2 -0
  137. package/dist/esm/initializers/index.d.ts.map +1 -0
  138. package/dist/esm/initializers/index.js +2 -0
  139. package/dist/esm/initializers/index.js.map +7 -0
  140. package/dist/esm/option/HttpSSRServerOption.d.ts +4 -0
  141. package/dist/esm/option/HttpSSRServerOption.d.ts.map +1 -0
  142. package/dist/esm/option/HttpSSRServerOption.js +7 -0
  143. package/dist/esm/option/HttpSSRServerOption.js.map +7 -0
  144. package/dist/esm/option/index.d.ts +2 -0
  145. package/dist/esm/option/index.d.ts.map +1 -0
  146. package/dist/esm/option/index.js +2 -0
  147. package/dist/esm/option/index.js.map +7 -0
  148. package/dist/esm/proxy/IntentSchemeFrontProxy.d.ts +4 -0
  149. package/dist/esm/proxy/IntentSchemeFrontProxy.d.ts.map +1 -0
  150. package/dist/esm/proxy/IntentSchemeFrontProxy.js +64 -0
  151. package/dist/esm/proxy/IntentSchemeFrontProxy.js.map +7 -0
  152. package/dist/esm/proxy/IntentSchemeServerProxy.d.ts +4 -0
  153. package/dist/esm/proxy/IntentSchemeServerProxy.d.ts.map +1 -0
  154. package/dist/esm/proxy/IntentSchemeServerProxy.js +44 -0
  155. package/dist/esm/proxy/IntentSchemeServerProxy.js.map +7 -0
  156. package/dist/esm/proxy/SymbolIntentApiServiceProxy.d.ts +16 -0
  157. package/dist/esm/proxy/SymbolIntentApiServiceProxy.d.ts.map +1 -0
  158. package/dist/esm/proxy/SymbolIntentApiServiceProxy.js +88 -0
  159. package/dist/esm/proxy/SymbolIntentApiServiceProxy.js.map +7 -0
  160. package/dist/esm/proxy/SymbolIntentApiServiceProxyBase.d.ts +13 -0
  161. package/dist/esm/proxy/SymbolIntentApiServiceProxyBase.d.ts.map +1 -0
  162. package/dist/esm/proxy/SymbolIntentApiServiceProxyBase.js +87 -0
  163. package/dist/esm/proxy/SymbolIntentApiServiceProxyBase.js.map +7 -0
  164. package/dist/esm/proxy/index.d.ts +5 -0
  165. package/dist/esm/proxy/index.d.ts.map +1 -0
  166. package/dist/esm/proxy/index.js +5 -0
  167. package/dist/esm/proxy/index.js.map +7 -0
  168. package/dist/esm-bundle/dooboostore-simple-boot-http-server-ssr.esm.js +6 -0
  169. package/dist/esm-bundle/dooboostore-simple-boot-http-server-ssr.esm.js.map +7 -0
  170. package/dist/umd-bundle/dooboostore-simple-boot-http-server-ssr.umd.js +28 -0
  171. package/dist/umd-bundle/dooboostore-simple-boot-http-server-ssr.umd.js.map +7 -0
  172. package/package.json +60 -45
  173. package/SimpleBootHttpSSRFactory.js +0 -10
  174. package/SimpleBootHttpSSRServer.js +0 -12
  175. package/codes/HttpHeaders.js +0 -10
  176. package/codes/Mimes.js +0 -3
  177. package/decorators/LoadAroundBefore.js +0 -31
  178. package/decorators/SaveAroundAfter.js +0 -26
  179. package/filters/IntentSchemeFilter.js +0 -72
  180. package/filters/SSRFilter.js +0 -232
  181. package/filters/SSRWorker.js +0 -72
  182. package/initializers/JsdomInitializer.js +0 -63
  183. package/option/HttpSSRServerOption.js +0 -4
  184. package/proxy/IntentSchemeFrontProxy.js +0 -68
  185. package/proxy/IntentSchemeServerProxy.js +0 -39
  186. package/proxy/SymbolIntentApiServiceProxy.js +0 -67
  187. /package/{SimpleBootHttpSSRFactory.d.ts → dist/cjs/SimpleBootHttpSSRFactory.d.ts} +0 -0
  188. /package/{codes → dist/cjs/codes}/HttpHeaders.d.ts +0 -0
  189. /package/{codes → dist/cjs/codes}/Mimes.d.ts +0 -0
  190. /package/{decorators → dist/cjs/decorators}/LoadAroundBefore.d.ts +0 -0
  191. /package/{decorators → dist/cjs/decorators}/SaveAroundAfter.d.ts +0 -0
  192. /package/{filters → dist/cjs/filters}/IntentSchemeFilter.d.ts +0 -0
  193. /package/{filters → dist/cjs/filters}/SSRWorker.d.ts +0 -0
  194. /package/{initializers → dist/cjs/initializers}/JsdomInitializer.d.ts +0 -0
  195. /package/{option → dist/cjs/option}/HttpSSRServerOption.d.ts +0 -0
  196. /package/{proxy → dist/cjs/proxy}/IntentSchemeFrontProxy.d.ts +0 -0
  197. /package/{proxy → dist/cjs/proxy}/IntentSchemeServerProxy.d.ts +0 -0
@@ -1,26 +0,0 @@
1
- import { getSim } from '@dooboostore/simple-boot/decorators/SimDecorator';
2
- export const SaveAroundAfter = (obj, propertyKey, args, beforeReturn) => {
3
- const simstanceManager = obj._SimpleBoot_simstanceManager;
4
- const simOption = obj._SimpleBoot_simOption;
5
- const config = getSim(obj);
6
- if (simstanceManager && simOption && (config === null || config === void 0 ? void 0 : config.scheme)) {
7
- if (!simOption.window.server_side_data) {
8
- simOption.window.server_side_data = {};
9
- }
10
- const key = config.scheme + '_' + propertyKey;
11
- if (beforeReturn instanceof Promise) {
12
- beforeReturn.then((it) => {
13
- simOption.window.server_side_data[key] = JSON.stringify(it);
14
- return it;
15
- });
16
- }
17
- else {
18
- simOption.window.server_side_data[key] = JSON.stringify(beforeReturn);
19
- }
20
- }
21
- return beforeReturn;
22
- };
23
- export const getStorage = (window) => {
24
- return window.aroundStorage;
25
- };
26
- //# sourceMappingURL=SaveAroundAfter.js.map
@@ -1,72 +0,0 @@
1
- import { __awaiter, __decorate, __metadata } from "tslib";
2
- import { HttpHeaders } from '../codes/HttpHeaders';
3
- import { Intent, PublishType } from '@dooboostore/simple-boot/intent/Intent';
4
- import { IntentManager } from '@dooboostore/simple-boot/intent/IntentManager';
5
- import { Sim } from '@dooboostore/simple-boot/decorators/SimDecorator';
6
- import { HttpStatus } from '@dooboostore/simple-boot-http-server/codes/HttpStatus';
7
- import { Mimes } from '../codes/Mimes';
8
- let IntentSchemeFilter = class IntentSchemeFilter {
9
- constructor(intentManager) {
10
- this.intentManager = intentManager;
11
- }
12
- onInit(app) {
13
- return __awaiter(this, void 0, void 0, function* () {
14
- });
15
- }
16
- proceedBefore(_a) {
17
- return __awaiter(this, arguments, void 0, function* ({ rr, app }) {
18
- var _b;
19
- // const rr = rrr;
20
- const url = rr.reqUrl;
21
- const contentLength = Number(rr.reqHeader((_b = HttpHeaders.ContentLength.toLowerCase()) !== null && _b !== void 0 ? _b : '0'));
22
- const acceptType = rr.reqHeader(HttpHeaders.Accept);
23
- const contentType = rr.reqHeader(HttpHeaders.ContentType);
24
- const intentScheme = rr.reqHeader(HttpHeaders.XSimpleBootSsrIntentScheme);
25
- if (acceptType === Mimes.ApplicationJsonPostSimpleBootSsrIntentScheme && intentScheme) {
26
- let intent = new Intent(`${intentScheme}:/${url}`);
27
- intent.publishType = PublishType.INLINE_DATA_PARAMETERS;
28
- // const responseHeader = {} as any;
29
- // responseHeader[HttpHeaders.ContentType] = Mimes.ApplicationJson;
30
- if (contentLength > 0) {
31
- if (contentType.includes(Mimes.ApplicationJson)) {
32
- intent.data = [yield rr.reqBodyJsonData(), rr];
33
- }
34
- else if (contentType.includes(Mimes.MultipartFormData)) {
35
- intent.data = [yield rr.reqBodyMultipartFormDataObject(), rr];
36
- }
37
- const rdatas = this.intentManager.publish(intent);
38
- const rdata = rdatas[0];
39
- const wdata = rdata instanceof Promise ? yield rdata : rdata;
40
- rr.resStatusCode(HttpStatus.Ok);
41
- rr.resSetHeader(HttpHeaders.ContentType, [Mimes.ApplicationJson]);
42
- yield rr.resEnd(wdata ? JSON.stringify(wdata) : undefined);
43
- }
44
- else {
45
- intent.data = rr.reqUrlSearchParamTuples.length > 0 ? [rr.reqUrlSearchParamsObj, rr] : [rr];
46
- const rdatas = this.intentManager.publish(intent);
47
- const rdata = rdatas[0];
48
- const wdata = rdata instanceof Promise ? yield rdata : rdata;
49
- rr.resStatusCode(HttpStatus.Ok);
50
- rr.resSetHeader(HttpHeaders.ContentType, [Mimes.ApplicationJson]);
51
- yield rr.resEnd(wdata ? JSON.stringify(wdata) : undefined);
52
- }
53
- // console.log('---------3--intent request', rr.req.readable, rr.req.readableLength);
54
- return false;
55
- }
56
- else {
57
- return true;
58
- }
59
- });
60
- }
61
- proceedAfter(_a) {
62
- return __awaiter(this, arguments, void 0, function* ({ rr, app }) {
63
- return true;
64
- });
65
- }
66
- };
67
- IntentSchemeFilter = __decorate([
68
- Sim,
69
- __metadata("design:paramtypes", [IntentManager])
70
- ], IntentSchemeFilter);
71
- export { IntentSchemeFilter };
72
- //# sourceMappingURL=IntentSchemeFilter.js.map
@@ -1,232 +0,0 @@
1
- import { __awaiter } from "tslib";
2
- import { HttpHeaders } from '@dooboostore/simple-boot-http-server/codes/HttpHeaders';
3
- import { JsdomInitializer } from '../initializers/JsdomInitializer';
4
- import { Mimes } from '@dooboostore/simple-boot-http-server/codes/Mimes';
5
- import { HttpStatus } from '@dooboostore/simple-boot-http-server/codes/HttpStatus';
6
- import { AsyncBlockingQueue } from '@dooboostore/core/queues/AsyncBlockingQueue';
7
- import { RandomUtils } from '@dooboostore/core/random/RandomUtils';
8
- import { NotFoundError } from '@dooboostore/simple-boot-http-server/errors/NotFoundError';
9
- export class SSRFilter {
10
- constructor(config, otherInstanceSim) {
11
- this.config = config;
12
- this.otherInstanceSim = otherInstanceSim;
13
- this.simpleBootFrontPool = [];
14
- this.simpleBootFrontQueue = new AsyncBlockingQueue();
15
- this.welcomUrl = 'http://localhost';
16
- config.frontDistIndexFileName = config.frontDistIndexFileName || 'index.html';
17
- this.indexHTML = JsdomInitializer.loadFile(this.config.frontDistPath, config.frontDistIndexFileName);
18
- }
19
- onInit(app) {
20
- return __awaiter(this, void 0, void 0, function* () {
21
- for (let i = 0; i < this.config.poolOption.min; i++) {
22
- yield this.pushQueue();
23
- }
24
- // console.log('SimpleBootHttpSSRFactory init success ', + this.simpleBootFrontPool.length)
25
- });
26
- }
27
- // workerTs(workerOptions: WorkerOptions) {
28
- // workerOptions.eval = true;
29
- // if (!workerOptions.workerData) {
30
- // workerOptions.workerData = {};
31
- // }
32
- // workerOptions.workerData.__filename = '/Users/hyunhakim/source/visualkhh/pet-space/libs/simple-boot-http-ssr/dist/filters/SSRCreatorWorker.js';
33
- // return new Worker(` const wk = require('worker_threads'); require('ts-node').register(); let file = wk.workerData.__filename; require(file); `, workerOptions,);
34
- // }
35
- makeJsdom() {
36
- return __awaiter(this, void 0, void 0, function* () {
37
- const jsdom = yield new JsdomInitializer(this.config.frontDistPath, this.config.frontDistIndexFileName || 'index.html', { url: this.welcomUrl }).run();
38
- return jsdom;
39
- });
40
- }
41
- makeFront(jsdom) {
42
- return __awaiter(this, void 0, void 0, function* () {
43
- const name = RandomUtils.uuid();
44
- // const jsdom = await this.makeJsdom();
45
- const window = jsdom.window;
46
- window.ssrUse = false;
47
- const option = this.config.factorySimFrontOption(window);
48
- const simpleBootFront = yield this.config.factory.create(option, this.config.using, this.config.domExcludes);
49
- simpleBootFront.run(this.otherInstanceSim);
50
- simpleBootFront.jsdom = jsdom;
51
- return simpleBootFront;
52
- });
53
- }
54
- enqueueFrontApp(simpleBootFront) {
55
- // this.simpleBootFrontPool.set(simpleBootFront.option.name!, simpleBootFront);
56
- this.simpleBootFrontPool.push(simpleBootFront);
57
- this.simpleBootFrontQueue.enqueue(simpleBootFront);
58
- }
59
- // async pushQueue(destorFront?: SimpleBootFront) {
60
- // if (destorFront) {
61
- // this.simpleBootFrontPool.delete(destorFront.option.name!);
62
- // }
63
- pushQueue() {
64
- return __awaiter(this, void 0, void 0, function* () {
65
- if (this.simpleBootFrontPool.length < this.config.poolOption.max) {
66
- this.enqueueFrontApp(yield this.makeFront(yield this.makeJsdom()));
67
- }
68
- });
69
- }
70
- proceedBefore(_a) {
71
- return __awaiter(this, arguments, void 0, function* ({ rr, app }) {
72
- var _b, _c, _d;
73
- if ((_c = (_b = this.config).ssrExcludeFilter) === null || _c === void 0 ? void 0 : _c.call(_b, rr)) {
74
- return false;
75
- }
76
- if ((rr.reqHasAcceptHeader(Mimes.TextHtml) || rr.reqHasAcceptHeader(Mimes.All))) {
77
- if (this.simpleBootFrontQueue.isEmpty()) {
78
- yield this.pushQueue();
79
- }
80
- const simpleBootFront = yield this.simpleBootFrontQueue.dequeue();
81
- try {
82
- // console.log('SSRFilter before-->' , simpleBootFront.option.name, 'poolLength:',this.simpleBootFrontPool.size);
83
- simpleBootFront.option.window.ssrUse = true;
84
- delete simpleBootFront.option.window.server_side_data;
85
- const url = rr.reqUrlObj({ host: 'localhost' });
86
- if ((_d = this.config.simpleBootFront) === null || _d === void 0 ? void 0 : _d.notFoundError) {
87
- // intent router check first
88
- const intent = yield simpleBootFront.getIntent(url.pathname);
89
- // route를 못찾은상태에서 router path까지 안맞으면 404 처리한다. route랑 router랑 다르니깐 헛갈리지말도록
90
- if (intent.module === undefined && (!intent.getRouterPathData(rr.reqUrlPathName))) {
91
- throw new NotFoundError({ message: `Not Found: ${rr.reqUrlPathName}` });
92
- }
93
- }
94
- // runRouting!!
95
- simpleBootFront.goRouting(url.toString());
96
- // console.log('------intent', intent)
97
- yield new Promise((r) => setTimeout(r, 0)); // <--중요: 이거 넣어야지 두번불러지는게 없어지는듯? 뭐지 event loop 변경된건가?
98
- // const e = Expression.Path.pathNameData(rr.reqUrlPathName, intent.getRouterPath())
99
- // console.log('------intent', rr.reqUrl, rr.reqUrlPathName, intent.module, intent.getRouterPath(), e)
100
- // simpleBootFront.option.window.document.documentElemenh
101
- // "dr-"로 시작하는 모든 attribute를 가진 element에서 해당 attribute를 제거
102
- simpleBootFront.option.window.document.querySelectorAll('*').forEach(el => {
103
- Array.from(el.attributes).forEach(attr => {
104
- if (/^dr-/.test(attr.name) || /^domstyle/.test(attr.name) || /this-path/.test(attr.name)) {
105
- el.removeAttribute(attr.name);
106
- }
107
- });
108
- });
109
- let html = simpleBootFront.option.window.document.documentElement.outerHTML;
110
- // html = '<!DOCTYPE html>'+html;
111
- html = html.replace(/\$\{[\s\S]*?\}\$/g, '');
112
- const serverSideData = simpleBootFront.option.window.server_side_data;
113
- if (serverSideData) {
114
- const data = Object.entries(serverSideData).map(([k, v]) => {
115
- if (typeof v === 'string') {
116
- return `window.server_side_data.${k} = ${v}`;
117
- }
118
- else {
119
- return `window.server_side_data.${k} = ${JSON.stringify(v)}`;
120
- }
121
- }).join(';');
122
- if (data) {
123
- html = html.replace('</head>', `<script> window.server_side_data={}; ${data}; </script></head>`);
124
- }
125
- }
126
- yield this.writeOkHtmlAndEnd({ rr }, html);
127
- }
128
- finally {
129
- simpleBootFront.option.window.ssrUse = false;
130
- delete simpleBootFront.option.window.server_side_data;
131
- // console.log('--------->', simpleBootFront.option.window)
132
- // simpleBootFront.ninitWriteRootRouter();
133
- // ((simpleBootFront as any).jsdom as JSDOM.JSDOM)?.reconfigure({url: '/' });
134
- // simpleBootFront.option.window.location.href = 'about:blank';
135
- this.simpleBootFrontQueue.enqueue(simpleBootFront);
136
- // simpleBootFront.option.window.document.body.innerHTML = this.rootJSDOM.window.document.body.innerHTML;
137
- // simpleBootFront.writeRootRouter()
138
- // await simpleBootFront.goRouting('/');
139
- // ((simpleBootFront as any).jsdom as JSDOM.JSDOM)?.reconfigure({url: this.welcomUrl });
140
- // simpleBootFront.option.window.location.href = this.welcomUrl;
141
- // simpleBootFront.option.window.document.documentElement.outerHTML = this.indexHTML;
142
- // this.simpleBootFrontQueue.enqueue(simpleBootFront);
143
- // await new Promise((re, r) => setTimeout(() => re(true), 10000));
144
- // new Promise((re, r) => setTimeout(() => re(true), 10000)).then(it => {
145
- // console.log('ddddddddddd')
146
- // });
147
- // this.simpleBootFrontPool.delete(simpleBootFront.option.name!);
148
- // if (isMainThread) { // 메인 스레드
149
- // console.log('file-->', __filename)
150
- // const worker = new Worker(__filename);
151
- // worker.on('message', (value: any) => {
152
- // console.log('워커로부터', value)
153
- // })
154
- // worker.on('exit', (value: any) => { // parentPort.close()가 일어나면 이벤트 발생
155
- // console.log('워커 끝~');
156
- // })
157
- // worker.postMessage('ping'); // 워커스레드에게 메세지를 보낸다.
158
- // } else { // 워커스레드
159
- // parentPort.on('message', (value: any) => {
160
- // console.log("부모로부터", value);
161
- // parentPort.postMessage('pong');
162
- // parentPort.close(); // 워커스레드 종료라고 메인스레드에 알려줘야 exit이벤트 발생
163
- // })
164
- // }
165
- //worker thrad
166
- // const workerPath = path.join(__dirname, 'SSRWorker.js');
167
- // const worker = new Worker(workerPath);
168
- // worker.once('message', (value: any) => {
169
- // console.log('워커로부터', value)
170
- // });
171
- // const receiveWorker = new Worker('/Users/hyunhakim/source/visualkhh/pet-space/libs/simple-boot-http-ssr/dist/filters/SSRCreatorWorker.js');
172
- // receiveWorker.on('message', (msg: JSDOM.JSDOM)=>{
173
- // console.log('워커로부터', msg, msg.window.document.body.innerHTML)
174
- // console.log('a message is sent! : ', msg)
175
- //
176
- // });
177
- //
178
- // receiveWorker.on('error', err=>{
179
- // console.error(err);
180
- // })
181
- //
182
- // receiveWorker.on('exit', ()=>console.log('exited!'));
183
- // receiveWorker.postMessage(
184
- // {
185
- // frontDistPath: this.factory.frontDistPath,
186
- // frontDistIndexFileName: this.factory.frontDistIndexFileName,
187
- // }
188
- // );
189
- // const myWorkers = this.workerTs({});
190
- // myWorkers.postMessage(this);
191
- // myWorkers.on('message', (value: SimpleBootFront) => {
192
- // this.pushQueue(value);
193
- // })
194
- // this
195
- // this.pushQueue(simpleBootFront).then(it => {
196
- // console.log('deee')
197
- // });
198
- // console.log('-1->', simpleBootFront.option.window.location.href);
199
- // simpleBootFront.option.window.location.href = this.welcomUrl;
200
- // simpleBootFront.option.window.location.reload();
201
- // console.log('-2->', simpleBootFront.option.window.location.href);
202
- // simpleBootFront.option.window.location.reload();
203
- // console.log('-3->', simpleBootFront.option.window.location.href);
204
- // this.simpleBootFrontQueue.enqueue(simpleBootFront);
205
- // await this.makeJsdom();
206
- // simpleBootFront.option.window.location.href = this.welcomUrl;
207
- }
208
- // console.log('----doen')
209
- return false;
210
- }
211
- else {
212
- // console.log('----doen2')
213
- return true;
214
- }
215
- });
216
- }
217
- writeOkHtmlAndEnd(_a, html_1) {
218
- return __awaiter(this, arguments, void 0, function* ({ rr, status = HttpStatus.Ok }, html) {
219
- // rr.res.writeHead(status, {[HttpHeaders.ContentType]: Mimes.TextHtml});
220
- rr.resStatusCode(status);
221
- rr.resSetHeader(HttpHeaders.ContentType, Mimes.TextHtml);
222
- yield rr.resEnd(html);
223
- });
224
- }
225
- proceedAfter(_a) {
226
- return __awaiter(this, arguments, void 0, function* ({ rr, app }) {
227
- // console.log('done--------', sw)
228
- return true;
229
- });
230
- }
231
- }
232
- //# sourceMappingURL=SSRFilter.js.map
@@ -1,72 +0,0 @@
1
- import { __awaiter } from "tslib";
2
- import { JsdomInitializer } from '../initializers/JsdomInitializer';
3
- import { RandomUtils } from '@dooboostore/core/random/RandomUtils';
4
- export class SSRWorker {
5
- constructor(factory, otherInstanceSim) {
6
- this.factory = factory;
7
- this.otherInstanceSim = otherInstanceSim;
8
- this.welcomUrl = 'http://localhost';
9
- }
10
- run() {
11
- return __awaiter(this, void 0, void 0, function* () {
12
- this.simpleBootFront = yield this.makeFront();
13
- });
14
- }
15
- makeJsdom() {
16
- return __awaiter(this, void 0, void 0, function* () {
17
- const jsdom = yield new JsdomInitializer(this.factory.frontDistPath, this.factory.frontDistIndexFileName || 'index.html', { url: this.welcomUrl }).run();
18
- return jsdom;
19
- });
20
- }
21
- makeFront(jsdom) {
22
- return __awaiter(this, void 0, void 0, function* () {
23
- if (!jsdom) {
24
- jsdom = yield this.makeJsdom();
25
- }
26
- const name = RandomUtils.uuid();
27
- // const jsdom = await this.makeJsdom();
28
- const window = jsdom.window;
29
- window.ssrUse = false;
30
- const option = this.factory.factorySimFrontOption(window);
31
- // option.name = name;
32
- const simpleBootFront = yield this.factory.factory.create(option, this.factory.using, this.factory.domExcludes);
33
- simpleBootFront.run(this.otherInstanceSim);
34
- simpleBootFront.jsdom = jsdom;
35
- return simpleBootFront;
36
- });
37
- }
38
- getHtml(url) {
39
- return __awaiter(this, void 0, void 0, function* () {
40
- if (this.simpleBootFront && this.simpleBootFront.option.window.ssrUse) {
41
- }
42
- else if (this.simpleBootFront) {
43
- this.simpleBootFront.option.window.ssrUse = true;
44
- delete this.simpleBootFront.option.window.server_side_data;
45
- // run
46
- yield this.simpleBootFront.goRouting(url);
47
- let html = this.simpleBootFront.option.window.document.documentElement.outerHTML;
48
- const serverSideData = this.simpleBootFront.option.window.server_side_data;
49
- if (serverSideData) {
50
- const data = Object.entries(serverSideData).map(([k, v]) => {
51
- if (typeof v === 'string') {
52
- return `window.server_side_data.${k} = ${v}`;
53
- }
54
- else {
55
- return `window.server_side_data.${k} = ${JSON.stringify(v)}`;
56
- }
57
- }).join(';');
58
- if (data) {
59
- html = html.replace('</head>', `<script> window.server_side_data={}; ${data}; </script></head>`);
60
- }
61
- }
62
- this.makeFront().then(it => {
63
- this.simpleBootFront = it;
64
- });
65
- return html;
66
- }
67
- {
68
- }
69
- });
70
- }
71
- }
72
- //# sourceMappingURL=SSRWorker.js.map
@@ -1,63 +0,0 @@
1
- import { __awaiter } from "tslib";
2
- import * as JSDOM from 'jsdom';
3
- import fs from 'fs';
4
- import path from 'path';
5
- export class JsdomInitializer {
6
- constructor(frontDistPath, frontDistIndexFileName, reconfigureSettings) {
7
- this.frontDistPath = frontDistPath;
8
- this.frontDistIndexFileName = frontDistIndexFileName;
9
- this.reconfigureSettings = reconfigureSettings;
10
- }
11
- static loadFile(distPath, filePath) {
12
- return fs.readFileSync(path.join(distPath, filePath), 'utf8');
13
- }
14
- run() {
15
- return __awaiter(this, void 0, void 0, function* () {
16
- // const indexHTML = fs.readFileSync(path.join(this.frontDistPath, 'index.html'), 'utf8');
17
- // const indexHTML = JsdomInitializer.loadFile(this.frontDistPath, this.frontDistIndexFileName);
18
- const pathStr = path.join(this.frontDistPath, this.frontDistIndexFileName);
19
- const jsdom = yield JSDOM.JSDOM.fromFile(pathStr, {});
20
- if (this.reconfigureSettings) {
21
- jsdom.reconfigure(this.reconfigureSettings);
22
- }
23
- // devDependencies
24
- // "@types/jsdom": "^21.1.2",
25
- // "canvas": "^3.1.0",
26
- // global setting
27
- // @ts-ignore
28
- global.document = jsdom.window.document;
29
- // @ts-ignore
30
- global.window = jsdom.window;
31
- // @ts-ignore
32
- global.window.requestAnimationFrame = () => { };
33
- const dummyResponse = { ok: false, json: () => Promise.resolve({}) }; // as Response;
34
- global.fetch = (...data) => Promise.resolve(dummyResponse);
35
- // @ts-ignore
36
- global.history = jsdom.window.history;
37
- global.Event = jsdom.window.Event;
38
- global.IntersectionObserver = jsdom.window.IntersectionObserver;
39
- // @ts-ignore
40
- // global.Error = ErrorBase;
41
- // @ts-ignore
42
- // global.navigator = jsdom.window.navigator;
43
- global.NodeFilter = jsdom.window.NodeFilter;
44
- global.Node = jsdom.window.Node;
45
- global.HTMLElement = jsdom.window.HTMLElement;
46
- global.HTMLMetaElement = jsdom.window.HTMLMetaElement;
47
- global.Element = jsdom.window.Element;
48
- global.HTMLCanvasElement = jsdom.window.HTMLCanvasElement;
49
- global.HTMLCanvasElement.prototype.getContext = () => {
50
- return null;
51
- };
52
- global.CanvasRenderingContext2D = jsdom.window.CanvasRenderingContext2D;
53
- global.CanvasPattern = jsdom.window.CanvasPattern;
54
- global.CanvasGradient = jsdom.window.CanvasGradient;
55
- global.Path2D = jsdom.window.Path2D;
56
- global.ImageData = jsdom.window.ImageData;
57
- return jsdom;
58
- });
59
- }
60
- }
61
- //
62
- // export default new JsdomInitializer();
63
- //# sourceMappingURL=JsdomInitializer.js.map
@@ -1,4 +0,0 @@
1
- import { HttpServerOption } from '@dooboostore/simple-boot-http-server/option/HttpServerOption';
2
- export class HttpSSRServerOption extends HttpServerOption {
3
- }
4
- //# sourceMappingURL=HttpSSRServerOption.js.map
@@ -1,68 +0,0 @@
1
- import { __awaiter, __decorate } from "tslib";
2
- import { getSim, Sim } from '@dooboostore/simple-boot/decorators/SimDecorator';
3
- import { HttpHeaders } from '@dooboostore/simple-boot-http-server/codes/HttpHeaders';
4
- import { HttpHeaders as SSRHttpHeaders } from '../codes/HttpHeaders';
5
- import { Mimes as SSRMimes } from '../codes/Mimes';
6
- import { ReflectUtils } from '@dooboostore/core/reflect/ReflectUtils';
7
- import { ConvertUtils } from '@dooboostore/core/convert/ConvertUtils';
8
- let IntentSchemeFrontProxy = class IntentSchemeFrontProxy {
9
- get(target, prop) {
10
- const t = target[prop];
11
- // TODO: 여기에 추가적인 프로퍼티 작성으 추가적으로 해야된다..
12
- // if (typeof t === 'function') {
13
- if (!['constructor', 'onProxyDomRender', 'toString'].includes(prop)) {
14
- return (...args) => {
15
- var _a, _b, _c;
16
- // const simstanceManager = target._SimpleBoot_simstanceManager;
17
- const simOption = target._SimpleBoot_simOption;
18
- const config = getSim(target);
19
- // const scheme = getSim(target)?.scheme;
20
- const firstScheme = ConvertUtils.flatArray(config === null || config === void 0 ? void 0 : config.scheme)[0];
21
- const key = firstScheme + '_' + prop;
22
- const type = ReflectUtils.getReturnType(target, prop);
23
- const isHas = (key in ((_a = simOption.window.server_side_data) !== null && _a !== void 0 ? _a : {}));
24
- if (isHas) {
25
- const data = (_b = simOption.window.server_side_data) === null || _b === void 0 ? void 0 : _b[key];
26
- (_c = simOption.window.server_side_data) === null || _c === void 0 ? true : delete _c[key];
27
- let rdata;
28
- if (type instanceof Promise) {
29
- rdata = Promise.resolve(data);
30
- }
31
- else {
32
- rdata = data;
33
- }
34
- return rdata;
35
- }
36
- else {
37
- return fetch(`/${prop.toString()}`, {
38
- method: 'POST',
39
- headers: { [HttpHeaders.ContentType]: SSRMimes.ApplicationJsonPostSimpleBootSsrIntentScheme, [SSRHttpHeaders.XSimpleBootSsrIntentScheme]: firstScheme !== null && firstScheme !== void 0 ? firstScheme : '' },
40
- body: JSON.stringify(args[0])
41
- }).then((res) => __awaiter(this, void 0, void 0, function* () {
42
- try {
43
- const data = yield res.json();
44
- return data;
45
- }
46
- catch (e) {
47
- try {
48
- return yield res.text();
49
- }
50
- catch (e) {
51
- return undefined;
52
- }
53
- }
54
- }));
55
- }
56
- // return t.apply(target, args);
57
- };
58
- }
59
- else {
60
- return t;
61
- }
62
- }
63
- };
64
- IntentSchemeFrontProxy = __decorate([
65
- Sim
66
- ], IntentSchemeFrontProxy);
67
- export { IntentSchemeFrontProxy };
68
- //# sourceMappingURL=IntentSchemeFrontProxy.js.map
@@ -1,39 +0,0 @@
1
- import { __decorate } from "tslib";
2
- import { getSim, Sim } from '@dooboostore/simple-boot/decorators/SimDecorator';
3
- let IntentSchemeServerProxy = class IntentSchemeServerProxy {
4
- get(target, prop) {
5
- const t = target[prop];
6
- if (typeof t === 'function') {
7
- return (...args) => {
8
- const simstanceManager = target._SimpleBoot_simstanceManager;
9
- const simOption = target._SimpleBoot_simOption;
10
- const config = getSim(target);
11
- const data = t.apply(target, args);
12
- if (simstanceManager && simOption && (config === null || config === void 0 ? void 0 : config.scheme) && simOption.window) {
13
- if (!simOption.window.server_side_data) {
14
- simOption.window.server_side_data = {};
15
- }
16
- const key = config.scheme + '_' + prop;
17
- if (data instanceof Promise) {
18
- data.then((it) => {
19
- simOption.window.server_side_data[key] = JSON.stringify(it);
20
- return it;
21
- });
22
- }
23
- else {
24
- simOption.window.server_side_data[key] = JSON.stringify(data);
25
- }
26
- }
27
- return data;
28
- };
29
- }
30
- else {
31
- return t;
32
- }
33
- }
34
- };
35
- IntentSchemeServerProxy = __decorate([
36
- Sim
37
- ], IntentSchemeServerProxy);
38
- export { IntentSchemeServerProxy };
39
- //# sourceMappingURL=IntentSchemeServerProxy.js.map
@@ -1,67 +0,0 @@
1
- import { __decorate, __metadata } from "tslib";
2
- import { getSim, Sim } from '@dooboostore/simple-boot/decorators/SimDecorator';
3
- import { makeIntentHeaderBySymbol } from '../codes/HttpHeaders';
4
- import { ConvertUtils } from '@dooboostore/core/convert/ConvertUtils';
5
- import { ApiService } from '@dooboostore/simple-boot/fetch/ApiService';
6
- let SymbolIntentApiServiceProxy = class SymbolIntentApiServiceProxy {
7
- constructor(apiService) {
8
- this.apiService = apiService;
9
- }
10
- get(target, prop, receiver) {
11
- const simConfig = getSim(target);
12
- const apiService = this.apiService;
13
- const value = Reflect.get(target, prop, receiver);
14
- if (typeof value === 'function' && (simConfig === null || simConfig === void 0 ? void 0 : simConfig.symbol)) {
15
- return function (...args) {
16
- const f = value;
17
- const p = (userConfig) => {
18
- var _a;
19
- const headers = Object.assign(Object.assign({}, ((_a = userConfig === null || userConfig === void 0 ? void 0 : userConfig.headers) !== null && _a !== void 0 ? _a : {})), makeIntentHeaderBySymbol(simConfig.symbol));
20
- if (userConfig === null || userConfig === void 0 ? void 0 : userConfig.multipartFormData) {
21
- return apiService.post({
22
- target: `/${String(prop)}`,
23
- config: {
24
- bypassTransform: userConfig === null || userConfig === void 0 ? void 0 : userConfig.bypassTransform,
25
- transformText: userConfig === null || userConfig === void 0 ? void 0 : userConfig.transformText,
26
- fetch: {
27
- credentials: 'include',
28
- headers: headers,
29
- body: ConvertUtils.toFormData(userConfig === null || userConfig === void 0 ? void 0 : userConfig.body)
30
- }
31
- }
32
- });
33
- }
34
- else {
35
- return apiService.postJson({
36
- target: `/${String(prop)}`,
37
- config: {
38
- bypassTransform: userConfig === null || userConfig === void 0 ? void 0 : userConfig.bypassTransform,
39
- transformText: userConfig === null || userConfig === void 0 ? void 0 : userConfig.transformText,
40
- fetch: {
41
- credentials: 'include',
42
- headers: headers,
43
- body: userConfig === null || userConfig === void 0 ? void 0 : userConfig.body
44
- }
45
- }
46
- });
47
- }
48
- };
49
- args.push(p);
50
- return Reflect.apply(f, target, args);
51
- // return f.apply(target, args);
52
- };
53
- }
54
- return Reflect.get(target, prop, receiver);
55
- }
56
- apply(target, thisArg, argArray) {
57
- console.log('SymbolIntentApiServiceProxy apply');
58
- // @ts-ignore
59
- return Reflect.apply(target, thisArg, argArray);
60
- }
61
- };
62
- SymbolIntentApiServiceProxy = __decorate([
63
- Sim,
64
- __metadata("design:paramtypes", [ApiService])
65
- ], SymbolIntentApiServiceProxy);
66
- export { SymbolIntentApiServiceProxy };
67
- //# sourceMappingURL=SymbolIntentApiServiceProxy.js.map
File without changes
File without changes