egg 4.0.10 → 4.1.0-beta.10

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 (291) hide show
  1. package/README.md +4 -22
  2. package/dist/agent.d.ts +8 -0
  3. package/dist/agent.js +11 -0
  4. package/dist/app/extend/context.d.ts +207 -0
  5. package/dist/app/extend/context.js +244 -0
  6. package/{src/app/extend/helper.ts → dist/app/extend/helper.d.ts} +8 -10
  7. package/dist/app/extend/helper.js +47 -0
  8. package/dist/app/extend/request.d.ts +145 -0
  9. package/dist/app/extend/request.js +226 -0
  10. package/{src/app/extend/response.ts → dist/app/extend/response.d.ts} +7 -16
  11. package/dist/app/extend/response.js +36 -0
  12. package/dist/app/middleware/body_parser.d.ts +2 -0
  13. package/dist/app/middleware/body_parser.js +7 -0
  14. package/dist/app/middleware/meta.d.ts +11 -0
  15. package/dist/app/middleware/meta.js +14 -0
  16. package/dist/app/middleware/notfound.d.ts +11 -0
  17. package/dist/app/middleware/notfound.js +26 -0
  18. package/dist/app/middleware/override_method.d.ts +2 -0
  19. package/dist/app/middleware/override_method.js +7 -0
  20. package/dist/app/middleware/site_file.d.ts +13 -0
  21. package/dist/app/middleware/site_file.js +38 -0
  22. package/dist/config/config.default.d.ts +12 -0
  23. package/dist/config/config.default.js +260 -0
  24. package/dist/config/config.local.d.ts +10 -0
  25. package/dist/config/config.local.js +7 -0
  26. package/dist/config/config.unittest.d.ts +9 -0
  27. package/dist/config/config.unittest.js +10 -0
  28. package/{src/config/plugin.ts → dist/config/plugin.d.ts} +41 -49
  29. package/dist/config/plugin.js +54 -0
  30. package/dist/index.d.ts +19 -0
  31. package/dist/index.js +21 -0
  32. package/dist/lib/agent.d.ts +22 -0
  33. package/dist/lib/agent.js +56 -0
  34. package/dist/lib/application.d.ts +71 -0
  35. package/dist/lib/application.js +209 -0
  36. package/dist/lib/core/base_context_class.d.ts +23 -0
  37. package/dist/lib/core/base_context_class.js +19 -0
  38. package/dist/lib/core/base_context_logger.d.ts +40 -0
  39. package/dist/lib/core/base_context_logger.js +58 -0
  40. package/dist/lib/core/base_hook_class.d.ts +18 -0
  41. package/dist/lib/core/base_hook_class.js +26 -0
  42. package/dist/lib/core/context_httpclient.d.ts +22 -0
  43. package/dist/lib/core/context_httpclient.js +29 -0
  44. package/dist/lib/core/httpclient.d.ts +17 -0
  45. package/dist/lib/core/httpclient.js +36 -0
  46. package/dist/lib/core/logger.d.ts +7 -0
  47. package/dist/lib/core/logger.js +31 -0
  48. package/{src/lib/core/messenger/IMessenger.ts → dist/lib/core/messenger/IMessenger.d.ts} +6 -10
  49. package/dist/lib/core/messenger/IMessenger.js +1 -0
  50. package/dist/lib/core/messenger/base.d.ts +12 -0
  51. package/dist/lib/core/messenger/base.js +29 -0
  52. package/dist/lib/core/messenger/index.d.ts +11 -0
  53. package/dist/lib/core/messenger/index.js +13 -0
  54. package/dist/lib/core/messenger/ipc.d.ts +63 -0
  55. package/dist/lib/core/messenger/ipc.js +122 -0
  56. package/dist/lib/core/messenger/local.d.ts +65 -0
  57. package/dist/lib/core/messenger/local.js +126 -0
  58. package/dist/lib/core/utils.d.ts +5 -0
  59. package/dist/lib/core/utils.js +48 -0
  60. package/dist/lib/egg.d.ts +306 -0
  61. package/dist/lib/egg.js +512 -0
  62. package/dist/lib/error/CookieLimitExceedError.d.ts +8 -0
  63. package/dist/lib/error/CookieLimitExceedError.js +15 -0
  64. package/dist/lib/error/MessageUnhandledRejectionError.d.ts +8 -0
  65. package/dist/lib/error/MessageUnhandledRejectionError.js +15 -0
  66. package/dist/lib/error/index.d.ts +3 -0
  67. package/dist/lib/error/index.js +4 -0
  68. package/dist/lib/loader/AgentWorkerLoader.d.ts +17 -0
  69. package/dist/lib/loader/AgentWorkerLoader.js +24 -0
  70. package/dist/lib/loader/AppWorkerLoader.d.ts +22 -0
  71. package/dist/lib/loader/AppWorkerLoader.js +37 -0
  72. package/dist/lib/loader/EggApplicationLoader.d.ts +8 -0
  73. package/dist/lib/loader/EggApplicationLoader.js +7 -0
  74. package/dist/lib/loader/index.d.ts +4 -0
  75. package/dist/lib/loader/index.js +5 -0
  76. package/dist/lib/start.d.ts +28 -0
  77. package/dist/lib/start.js +36 -0
  78. package/{src/lib/types.ts → dist/lib/types.d.ts} +73 -94
  79. package/dist/lib/types.js +36 -0
  80. package/dist/lib/utils.d.ts +5 -0
  81. package/dist/lib/utils.js +14 -0
  82. package/dist/urllib.d.ts +1 -0
  83. package/dist/urllib.js +3 -0
  84. package/package.json +81 -99
  85. package/README.zh-CN.md +0 -61
  86. package/dist/commonjs/agent.d.ts +0 -4
  87. package/dist/commonjs/agent.js +0 -10
  88. package/dist/commonjs/app/extend/context.d.ts +0 -204
  89. package/dist/commonjs/app/extend/context.js +0 -262
  90. package/dist/commonjs/app/extend/helper.d.ts +0 -37
  91. package/dist/commonjs/app/extend/helper.js +0 -49
  92. package/dist/commonjs/app/extend/request.d.ts +0 -141
  93. package/dist/commonjs/app/extend/request.js +0 -270
  94. package/dist/commonjs/app/extend/response.d.ts +0 -31
  95. package/dist/commonjs/app/extend/response.js +0 -37
  96. package/dist/commonjs/app/middleware/body_parser.d.ts +0 -2
  97. package/dist/commonjs/app/middleware/body_parser.js +0 -8
  98. package/dist/commonjs/app/middleware/meta.d.ts +0 -10
  99. package/dist/commonjs/app/middleware/meta.js +0 -22
  100. package/dist/commonjs/app/middleware/notfound.d.ts +0 -7
  101. package/dist/commonjs/app/middleware/notfound.js +0 -31
  102. package/dist/commonjs/app/middleware/override_method.d.ts +0 -2
  103. package/dist/commonjs/app/middleware/override_method.js +0 -8
  104. package/dist/commonjs/app/middleware/site_file.d.ts +0 -9
  105. package/dist/commonjs/app/middleware/site_file.js +0 -58
  106. package/dist/commonjs/config/config.default.d.ts +0 -9
  107. package/dist/commonjs/config/config.default.js +0 -379
  108. package/dist/commonjs/config/config.local.d.ts +0 -8
  109. package/dist/commonjs/config/config.local.js +0 -12
  110. package/dist/commonjs/config/config.unittest.d.ts +0 -7
  111. package/dist/commonjs/config/config.unittest.js +0 -11
  112. package/dist/commonjs/config/plugin.d.ts +0 -122
  113. package/dist/commonjs/config/plugin.js +0 -124
  114. package/dist/commonjs/index.d.ts +0 -69
  115. package/dist/commonjs/index.js +0 -83
  116. package/dist/commonjs/lib/agent.d.ts +0 -19
  117. package/dist/commonjs/lib/agent.js +0 -58
  118. package/dist/commonjs/lib/application.d.ts +0 -67
  119. package/dist/commonjs/lib/application.js +0 -266
  120. package/dist/commonjs/lib/core/base_context_class.d.ts +0 -17
  121. package/dist/commonjs/lib/core/base_context_class.js +0 -21
  122. package/dist/commonjs/lib/core/base_context_logger.d.ts +0 -36
  123. package/dist/commonjs/lib/core/base_context_logger.js +0 -64
  124. package/dist/commonjs/lib/core/base_hook_class.d.ts +0 -11
  125. package/dist/commonjs/lib/core/base_hook_class.js +0 -29
  126. package/dist/commonjs/lib/core/context_httpclient.d.ts +0 -16
  127. package/dist/commonjs/lib/core/context_httpclient.js +0 -30
  128. package/dist/commonjs/lib/core/httpclient.d.ts +0 -14
  129. package/dist/commonjs/lib/core/httpclient.js +0 -42
  130. package/dist/commonjs/lib/core/logger.d.ts +0 -3
  131. package/dist/commonjs/lib/core/logger.js +0 -40
  132. package/dist/commonjs/lib/core/messenger/IMessenger.d.ts +0 -50
  133. package/dist/commonjs/lib/core/messenger/IMessenger.js +0 -3
  134. package/dist/commonjs/lib/core/messenger/base.d.ts +0 -8
  135. package/dist/commonjs/lib/core/messenger/base.js +0 -31
  136. package/dist/commonjs/lib/core/messenger/index.d.ts +0 -7
  137. package/dist/commonjs/lib/core/messenger/index.js +0 -15
  138. package/dist/commonjs/lib/core/messenger/ipc.d.ts +0 -58
  139. package/dist/commonjs/lib/core/messenger/ipc.js +0 -135
  140. package/dist/commonjs/lib/core/messenger/local.d.ts +0 -60
  141. package/dist/commonjs/lib/core/messenger/local.js +0 -132
  142. package/dist/commonjs/lib/core/utils.d.ts +0 -2
  143. package/dist/commonjs/lib/core/utils.js +0 -77
  144. package/dist/commonjs/lib/egg.d.ts +0 -305
  145. package/dist/commonjs/lib/egg.js +0 -628
  146. package/dist/commonjs/lib/error/CookieLimitExceedError.d.ts +0 -5
  147. package/dist/commonjs/lib/error/CookieLimitExceedError.js +0 -16
  148. package/dist/commonjs/lib/error/MessageUnhandledRejectionError.d.ts +0 -5
  149. package/dist/commonjs/lib/error/MessageUnhandledRejectionError.js +0 -16
  150. package/dist/commonjs/lib/error/index.d.ts +0 -2
  151. package/dist/commonjs/lib/error/index.js +0 -19
  152. package/dist/commonjs/lib/loader/AgentWorkerLoader.d.ts +0 -12
  153. package/dist/commonjs/lib/loader/AgentWorkerLoader.js +0 -24
  154. package/dist/commonjs/lib/loader/AppWorkerLoader.d.ts +0 -17
  155. package/dist/commonjs/lib/loader/AppWorkerLoader.js +0 -43
  156. package/dist/commonjs/lib/loader/EggApplicationLoader.d.ts +0 -4
  157. package/dist/commonjs/lib/loader/EggApplicationLoader.js +0 -8
  158. package/dist/commonjs/lib/loader/index.d.ts +0 -3
  159. package/dist/commonjs/lib/loader/index.js +0 -22
  160. package/dist/commonjs/lib/start.d.ts +0 -24
  161. package/dist/commonjs/lib/start.js +0 -49
  162. package/dist/commonjs/lib/types.d.ts +0 -257
  163. package/dist/commonjs/lib/types.js +0 -16
  164. package/dist/commonjs/lib/utils.d.ts +0 -2
  165. package/dist/commonjs/lib/utils.js +0 -21
  166. package/dist/commonjs/package.json +0 -3
  167. package/dist/commonjs/urllib.d.ts +0 -1
  168. package/dist/commonjs/urllib.js +0 -18
  169. package/dist/esm/agent.d.ts +0 -4
  170. package/dist/esm/agent.js +0 -7
  171. package/dist/esm/app/extend/context.d.ts +0 -204
  172. package/dist/esm/app/extend/context.js +0 -259
  173. package/dist/esm/app/extend/helper.d.ts +0 -37
  174. package/dist/esm/app/extend/helper.js +0 -43
  175. package/dist/esm/app/extend/request.d.ts +0 -141
  176. package/dist/esm/app/extend/request.js +0 -264
  177. package/dist/esm/app/extend/response.d.ts +0 -31
  178. package/dist/esm/app/extend/response.js +0 -34
  179. package/dist/esm/app/middleware/body_parser.d.ts +0 -2
  180. package/dist/esm/app/middleware/body_parser.js +0 -3
  181. package/dist/esm/app/middleware/meta.d.ts +0 -10
  182. package/dist/esm/app/middleware/meta.js +0 -20
  183. package/dist/esm/app/middleware/notfound.d.ts +0 -7
  184. package/dist/esm/app/middleware/notfound.js +0 -29
  185. package/dist/esm/app/middleware/override_method.d.ts +0 -2
  186. package/dist/esm/app/middleware/override_method.js +0 -3
  187. package/dist/esm/app/middleware/site_file.d.ts +0 -9
  188. package/dist/esm/app/middleware/site_file.js +0 -53
  189. package/dist/esm/config/config.default.d.ts +0 -9
  190. package/dist/esm/config/config.default.js +0 -374
  191. package/dist/esm/config/config.local.d.ts +0 -8
  192. package/dist/esm/config/config.local.js +0 -10
  193. package/dist/esm/config/config.unittest.d.ts +0 -7
  194. package/dist/esm/config/config.unittest.js +0 -9
  195. package/dist/esm/config/favicon.png +0 -0
  196. package/dist/esm/config/plugin.d.ts +0 -122
  197. package/dist/esm/config/plugin.js +0 -122
  198. package/dist/esm/index.d.ts +0 -69
  199. package/dist/esm/index.js +0 -73
  200. package/dist/esm/lib/agent.d.ts +0 -19
  201. package/dist/esm/lib/agent.js +0 -54
  202. package/dist/esm/lib/application.d.ts +0 -67
  203. package/dist/esm/lib/application.js +0 -259
  204. package/dist/esm/lib/core/base_context_class.d.ts +0 -17
  205. package/dist/esm/lib/core/base_context_class.js +0 -17
  206. package/dist/esm/lib/core/base_context_logger.d.ts +0 -36
  207. package/dist/esm/lib/core/base_context_logger.js +0 -60
  208. package/dist/esm/lib/core/base_hook_class.d.ts +0 -11
  209. package/dist/esm/lib/core/base_hook_class.js +0 -22
  210. package/dist/esm/lib/core/context_httpclient.d.ts +0 -16
  211. package/dist/esm/lib/core/context_httpclient.js +0 -26
  212. package/dist/esm/lib/core/httpclient.d.ts +0 -14
  213. package/dist/esm/lib/core/httpclient.js +0 -38
  214. package/dist/esm/lib/core/logger.d.ts +0 -3
  215. package/dist/esm/lib/core/logger.js +0 -37
  216. package/dist/esm/lib/core/messenger/IMessenger.d.ts +0 -50
  217. package/dist/esm/lib/core/messenger/IMessenger.js +0 -2
  218. package/dist/esm/lib/core/messenger/base.d.ts +0 -8
  219. package/dist/esm/lib/core/messenger/base.js +0 -27
  220. package/dist/esm/lib/core/messenger/index.d.ts +0 -7
  221. package/dist/esm/lib/core/messenger/index.js +0 -12
  222. package/dist/esm/lib/core/messenger/ipc.d.ts +0 -58
  223. package/dist/esm/lib/core/messenger/ipc.js +0 -128
  224. package/dist/esm/lib/core/messenger/local.d.ts +0 -60
  225. package/dist/esm/lib/core/messenger/local.js +0 -128
  226. package/dist/esm/lib/core/utils.d.ts +0 -2
  227. package/dist/esm/lib/core/utils.js +0 -70
  228. package/dist/esm/lib/egg.d.ts +0 -305
  229. package/dist/esm/lib/egg.js +0 -586
  230. package/dist/esm/lib/error/CookieLimitExceedError.d.ts +0 -5
  231. package/dist/esm/lib/error/CookieLimitExceedError.js +0 -12
  232. package/dist/esm/lib/error/MessageUnhandledRejectionError.d.ts +0 -5
  233. package/dist/esm/lib/error/MessageUnhandledRejectionError.js +0 -12
  234. package/dist/esm/lib/error/index.d.ts +0 -2
  235. package/dist/esm/lib/error/index.js +0 -3
  236. package/dist/esm/lib/loader/AgentWorkerLoader.d.ts +0 -12
  237. package/dist/esm/lib/loader/AgentWorkerLoader.js +0 -20
  238. package/dist/esm/lib/loader/AppWorkerLoader.d.ts +0 -17
  239. package/dist/esm/lib/loader/AppWorkerLoader.js +0 -39
  240. package/dist/esm/lib/loader/EggApplicationLoader.d.ts +0 -4
  241. package/dist/esm/lib/loader/EggApplicationLoader.js +0 -4
  242. package/dist/esm/lib/loader/index.d.ts +0 -3
  243. package/dist/esm/lib/loader/index.js +0 -4
  244. package/dist/esm/lib/start.d.ts +0 -24
  245. package/dist/esm/lib/start.js +0 -43
  246. package/dist/esm/lib/types.d.ts +0 -257
  247. package/dist/esm/lib/types.js +0 -14
  248. package/dist/esm/lib/utils.d.ts +0 -2
  249. package/dist/esm/lib/utils.js +0 -14
  250. package/dist/esm/package.json +0 -3
  251. package/dist/esm/urllib.d.ts +0 -1
  252. package/dist/esm/urllib.js +0 -2
  253. package/dist/package.json +0 -4
  254. package/src/agent.ts +0 -7
  255. package/src/app/extend/context.ts +0 -332
  256. package/src/app/extend/request.ts +0 -300
  257. package/src/app/middleware/body_parser.ts +0 -3
  258. package/src/app/middleware/meta.ts +0 -27
  259. package/src/app/middleware/notfound.ts +0 -41
  260. package/src/app/middleware/override_method.ts +0 -3
  261. package/src/app/middleware/site_file.ts +0 -68
  262. package/src/config/config.default.ts +0 -404
  263. package/src/config/config.local.ts +0 -11
  264. package/src/config/config.unittest.ts +0 -10
  265. package/src/config/favicon.png +0 -0
  266. package/src/index.ts +0 -120
  267. package/src/lib/agent.ts +0 -66
  268. package/src/lib/application.ts +0 -308
  269. package/src/lib/core/base_context_class.ts +0 -24
  270. package/src/lib/core/base_context_logger.ts +0 -67
  271. package/src/lib/core/base_hook_class.ts +0 -30
  272. package/src/lib/core/context_httpclient.ts +0 -33
  273. package/src/lib/core/httpclient.ts +0 -64
  274. package/src/lib/core/logger.ts +0 -42
  275. package/src/lib/core/messenger/base.ts +0 -30
  276. package/src/lib/core/messenger/index.ts +0 -16
  277. package/src/lib/core/messenger/ipc.ts +0 -146
  278. package/src/lib/core/messenger/local.ts +0 -147
  279. package/src/lib/core/utils.ts +0 -77
  280. package/src/lib/egg.ts +0 -705
  281. package/src/lib/error/CookieLimitExceedError.ts +0 -12
  282. package/src/lib/error/MessageUnhandledRejectionError.ts +0 -12
  283. package/src/lib/error/index.ts +0 -2
  284. package/src/lib/loader/AgentWorkerLoader.ts +0 -21
  285. package/src/lib/loader/AppWorkerLoader.ts +0 -42
  286. package/src/lib/loader/EggApplicationLoader.ts +0 -5
  287. package/src/lib/loader/index.ts +0 -3
  288. package/src/lib/start.ts +0 -66
  289. package/src/lib/utils.ts +0 -15
  290. package/src/urllib.ts +0 -1
  291. /package/dist/{commonjs/config → config}/favicon.png +0 -0
@@ -1,628 +0,0 @@
1
- "use strict";
2
- var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
- if (k2 === undefined) k2 = k;
4
- var desc = Object.getOwnPropertyDescriptor(m, k);
5
- if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
- desc = { enumerable: true, get: function() { return m[k]; } };
7
- }
8
- Object.defineProperty(o, k2, desc);
9
- }) : (function(o, m, k, k2) {
10
- if (k2 === undefined) k2 = k;
11
- o[k2] = m[k];
12
- }));
13
- var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
- Object.defineProperty(o, "default", { enumerable: true, value: v });
15
- }) : function(o, v) {
16
- o["default"] = v;
17
- });
18
- var __importStar = (this && this.__importStar) || (function () {
19
- var ownKeys = function(o) {
20
- ownKeys = Object.getOwnPropertyNames || function (o) {
21
- var ar = [];
22
- for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
- return ar;
24
- };
25
- return ownKeys(o);
26
- };
27
- return function (mod) {
28
- if (mod && mod.__esModule) return mod;
29
- var result = {};
30
- if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
- __setModuleDefault(result, mod);
32
- return result;
33
- };
34
- })();
35
- var __importDefault = (this && this.__importDefault) || function (mod) {
36
- return (mod && mod.__esModule) ? mod : { "default": mod };
37
- };
38
- Object.defineProperty(exports, "__esModule", { value: true });
39
- exports.EggApplicationCore = exports.Router = exports.Context = exports.Response = exports.Request = void 0;
40
- const node_perf_hooks_1 = require("node:perf_hooks");
41
- const node_path_1 = __importDefault(require("node:path"));
42
- const node_fs_1 = __importDefault(require("node:fs"));
43
- const node_http_1 = __importDefault(require("node:http"));
44
- const node_inspector_1 = __importDefault(require("node:inspector"));
45
- const core_1 = require("@eggjs/core");
46
- Object.defineProperty(exports, "Router", { enumerable: true, get: function () { return core_1.Router; } });
47
- const core_2 = require("@eggjs/core");
48
- // eslint-disable-next-line @typescript-eslint/ban-ts-comment
49
- // @ts-ignore
50
- const cluster_client_1 = __importStar(require("cluster-client"));
51
- const extend2_1 = require("extend2");
52
- const egg_logger_1 = require("egg-logger");
53
- const cookies_1 = require("@eggjs/cookies");
54
- // eslint-disable-next-line @typescript-eslint/ban-ts-comment
55
- // @ts-ignore
56
- const circular_json_for_egg_1 = __importDefault(require("circular-json-for-egg"));
57
- const context_js_1 = __importDefault(require("../app/extend/context.js"));
58
- exports.Context = context_js_1.default;
59
- const index_js_1 = require("./core/messenger/index.js");
60
- const context_httpclient_js_1 = require("./core/context_httpclient.js");
61
- const httpclient_js_1 = require("./core/httpclient.js");
62
- const logger_js_1 = require("./core/logger.js");
63
- const utils_js_1 = require("./core/utils.js");
64
- const base_context_class_js_1 = require("./core/base_context_class.js");
65
- const base_hook_class_js_1 = require("./core/base_hook_class.js");
66
- const utils_js_2 = require("./utils.js");
67
- const EGG_PATH = Symbol.for('egg#eggPath');
68
- class Request extends core_1.Request {
69
- }
70
- exports.Request = Request;
71
- class Response extends core_1.Response {
72
- }
73
- exports.Response = Response;
74
- /**
75
- * Based on koa's Application
76
- * @see https://github.com/eggjs/egg-core
77
- * @see https://github.com/eggjs/koa/blob/master/src/application.ts
78
- * @augments EggCore
79
- */
80
- class EggApplicationCore extends core_1.EggCore {
81
- // export context base classes, let framework can impl sub class and over context extend easily.
82
- ContextCookies = cookies_1.Cookies;
83
- ContextLogger = egg_logger_1.EggContextLogger;
84
- ContextHttpClient = context_httpclient_js_1.ContextHttpClient;
85
- HttpClient = httpclient_js_1.HttpClient;
86
- // keep compatible with egg version 3.x
87
- HttpClientNext = httpclient_js_1.HttpClient;
88
- /**
89
- * Retrieve base context class
90
- * @member {BaseContextClass} BaseContextClass
91
- * @since 1.0.0
92
- */
93
- BaseContextClass = base_context_class_js_1.BaseContextClass;
94
- /**
95
- * Retrieve base controller
96
- * @member {Controller} Controller
97
- * @since 1.0.0
98
- */
99
- Controller = base_context_class_js_1.BaseContextClass;
100
- /**
101
- * Retrieve base service
102
- * @member {Service} Service
103
- * @since 1.0.0
104
- */
105
- Service = base_context_class_js_1.BaseContextClass;
106
- /**
107
- * Retrieve base subscription
108
- * @member {Subscription} Subscription
109
- * @since 2.12.0
110
- */
111
- Subscription = base_context_class_js_1.BaseContextClass;
112
- /**
113
- * Retrieve base context class
114
- * @member {BaseHookClass} BaseHookClass
115
- */
116
- BaseHookClass = base_hook_class_js_1.BaseHookClass;
117
- /**
118
- * Retrieve base boot
119
- * @member {Boot}
120
- * @alias BaseHookClass
121
- */
122
- Boot = base_hook_class_js_1.BaseHookClass;
123
- #httpClient;
124
- #loggers;
125
- #clusterClients = [];
126
- messenger;
127
- agent;
128
- application;
129
- /**
130
- * @class
131
- * @param {Object} options
132
- * - {Object} [type] - type of instance, Agent and Application both extend koa, type can determine what it is.
133
- * - {String} [baseDir] - app root dir, default is `process.cwd()`
134
- * - {Object} [plugins] - custom plugin config, use it in unittest
135
- * - {String} [mode] - process mode, can be cluster / single, default is `cluster`
136
- */
137
- constructor(options) {
138
- options = {
139
- mode: 'cluster',
140
- type: 'application',
141
- baseDir: process.cwd(),
142
- ...options,
143
- };
144
- super(options);
145
- /**
146
- * messenger instance
147
- * @member {Messenger}
148
- * @since 1.0.0
149
- */
150
- this.messenger = (0, index_js_1.create)(this);
151
- // trigger `serverDidReady` hook when all the app workers
152
- // and agent worker are ready
153
- this.messenger.once('egg-ready', () => {
154
- this.lifecycle.triggerServerDidReady();
155
- });
156
- this.lifecycle.registerBeforeStart(async () => {
157
- await this.load();
158
- }, 'load files');
159
- }
160
- /**
161
- * @deprecated please use `options` property instead
162
- */
163
- get _options() {
164
- return this.options;
165
- }
166
- async loadConfig() {
167
- await this.loader.loadConfig();
168
- }
169
- async load() {
170
- await this.loadConfig();
171
- // dump config after ready, ensure all the modifications during start will be recorded
172
- // make sure dumpConfig is the last ready callback
173
- this.ready(() => process.nextTick(() => {
174
- const dumpStartTime = Date.now();
175
- this.dumpConfig();
176
- this.dumpTiming();
177
- this.coreLogger.info('[egg] dump config after ready, %sms', Date.now() - dumpStartTime);
178
- }));
179
- this.#setupTimeoutTimer();
180
- this.console.info('[egg] App root: %s', this.baseDir);
181
- this.console.info('[egg] All *.log files save on %j', this.config.logger.dir);
182
- this.console.info('[egg] Loaded enabled plugin %j', this.loader.orderPlugins);
183
- // Listen the error that promise had not catch, then log it in common-error
184
- this._unhandledRejectionHandler = this._unhandledRejectionHandler.bind(this);
185
- process.on('unhandledRejection', this._unhandledRejectionHandler);
186
- // register close function
187
- this.lifecycle.registerBeforeClose(async () => {
188
- // close all cluster clients
189
- for (const clusterClient of this.#clusterClients) {
190
- await (0, cluster_client_1.close)(clusterClient);
191
- }
192
- this.#clusterClients = [];
193
- // single process mode will close agent before app close
194
- if (this.type === 'application' && this.options.mode === 'single') {
195
- await this.agent.close();
196
- }
197
- for (const logger of this.loggers.values()) {
198
- logger.close();
199
- }
200
- this.messenger.close();
201
- process.removeListener('unhandledRejection', this._unhandledRejectionHandler);
202
- });
203
- await this.loader.load();
204
- }
205
- /**
206
- * Usage: new ApiClient({ cluster: app.cluster })
207
- */
208
- get cluster() {
209
- return this.clusterWrapper.bind(this);
210
- }
211
- /**
212
- * Wrap the Client with Leader/Follower Pattern
213
- *
214
- * @description almost the same as Agent.cluster API, the only different is that this method create Follower.
215
- *
216
- * @see https://github.com/node-modules/cluster-client
217
- * @param {Function} clientClass - client class function
218
- * @param {Object} [options]
219
- * - {Boolean} [autoGenerate] - whether generate delegate rule automatically, default is true
220
- * - {Function} [formatKey] - a method to transform the subscription info into a string,default is JSON.stringify
221
- * - {Object} [transcode|JSON.stringify/parse]
222
- * - {Function} encode - custom serialize method
223
- * - {Function} decode - custom deserialize method
224
- * - {Boolean} [isBroadcast] - whether broadcast subscription result to all followers or just one, default is true
225
- * - {Number} [responseTimeout] - response timeout, default is 3 seconds
226
- * - {Number} [maxWaitTime|30000] - leader startup max time, default is 30 seconds
227
- * @return {ClientWrapper} wrapper
228
- */
229
- clusterWrapper(clientClass, options) {
230
- const clientClassOptions = {
231
- ...this.config.clusterClient,
232
- ...options,
233
- singleMode: this.options.mode === 'single',
234
- // cluster need a port that can't conflict on the environment
235
- port: this.options.clusterPort,
236
- // agent worker is leader, app workers are follower
237
- isLeader: this.type === 'agent',
238
- logger: this.coreLogger,
239
- // debug mode does not check heartbeat
240
- isCheckHeartbeat: this.config.env === 'prod' ? true : node_inspector_1.default.url() === undefined,
241
- };
242
- const client = (0, cluster_client_1.default)(clientClass, clientClassOptions);
243
- this.#patchClusterClient(client);
244
- return client;
245
- }
246
- /**
247
- * print the information when console.log(app)
248
- * @return {Object} inspected app.
249
- * @since 1.0.0
250
- * @example
251
- * ```js
252
- * console.log(app);
253
- * =>
254
- * {
255
- * name: 'mock-app',
256
- * env: 'test',
257
- * subdomainOffset: 2,
258
- * config: '<egg config>',
259
- * controller: '<egg controller>',
260
- * service: '<egg service>',
261
- * middlewares: '<egg middlewares>',
262
- * urllib: '<egg urllib>',
263
- * loggers: '<egg loggers>'
264
- * }
265
- * ```
266
- */
267
- inspect() {
268
- const res = {
269
- env: this.config.env,
270
- };
271
- function delegate(res, app, keys) {
272
- for (const key of keys) {
273
- if (app[key]) {
274
- res[key] = app[key];
275
- }
276
- }
277
- }
278
- function abbr(res, app, keys) {
279
- for (const key of keys) {
280
- if (app[key]) {
281
- res[key] = `<egg ${key}>`;
282
- }
283
- }
284
- }
285
- delegate(res, this, [
286
- 'name',
287
- 'baseDir',
288
- 'subdomainOffset',
289
- ]);
290
- abbr(res, this, [
291
- 'config',
292
- 'controller',
293
- 'httpclient',
294
- 'loggers',
295
- 'middlewares',
296
- 'router',
297
- 'serviceClasses',
298
- ]);
299
- return res;
300
- }
301
- toJSON() {
302
- return this.inspect();
303
- }
304
- /**
305
- * http request helper base on {@link httpclient}, it will auto save httpclient log.
306
- * Keep the same api with `httpclient.request(url, args)`.
307
- *
308
- * See https://github.com/node-modules/urllib#api-doc for more details.
309
- *
310
- * @param {String} url request url address.
311
- * @param {Object} options
312
- * - method {String} - Request method, defaults to GET. Could be GET, POST, DELETE or PUT. Alias 'type'.
313
- * - data {Object} - Data to be sent. Will be stringify automatically.
314
- * - dataType {String} - String - Type of response data. Could be `text` or `json`.
315
- * If it's `text`, the callback data would be a String.
316
- * If it's `json`, the data of callback would be a parsed JSON Object.
317
- * Default callback data would be a Buffer.
318
- * - headers {Object} - Request headers.
319
- * - timeout {Number} - Request timeout in milliseconds. Defaults to exports.TIMEOUT.
320
- * Include remote server connecting timeout and response timeout.
321
- * When timeout happen, will return ConnectionTimeout or ResponseTimeout.
322
- * - auth {String} - `username:password` used in HTTP Basic Authorization.
323
- * - followRedirect {Boolean} - follow HTTP 3xx responses as redirects. defaults to false.
324
- * - gzip {Boolean} - let you get the res object when request connected, default false. alias customResponse
325
- * - nestedQuerystring {Boolean} - urllib default use querystring to stringify form data which don't
326
- * support nested object, will use qs instead of querystring to support nested object by set this option to true.
327
- * - more options see https://github.com/node-modules/urllib
328
- * @return {Object}
329
- * - status {Number} - HTTP response status
330
- * - headers {Object} - HTTP response headers
331
- * - res {Object} - HTTP response meta
332
- * - data {Object} - HTTP response body
333
- *
334
- * @example
335
- * ```js
336
- * const result = await app.curl('http://example.com/foo.json', {
337
- * method: 'GET',
338
- * dataType: 'json',
339
- * });
340
- * console.log(result.status, result.headers, result.data);
341
- * ```
342
- */
343
- async curl(url, options) {
344
- return await this.httpClient.request(url, options);
345
- }
346
- /**
347
- * Create a new HttpClient instance with custom options
348
- * @param {Object} [options] HttpClient init options
349
- */
350
- createHttpClient(options) {
351
- return new this.HttpClient(this, options);
352
- }
353
- /**
354
- * HttpClient instance
355
- * @see https://github.com/node-modules/urllib
356
- * @member {HttpClient}
357
- */
358
- get httpClient() {
359
- if (!this.#httpClient) {
360
- this.#httpClient = this.createHttpClient();
361
- }
362
- return this.#httpClient;
363
- }
364
- /**
365
- * @deprecated please use httpClient instead
366
- * @alias httpClient
367
- * @member {HttpClient}
368
- */
369
- get httpclient() {
370
- return this.httpClient;
371
- }
372
- /**
373
- * All loggers contain logger, coreLogger and customLogger
374
- * @member {Object}
375
- * @since 1.0.0
376
- */
377
- get loggers() {
378
- if (!this.#loggers) {
379
- this.#loggers = (0, logger_js_1.createLoggers)(this);
380
- }
381
- return this.#loggers;
382
- }
383
- /**
384
- * Get logger by name, it's equal to app.loggers['name'],
385
- * but you can extend it with your own logical.
386
- * @param {String} name - logger name
387
- * @return {Logger} logger
388
- */
389
- getLogger(name) {
390
- return this.loggers[name] || null;
391
- }
392
- /**
393
- * application logger, log file is `$HOME/logs/{appname}/{appname}-web`
394
- * @member {Logger}
395
- * @since 1.0.0
396
- */
397
- get logger() {
398
- return this.getLogger('logger');
399
- }
400
- /**
401
- * core logger for framework and plugins, log file is `$HOME/logs/{appname}/egg-web`
402
- * @member {Logger}
403
- * @since 1.0.0
404
- */
405
- get coreLogger() {
406
- return this.getLogger('coreLogger');
407
- }
408
- _unhandledRejectionHandler(err) {
409
- this.coreLogger.error('[egg:unhandledRejection] %s', err && err.message || err);
410
- if (!(err instanceof Error)) {
411
- const newError = new Error(String(err));
412
- // err maybe an object, try to copy the name, message and stack to the new error instance
413
- if (err) {
414
- if (err.name)
415
- newError.name = err.name;
416
- if (err.message)
417
- newError.message = err.message;
418
- if (err.stack)
419
- newError.stack = err.stack;
420
- }
421
- err = newError;
422
- }
423
- if (err.name === 'Error') {
424
- err.name = 'unhandledRejectionError';
425
- }
426
- this.coreLogger.error(err);
427
- }
428
- /**
429
- * dump out the config and meta object
430
- * @private
431
- */
432
- dumpConfigToObject() {
433
- let ignoreList;
434
- try {
435
- // support array and set
436
- ignoreList = Array.from(this.config.dump.ignore);
437
- }
438
- catch (_) {
439
- ignoreList = [];
440
- }
441
- const config = (0, extend2_1.extend)(true, {}, {
442
- config: this.config,
443
- plugins: this.loader.allPlugins,
444
- appInfo: this.loader.appInfo,
445
- });
446
- (0, utils_js_1.convertObject)(config, ignoreList);
447
- return {
448
- config,
449
- meta: this.loader.configMeta,
450
- };
451
- }
452
- /**
453
- * save app.config to `run/${type}_config.json`
454
- * @private
455
- */
456
- dumpConfig() {
457
- const rundir = this.config.rundir;
458
- try {
459
- if (!node_fs_1.default.existsSync(rundir)) {
460
- node_fs_1.default.mkdirSync(rundir);
461
- }
462
- // get dumped object
463
- const { config, meta } = this.dumpConfigToObject();
464
- // dump config
465
- const dumpFile = node_path_1.default.join(rundir, `${this.type}_config.json`);
466
- node_fs_1.default.writeFileSync(dumpFile, circular_json_for_egg_1.default.stringify(config, null, 2));
467
- // dump config meta
468
- const dumpMetaFile = node_path_1.default.join(rundir, `${this.type}_config_meta.json`);
469
- node_fs_1.default.writeFileSync(dumpMetaFile, circular_json_for_egg_1.default.stringify(meta, null, 2));
470
- }
471
- catch (err) {
472
- this.coreLogger.warn(`[egg] dumpConfig error: ${err.message}`);
473
- }
474
- }
475
- dumpTiming() {
476
- try {
477
- const items = this.timing.toJSON();
478
- const rundir = this.config.rundir;
479
- const dumpFile = node_path_1.default.join(rundir, `${this.type}_timing_${process.pid}.json`);
480
- node_fs_1.default.writeFileSync(dumpFile, circular_json_for_egg_1.default.stringify(items, null, 2));
481
- this.coreLogger.info(this.timing.toString());
482
- // only disable, not clear bootstrap timing data.
483
- this.timing.disable();
484
- // show duration >= ${slowBootActionMinDuration}ms action to warning log
485
- for (const item of items) {
486
- // ignore #0 name: Process Start
487
- if (item.index > 0 && item.duration && item.duration >= this.config.dump.timing.slowBootActionMinDuration) {
488
- this.coreLogger.warn('[egg][dumpTiming][slow-boot-action] #%d %dms, name: %s', item.index, item.duration, item.name);
489
- }
490
- }
491
- }
492
- catch (err) {
493
- this.coreLogger.warn(`[egg] dumpTiming error: ${err.message}`);
494
- }
495
- }
496
- get [EGG_PATH]() {
497
- return (0, utils_js_2.getSourceDirname)();
498
- }
499
- #setupTimeoutTimer() {
500
- const startTimeoutTimer = setTimeout(() => {
501
- this.coreLogger.error(this.timing.toString());
502
- this.coreLogger.error(`${this.type} still doesn't ready after ${this.config.workerStartTimeout} ms.`);
503
- // log unfinished
504
- const items = this.timing.toJSON();
505
- for (const item of items) {
506
- if (item.end)
507
- continue;
508
- this.coreLogger.error(`unfinished timing item: ${circular_json_for_egg_1.default.stringify(item)}`);
509
- }
510
- this.coreLogger.error('[egg][setupTimeoutTimer] check run/%s_timing_%s.json for more details.', this.type, process.pid);
511
- this.emit('startTimeout');
512
- this.dumpConfig();
513
- this.dumpTiming();
514
- }, this.config.workerStartTimeout);
515
- this.ready(() => clearTimeout(startTimeoutTimer));
516
- }
517
- get config() {
518
- return super.config;
519
- }
520
- /**
521
- * app.env delegate app.config.env
522
- * @deprecated
523
- */
524
- get env() {
525
- this.deprecate('please use app.config.env instead');
526
- return this.config.env;
527
- }
528
- /* eslint no-empty-function: off */
529
- set env(_) { }
530
- /**
531
- * app.proxy delegate app.config.proxy
532
- * @deprecated
533
- */
534
- get proxy() {
535
- // this.deprecate('please use app.config.proxy instead');
536
- return this.config.proxy;
537
- }
538
- /* eslint no-empty-function: off */
539
- set proxy(_) { }
540
- #patchClusterClient(client) {
541
- const rawCreate = client.create;
542
- client.create = (...args) => {
543
- const realClient = rawCreate.apply(client, args);
544
- this.#clusterClients.push(realClient);
545
- return realClient;
546
- };
547
- }
548
- /**
549
- * Create an anonymous context, the context isn't request level, so the request is mocked.
550
- * then you can use context level API like `ctx.service`
551
- * @member {String} EggApplication#createAnonymousContext
552
- * @param {Request} [req] - if you want to mock request like querystring, you can pass an object to this function.
553
- * @return {Context} context
554
- */
555
- createAnonymousContext(req) {
556
- const request = {
557
- headers: {
558
- host: '127.0.0.1',
559
- 'x-forwarded-for': '127.0.0.1',
560
- },
561
- query: {},
562
- querystring: '',
563
- host: '127.0.0.1',
564
- hostname: '127.0.0.1',
565
- protocol: 'http',
566
- secure: 'false',
567
- method: 'GET',
568
- url: '/',
569
- path: '/',
570
- socket: {
571
- remoteAddress: '127.0.0.1',
572
- remotePort: 7001,
573
- },
574
- };
575
- if (req) {
576
- for (const key in req) {
577
- if (key === 'headers' || key === 'query' || key === 'socket') {
578
- Object.assign(request[key], req[key]);
579
- }
580
- else {
581
- request[key] = req[key];
582
- }
583
- }
584
- }
585
- const response = new node_http_1.default.ServerResponse(request);
586
- return this.createContext(request, response);
587
- }
588
- /**
589
- * Run async function in the anonymous context scope
590
- * @see Context#runInAnonymousContextScope
591
- * @param {Function} scope - the first args is an anonymous ctx, scope should be async function
592
- * @param {Request} [req] - if you want to mock request like querystring, you can pass an object to this function.
593
- */
594
- async runInAnonymousContextScope(scope, req) {
595
- const ctx = this.createAnonymousContext(req);
596
- if (!scope.name) {
597
- Reflect.set(scope, '_name', core_2.utils.getCalleeFromStack(true));
598
- }
599
- return await this.ctxStorage.run(ctx, async () => {
600
- return await scope(ctx);
601
- });
602
- }
603
- /**
604
- * Create egg context
605
- * @function EggApplication#createContext
606
- * @param {Req} req - node native Request object
607
- * @param {Res} res - node native Response object
608
- * @return {Context} context object
609
- */
610
- createContext(req, res) {
611
- const context = Object.create(this.context);
612
- const request = context.request = Object.create(this.request);
613
- const response = context.response = Object.create(this.response);
614
- context.app = request.app = response.app = this;
615
- context.req = request.req = response.req = req;
616
- context.res = request.res = response.res = res;
617
- request.ctx = response.ctx = context;
618
- request.response = response;
619
- response.request = request;
620
- context.onerror = context.onerror.bind(context);
621
- context.originalUrl = request.originalUrl = req.url;
622
- context.starttime = Date.now();
623
- context.performanceStarttime = node_perf_hooks_1.performance.now();
624
- return context;
625
- }
626
- }
627
- exports.EggApplicationCore = EggApplicationCore;
628
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWdnLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2xpYi9lZ2cudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUEscURBQThDO0FBQzlDLDBEQUE2QjtBQUM3QixzREFBeUI7QUFDekIsMERBQTRFO0FBQzVFLG9FQUF1QztBQUV2QyxzQ0FLcUI7QUFvRW5CLHVGQXJFQSxhQUFNLE9BcUVBO0FBOURSLHNDQUFnRDtBQUNoRCw2REFBNkQ7QUFDN0QsYUFBYTtBQUNiLGlFQUFrRjtBQUNsRixxQ0FBaUM7QUFDakMsMkNBQXNGO0FBQ3RGLDRDQUEyRDtBQUMzRCw2REFBNkQ7QUFDN0QsYUFBYTtBQUNiLGtGQUFpRDtBQUdqRCwwRUFBK0M7QUFpRDdDLGtCQWpESyxvQkFBTyxDQWlETDtBQS9DVCx3REFBa0Y7QUFDbEYsd0VBQWlFO0FBQ2pFLHdEQUk4QjtBQUM5QixnREFBaUQ7QUFDakQsOENBQWdEO0FBQ2hELHdFQUFnRTtBQUNoRSxrRUFBMEQ7QUFFMUQseUNBQThDO0FBRTlDLE1BQU0sUUFBUSxHQUFHLE1BQU0sQ0FBQyxHQUFHLENBQUMsYUFBYSxDQUFDLENBQUM7QUFRM0MsTUFBYSxPQUFRLFNBQVEsY0FBYztDQUkxQztBQUpELDBCQUlDO0FBRUQsTUFBYSxRQUFTLFNBQVEsZUFBZTtDQUk1QztBQUpELDRCQUlDO0FBbUJEOzs7OztHQUtHO0FBQ0gsTUFBYSxrQkFBbUIsU0FBUSxjQUFPO0lBRTdDLGdHQUFnRztJQUNoRyxjQUFjLEdBQUcsaUJBQWMsQ0FBQztJQUNoQyxhQUFhLEdBQUcsNkJBQWEsQ0FBQztJQUM5QixpQkFBaUIsR0FBRyx5Q0FBaUIsQ0FBQztJQUN0QyxVQUFVLEdBQUcsMEJBQVUsQ0FBQztJQUN4Qix1Q0FBdUM7SUFDdkMsY0FBYyxHQUFHLDBCQUFVLENBQUM7SUFDNUI7Ozs7T0FJRztJQUNILGdCQUFnQixHQUFHLHdDQUFnQixDQUFDO0lBRXBDOzs7O09BSUc7SUFDSCxVQUFVLEdBQUcsd0NBQWdCLENBQUM7SUFFOUI7Ozs7T0FJRztJQUNILE9BQU8sR0FBRyx3Q0FBZ0IsQ0FBQztJQUUzQjs7OztPQUlHO0lBQ0gsWUFBWSxHQUFHLHdDQUFnQixDQUFDO0lBRWhDOzs7T0FHRztJQUNILGFBQWEsR0FBRyxrQ0FBYSxDQUFDO0lBRTlCOzs7O09BSUc7SUFDSCxJQUFJLEdBQUcsa0NBQWEsQ0FBQztJQUlyQixXQUFXLENBQWM7SUFDekIsUUFBUSxDQUFjO0lBQ3RCLGVBQWUsR0FBVSxFQUFFLENBQUM7SUFFbkIsU0FBUyxDQUFhO0lBQy9CLEtBQUssQ0FBUztJQUNkLFdBQVcsQ0FBZTtJQUcxQjs7Ozs7OztPQU9HO0lBQ0gsWUFBWSxPQUFtQztRQUM3QyxPQUFPLEdBQUc7WUFDUixJQUFJLEVBQUUsU0FBUztZQUNmLElBQUksRUFBRSxhQUFhO1lBQ25CLE9BQU8sRUFBRSxPQUFPLENBQUMsR0FBRyxFQUFFO1lBQ3RCLEdBQUcsT0FBTztTQUNYLENBQUM7UUFDRixLQUFLLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDZjs7OztXQUlHO1FBQ0gsSUFBSSxDQUFDLFNBQVMsR0FBRyxJQUFBLGlCQUFlLEVBQUMsSUFBSSxDQUFDLENBQUM7UUFFdkMseURBQXlEO1FBQ3pELDZCQUE2QjtRQUM3QixJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxXQUFXLEVBQUUsR0FBRyxFQUFFO1lBQ3BDLElBQUksQ0FBQyxTQUFTLENBQUMscUJBQXFCLEVBQUUsQ0FBQztRQUN6QyxDQUFDLENBQUMsQ0FBQztRQUNILElBQUksQ0FBQyxTQUFTLENBQUMsbUJBQW1CLENBQUMsS0FBSyxJQUFJLEVBQUU7WUFDNUMsTUFBTSxJQUFJLENBQUMsSUFBSSxFQUFFLENBQUM7UUFDcEIsQ0FBQyxFQUFFLFlBQVksQ0FBQyxDQUFDO0lBQ25CLENBQUM7SUFFRDs7T0FFRztJQUNILElBQUksUUFBUTtRQUNWLE9BQU8sSUFBSSxDQUFDLE9BQU8sQ0FBQztJQUN0QixDQUFDO0lBRVMsS0FBSyxDQUFDLFVBQVU7UUFDeEIsTUFBTSxJQUFJLENBQUMsTUFBTSxDQUFDLFVBQVUsRUFBRSxDQUFDO0lBQ2pDLENBQUM7SUFFUyxLQUFLLENBQUMsSUFBSTtRQUNsQixNQUFNLElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQztRQUN4QixzRkFBc0Y7UUFDdEYsa0RBQWtEO1FBQ2xELElBQUksQ0FBQyxLQUFLLENBQUMsR0FBRyxFQUFFLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FBQyxHQUFHLEVBQUU7WUFDckMsTUFBTSxhQUFhLEdBQUcsSUFBSSxDQUFDLEdBQUcsRUFBRSxDQUFDO1lBQ2pDLElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQztZQUNsQixJQUFJLENBQUMsVUFBVSxFQUFFLENBQUM7WUFDbEIsSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMscUNBQXFDLEVBQUUsSUFBSSxDQUFDLEdBQUcsRUFBRSxHQUFHLGFBQWEsQ0FBQyxDQUFDO1FBQzFGLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDSixJQUFJLENBQUMsa0JBQWtCLEVBQUUsQ0FBQztRQUUxQixJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxvQkFBb0IsRUFBRSxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDdEQsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsa0NBQWtDLEVBQUUsSUFBSSxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDOUUsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsZ0NBQWdDLEVBQUUsSUFBSSxDQUFDLE1BQU0sQ0FBQyxZQUFZLENBQUMsQ0FBQztRQUU5RSwyRUFBMkU7UUFDM0UsSUFBSSxDQUFDLDBCQUEwQixHQUFHLElBQUksQ0FBQywwQkFBMEIsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDN0UsT0FBTyxDQUFDLEVBQUUsQ0FBQyxvQkFBb0IsRUFBRSxJQUFJLENBQUMsMEJBQTBCLENBQUMsQ0FBQztRQUVsRSwwQkFBMEI7UUFDMUIsSUFBSSxDQUFDLFNBQVMsQ0FBQyxtQkFBbUIsQ0FBQyxLQUFLLElBQUksRUFBRTtZQUM1Qyw0QkFBNEI7WUFDNUIsS0FBSyxNQUFNLGFBQWEsSUFBSSxJQUFJLENBQUMsZUFBZSxFQUFFLENBQUM7Z0JBQ2pELE1BQU0sSUFBQSxzQkFBa0IsRUFBQyxhQUFhLENBQUMsQ0FBQztZQUMxQyxDQUFDO1lBQ0QsSUFBSSxDQUFDLGVBQWUsR0FBRyxFQUFFLENBQUM7WUFFMUIsd0RBQXdEO1lBQ3hELElBQUksSUFBSSxDQUFDLElBQUksS0FBSyxhQUFhLElBQUksSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLEtBQUssUUFBUSxFQUFFLENBQUM7Z0JBQ2xFLE1BQU0sSUFBSSxDQUFDLEtBQU0sQ0FBQyxLQUFLLEVBQUUsQ0FBQztZQUM1QixDQUFDO1lBRUQsS0FBSyxNQUFNLE1BQU0sSUFBSSxJQUFJLENBQUMsT0FBTyxDQUFDLE1BQU0sRUFBRSxFQUFFLENBQUM7Z0JBQzNDLE1BQU0sQ0FBQyxLQUFLLEVBQUUsQ0FBQztZQUNqQixDQUFDO1lBQ0QsSUFBSSxDQUFDLFNBQVMsQ0FBQyxLQUFLLEVBQUUsQ0FBQztZQUN2QixPQUFPLENBQUMsY0FBYyxDQUFDLG9CQUFvQixFQUFFLElBQUksQ0FBQywwQkFBMEIsQ0FBQyxDQUFDO1FBQ2hGLENBQUMsQ0FBQyxDQUFDO1FBRUgsTUFBTSxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksRUFBRSxDQUFDO0lBQzNCLENBQUM7SUFFRDs7T0FFRztJQUNILElBQUksT0FBTztRQUNULE9BQU8sSUFBSSxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDeEMsQ0FBQztJQUVEOzs7Ozs7Ozs7Ozs7Ozs7OztPQWlCRztJQUNILGNBQWMsQ0FBQyxXQUFvQixFQUFFLE9BQWdCO1FBQ25ELE1BQU0sa0JBQWtCLEdBQUc7WUFDekIsR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLGFBQWE7WUFDNUIsR0FBRyxPQUFPO1lBQ1YsVUFBVSxFQUFFLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxLQUFLLFFBQVE7WUFDMUMsNkRBQTZEO1lBQzdELElBQUksRUFBRSxJQUFJLENBQUMsT0FBTyxDQUFDLFdBQVc7WUFDOUIsbURBQW1EO1lBQ25ELFFBQVEsRUFBRSxJQUFJLENBQUMsSUFBSSxLQUFLLE9BQU87WUFDL0IsTUFBTSxFQUFFLElBQUksQ0FBQyxVQUFVO1lBQ3ZCLHNDQUFzQztZQUN0QyxnQkFBZ0IsRUFBRSxJQUFJLENBQUMsTUFBTSxDQUFDLEdBQUcsS0FBSyxNQUFNLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsd0JBQVMsQ0FBQyxHQUFHLEVBQUUsS0FBSyxTQUFTO1NBQ3BGLENBQUM7UUFDRixNQUFNLE1BQU0sR0FBRyxJQUFBLHdCQUFtQixFQUFDLFdBQVcsRUFBRSxrQkFBa0IsQ0FBQyxDQUFDO1FBQ3BFLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUNqQyxPQUFPLE1BQU0sQ0FBQztJQUNoQixDQUFDO0lBRUQ7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O09Bb0JHO0lBQ0gsT0FBTztRQUNMLE1BQU0sR0FBRyxHQUFHO1lBQ1YsR0FBRyxFQUFFLElBQUksQ0FBQyxNQUFNLENBQUMsR0FBRztTQUNyQixDQUFDO1FBRUYsU0FBUyxRQUFRLENBQUMsR0FBUSxFQUFFLEdBQVEsRUFBRSxJQUFjO1lBQ2xELEtBQUssTUFBTSxHQUFHLElBQUksSUFBSSxFQUFFLENBQUM7Z0JBQ3ZCLElBQUksR0FBRyxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUM7b0JBQ2IsR0FBRyxDQUFDLEdBQUcsQ0FBQyxHQUFHLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQztnQkFDdEIsQ0FBQztZQUNILENBQUM7UUFDSCxDQUFDO1FBRUQsU0FBUyxJQUFJLENBQUMsR0FBUSxFQUFFLEdBQVEsRUFBRSxJQUFjO1lBQzlDLEtBQUssTUFBTSxHQUFHLElBQUksSUFBSSxFQUFFLENBQUM7Z0JBQ3ZCLElBQUksR0FBRyxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUM7b0JBQ2IsR0FBRyxDQUFDLEdBQUcsQ0FBQyxHQUFHLFFBQVEsR0FBRyxHQUFHLENBQUM7Z0JBQzVCLENBQUM7WUFDSCxDQUFDO1FBQ0gsQ0FBQztRQUVELFFBQVEsQ0FBQyxHQUFHLEVBQUUsSUFBSSxFQUFFO1lBQ2xCLE1BQU07WUFDTixTQUFTO1lBQ1QsaUJBQWlCO1NBQ2xCLENBQUMsQ0FBQztRQUVILElBQUksQ0FBQyxHQUFHLEVBQUUsSUFBSSxFQUFFO1lBQ2QsUUFBUTtZQUNSLFlBQVk7WUFDWixZQUFZO1lBQ1osU0FBUztZQUNULGFBQWE7WUFDYixRQUFRO1lBQ1IsZ0JBQWdCO1NBQ2pCLENBQUMsQ0FBQztRQUVILE9BQU8sR0FBRyxDQUFDO0lBQ2IsQ0FBQztJQUVELE1BQU07UUFDSixPQUFPLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQztJQUN4QixDQUFDO0lBRUQ7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O09Bc0NHO0lBQ0gsS0FBSyxDQUFDLElBQUksQ0FBVSxHQUF5QixFQUFFLE9BQWtDO1FBQy9FLE9BQU8sTUFBTSxJQUFJLENBQUMsVUFBVSxDQUFDLE9BQU8sQ0FBSSxHQUFHLEVBQUUsT0FBTyxDQUFDLENBQUM7SUFDeEQsQ0FBQztJQUVEOzs7T0FHRztJQUNILGdCQUFnQixDQUFDLE9BQTJCO1FBQzFDLE9BQU8sSUFBSSxJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksRUFBRSxPQUFPLENBQUMsQ0FBQztJQUM1QyxDQUFDO0lBRUQ7Ozs7T0FJRztJQUNILElBQUksVUFBVTtRQUNaLElBQUksQ0FBQyxJQUFJLENBQUMsV0FBVyxFQUFFLENBQUM7WUFDdEIsSUFBSSxDQUFDLFdBQVcsR0FBRyxJQUFJLENBQUMsZ0JBQWdCLEVBQUUsQ0FBQztRQUM3QyxDQUFDO1FBQ0QsT0FBTyxJQUFJLENBQUMsV0FBVyxDQUFDO0lBQzFCLENBQUM7SUFFRDs7OztPQUlHO0lBQ0gsSUFBSSxVQUFVO1FBQ1osT0FBTyxJQUFJLENBQUMsVUFBVSxDQUFDO0lBQ3pCLENBQUM7SUFFRDs7OztPQUlHO0lBQ0gsSUFBSSxPQUFPO1FBQ1QsSUFBSSxDQUFDLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQztZQUNuQixJQUFJLENBQUMsUUFBUSxHQUFHLElBQUEseUJBQWEsRUFBQyxJQUFJLENBQUMsQ0FBQztRQUN0QyxDQUFDO1FBQ0QsT0FBTyxJQUFJLENBQUMsUUFBUSxDQUFDO0lBQ3ZCLENBQUM7SUFFRDs7Ozs7T0FLRztJQUNILFNBQVMsQ0FBQyxJQUFZO1FBQ3BCLE9BQU8sSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsSUFBSSxJQUFJLENBQUM7SUFDcEMsQ0FBQztJQUVEOzs7O09BSUc7SUFDSCxJQUFJLE1BQU07UUFDUixPQUFPLElBQUksQ0FBQyxTQUFTLENBQUMsUUFBUSxDQUFDLENBQUM7SUFDbEMsQ0FBQztJQUVEOzs7O09BSUc7SUFDSCxJQUFJLFVBQVU7UUFDWixPQUFPLElBQUksQ0FBQyxTQUFTLENBQUMsWUFBWSxDQUFDLENBQUM7SUFDdEMsQ0FBQztJQUVELDBCQUEwQixDQUFDLEdBQVE7UUFDakMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxLQUFLLENBQUMsNkJBQTZCLEVBQUUsR0FBRyxJQUFJLEdBQUcsQ0FBQyxPQUFPLElBQUksR0FBRyxDQUFDLENBQUM7UUFDaEYsSUFBSSxDQUFDLENBQUMsR0FBRyxZQUFZLEtBQUssQ0FBQyxFQUFFLENBQUM7WUFDNUIsTUFBTSxRQUFRLEdBQUcsSUFBSSxLQUFLLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUM7WUFDeEMseUZBQXlGO1lBQ3pGLElBQUksR0FBRyxFQUFFLENBQUM7Z0JBQ1IsSUFBSSxHQUFHLENBQUMsSUFBSTtvQkFBRSxRQUFRLENBQUMsSUFBSSxHQUFHLEdBQUcsQ0FBQyxJQUFJLENBQUM7Z0JBQ3ZDLElBQUksR0FBRyxDQUFDLE9BQU87b0JBQUUsUUFBUSxDQUFDLE9BQU8sR0FBRyxHQUFHLENBQUMsT0FBTyxDQUFDO2dCQUNoRCxJQUFJLEdBQUcsQ0FBQyxLQUFLO29CQUFFLFFBQVEsQ0FBQyxLQUFLLEdBQUcsR0FBRyxDQUFDLEtBQUssQ0FBQztZQUM1QyxDQUFDO1lBQ0QsR0FBRyxHQUFHLFFBQVEsQ0FBQztRQUNqQixDQUFDO1FBQ0QsSUFBSSxHQUFHLENBQUMsSUFBSSxLQUFLLE9BQU8sRUFBRSxDQUFDO1lBQ3pCLEdBQUcsQ0FBQyxJQUFJLEdBQUcseUJBQXlCLENBQUM7UUFDdkMsQ0FBQztRQUNELElBQUksQ0FBQyxVQUFVLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDO0lBQzdCLENBQUM7SUFFRDs7O09BR0c7SUFDSCxrQkFBa0I7UUFDaEIsSUFBSSxVQUErQixDQUFDO1FBQ3BDLElBQUksQ0FBQztZQUNILHdCQUF3QjtZQUN4QixVQUFVLEdBQUcsS0FBSyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUNuRCxDQUFDO1FBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQztZQUNYLFVBQVUsR0FBRyxFQUFFLENBQUM7UUFDbEIsQ0FBQztRQUNELE1BQU0sTUFBTSxHQUFHLElBQUEsZ0JBQU0sRUFBQyxJQUFJLEVBQUUsRUFBRSxFQUFFO1lBQzlCLE1BQU0sRUFBRSxJQUFJLENBQUMsTUFBTTtZQUNuQixPQUFPLEVBQUUsSUFBSSxDQUFDLE1BQU0sQ0FBQyxVQUFVO1lBQy9CLE9BQU8sRUFBRSxJQUFJLENBQUMsTUFBTSxDQUFDLE9BQU87U0FDN0IsQ0FBQyxDQUFDO1FBQ0gsSUFBQSx3QkFBYSxFQUFDLE1BQU0sRUFBRSxVQUFVLENBQUMsQ0FBQztRQUNsQyxPQUFPO1lBQ0wsTUFBTTtZQUNOLElBQUksRUFBRSxJQUFJLENBQUMsTUFBTSxDQUFDLFVBQVU7U0FDN0IsQ0FBQztJQUNKLENBQUM7SUFFRDs7O09BR0c7SUFDSCxVQUFVO1FBQ1IsTUFBTSxNQUFNLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUM7UUFDbEMsSUFBSSxDQUFDO1lBQ0gsSUFBSSxDQUFDLGlCQUFFLENBQUMsVUFBVSxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUM7Z0JBQzNCLGlCQUFFLENBQUMsU0FBUyxDQUFDLE1BQU0sQ0FBQyxDQUFDO1lBQ3ZCLENBQUM7WUFFRCxvQkFBb0I7WUFDcEIsTUFBTSxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUUsR0FBRyxJQUFJLENBQUMsa0JBQWtCLEVBQUUsQ0FBQztZQUVuRCxjQUFjO1lBQ2QsTUFBTSxRQUFRLEdBQUcsbUJBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxFQUFFLEdBQUcsSUFBSSxDQUFDLElBQUksY0FBYyxDQUFDLENBQUM7WUFDL0QsaUJBQUUsQ0FBQyxhQUFhLENBQUMsUUFBUSxFQUFFLCtCQUFZLENBQUMsU0FBUyxDQUFDLE1BQU0sRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUVwRSxtQkFBbUI7WUFDbkIsTUFBTSxZQUFZLEdBQUcsbUJBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxFQUFFLEdBQUcsSUFBSSxDQUFDLElBQUksbUJBQW1CLENBQUMsQ0FBQztZQUN4RSxpQkFBRSxDQUFDLGFBQWEsQ0FBQyxZQUFZLEVBQUUsK0JBQVksQ0FBQyxTQUFTLENBQUMsSUFBSSxFQUFFLElBQUksRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQ3hFLENBQUM7UUFBQyxPQUFPLEdBQVEsRUFBRSxDQUFDO1lBQ2xCLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLDJCQUEyQixHQUFHLENBQUMsT0FBTyxFQUFFLENBQUMsQ0FBQztRQUNqRSxDQUFDO0lBQ0gsQ0FBQztJQUVELFVBQVU7UUFDUixJQUFJLENBQUM7WUFDSCxNQUFNLEtBQUssR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLE1BQU0sRUFBRSxDQUFDO1lBQ25DLE1BQU0sTUFBTSxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDO1lBQ2xDLE1BQU0sUUFBUSxHQUFHLG1CQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sRUFBRSxHQUFHLElBQUksQ0FBQyxJQUFJLFdBQVcsT0FBTyxDQUFDLEdBQUcsT0FBTyxDQUFDLENBQUM7WUFDOUUsaUJBQUUsQ0FBQyxhQUFhLENBQUMsUUFBUSxFQUFFLCtCQUFZLENBQUMsU0FBUyxDQUFDLEtBQUssRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUNuRSxJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLFFBQVEsRUFBRSxDQUFDLENBQUM7WUFDN0MsaURBQWlEO1lBQ2pELElBQUksQ0FBQyxNQUFNLENBQUMsT0FBTyxFQUFFLENBQUM7WUFDdEIsd0VBQXdFO1lBQ3hFLEtBQUssTUFBTSxJQUFJLElBQUksS0FBSyxFQUFFLENBQUM7Z0JBQ3pCLGdDQUFnQztnQkFDaEMsSUFBSSxJQUFJLENBQUMsS0FBSyxHQUFHLENBQUMsSUFBSSxJQUFJLENBQUMsUUFBUSxJQUFJLElBQUksQ0FBQyxRQUFRLElBQUksSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLHlCQUF5QixFQUFFLENBQUM7b0JBQzFHLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLHdEQUF3RCxFQUMzRSxJQUFJLENBQUMsS0FBSyxFQUFFLElBQUksQ0FBQyxRQUFRLEVBQUUsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO2dCQUMxQyxDQUFDO1lBQ0gsQ0FBQztRQUNILENBQUM7UUFBQyxPQUFPLEdBQVEsRUFBRSxDQUFDO1lBQ2xCLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLDJCQUEyQixHQUFHLENBQUMsT0FBTyxFQUFFLENBQUMsQ0FBQztRQUNqRSxDQUFDO0lBQ0gsQ0FBQztJQUVELElBQUksQ0FBQyxRQUFRLENBQUM7UUFDWixPQUFPLElBQUEsMkJBQWdCLEdBQUUsQ0FBQztJQUM1QixDQUFDO0lBRUQsa0JBQWtCO1FBQ2hCLE1BQU0saUJBQWlCLEdBQUcsVUFBVSxDQUFDLEdBQUcsRUFBRTtZQUN4QyxJQUFJLENBQUMsVUFBVSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLFFBQVEsRUFBRSxDQUFDLENBQUM7WUFDOUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxLQUFLLENBQUMsR0FBRyxJQUFJLENBQUMsSUFBSSw4QkFBOEIsSUFBSSxDQUFDLE1BQU0sQ0FBQyxrQkFBa0IsTUFBTSxDQUFDLENBQUM7WUFDdEcsaUJBQWlCO1lBQ2pCLE1BQU0sS0FBSyxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsTUFBTSxFQUFFLENBQUM7WUFDbkMsS0FBSyxNQUFNLElBQUksSUFBSSxLQUFLLEVBQUUsQ0FBQztnQkFDekIsSUFBSSxJQUFJLENBQUMsR0FBRztvQkFBRSxTQUFTO2dCQUN2QixJQUFJLENBQUMsVUFBVSxDQUFDLEtBQUssQ0FBQywyQkFBMkIsK0JBQVksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFDO1lBQ25GLENBQUM7WUFDRCxJQUFJLENBQUMsVUFBVSxDQUFDLEtBQUssQ0FBQyx3RUFBd0UsRUFDNUYsSUFBSSxDQUFDLElBQUksRUFBRSxPQUFPLENBQUMsR0FBRyxDQUFDLENBQUM7WUFDMUIsSUFBSSxDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsQ0FBQztZQUMxQixJQUFJLENBQUMsVUFBVSxFQUFFLENBQUM7WUFDbEIsSUFBSSxDQUFDLFVBQVUsRUFBRSxDQUFDO1FBQ3BCLENBQUMsRUFBRSxJQUFJLENBQUMsTUFBTSxDQUFDLGtCQUFrQixDQUFDLENBQUM7UUFDbkMsSUFBSSxDQUFDLEtBQUssQ0FBQyxHQUFHLEVBQUUsQ0FBQyxZQUFZLENBQUMsaUJBQWlCLENBQUMsQ0FBQyxDQUFDO0lBQ3BELENBQUM7SUFFRCxJQUFJLE1BQU07UUFDUixPQUFPLEtBQUssQ0FBQyxNQUFzQixDQUFDO0lBQ3RDLENBQUM7SUFFRDs7O09BR0c7SUFDSCxJQUFJLEdBQUc7UUFDTCxJQUFJLENBQUMsU0FBUyxDQUFDLG1DQUFtQyxDQUFDLENBQUM7UUFDcEQsT0FBTyxJQUFJLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQztJQUN6QixDQUFDO0lBQ0QsbUNBQW1DO0lBQ25DLElBQUksR0FBRyxDQUFDLENBQUMsSUFBRyxDQUFDO0lBRWI7OztPQUdHO0lBQ0gsSUFBSSxLQUFLO1FBQ1AseURBQXlEO1FBQ3pELE9BQU8sSUFBSSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUM7SUFDM0IsQ0FBQztJQUNELG1DQUFtQztJQUNuQyxJQUFJLEtBQUssQ0FBQyxDQUFDLElBQUcsQ0FBQztJQUVmLG1CQUFtQixDQUFDLE1BQVc7UUFDN0IsTUFBTSxTQUFTLEdBQUcsTUFBTSxDQUFDLE1BQU0sQ0FBQztRQUNoQyxNQUFNLENBQUMsTUFBTSxHQUFHLENBQUMsR0FBRyxJQUFTLEVBQUUsRUFBRTtZQUMvQixNQUFNLFVBQVUsR0FBRyxTQUFTLENBQUMsS0FBSyxDQUFDLE1BQU0sRUFBRSxJQUFJLENBQUMsQ0FBQztZQUNqRCxJQUFJLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQztZQUN0QyxPQUFPLFVBQVUsQ0FBQztRQUNwQixDQUFDLENBQUM7SUFDSixDQUFDO0lBRUQ7Ozs7OztPQU1HO0lBQ0gsc0JBQXNCLENBQUMsR0FBUztRQUM5QixNQUFNLE9BQU8sR0FBUTtZQUNuQixPQUFPLEVBQUU7Z0JBQ1AsSUFBSSxFQUFFLFdBQVc7Z0JBQ2pCLGlCQUFpQixFQUFFLFdBQVc7YUFDL0I7WUFDRCxLQUFLLEVBQUUsRUFBRTtZQUNULFdBQVcsRUFBRSxFQUFFO1lBQ2YsSUFBSSxFQUFFLFdBQVc7WUFDakIsUUFBUSxFQUFFLFdBQVc7WUFDckIsUUFBUSxFQUFFLE1BQU07WUFDaEIsTUFBTSxFQUFFLE9BQU87WUFDZixNQUFNLEVBQUUsS0FBSztZQUNiLEdBQUcsRUFBRSxHQUFHO1lBQ1IsSUFBSSxFQUFFLEdBQUc7WUFDVCxNQUFNLEVBQUU7Z0JBQ04sYUFBYSxFQUFFLFdBQVc7Z0JBQzFCLFVBQVUsRUFBRSxJQUFJO2FBQ2pCO1NBQ0YsQ0FBQztRQUNGLElBQUksR0FBRyxFQUFFLENBQUM7WUFDUixLQUFLLE1BQU0sR0FBRyxJQUFJLEdBQUcsRUFBRSxDQUFDO2dCQUN0QixJQUFJLEdBQUcsS0FBSyxTQUFTLElBQUksR0FBRyxLQUFLLE9BQU8sSUFBSSxHQUFHLEtBQUssUUFBUSxFQUFFLENBQUM7b0JBQzdELE1BQU0sQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxFQUFFLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDO2dCQUN4QyxDQUFDO3FCQUFNLENBQUM7b0JBQ04sT0FBTyxDQUFDLEdBQUcsQ0FBQyxHQUFHLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQztnQkFDMUIsQ0FBQztZQUNILENBQUM7UUFDSCxDQUFDO1FBQ0QsTUFBTSxRQUFRLEdBQUcsSUFBSSxtQkFBSSxDQUFDLGNBQWMsQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUNsRCxPQUFPLElBQUksQ0FBQyxhQUFhLENBQUMsT0FBTyxFQUFFLFFBQVEsQ0FBQyxDQUFDO0lBQy9DLENBQUM7SUFFRDs7Ozs7T0FLRztJQUNILEtBQUssQ0FBQywwQkFBMEIsQ0FBQyxLQUFzQyxFQUFFLEdBQWE7UUFDcEYsTUFBTSxHQUFHLEdBQUcsSUFBSSxDQUFDLHNCQUFzQixDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQzdDLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxFQUFFLENBQUM7WUFDaEIsT0FBTyxDQUFDLEdBQUcsQ0FBQyxLQUFLLEVBQUUsT0FBTyxFQUFFLFlBQVEsQ0FBQyxrQkFBa0IsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDO1FBQ2pFLENBQUM7UUFDRCxPQUFPLE1BQU0sSUFBSSxDQUFDLFVBQVUsQ0FBQyxHQUFHLENBQUMsR0FBRyxFQUFFLEtBQUssSUFBSSxFQUFFO1lBQy9DLE9BQU8sTUFBTSxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDMUIsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDO0lBRUQ7Ozs7OztPQU1HO0lBQ0gsYUFBYSxDQUFDLEdBQW9CLEVBQUUsR0FBbUI7UUFDckQsTUFBTSxPQUFPLEdBQUcsTUFBTSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFZLENBQUM7UUFDdkQsTUFBTSxPQUFPLEdBQUcsT0FBTyxDQUFDLE9BQU8sR0FBRyxNQUFNLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUM5RCxNQUFNLFFBQVEsR0FBRyxPQUFPLENBQUMsUUFBUSxHQUFHLE1BQU0sQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBQ2pFLE9BQU8sQ0FBQyxHQUFHLEdBQUcsT0FBTyxDQUFDLEdBQUcsR0FBRyxRQUFRLENBQUMsR0FBRyxHQUFHLElBQVcsQ0FBQztRQUN2RCxPQUFPLENBQUMsR0FBRyxHQUFHLE9BQU8sQ0FBQyxHQUFHLEdBQUcsUUFBUSxDQUFDLEdBQUcsR0FBRyxHQUFHLENBQUM7UUFDL0MsT0FBTyxDQUFDLEdBQUcsR0FBRyxPQUFPLENBQUMsR0FBRyxHQUFHLFFBQVEsQ0FBQyxHQUFHLEdBQUcsR0FBRyxDQUFDO1FBQy9DLE9BQU8sQ0FBQyxHQUFHLEdBQUcsUUFBUSxDQUFDLEdBQUcsR0FBRyxPQUFPLENBQUM7UUFDckMsT0FBTyxDQUFDLFFBQVEsR0FBRyxRQUFRLENBQUM7UUFDNUIsUUFBUSxDQUFDLE9BQU8sR0FBRyxPQUFPLENBQUM7UUFDM0IsT0FBTyxDQUFDLE9BQU8sR0FBRyxPQUFPLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUNoRCxPQUFPLENBQUMsV0FBVyxHQUFHLE9BQU8sQ0FBQyxXQUFXLEdBQUcsR0FBRyxDQUFDLEdBQWEsQ0FBQztRQUM5RCxPQUFPLENBQUMsU0FBUyxHQUFHLElBQUksQ0FBQyxHQUFHLEVBQUUsQ0FBQztRQUMvQixPQUFPLENBQUMsb0JBQW9CLEdBQUcsNkJBQVcsQ0FBQyxHQUFHLEVBQUUsQ0FBQztRQUNqRCxPQUFPLE9BQU8sQ0FBQztJQUNqQixDQUFDO0NBQ0Y7QUFubEJELGdEQW1sQkMifQ==
@@ -1,5 +0,0 @@
1
- export declare class CookieLimitExceedError extends Error {
2
- key: string;
3
- cookie: string;
4
- constructor(key: string, cookie: string);
5
- }
@@ -1,16 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.CookieLimitExceedError = void 0;
4
- class CookieLimitExceedError extends Error {
5
- key;
6
- cookie;
7
- constructor(key, cookie) {
8
- super(`cookie ${key}'s length(${cookie.length}) exceed the limit(4093)`);
9
- this.name = this.constructor.name;
10
- this.key = key;
11
- this.cookie = cookie;
12
- Error.captureStackTrace(this, this.constructor);
13
- }
14
- }
15
- exports.CookieLimitExceedError = CookieLimitExceedError;
16
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQ29va2llTGltaXRFeGNlZWRFcnJvci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9saWIvZXJyb3IvQ29va2llTGltaXRFeGNlZWRFcnJvci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSxNQUFhLHNCQUF1QixTQUFRLEtBQUs7SUFDL0MsR0FBRyxDQUFTO0lBQ1osTUFBTSxDQUFTO0lBRWYsWUFBWSxHQUFXLEVBQUUsTUFBYztRQUNyQyxLQUFLLENBQUMsVUFBVSxHQUFHLGFBQWEsTUFBTSxDQUFDLE1BQU0sMEJBQTBCLENBQUMsQ0FBQztRQUN6RSxJQUFJLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDO1FBQ2xDLElBQUksQ0FBQyxHQUFHLEdBQUcsR0FBRyxDQUFDO1FBQ2YsSUFBSSxDQUFDLE1BQU0sR0FBRyxNQUFNLENBQUM7UUFDckIsS0FBSyxDQUFDLGlCQUFpQixDQUFDLElBQUksRUFBRSxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUM7SUFDbEQsQ0FBQztDQUNGO0FBWEQsd0RBV0MifQ==