@dooboostore/simple-boot-http-server 1.0.24 → 1.0.25

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 (164) hide show
  1. package/README.md +113 -0
  2. package/dist/cjs/SimpleBootHttpServer.js +2 -2
  3. package/dist/cjs/SimpleBootHttpServer.js.map +1 -1
  4. package/dist/cjs/decorators/MethodMapping.js +33 -3
  5. package/dist/cjs/decorators/MethodMapping.js.map +2 -2
  6. package/dist/cjs/errors/BadRequestError.js +2 -1
  7. package/dist/cjs/errors/BadRequestError.js.map +2 -2
  8. package/dist/cjs/errors/ForbiddenError.js +2 -1
  9. package/dist/cjs/errors/ForbiddenError.js.map +2 -2
  10. package/dist/cjs/errors/InternalServerError.js +2 -1
  11. package/dist/cjs/errors/InternalServerError.js.map +2 -2
  12. package/dist/cjs/errors/NotFoundError.js +2 -1
  13. package/dist/cjs/errors/NotFoundError.js.map +2 -2
  14. package/dist/cjs/errors/UnauthorizedError.js +2 -1
  15. package/dist/cjs/errors/UnauthorizedError.js.map +2 -2
  16. package/dist/cjs/filters/IntentSchemeFilter.js +1 -2
  17. package/dist/cjs/filters/IntentSchemeFilter.js.map +2 -2
  18. package/dist/cjs/filters/ResourceFilter.js +3 -2
  19. package/dist/cjs/filters/ResourceFilter.js.map +2 -2
  20. package/dist/cjs/filters/index.js +3 -1
  21. package/dist/cjs/filters/index.js.map +2 -2
  22. package/dist/cjs/index.js +2 -0
  23. package/dist/cjs/index.js.map +2 -2
  24. package/dist/cjs/inject/InjectSituationType.js +1 -1
  25. package/dist/cjs/inject/InjectSituationType.js.map +2 -2
  26. package/dist/cjs/models/RequestResponse.js +19 -2
  27. package/dist/cjs/models/RequestResponse.js.map +2 -2
  28. package/dist/cjs/models/datas/body/index.js +28 -0
  29. package/dist/cjs/models/datas/body/index.js.map +7 -0
  30. package/dist/cjs/models/datas/index.js +32 -0
  31. package/dist/cjs/models/datas/index.js.map +7 -0
  32. package/dist/cjs/models/datas/{body → path}/ReqPathData.js.map +1 -1
  33. package/dist/cjs/models/datas/{search → path}/ReqSearchParamsObj.js.map +1 -1
  34. package/dist/cjs/models/datas/path/index.js +24 -0
  35. package/dist/cjs/models/datas/path/index.js.map +7 -0
  36. package/dist/cjs/models/index.js +4 -16
  37. package/dist/cjs/models/index.js.map +2 -2
  38. package/dist/cjs/models/method/index.js +22 -0
  39. package/dist/cjs/models/method/index.js.map +7 -0
  40. package/dist/cjs/models/method/patch/index.js +22 -0
  41. package/dist/cjs/models/method/patch/index.js.map +7 -0
  42. package/dist/cjs/proxy/SymbolIntentApiServiceProxy.js +98 -95
  43. package/dist/cjs/proxy/SymbolIntentApiServiceProxy.js.map +3 -3
  44. package/dist/cjs/proxy/SymbolIntentApiServiceProxyBase.js +1 -1
  45. package/dist/cjs/proxy/SymbolIntentApiServiceProxyBase.js.map +2 -2
  46. package/dist/esm/SimpleBootHttpServer.js +2 -2
  47. package/dist/esm/SimpleBootHttpServer.js.map +1 -1
  48. package/dist/esm/decorators/MethodMapping.js +22 -2
  49. package/dist/esm/decorators/MethodMapping.js.map +2 -2
  50. package/dist/esm/errors/BadRequestError.js +2 -1
  51. package/dist/esm/errors/BadRequestError.js.map +2 -2
  52. package/dist/esm/errors/ForbiddenError.js +2 -1
  53. package/dist/esm/errors/ForbiddenError.js.map +2 -2
  54. package/dist/esm/errors/InternalServerError.js +2 -1
  55. package/dist/esm/errors/InternalServerError.js.map +2 -2
  56. package/dist/esm/errors/NotFoundError.js +2 -1
  57. package/dist/esm/errors/NotFoundError.js.map +2 -2
  58. package/dist/esm/errors/UnauthorizedError.js +2 -1
  59. package/dist/esm/errors/UnauthorizedError.js.map +2 -2
  60. package/dist/esm/filters/IntentSchemeFilter.js +2 -3
  61. package/dist/esm/filters/IntentSchemeFilter.js.map +2 -2
  62. package/dist/esm/filters/ResourceFilter.js +3 -2
  63. package/dist/esm/filters/ResourceFilter.js.map +2 -2
  64. package/dist/esm/filters/index.js +1 -0
  65. package/dist/esm/filters/index.js.map +2 -2
  66. package/dist/esm/index.js +1 -0
  67. package/dist/esm/index.js.map +2 -2
  68. package/dist/esm/inject/InjectSituationType.js +1 -1
  69. package/dist/esm/inject/InjectSituationType.js.map +2 -2
  70. package/dist/esm/models/RequestResponse.js +19 -2
  71. package/dist/esm/models/RequestResponse.js.map +2 -2
  72. package/dist/esm/models/datas/body/index.js +5 -0
  73. package/dist/esm/models/datas/body/index.js.map +7 -0
  74. package/dist/esm/models/datas/index.js +7 -0
  75. package/dist/esm/models/datas/index.js.map +7 -0
  76. package/dist/esm/models/datas/{body → path}/ReqPathData.js.map +1 -1
  77. package/dist/esm/models/datas/{search → path}/ReqSearchParamsObj.js.map +1 -1
  78. package/dist/esm/models/datas/path/index.js +3 -0
  79. package/dist/esm/models/datas/path/index.js.map +7 -0
  80. package/dist/esm/models/index.js +2 -8
  81. package/dist/esm/models/index.js.map +2 -2
  82. package/dist/esm/models/method/index.js +2 -0
  83. package/dist/esm/models/method/index.js.map +7 -0
  84. package/dist/esm/models/method/patch/index.js +2 -0
  85. package/dist/esm/models/method/patch/index.js.map +7 -0
  86. package/dist/esm/proxy/SymbolIntentApiServiceProxy.js +98 -95
  87. package/dist/esm/proxy/SymbolIntentApiServiceProxy.js.map +3 -3
  88. package/dist/esm/proxy/SymbolIntentApiServiceProxyBase.js +2 -2
  89. package/dist/esm/proxy/SymbolIntentApiServiceProxyBase.js.map +2 -2
  90. package/dist/esm-bundle/dooboostore-simple-boot-http-server.esm.js +5580 -974
  91. package/dist/esm-bundle/dooboostore-simple-boot-http-server.esm.js.map +4 -4
  92. package/dist/types/SimpleBootHttpServer.d.ts +1 -1
  93. package/dist/types/decorators/MethodMapping.d.ts +10 -0
  94. package/dist/types/decorators/MethodMapping.d.ts.map +1 -1
  95. package/dist/types/errors/BadRequestError.d.ts +2 -2
  96. package/dist/types/errors/BadRequestError.d.ts.map +1 -1
  97. package/dist/types/errors/ForbiddenError.d.ts +2 -2
  98. package/dist/types/errors/ForbiddenError.d.ts.map +1 -1
  99. package/dist/types/errors/InternalServerError.d.ts +2 -2
  100. package/dist/types/errors/InternalServerError.d.ts.map +1 -1
  101. package/dist/types/errors/NotFoundError.d.ts +2 -2
  102. package/dist/types/errors/NotFoundError.d.ts.map +1 -1
  103. package/dist/types/errors/UnauthorizedError.d.ts +2 -2
  104. package/dist/types/errors/UnauthorizedError.d.ts.map +1 -1
  105. package/dist/types/filters/ResourceFilter.d.ts.map +1 -1
  106. package/dist/types/filters/index.d.ts +1 -0
  107. package/dist/types/filters/index.d.ts.map +1 -1
  108. package/dist/types/index.d.ts +1 -0
  109. package/dist/types/index.d.ts.map +1 -1
  110. package/dist/types/inject/InjectSituationType.d.ts.map +1 -1
  111. package/dist/types/models/RequestResponse.d.ts +3 -1
  112. package/dist/types/models/RequestResponse.d.ts.map +1 -1
  113. package/dist/types/models/datas/body/index.d.ts +5 -0
  114. package/dist/types/models/datas/body/index.d.ts.map +1 -0
  115. package/dist/types/models/datas/index.d.ts +7 -0
  116. package/dist/types/models/datas/index.d.ts.map +1 -0
  117. package/dist/types/models/datas/{body → path}/ReqPathData.d.ts.map +1 -1
  118. package/dist/types/models/datas/path/ReqSearchParamsObj.d.ts.map +1 -0
  119. package/dist/types/models/datas/path/index.d.ts +3 -0
  120. package/dist/types/models/datas/path/index.d.ts.map +1 -0
  121. package/dist/types/models/index.d.ts +2 -8
  122. package/dist/types/models/index.d.ts.map +1 -1
  123. package/dist/types/models/method/index.d.ts +2 -0
  124. package/dist/types/models/method/index.d.ts.map +1 -0
  125. package/dist/types/models/method/patch/index.d.ts +2 -0
  126. package/dist/types/models/method/patch/index.d.ts.map +1 -0
  127. package/dist/types/proxy/SymbolIntentApiServiceProxy.d.ts +6 -8
  128. package/dist/types/proxy/SymbolIntentApiServiceProxy.d.ts.map +1 -1
  129. package/dist/umd-bundle/dooboostore-simple-boot-http-server.umd.js +5583 -977
  130. package/dist/umd-bundle/dooboostore-simple-boot-http-server.umd.js.map +4 -4
  131. package/dist/umd-bundle/websocket-client.umd.js +182 -2
  132. package/dist/umd-bundle/websocket-client.umd.js.map +4 -4
  133. package/package.json +6 -6
  134. package/src/SimpleBootHttpServer.ts +4 -4
  135. package/src/decorators/MethodMapping.ts +13 -1
  136. package/src/errors/BadRequestError.ts +7 -3
  137. package/src/errors/ForbiddenError.ts +7 -3
  138. package/src/errors/InternalServerError.ts +7 -3
  139. package/src/errors/NotFoundError.ts +7 -3
  140. package/src/errors/UnauthorizedError.ts +7 -3
  141. package/src/filters/IntentSchemeFilter.ts +2 -2
  142. package/src/filters/ResourceFilter.ts +5 -2
  143. package/src/filters/index.ts +1 -0
  144. package/src/index.ts +1 -0
  145. package/src/inject/InjectSituationType.ts +1 -1
  146. package/src/models/RequestResponse.ts +28 -2
  147. package/src/models/datas/body/index.ts +4 -0
  148. package/src/models/datas/index.ts +6 -0
  149. package/src/models/datas/path/index.ts +2 -0
  150. package/src/models/index.ts +2 -8
  151. package/src/models/method/index.ts +1 -0
  152. package/src/models/method/patch/index.ts +1 -0
  153. package/src/proxy/SymbolIntentApiServiceProxy.ts +103 -97
  154. package/src/proxy/SymbolIntentApiServiceProxyBase.ts +2 -2
  155. package/README.MD +0 -62
  156. package/dist/types/models/datas/search/ReqSearchParamsObj.d.ts.map +0 -1
  157. /package/dist/cjs/models/datas/{body → path}/ReqPathData.js +0 -0
  158. /package/dist/cjs/models/datas/{search → path}/ReqSearchParamsObj.js +0 -0
  159. /package/dist/esm/models/datas/{body → path}/ReqPathData.js +0 -0
  160. /package/dist/esm/models/datas/{search → path}/ReqSearchParamsObj.js +0 -0
  161. /package/dist/types/models/datas/{body → path}/ReqPathData.d.ts +0 -0
  162. /package/dist/types/models/datas/{search → path}/ReqSearchParamsObj.d.ts +0 -0
  163. /package/src/models/datas/{body → path}/ReqPathData.ts +0 -0
  164. /package/src/models/datas/{search → path}/ReqSearchParamsObj.ts +0 -0
@@ -17,7 +17,8 @@ var __copyProps = (to, from, except, desc) => {
17
17
  var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
18
18
  var SymbolIntentApiServiceProxy_exports = {};
19
19
  __export(SymbolIntentApiServiceProxy_exports, {
20
- SymbolIntentApiServiceProxy: () => SymbolIntentApiServiceProxy
20
+ createHandler: () => createHandler,
21
+ default: () => SymbolIntentApiServiceProxy_default
21
22
  });
22
23
  module.exports = __toCommonJS(SymbolIntentApiServiceProxy_exports);
23
24
  var import_simple_boot = require("@dooboostore/simple-boot");
@@ -33,109 +34,111 @@ var __decorate = function(decorators, target, key, desc) {
33
34
  var __metadata = function(k, v) {
34
35
  if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
35
36
  };
36
- var SymbolIntentApiServiceProxy_1;
37
- var _a;
38
37
  const _ = import_simple_boot2.ApiService;
39
- let SymbolIntentApiServiceProxy = SymbolIntentApiServiceProxy_1 = class SymbolIntentApiServiceProxy2 {
40
- constructor(apiService) {
41
- this.apiService = apiService;
42
- }
43
- static createHandler(apiService) {
44
- return {
45
- get(target, prop, receiver) {
46
- if (prop === "_SimpleBoot_origin") {
47
- return target;
48
- }
49
- const simConfig = (0, import_simple_boot.getSim)(target);
50
- const value = Reflect.get(target, prop, receiver);
51
- if (typeof value === "function" && simConfig?.symbol) {
52
- return function(...args) {
53
- const f = value;
54
- const p = (userConfig) => {
55
- const headers = { ...userConfig?.headers ?? {}, ...(0, import_HttpHeaders.makeIntentHeaderBySymbolFor)(simConfig.symbol) };
56
- const method = userConfig?.method ?? "post";
57
- if (method === "post" && userConfig?.multipartFormData) {
58
- return apiService.post({
59
- target: `/${String(prop)}`,
60
- config: {
61
- responseTransform: userConfig?.bypassTransform ? "response" : void 0,
62
- transformText: userConfig?.transformText,
63
- config: userConfig?.config,
64
- fetch: {
65
- credentials: "include",
66
- headers,
67
- body: import_core.ConvertUtils.toFormData(userConfig?.body)
68
- }
38
+ const createHandler = (apiService) => {
39
+ return {
40
+ get(target, prop, receiver) {
41
+ if (prop === "_SimpleBoot_origin") {
42
+ return target;
43
+ }
44
+ const simConfig = (0, import_simple_boot.getSim)(target);
45
+ const value = Reflect.get(target, prop, receiver);
46
+ if (typeof value === "function" && simConfig?.symbol) {
47
+ return function(...args) {
48
+ const f = value;
49
+ const p = (userConfig) => {
50
+ const headers = { ...userConfig?.headers ?? {}, ...(0, import_HttpHeaders.makeIntentHeaderBySymbolFor)(simConfig.symbol) };
51
+ const method = userConfig?.method ?? "post";
52
+ if (method === "post" && userConfig?.multipartFormData) {
53
+ return apiService.post({
54
+ target: `/${String(prop)}`,
55
+ config: {
56
+ responseTransform: userConfig?.bypassTransform ? "response" : void 0,
57
+ transformText: userConfig?.transformText,
58
+ config: userConfig?.config,
59
+ fetch: {
60
+ credentials: "include",
61
+ headers,
62
+ body: import_core.ConvertUtils.toFormData(userConfig?.body)
69
63
  }
70
- });
71
- } else if (method === "post") {
72
- return apiService.postJson({
73
- target: `/${String(prop)}`,
74
- config: {
75
- responseTransform: userConfig?.bypassTransform ? "response" : void 0,
76
- transformText: userConfig?.transformText,
77
- config: userConfig?.config,
78
- fetch: {
79
- credentials: "include",
80
- headers,
81
- body: userConfig?.body
82
- }
64
+ }
65
+ });
66
+ } else if (method === "post") {
67
+ return apiService.postJson({
68
+ target: `/${String(prop)}`,
69
+ config: {
70
+ responseTransform: userConfig?.bypassTransform ? "response" : void 0,
71
+ transformText: userConfig?.transformText,
72
+ config: userConfig?.config,
73
+ fetch: {
74
+ credentials: "include",
75
+ headers,
76
+ body: userConfig?.body
83
77
  }
84
- });
85
- } else if (method === "petch") {
86
- return apiService.patchJson({
87
- target: `/${String(prop)}`,
88
- config: {
89
- responseTransform: userConfig?.bypassTransform ? "response" : void 0,
90
- transformText: userConfig?.transformText,
91
- config: userConfig?.config,
92
- fetch: {
93
- credentials: "include",
94
- headers,
95
- body: userConfig?.body
96
- }
78
+ }
79
+ });
80
+ } else if (method === "petch") {
81
+ return apiService.patchJson({
82
+ target: `/${String(prop)}`,
83
+ config: {
84
+ responseTransform: userConfig?.bypassTransform ? "response" : void 0,
85
+ transformText: userConfig?.transformText,
86
+ config: userConfig?.config,
87
+ fetch: {
88
+ credentials: "include",
89
+ headers,
90
+ body: userConfig?.body
97
91
  }
98
- });
99
- } else {
100
- return apiService[method]({
101
- target: { url: `/${String(prop)}`, searchParams: userConfig?.body },
102
- config: {
103
- responseTransform: userConfig?.bypassTransform ? "response" : void 0,
104
- transformText: userConfig?.transformText,
105
- config: userConfig?.config,
106
- fetch: {
107
- credentials: "include",
108
- headers
109
- }
92
+ }
93
+ });
94
+ } else {
95
+ return apiService[method]({
96
+ target: { url: `/${String(prop)}`, searchParams: userConfig?.body },
97
+ config: {
98
+ responseTransform: userConfig?.bypassTransform ? "response" : void 0,
99
+ transformText: userConfig?.transformText,
100
+ config: userConfig?.config,
101
+ fetch: {
102
+ credentials: "include",
103
+ headers
110
104
  }
111
- });
112
- }
113
- };
114
- args.push(p);
115
- return Reflect.apply(f, target, args);
105
+ }
106
+ });
107
+ }
116
108
  };
117
- }
118
- return Reflect.get(target, prop, receiver);
119
- },
120
- apply(target, thisArg, argArray) {
121
- console.log("SymbolIntentApiServiceProxy apply");
122
- return Reflect.apply(target, thisArg, argArray);
109
+ args.push(p);
110
+ return Reflect.apply(f, target, args);
111
+ };
123
112
  }
124
- };
125
- }
126
- get(target, prop, receiver) {
127
- return SymbolIntentApiServiceProxy_1.createHandler(this.apiService).get(target, prop, receiver);
128
- }
129
- apply(target, thisArg, argArray) {
130
- return SymbolIntentApiServiceProxy_1.createHandler(this.apiService).apply(target, thisArg, argArray);
131
- }
113
+ return Reflect.get(target, prop, receiver);
114
+ },
115
+ apply(target, thisArg, argArray) {
116
+ console.log("SymbolIntentApiServiceProxy apply");
117
+ return Reflect.apply(target, thisArg, argArray);
118
+ }
119
+ };
120
+ };
121
+ var SymbolIntentApiServiceProxy_default = (config) => {
122
+ var _a;
123
+ let SymbolIntentApiServiceProxy = class SymbolIntentApiServiceProxy {
124
+ constructor(apiService) {
125
+ this.apiService = apiService;
126
+ }
127
+ get(target, prop, receiver) {
128
+ return createHandler(this.apiService).get(target, prop, receiver);
129
+ }
130
+ apply(target, thisArg, argArray) {
131
+ return createHandler(this.apiService).apply(target, thisArg, argArray);
132
+ }
133
+ };
134
+ SymbolIntentApiServiceProxy = __decorate([
135
+ (0, import_simple_boot.sim)(config),
136
+ __metadata("design:paramtypes", [typeof (_a = typeof import_simple_boot2.ApiService !== "undefined" && import_simple_boot2.ApiService) === "function" ? _a : Object])
137
+ ], SymbolIntentApiServiceProxy);
138
+ return SymbolIntentApiServiceProxy;
132
139
  };
133
- SymbolIntentApiServiceProxy = SymbolIntentApiServiceProxy_1 = __decorate([
134
- import_simple_boot.Sim,
135
- __metadata("design:paramtypes", [typeof (_a = typeof import_simple_boot2.ApiService !== "undefined" && import_simple_boot2.ApiService) === "function" ? _a : Object])
136
- ], SymbolIntentApiServiceProxy);
137
140
  // Annotate the CommonJS export names for ESM import in node:
138
141
  0 && (module.exports = {
139
- SymbolIntentApiServiceProxy
142
+ createHandler
140
143
  });
141
144
  //# sourceMappingURL=SymbolIntentApiServiceProxy.js.map
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../src/proxy/SymbolIntentApiServiceProxy.ts"],
4
- "sourcesContent": ["import { getSim, Sim } from '@dooboostore/simple-boot';\nimport { makeIntentHeaderBySymbolFor } from '../codes/HttpHeaders';\nimport { ConvertUtils } from '@dooboostore/core';\nimport { ApiService } from '@dooboostore/simple-boot';\n\nexport type Config<T = any> = {\n method?: 'get' | 'post' | 'petch' | 'delete' | 'head';\n multipartFormData?: boolean;\n bypassTransform?: boolean;\n transformText?: boolean;\n headers?: HeadersInit;\n body?: T;\n config?: ApiService.ApiServiceConfig;\n};\nconst _ = ApiService;\n\n@Sim\nexport class SymbolIntentApiServiceProxy<T extends object> implements ProxyHandler<T> {\n constructor(private apiService: ApiService) {\n // console.log('-------apiService', apiService);\n }\n\n static createHandler<T extends object>(apiService: ApiService): ProxyHandler<T> {\n return {\n get(target: T, prop: string | symbol, receiver: any): any {\n if (prop === '_SimpleBoot_origin') {\n return target;\n }\n const simConfig = getSim(target);\n const value = Reflect.get(target, prop, receiver);\n if (typeof value === 'function' && simConfig?.symbol) {\n return function (...args: any[]) {\n const f = value as Function;\n const p = (userConfig: Config) => {\n const headers = { ...(userConfig?.headers ?? {}), ...makeIntentHeaderBySymbolFor(simConfig.symbol as Symbol) };\n const method = userConfig?.method ?? 'post';\n if (method === 'post' && userConfig?.multipartFormData) {\n //@ts-ignore\n return apiService.post({\n target: `/${String(prop)}`,\n config: {\n responseTransform: userConfig?.bypassTransform ? 'response' : undefined,\n transformText: userConfig?.transformText,\n config: userConfig?.config,\n fetch: {\n credentials: 'include',\n headers: headers,\n body: ConvertUtils.toFormData(userConfig?.body)\n }\n }\n });\n } else if (method === 'post') {\n //@ts-ignore\n return apiService.postJson({\n target: `/${String(prop)}`,\n config: {\n responseTransform: userConfig?.bypassTransform ? 'response' : undefined,\n transformText: userConfig?.transformText,\n config: userConfig?.config,\n fetch: {\n credentials: 'include',\n headers: headers,\n body: userConfig?.body\n }\n }\n });\n } else if (method === 'petch') {\n //@ts-ignore\n return apiService.patchJson({\n target: `/${String(prop)}`,\n config: {\n responseTransform: userConfig?.bypassTransform ? 'response' : undefined,\n transformText: userConfig?.transformText,\n config: userConfig?.config,\n fetch: {\n credentials: 'include',\n headers: headers,\n body: userConfig?.body\n }\n }\n });\n } else {\n //@ts-ignore\n return apiService[method]({\n target: { url: `/${String(prop)}`, searchParams: userConfig?.body },\n config: {\n responseTransform: userConfig?.bypassTransform ? 'response' : undefined,\n transformText: userConfig?.transformText,\n config: userConfig?.config,\n fetch: {\n credentials: 'include',\n headers: headers\n }\n }\n });\n }\n };\n args.push(p);\n return Reflect.apply(f, target, args);\n };\n }\n return Reflect.get(target, prop, receiver);\n },\n\n apply(target: T, thisArg: any, argArray: any[]): any {\n console.log('SymbolIntentApiServiceProxy apply');\n // @ts-ignore\n return Reflect.apply(target, thisArg, argArray);\n }\n };\n }\n\n get(target: T, prop: string | symbol, receiver: any): any {\n return SymbolIntentApiServiceProxy.createHandler<T>(this.apiService).get!(target, prop, receiver);\n }\n\n apply(target: T, thisArg: any, argArray: any[]): any {\n return SymbolIntentApiServiceProxy.createHandler<T>(this.apiService).apply!(target, thisArg, argArray);\n }\n}\n"],
5
- "mappings": ";;;;;;;;;;;;;;;;;;;;;;AAAA,yBAA4B;AAC5B,yBAA4C;AAC5C,kBAA6B;AAC7B,IAAAA,sBAA2B;;;;;;;;;;;;AAW3B,MAAM,IAAI;AAGH,IAAM,8BAA2B,gCAAjC,MAAMC,6BAA2B;EACtC,YAAoB,YAAsB;AAAtB,SAAA,aAAA;EAEpB;EAEA,OAAO,cAAgC,YAAsB;AAC3D,WAAO;MACL,IAAI,QAAW,MAAuB,UAAa;AACjD,YAAI,SAAS,sBAAsB;AACjC,iBAAO;QACT;AACA,cAAM,gBAAY,2BAAO,MAAM;AAC/B,cAAM,QAAQ,QAAQ,IAAI,QAAQ,MAAM,QAAQ;AAChD,YAAI,OAAO,UAAU,cAAc,WAAW,QAAQ;AACpD,iBAAO,YAAa,MAAW;AAC7B,kBAAM,IAAI;AACV,kBAAM,IAAI,CAAC,eAAsB;AAC/B,oBAAM,UAAU,EAAE,GAAI,YAAY,WAAW,CAAA,GAAK,OAAG,gDAA4B,UAAU,MAAgB,EAAC;AAC5G,oBAAM,SAAS,YAAY,UAAU;AACrC,kBAAI,WAAW,UAAU,YAAY,mBAAmB;AAEtD,uBAAO,WAAW,KAAK;kBACrB,QAAQ,IAAI,OAAO,IAAI,CAAC;kBACxB,QAAQ;oBACN,mBAAmB,YAAY,kBAAkB,aAAa;oBAC9D,eAAe,YAAY;oBAC3B,QAAQ,YAAY;oBACpB,OAAO;sBACL,aAAa;sBACb;sBACA,MAAM,yBAAa,WAAW,YAAY,IAAI;;;iBAGnD;cACH,WAAW,WAAW,QAAQ;AAE5B,uBAAO,WAAW,SAAS;kBACzB,QAAQ,IAAI,OAAO,IAAI,CAAC;kBACxB,QAAQ;oBACN,mBAAmB,YAAY,kBAAkB,aAAa;oBAC9D,eAAe,YAAY;oBAC3B,QAAQ,YAAY;oBACpB,OAAO;sBACL,aAAa;sBACb;sBACA,MAAM,YAAY;;;iBAGvB;cACH,WAAW,WAAW,SAAS;AAE7B,uBAAO,WAAW,UAAU;kBAC1B,QAAQ,IAAI,OAAO,IAAI,CAAC;kBACxB,QAAQ;oBACN,mBAAmB,YAAY,kBAAkB,aAAa;oBAC9D,eAAe,YAAY;oBAC3B,QAAQ,YAAY;oBACpB,OAAO;sBACL,aAAa;sBACb;sBACA,MAAM,YAAY;;;iBAGvB;cACH,OAAO;AAEL,uBAAO,WAAW,MAAM,EAAE;kBACxB,QAAQ,EAAE,KAAK,IAAI,OAAO,IAAI,CAAC,IAAI,cAAc,YAAY,KAAI;kBACjE,QAAQ;oBACN,mBAAmB,YAAY,kBAAkB,aAAa;oBAC9D,eAAe,YAAY;oBAC3B,QAAQ,YAAY;oBACpB,OAAO;sBACL,aAAa;sBACb;;;iBAGL;cACH;YACF;AACA,iBAAK,KAAK,CAAC;AACX,mBAAO,QAAQ,MAAM,GAAG,QAAQ,IAAI;UACtC;QACF;AACA,eAAO,QAAQ,IAAI,QAAQ,MAAM,QAAQ;MAC3C;MAEA,MAAM,QAAW,SAAc,UAAe;AAC5C,gBAAQ,IAAI,mCAAmC;AAE/C,eAAO,QAAQ,MAAM,QAAQ,SAAS,QAAQ;MAChD;;EAEJ;EAEA,IAAI,QAAW,MAAuB,UAAa;AACjD,WAAO,8BAA4B,cAAiB,KAAK,UAAU,EAAE,IAAK,QAAQ,MAAM,QAAQ;EAClG;EAEA,MAAM,QAAW,SAAc,UAAe;AAC5C,WAAO,8BAA4B,cAAiB,KAAK,UAAU,EAAE,MAAO,QAAQ,SAAS,QAAQ;EACvG;;AArGW,8BAA2B,gCAAA,WAAA;EADvC;uDAEiC,mCAAU,eAAV,oCAAU,aAAA,KAAA,MAAA,CAAA;GAD/B,2BAA2B;",
6
- "names": ["import_simple_boot", "SymbolIntentApiServiceProxy"]
4
+ "sourcesContent": ["import {getSim, sim, Sim, SimConfig} from '@dooboostore/simple-boot';\nimport { makeIntentHeaderBySymbolFor } from '../codes/HttpHeaders';\nimport {ConstructorType, ConvertUtils} from '@dooboostore/core';\nimport { ApiService } from '@dooboostore/simple-boot';\n\nexport type SymbolIntentApiServiceConfig<T = any> = {\n method?: 'get' | 'post' | 'petch' | 'delete' | 'head';\n multipartFormData?: boolean;\n bypassTransform?: boolean;\n transformText?: boolean;\n headers?: HeadersInit;\n body?: T;\n config?: ApiService.ApiServiceConfig;\n};\nconst _ = ApiService;\n\n\nexport const createHandler = <T extends object>(apiService: ApiService): ProxyHandler<T> => {\n return {\n get(target: T, prop: string | symbol, receiver: any): any {\n if (prop === '_SimpleBoot_origin') {\n return target;\n }\n const simConfig = getSim(target);\n const value = Reflect.get(target, prop, receiver);\n if (typeof value === 'function' && simConfig?.symbol) {\n return function (...args: any[]) {\n const f = value as Function;\n const p = (userConfig: SymbolIntentApiServiceConfig) => {\n const headers = {...(userConfig?.headers ?? {}), ...makeIntentHeaderBySymbolFor(simConfig.symbol as Symbol)};\n const method = userConfig?.method ?? 'post';\n if (method === 'post' && userConfig?.multipartFormData) {\n //@ts-ignore\n return apiService.post({\n target: `/${String(prop)}`,\n config: {\n responseTransform: userConfig?.bypassTransform ? 'response' : undefined,\n transformText: userConfig?.transformText,\n config: userConfig?.config,\n fetch: {\n credentials: 'include',\n headers: headers,\n body: ConvertUtils.toFormData(userConfig?.body)\n }\n }\n });\n } else if (method === 'post') {\n //@ts-ignore\n return apiService.postJson({\n target: `/${String(prop)}`,\n config: {\n responseTransform: userConfig?.bypassTransform ? 'response' : undefined,\n transformText: userConfig?.transformText,\n config: userConfig?.config,\n fetch: {\n credentials: 'include',\n headers: headers,\n body: userConfig?.body\n }\n }\n });\n } else if (method === 'petch') {\n //@ts-ignore\n return apiService.patchJson({\n target: `/${String(prop)}`,\n config: {\n responseTransform: userConfig?.bypassTransform ? 'response' : undefined,\n transformText: userConfig?.transformText,\n config: userConfig?.config,\n fetch: {\n credentials: 'include',\n headers: headers,\n body: userConfig?.body\n }\n }\n });\n } else {\n //@ts-ignore\n return apiService[method]({\n target: {url: `/${String(prop)}`, searchParams: userConfig?.body},\n config: {\n responseTransform: userConfig?.bypassTransform ? 'response' : undefined,\n transformText: userConfig?.transformText,\n config: userConfig?.config,\n fetch: {\n credentials: 'include',\n headers: headers\n }\n }\n });\n }\n };\n args.push(p);\n return Reflect.apply(f, target, args);\n };\n }\n return Reflect.get(target, prop, receiver);\n },\n\n apply(target: T, thisArg: any, argArray: any[]): any {\n console.log('SymbolIntentApiServiceProxy apply');\n // @ts-ignore\n return Reflect.apply(target, thisArg, argArray);\n }\n };\n}\n\nexport default (config?: SimConfig): ConstructorType<any> => {\n\n @sim(config)\n class SymbolIntentApiServiceProxy<T extends object> implements ProxyHandler<T> {\n constructor(private apiService: ApiService) {\n // console.log('-------apiService', apiService);\n }\n\n\n get(target: T, prop: string | symbol, receiver: any): any {\n return createHandler<T>(this.apiService).get!(target, prop, receiver);\n }\n\n apply(target: T, thisArg: any, argArray: any[]): any {\n return createHandler<T>(this.apiService).apply!(target, thisArg, argArray);\n }\n }\n return SymbolIntentApiServiceProxy;\n}"],
5
+ "mappings": ";;;;;;;;;;;;;;;;;;;;;;;AAAA,yBAA0C;AAC1C,yBAA4C;AAC5C,kBAA4C;AAC5C,IAAAA,sBAA2B;;;;;;;;;;AAW3B,MAAM,IAAI;AAGF,MAAO,gBAAgB,CAAmB,eAA2C;AAC3F,SAAO;IACL,IAAI,QAAW,MAAuB,UAAa;AACjD,UAAI,SAAS,sBAAsB;AACjC,eAAO;MACT;AACA,YAAM,gBAAY,2BAAO,MAAM;AAC/B,YAAM,QAAQ,QAAQ,IAAI,QAAQ,MAAM,QAAQ;AAChD,UAAI,OAAO,UAAU,cAAc,WAAW,QAAQ;AACpD,eAAO,YAAa,MAAW;AAC7B,gBAAM,IAAI;AACV,gBAAM,IAAI,CAAC,eAA4C;AACrD,kBAAM,UAAU,EAAC,GAAI,YAAY,WAAW,CAAA,GAAK,OAAG,gDAA4B,UAAU,MAAgB,EAAC;AAC3G,kBAAM,SAAS,YAAY,UAAU;AACrC,gBAAI,WAAW,UAAU,YAAY,mBAAmB;AAEtD,qBAAO,WAAW,KAAK;gBACrB,QAAQ,IAAI,OAAO,IAAI,CAAC;gBACxB,QAAQ;kBACN,mBAAmB,YAAY,kBAAkB,aAAa;kBAC9D,eAAe,YAAY;kBAC3B,QAAQ,YAAY;kBACpB,OAAO;oBACL,aAAa;oBACb;oBACA,MAAM,yBAAa,WAAW,YAAY,IAAI;;;eAGnD;YACH,WAAW,WAAW,QAAQ;AAE5B,qBAAO,WAAW,SAAS;gBACzB,QAAQ,IAAI,OAAO,IAAI,CAAC;gBACxB,QAAQ;kBACN,mBAAmB,YAAY,kBAAkB,aAAa;kBAC9D,eAAe,YAAY;kBAC3B,QAAQ,YAAY;kBACpB,OAAO;oBACL,aAAa;oBACb;oBACA,MAAM,YAAY;;;eAGvB;YACH,WAAW,WAAW,SAAS;AAE7B,qBAAO,WAAW,UAAU;gBAC1B,QAAQ,IAAI,OAAO,IAAI,CAAC;gBACxB,QAAQ;kBACN,mBAAmB,YAAY,kBAAkB,aAAa;kBAC9D,eAAe,YAAY;kBAC3B,QAAQ,YAAY;kBACpB,OAAO;oBACL,aAAa;oBACb;oBACA,MAAM,YAAY;;;eAGvB;YACH,OAAO;AAEL,qBAAO,WAAW,MAAM,EAAE;gBACxB,QAAQ,EAAC,KAAK,IAAI,OAAO,IAAI,CAAC,IAAI,cAAc,YAAY,KAAI;gBAChE,QAAQ;kBACN,mBAAmB,YAAY,kBAAkB,aAAa;kBAC9D,eAAe,YAAY;kBAC3B,QAAQ,YAAY;kBACpB,OAAO;oBACL,aAAa;oBACb;;;eAGL;YACH;UACF;AACA,eAAK,KAAK,CAAC;AACX,iBAAO,QAAQ,MAAM,GAAG,QAAQ,IAAI;QACtC;MACF;AACA,aAAO,QAAQ,IAAI,QAAQ,MAAM,QAAQ;IAC3C;IAEA,MAAM,QAAW,SAAc,UAAe;AAC5C,cAAQ,IAAI,mCAAmC;AAE/C,aAAO,QAAQ,MAAM,QAAQ,SAAS,QAAQ;IAChD;;AAEJ;AAEA,IAAA,sCAAe,CAAC,WAA4C;;AAE1D,MACM,8BADN,MACM,4BAA2B;IAC/B,YAAoB,YAAsB;AAAtB,WAAA,aAAA;IAEpB;IAGA,IAAI,QAAW,MAAuB,UAAa;AACjD,aAAO,cAAiB,KAAK,UAAU,EAAE,IAAK,QAAQ,MAAM,QAAQ;IACtE;IAEA,MAAM,QAAW,SAAc,UAAe;AAC5C,aAAO,cAAiB,KAAK,UAAU,EAAE,MAAO,QAAQ,SAAS,QAAQ;IAC3E;;AAZI,gCAA2B,WAAA;QADhC,wBAAI,MAAM;yDAEuB,mCAAU,eAAV,oCAAU,aAAA,KAAA,MAAA,CAAA;KADtC,2BAA2B;AAcjC,SAAO;AACT;",
6
+ "names": ["import_simple_boot"]
7
7
  }
@@ -24,7 +24,7 @@ var import_SymbolIntentApiServiceProxy = require("./SymbolIntentApiServiceProxy"
24
24
  class SymbolIntentApiServiceProxyBase {
25
25
  // 생성자는 프록시될 대상 객체(target)와 의존성을 주입받습니다.
26
26
  constructor(apiService) {
27
- const handler = import_SymbolIntentApiServiceProxy.SymbolIntentApiServiceProxy.createHandler(apiService);
27
+ const handler = (0, import_SymbolIntentApiServiceProxy.createHandler)(apiService);
28
28
  return new Proxy(this, handler);
29
29
  }
30
30
  }
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../src/proxy/SymbolIntentApiServiceProxyBase.ts"],
4
- "sourcesContent": ["import {ApiService} from '@dooboostore/simple-boot';\nimport {SymbolIntentApiServiceProxy} from './SymbolIntentApiServiceProxy';\n\nexport class SymbolIntentApiServiceProxyBase<T extends object = any> {\n // \uC0DD\uC131\uC790\uB294 \uD504\uB85D\uC2DC\uB420 \uB300\uC0C1 \uAC1D\uCCB4(target)\uC640 \uC758\uC874\uC131\uC744 \uC8FC\uC785\uBC1B\uC2B5\uB2C8\uB2E4.\n constructor(\n apiService: ApiService,\n ) {\n // SymbolIntentApiServiceProxy\uC758 static handler\uB97C \uC0AC\uC6A9\uD569\uB2C8\uB2E4.\n const handler = SymbolIntentApiServiceProxy.createHandler<T>(apiService);\n\n // \uC0DD\uC131\uC790\uC5D0\uC11C Proxy \uAC1D\uCCB4\uB97C \uBC18\uD658\uD569\uB2C8\uB2E4.\n // @ts-ignore\n return new Proxy(this, handler);\n }\n}"],
5
- "mappings": ";;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AACA,yCAA0C;AAEnC,MAAM,gCAAwD;AAAA;AAAA,EAEnE,YACE,YACA;AAEA,UAAM,UAAU,+DAA4B,cAAiB,UAAU;AAIvE,WAAO,IAAI,MAAM,MAAM,OAAO;AAAA,EAChC;AACF;",
4
+ "sourcesContent": ["import {ApiService} from '@dooboostore/simple-boot';\nimport {createHandler} from './SymbolIntentApiServiceProxy';\n\nexport class SymbolIntentApiServiceProxyBase<T extends object = any> {\n // \uC0DD\uC131\uC790\uB294 \uD504\uB85D\uC2DC\uB420 \uB300\uC0C1 \uAC1D\uCCB4(target)\uC640 \uC758\uC874\uC131\uC744 \uC8FC\uC785\uBC1B\uC2B5\uB2C8\uB2E4.\n constructor(\n apiService: ApiService,\n ) {\n // SymbolIntentApiServiceProxy\uC758 static handler\uB97C \uC0AC\uC6A9\uD569\uB2C8\uB2E4.\n const handler = createHandler<T>(apiService);\n\n // \uC0DD\uC131\uC790\uC5D0\uC11C Proxy \uAC1D\uCCB4\uB97C \uBC18\uD658\uD569\uB2C8\uB2E4.\n // @ts-ignore\n return new Proxy(this, handler);\n }\n}"],
5
+ "mappings": ";;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AACA,yCAA4B;AAErB,MAAM,gCAAwD;AAAA;AAAA,EAEnE,YACE,YACA;AAEA,UAAM,cAAU,kDAAiB,UAAU;AAI3C,WAAO,IAAI,MAAM,MAAM,OAAO;AAAA,EAChC;AACF;",
6
6
  "names": []
7
7
  }
@@ -23,8 +23,8 @@ import { getRoute } from "@dooboostore/simple-boot";
23
23
  import { URLSearchParams } from "url";
24
24
  import { HttpMethod } from "./codes/HttpMethod.js";
25
25
  import { SessionManager } from "./session/SessionManager.js";
26
- import { ReqSearchParamsObj } from "./models/datas/search/ReqSearchParamsObj.js";
27
- import { ReqPathData } from "./models/datas/body/ReqPathData.js";
26
+ import { ReqSearchParamsObj } from "./models/datas/path/ReqSearchParamsObj.js";
27
+ import { ReqPathData } from "./models/datas/path/ReqPathData.js";
28
28
  class SimpleBootHttpServer extends SimpleApplication {
29
29
  constructor(option = new HttpServerOption()) {
30
30
  super(option);
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../src/SimpleBootHttpServer.ts"],
4
- "sourcesContent": ["import {SimpleApplication} from '@dooboostore/simple-boot';\nimport {HttpServerOption} from './option/HttpServerOption';\nimport {ConstructorType} from '@dooboostore/core';\nimport {IncomingMessage, Server as HttpServer, ServerResponse} from 'http'\nimport {Server as HttpsServer} from 'https'; // Add HTTPS support\nimport {WebSocketServer, WebSocket} from 'ws';\nimport {RequestResponse} from './models/RequestResponse';\nimport {getUrlMapping, getUrlMappings, SaveMappingConfig, UrlMappingSituationType} from './decorators/MethodMapping';\nimport {HttpStatus} from './codes/HttpStatus';\nimport {HttpHeaders} from './codes/HttpHeaders';\nimport {Mimes} from './codes/Mimes';\nimport {Filter} from './filters/Filter';\nimport {ExceptionHandlerSituationType, targetExceptionHandler} from '@dooboostore/simple-boot';\nimport {getInject, SituationTypeContainer, SituationTypeContainers} from '@dooboostore/simple-boot';\nimport {EndPoint} from './endpoints/EndPoint';\nimport {ReflectUtils} from '@dooboostore/core';\nimport {ReqFormUrlBody} from './models/datas/body/ReqFormUrlBody';\nimport {ReqJsonBody} from './models/datas/body/ReqJsonBody';\nimport {ReqHeader} from './models/datas/ReqHeader';\nimport {RouterModule} from '@dooboostore/simple-boot';\nimport {ReqMultipartFormBody} from './models/datas/body/ReqMultipartFormBody';\nimport {execValidationInValid, getValidIndex} from '@dooboostore/simple-boot';\nimport {ValidException} from '@dooboostore/simple-boot';\nimport {HttpError} from './errors/HttpError';\nimport {getRoute} from '@dooboostore/simple-boot';\nimport {OnInit} from './lifecycle/OnInit';\nimport {URLSearchParams} from 'url';\nimport {HttpMethod} from './codes/HttpMethod';\nimport {SessionManager} from './session/SessionManager';\nimport {InjectSituationType} from './inject/InjectSituationType';\nimport {ReqSearchParamsObj} from \"./models/datas/search/ReqSearchParamsObj\";\nimport {SimConfig} from '@dooboostore/simple-boot';\nimport {ReqPathData} from './models/datas/body/ReqPathData';\nimport {WebSocketEndPoint} from './endpoints/WebSocketEndPoint';\n\nexport class SimpleBootHttpServer extends SimpleApplication {\n public server?: HttpServer | HttpsServer;\n private sessionManager: SessionManager;\n private webSocketClients = new Map<WebSocket, { request: IncomingMessage }>();\n\n constructor(public option: HttpServerOption = new HttpServerOption()) {\n super(option);\n this.sessionManager = new SessionManager(this.option);\n }\n\n\n public run(otherInstanceSim?: Map<ConstructorType<any> | Function | SimConfig | Symbol, any>) {\n otherInstanceSim ??= new Map<ConstructorType<any> | Function | SimConfig | Symbol, any>();\n otherInstanceSim.set(SimpleBootHttpServer, this);\n super.run(otherInstanceSim);\n const targets = [...this.option.closeEndPoints ?? [], ...this.option.errorEndPoints ?? [], ...this.option.requestEndPoints ?? [], ...this.option.filters ?? []];\n Promise.all(targets.map(it => (typeof it === 'function' ? this.simstanceManager.getOrNewSim({target: it as ConstructorType<any>}) : it) as OnInit).map(it => it.onInit(this))).then(it => {\n this.startServer();\n });\n return this;\n }\n\n private startServer() {\n\n // const a = this.option.serverOption as HttpsServerOption;\n // this.option.serverOption?.\n\n if (this.option.serverOption && 'key' in this.option.serverOption && 'cert' in this.option.serverOption) {\n this.server = new HttpsServer(this.option.serverOption);\n const httpServer = new HttpServer();\n httpServer.on('request', (req: IncomingMessage, res: ServerResponse) => {\n res.writeHead(301, {Location: `https://${req.headers.host}${req.url}`});\n res.end();\n });\n httpServer.listen(80, this.option.listen.hostname, () => {\n console.log('HTTP redirect server running on port 80');\n });\n } else if (this.option.serverOption) {\n this.server = new HttpServer(this.option.serverOption);\n } else {\n this.server = new HttpServer();\n }\n // const thisRef = this;\n this.server.on('request', async (req: IncomingMessage, res: ServerResponse) => {\n // console.log('request', req.url);\n const transactionManager = this.option.transactionManagerFactory ? await this.option.transactionManagerFactory() : undefined;\n res.on('close', async () => {\n if (this.option.closeEndPoints) {\n for (const it of this.option.closeEndPoints) {\n try {\n const execute = (typeof it === 'function' ? this.simstanceManager.getOrNewSim({target: it}) : it) as EndPoint;\n const endPoint = execute?.endPoint(rr, this);\n if (endPoint instanceof Promise) {\n await endPoint;\n }\n } catch (e) {\n }\n }\n }\n\n if (!rr.resIsDone()) {\n rr.resEnd();\n }\n });\n res.on('error', async () => {\n if (this.option.errorEndPoints) {\n for (const it of this.option.errorEndPoints) {\n try {\n const execute = (typeof it === 'function' ? this.simstanceManager.getOrNewSim({target: it}) : it) as EndPoint;\n const endPoint = execute?.endPoint(rr, this);\n if (endPoint instanceof Promise) {\n await endPoint;\n }\n } catch (e) {\n }\n }\n }\n\n if (!rr.resIsDone()) {\n rr.resEnd();\n }\n });\n\n const rr = new RequestResponse(req, res, {sessionManager: this.sessionManager, option: this.option});\n /*\n default setting first\n */\n rr.resSetHeader(HttpHeaders.Server, 'simple-boot-http-server');\n const cookie = rr.reqCookieGet(this.option.sessionOption.key);\n if (!cookie) {\n const session = await this.sessionManager.session();\n\n const cookieParts: string[] = [];\n cookieParts.push(`${this.option.sessionOption.key}=${session.uuid}`);\n cookieParts.push(`Path=${this.option.sessionOption.path}`);\n if (this.option.sessionOption.httpOnly) cookieParts.push('HttpOnly');\n if (this.option.sessionOption.secure) cookieParts.push('Secure');\n if (this.option.sessionOption.sameSite != null && this.option.sessionOption.sameSite) cookieParts.push(`SameSite=${this.option.sessionOption.sameSite}`);\n const maxAge = (this.option.sessionOption as any).maxAge ?? (this.sessionManager.sessionOption)?.maxAge;\n if (maxAge != null) cookieParts.push(`Max-Age=${maxAge}`);\n rr.resSetHeader(HttpHeaders.SetCookie, cookieParts.join('; '));\n }\n\n const otherStorage = new Map<ConstructorType<any>, any>();\n otherStorage.set(RequestResponse, rr);\n otherStorage.set(IncomingMessage, req);\n otherStorage.set(ServerResponse, res);\n try {\n transactionManager?.try();\n if (this.option.requestEndPoints) {\n for (const it of this.option.requestEndPoints) {\n try {\n const execute = (typeof it === 'function' ? this.simstanceManager.getOrNewSim<EndPoint>({target: it}) : it) as EndPoint;\n execute?.endPoint(rr, this);\n } catch (e) {\n }\n }\n }\n\n const filter = {\n carrier: new Map<string, any>(),\n filters: [] as { filter: Filter, sw: boolean }[]\n };\n for (let i = 0; this.option.filters && i < this.option.filters.length; i++) {\n const it = this.option.filters[i];\n const execute = (typeof it === 'function' ? this.simstanceManager.getOrNewSim({target: it}) : it) as Filter;\n let sw = true;\n if (execute?.proceedBefore) {\n sw = await execute.proceedBefore({rr, app: this, carrier: filter.carrier});\n filter.filters.push({filter: execute, sw});\n }\n if (!sw) {\n break;\n }\n }\n\n // body.. something..\n if (!rr.resIsDone()) {\n const routerModule = await super.routing(rr.reqIntent);\n otherStorage.set(RouterModule, routerModule);\n const moduleInstance = routerModule?.getModuleInstance?.();\n let methods: SaveMappingConfig[] = [];\n if (routerModule && moduleInstance) {\n // router \uD074\uB798\uC2A4 \uB0B4\uBD80\uC5D0\uC11C \uC120\uC5B8\uB41C Route\uC77C\uB54C\n if (routerModule.propertyKeys) {\n const map = routerModule.propertyKeys?.map((it: string | symbol) => {\n return {propertyKey: it, config: getUrlMapping(moduleInstance, it)} as SaveMappingConfig\n });\n methods.push(...(map ?? []));\n } else {\n methods.push(...(getUrlMappings(moduleInstance).filter(it => !getRoute(moduleInstance, it.propertyKey)) ?? []));\n }\n\n // options\uB85C \uC694\uCCAD\uC624\uBA74\uC740 allow\uB85C \uB123\uACE0 \uADF8\uB0E5 200\uCC98\uB9AC\uD574\uC57C\uB428.\n if (rr.reqMethod()?.toUpperCase() === HttpMethod.OPTIONS.toUpperCase()) {\n rr.resSetHeader(HttpHeaders.Allow, methods.map(it => it.config.method).join(', '));\n rr.resStatusCode(HttpStatus.Ok);\n }\n\n // method \uCC3E\uAE30\n methods = methods.filter(it => it && it.propertyKey && it.config && rr.reqMethod()?.toUpperCase() === it.config.method.toUpperCase());\n methods.sort((a, b) => {\n return ((b.config?.req?.contentType?.length ?? 0) + (b.config?.req?.accept?.length ?? 0)) - ((a.config?.req?.contentType?.length ?? 0) + (a.config?.req?.accept?.length ?? 0));\n });\n methods = methods\n .filter(it => it.config?.req?.contentType ? (!!it.config?.req?.contentType?.find(sit => rr.reqHasContentTypeHeader(sit))) : true)\n .filter(it => it.config?.req?.accept ? (!!it.config?.req?.accept?.find(sit => rr.reqHasAcceptHeader(sit))) : true);\n\n if (methods[0]) {\n const it = methods[0];\n const paramTypes = ReflectUtils.getParameterTypes(moduleInstance, it.propertyKey)\n const injects = getInject(moduleInstance, it.propertyKey);\n const validIndexs = getValidIndex(moduleInstance, it.propertyKey);\n if (injects) {\n const isPathData = injects.find(it => it.config?.situationType === UrlMappingSituationType.REQ_PATH_DATA);\n const isJson = injects.find(it => it.config?.situationType === UrlMappingSituationType.REQ_JSON_BODY);\n const isSearchParamsObj = injects.find(it => it.config?.situationType === UrlMappingSituationType.REQ_URL_SEARCH_PARAMS_OBJ);\n const isFormUrl = injects.find(it => it.config?.situationType === UrlMappingSituationType.REQ_FORM_URL_BODY);\n // \uC6B0\uC120 \uB2E4\uC2DC \uC81C\uAC70\uD55C\uB2E4.. \uD2B8\uB79C\uC81D\uC158 \uC5B4\uB5BB\uAC8C \uD560\uC9C0 \uB2E4\uC2DC \uC0DD\uAC01\n // const isTransactionManager = injects.find(it => it.config?.situationType === InjectSituationType.TransactionManager);\n const siturationContainers = new SituationTypeContainers();\n if (isPathData) {\n let data = await routerModule.pathData\n if (isPathData.type) {\n data = Object.assign(new isPathData.type(), data);\n }\n if (validIndexs.includes(isPathData.index)) {\n const inValid = execValidationInValid(data);\n if ((inValid?.length ?? 0) > 0) {\n throw new ValidException(inValid);\n }\n }\n siturationContainers.push(new SituationTypeContainer({\n situationType: UrlMappingSituationType.REQ_PATH_DATA,\n data\n }));\n }\n if (isJson) {\n let data = await rr.reqBodyJsonData();\n if (data !== null && isJson.type) {\n data = Object.assign(new isJson.type(), data);\n }\n if (validIndexs.includes(isJson.index)) {\n const inValid = execValidationInValid(data);\n if ((inValid?.length ?? 0) > 0) {\n throw new ValidException(inValid);\n }\n }\n siturationContainers.push(new SituationTypeContainer({\n situationType: UrlMappingSituationType.REQ_JSON_BODY,\n data\n }));\n }\n if (isSearchParamsObj) {\n let data = rr.reqUrlSearchParamsObj\n if (validIndexs.includes(isSearchParamsObj.index)) {\n const inValid = execValidationInValid(data);\n if ((inValid?.length ?? 0) > 0) {\n throw new ValidException(inValid);\n }\n }\n siturationContainers.push(new SituationTypeContainer({\n situationType: UrlMappingSituationType.REQ_URL_SEARCH_PARAMS_OBJ,\n data\n }));\n }\n if (isFormUrl) {\n let data = await rr.reqBodyFormUrlData()\n if (isFormUrl.type) {\n data = Object.assign(new isFormUrl.type(), data);\n }\n if (validIndexs.includes(isFormUrl.index)) {\n const inValid = execValidationInValid(data);\n if ((inValid?.length ?? 0) > 0) {\n throw new ValidException(inValid);\n }\n }\n siturationContainers.push(new SituationTypeContainer({situationType: UrlMappingSituationType.REQ_FORM_URL_BODY, data}));\n }\n // \uD2B8\uB79C\uC81D\uC158 \uC6B0\uC120 \uC81C\uAC70 \uB098\uC911\uC5D0 \uC5B4\uB5BB\uAC8C \uAD6C\uD604\uD560\uC9C0 \uC0DD\uAC01..\n // if (isTransactionManager && isTransactionManager.type && transactionManager && transactionManager.hasTransaction(isTransactionManager.type)) {\n // let data = await transactionManager.getTransaction(isTransactionManager.type);\n // if (data) {\n // data = await data.try(isTransactionManager.config.argument);\n // siturationContainers.push(new SituationTypeContainer({situationType: InjectSituationType.TransactionManager, data, index: isTransactionManager.index}));\n // }\n // }\n if (siturationContainers.length) {\n otherStorage.set(SituationTypeContainers, siturationContainers);\n }\n }\n\n for (const paramType of paramTypes) {\n if (paramType === ReqFormUrlBody) {\n otherStorage.set(ReqFormUrlBody, await rr.reqBodyReqFormUrlBody())\n } else if (paramType === ReqPathData) {\n otherStorage.set(ReqPathData, routerModule.pathData)\n } else if (paramType === ReqJsonBody) {\n otherStorage.set(ReqJsonBody, await rr.reqBodyReqJsonBody())\n } else if (paramType === ReqSearchParamsObj) {\n otherStorage.set(ReqSearchParamsObj, rr.reqUrlSearchParamsObj)\n } else if (paramType === URLSearchParams) {\n otherStorage.set(URLSearchParams, rr.reqUrlSearchParams)\n } else if (paramType === ReqMultipartFormBody) {\n otherStorage.set(ReqMultipartFormBody, rr.reqBodyMultipartFormData())\n } else if (paramType === ReqHeader) {\n otherStorage.set(ReqHeader, rr.reqHeaderObj)\n }\n }\n\n // execute !!!\n let data = await this.simstanceManager.executeBindParameterSimPromise({\n target: moduleInstance,\n targetKey: it.propertyKey\n }, otherStorage);\n /*\n \uC5EC\uAE30\uC5D0\uC11C \uC815\uD574\uC9C4 \uD0C0\uC785 \uB9AC\uD134\uC5D0 \uB530\uB978 \uC870\uCE58\n ...\n */\n if (it.config?.resolver) {\n const execute = typeof it.config.resolver === 'function' ? this.simstanceManager.getOrNewSim({target: it.config.resolver}) : it.config.resolver;\n data = await execute?.resolve?.(data, rr);\n }\n const status = it.config?.res?.status ?? HttpStatus.Ok;\n const headers = it.config?.res?.header ?? {};\n if (it.config?.res?.contentType) {\n headers[HttpHeaders.ContentType] = it.config?.res?.contentType;\n }\n if ((it.config?.res?.contentType?.toLowerCase().indexOf(Mimes.ApplicationJson.toLowerCase()) ?? -1) > -1) {\n data = JSON.stringify(data);\n } else if (data && typeof data === 'object') {\n data = JSON.stringify(data);\n }\n rr.resSetHeaders(headers)\n rr.resSetStatusCode(status);\n rr.resWrite(data);\n }\n }\n\n if (this.option.noSuchRouteEndPointMappingThrow && methods.length <= 0 && rr.reqMethod()?.toUpperCase() !== HttpMethod.OPTIONS) {\n throw this.option.noSuchRouteEndPointMappingThrow(rr);\n }\n }\n\n // after\n for (const it of filter.filters.reverse()) {\n if (it.filter?.proceedAfter && !await it.filter.proceedAfter({rr, app: this, before: it.sw, carrier: filter.carrier})) {\n break;\n }\n }\n } catch (e) {\n console.error('request error:', e);\n transactionManager?.catch(e);\n rr.resStatusCode(e instanceof HttpError ? e.status : HttpStatus.InternalServerError)\n const execute = typeof this.option.globalAdvice === 'function' ? this.simstanceManager.getOrNewSim(this.option.globalAdvice) : this.option.globalAdvice;\n if (!execute) {\n rr.resEnd();\n // rr.resEnd().catch(e => {\n // });\n return;\n }\n if (e && typeof e === 'object') {\n otherStorage.set(e.constructor as ConstructorType<any>, e);\n otherStorage.set(SituationTypeContainer, new SituationTypeContainer({\n situationType: ExceptionHandlerSituationType.ERROR_OBJECT,\n data: e\n }));\n }\n const target = targetExceptionHandler(execute, e);\n if (target) {\n await this.simstanceManager.executeBindParameterSimPromise({\n target: execute,\n targetKey: target.propertyKey\n }, otherStorage);\n }\n } finally {\n transactionManager?.finally();\n }\n\n if (!rr.resIsDone()) {\n rr.resEnd();\n }\n });\n\n if (this.option.webSocketEndPoints) {\n const webSocketServer = new WebSocketServer({server: this.server});\n const execute = this.option.webSocketEndPoints.map(it => typeof it === 'function' ? this.simstanceManager.getOrNewSim({target: it}) : it);\n webSocketServer.on('connection', async (ws, request) => {\n this.webSocketClients.set(ws, {request});\n const wsSet = {socket: ws, request};\n execute.forEach(it => it.connect?.(wsSet));\n ws.on('error', err => execute.forEach(it => it.error?.(wsSet, err)));\n ws.on('message', (data, isBinary) => execute.forEach(it => it.message(wsSet, {data, isBinary})));\n ws.on('ping', () => execute.forEach(it => it.ping?.(wsSet)));\n ws.on('close', () => {\n this.webSocketClients.delete(ws);\n execute.forEach(it => it.close?.(wsSet));\n });\n });\n }\n this.server.listen(this.option.listen.port, this.option.listen.hostname, this.option.listen.backlog, () => {\n this.option.listen.listeningListener?.(this, this.server);\n });\n }\n}\n"],
4
+ "sourcesContent": ["import {SimpleApplication} from '@dooboostore/simple-boot';\nimport {HttpServerOption} from './option/HttpServerOption';\nimport {ConstructorType} from '@dooboostore/core';\nimport {IncomingMessage, Server as HttpServer, ServerResponse} from 'http'\nimport {Server as HttpsServer} from 'https'; // Add HTTPS support\nimport {WebSocketServer, WebSocket} from 'ws';\nimport {RequestResponse} from './models/RequestResponse';\nimport {getUrlMapping, getUrlMappings, SaveMappingConfig, UrlMappingSituationType} from './decorators/MethodMapping';\nimport {HttpStatus} from './codes/HttpStatus';\nimport {HttpHeaders} from './codes/HttpHeaders';\nimport {Mimes} from './codes/Mimes';\nimport {Filter} from './filters/Filter';\nimport {ExceptionHandlerSituationType, targetExceptionHandler} from '@dooboostore/simple-boot';\nimport {getInject, SituationTypeContainer, SituationTypeContainers} from '@dooboostore/simple-boot';\nimport {EndPoint} from './endpoints/EndPoint';\nimport {ReflectUtils} from '@dooboostore/core';\nimport {ReqFormUrlBody} from './models/datas/body/ReqFormUrlBody';\nimport {ReqJsonBody} from './models/datas/body/ReqJsonBody';\nimport {ReqHeader} from './models/datas/ReqHeader';\nimport {RouterModule} from '@dooboostore/simple-boot';\nimport {ReqMultipartFormBody} from './models/datas/body/ReqMultipartFormBody';\nimport {execValidationInValid, getValidIndex} from '@dooboostore/simple-boot';\nimport {ValidException} from '@dooboostore/simple-boot';\nimport {HttpError} from './errors/HttpError';\nimport {getRoute} from '@dooboostore/simple-boot';\nimport {OnInit} from './lifecycle/OnInit';\nimport {URLSearchParams} from 'url';\nimport {HttpMethod} from './codes/HttpMethod';\nimport {SessionManager} from './session/SessionManager';\nimport {InjectSituationType} from './inject/InjectSituationType';\nimport {ReqSearchParamsObj} from \"./models/datas/path/ReqSearchParamsObj\";\nimport {SimConfig} from '@dooboostore/simple-boot';\nimport {ReqPathData} from './models/datas/path/ReqPathData';\nimport {WebSocketEndPoint} from './endpoints/WebSocketEndPoint';\n\nexport class SimpleBootHttpServer extends SimpleApplication {\n public server?: HttpServer | HttpsServer;\n private sessionManager: SessionManager;\n private webSocketClients = new Map<WebSocket, { request: IncomingMessage }>();\n\n constructor(public option: HttpServerOption = new HttpServerOption()) {\n super(option);\n this.sessionManager = new SessionManager(this.option);\n }\n\n\n public run(otherInstanceSim?: Map<ConstructorType<any> | Function | SimConfig | symbol, any>) {\n otherInstanceSim ??= new Map<ConstructorType<any> | Function | SimConfig | symbol, any>();\n otherInstanceSim.set(SimpleBootHttpServer, this);\n super.run(otherInstanceSim);\n const targets = [...this.option.closeEndPoints ?? [], ...this.option.errorEndPoints ?? [], ...this.option.requestEndPoints ?? [], ...this.option.filters ?? []];\n Promise.all(targets.map(it => (typeof it === 'function' ? this.simstanceManager.getOrNewSim({target: it as ConstructorType<any>}) : it) as OnInit).map(it => it.onInit(this))).then(it => {\n this.startServer();\n });\n return this;\n }\n\n private startServer() {\n\n // const a = this.option.serverOption as HttpsServerOption;\n // this.option.serverOption?.\n\n if (this.option.serverOption && 'key' in this.option.serverOption && 'cert' in this.option.serverOption) {\n this.server = new HttpsServer(this.option.serverOption);\n const httpServer = new HttpServer();\n httpServer.on('request', (req: IncomingMessage, res: ServerResponse) => {\n res.writeHead(301, {Location: `https://${req.headers.host}${req.url}`});\n res.end();\n });\n httpServer.listen(80, this.option.listen.hostname, () => {\n console.log('HTTP redirect server running on port 80');\n });\n } else if (this.option.serverOption) {\n this.server = new HttpServer(this.option.serverOption);\n } else {\n this.server = new HttpServer();\n }\n // const thisRef = this;\n this.server.on('request', async (req: IncomingMessage, res: ServerResponse) => {\n // console.log('request', req.url);\n const transactionManager = this.option.transactionManagerFactory ? await this.option.transactionManagerFactory() : undefined;\n res.on('close', async () => {\n if (this.option.closeEndPoints) {\n for (const it of this.option.closeEndPoints) {\n try {\n const execute = (typeof it === 'function' ? this.simstanceManager.getOrNewSim({target: it}) : it) as EndPoint;\n const endPoint = execute?.endPoint(rr, this);\n if (endPoint instanceof Promise) {\n await endPoint;\n }\n } catch (e) {\n }\n }\n }\n\n if (!rr.resIsDone()) {\n rr.resEnd();\n }\n });\n res.on('error', async () => {\n if (this.option.errorEndPoints) {\n for (const it of this.option.errorEndPoints) {\n try {\n const execute = (typeof it === 'function' ? this.simstanceManager.getOrNewSim({target: it}) : it) as EndPoint;\n const endPoint = execute?.endPoint(rr, this);\n if (endPoint instanceof Promise) {\n await endPoint;\n }\n } catch (e) {\n }\n }\n }\n\n if (!rr.resIsDone()) {\n rr.resEnd();\n }\n });\n\n const rr = new RequestResponse(req, res, {sessionManager: this.sessionManager, option: this.option});\n /*\n default setting first\n */\n rr.resSetHeader(HttpHeaders.Server, 'simple-boot-http-server');\n const cookie = rr.reqCookieGet(this.option.sessionOption.key);\n if (!cookie) {\n const session = await this.sessionManager.session();\n\n const cookieParts: string[] = [];\n cookieParts.push(`${this.option.sessionOption.key}=${session.uuid}`);\n cookieParts.push(`Path=${this.option.sessionOption.path}`);\n if (this.option.sessionOption.httpOnly) cookieParts.push('HttpOnly');\n if (this.option.sessionOption.secure) cookieParts.push('Secure');\n if (this.option.sessionOption.sameSite != null && this.option.sessionOption.sameSite) cookieParts.push(`SameSite=${this.option.sessionOption.sameSite}`);\n const maxAge = (this.option.sessionOption as any).maxAge ?? (this.sessionManager.sessionOption)?.maxAge;\n if (maxAge != null) cookieParts.push(`Max-Age=${maxAge}`);\n rr.resSetHeader(HttpHeaders.SetCookie, cookieParts.join('; '));\n }\n\n const otherStorage = new Map<ConstructorType<any>, any>();\n otherStorage.set(RequestResponse, rr);\n otherStorage.set(IncomingMessage, req);\n otherStorage.set(ServerResponse, res);\n try {\n transactionManager?.try();\n if (this.option.requestEndPoints) {\n for (const it of this.option.requestEndPoints) {\n try {\n const execute = (typeof it === 'function' ? this.simstanceManager.getOrNewSim<EndPoint>({target: it}) : it) as EndPoint;\n execute?.endPoint(rr, this);\n } catch (e) {\n }\n }\n }\n\n const filter = {\n carrier: new Map<string, any>(),\n filters: [] as { filter: Filter, sw: boolean }[]\n };\n for (let i = 0; this.option.filters && i < this.option.filters.length; i++) {\n const it = this.option.filters[i];\n const execute = (typeof it === 'function' ? this.simstanceManager.getOrNewSim({target: it}) : it) as Filter;\n let sw = true;\n if (execute?.proceedBefore) {\n sw = await execute.proceedBefore({rr, app: this, carrier: filter.carrier});\n filter.filters.push({filter: execute, sw});\n }\n if (!sw) {\n break;\n }\n }\n\n // body.. something..\n if (!rr.resIsDone()) {\n const routerModule = await super.routing(rr.reqIntent);\n otherStorage.set(RouterModule, routerModule);\n const moduleInstance = routerModule?.getModuleInstance?.();\n let methods: SaveMappingConfig[] = [];\n if (routerModule && moduleInstance) {\n // router \uD074\uB798\uC2A4 \uB0B4\uBD80\uC5D0\uC11C \uC120\uC5B8\uB41C Route\uC77C\uB54C\n if (routerModule.propertyKeys) {\n const map = routerModule.propertyKeys?.map((it: string | symbol) => {\n return {propertyKey: it, config: getUrlMapping(moduleInstance, it)} as SaveMappingConfig\n });\n methods.push(...(map ?? []));\n } else {\n methods.push(...(getUrlMappings(moduleInstance).filter(it => !getRoute(moduleInstance, it.propertyKey)) ?? []));\n }\n\n // options\uB85C \uC694\uCCAD\uC624\uBA74\uC740 allow\uB85C \uB123\uACE0 \uADF8\uB0E5 200\uCC98\uB9AC\uD574\uC57C\uB428.\n if (rr.reqMethod()?.toUpperCase() === HttpMethod.OPTIONS.toUpperCase()) {\n rr.resSetHeader(HttpHeaders.Allow, methods.map(it => it.config.method).join(', '));\n rr.resStatusCode(HttpStatus.Ok);\n }\n\n // method \uCC3E\uAE30\n methods = methods.filter(it => it && it.propertyKey && it.config && rr.reqMethod()?.toUpperCase() === it.config.method.toUpperCase());\n methods.sort((a, b) => {\n return ((b.config?.req?.contentType?.length ?? 0) + (b.config?.req?.accept?.length ?? 0)) - ((a.config?.req?.contentType?.length ?? 0) + (a.config?.req?.accept?.length ?? 0));\n });\n methods = methods\n .filter(it => it.config?.req?.contentType ? (!!it.config?.req?.contentType?.find(sit => rr.reqHasContentTypeHeader(sit))) : true)\n .filter(it => it.config?.req?.accept ? (!!it.config?.req?.accept?.find(sit => rr.reqHasAcceptHeader(sit))) : true);\n\n if (methods[0]) {\n const it = methods[0];\n const paramTypes = ReflectUtils.getParameterTypes(moduleInstance, it.propertyKey)\n const injects = getInject(moduleInstance, it.propertyKey);\n const validIndexs = getValidIndex(moduleInstance, it.propertyKey);\n if (injects) {\n const isPathData = injects.find(it => it.config?.situationType === UrlMappingSituationType.REQ_PATH_DATA);\n const isJson = injects.find(it => it.config?.situationType === UrlMappingSituationType.REQ_JSON_BODY);\n const isSearchParamsObj = injects.find(it => it.config?.situationType === UrlMappingSituationType.REQ_URL_SEARCH_PARAMS_OBJ);\n const isFormUrl = injects.find(it => it.config?.situationType === UrlMappingSituationType.REQ_FORM_URL_BODY);\n // \uC6B0\uC120 \uB2E4\uC2DC \uC81C\uAC70\uD55C\uB2E4.. \uD2B8\uB79C\uC81D\uC158 \uC5B4\uB5BB\uAC8C \uD560\uC9C0 \uB2E4\uC2DC \uC0DD\uAC01\n // const isTransactionManager = injects.find(it => it.config?.situationType === InjectSituationType.TransactionManager);\n const siturationContainers = new SituationTypeContainers();\n if (isPathData) {\n let data = await routerModule.pathData\n if (isPathData.type) {\n data = Object.assign(new isPathData.type(), data);\n }\n if (validIndexs.includes(isPathData.index)) {\n const inValid = execValidationInValid(data);\n if ((inValid?.length ?? 0) > 0) {\n throw new ValidException(inValid);\n }\n }\n siturationContainers.push(new SituationTypeContainer({\n situationType: UrlMappingSituationType.REQ_PATH_DATA,\n data\n }));\n }\n if (isJson) {\n let data = await rr.reqBodyJsonData();\n if (data !== null && isJson.type) {\n data = Object.assign(new isJson.type(), data);\n }\n if (validIndexs.includes(isJson.index)) {\n const inValid = execValidationInValid(data);\n if ((inValid?.length ?? 0) > 0) {\n throw new ValidException(inValid);\n }\n }\n siturationContainers.push(new SituationTypeContainer({\n situationType: UrlMappingSituationType.REQ_JSON_BODY,\n data\n }));\n }\n if (isSearchParamsObj) {\n let data = rr.reqUrlSearchParamsObj\n if (validIndexs.includes(isSearchParamsObj.index)) {\n const inValid = execValidationInValid(data);\n if ((inValid?.length ?? 0) > 0) {\n throw new ValidException(inValid);\n }\n }\n siturationContainers.push(new SituationTypeContainer({\n situationType: UrlMappingSituationType.REQ_URL_SEARCH_PARAMS_OBJ,\n data\n }));\n }\n if (isFormUrl) {\n let data = await rr.reqBodyFormUrlData()\n if (isFormUrl.type) {\n data = Object.assign(new isFormUrl.type(), data);\n }\n if (validIndexs.includes(isFormUrl.index)) {\n const inValid = execValidationInValid(data);\n if ((inValid?.length ?? 0) > 0) {\n throw new ValidException(inValid);\n }\n }\n siturationContainers.push(new SituationTypeContainer({situationType: UrlMappingSituationType.REQ_FORM_URL_BODY, data}));\n }\n // \uD2B8\uB79C\uC81D\uC158 \uC6B0\uC120 \uC81C\uAC70 \uB098\uC911\uC5D0 \uC5B4\uB5BB\uAC8C \uAD6C\uD604\uD560\uC9C0 \uC0DD\uAC01..\n // if (isTransactionManager && isTransactionManager.type && transactionManager && transactionManager.hasTransaction(isTransactionManager.type)) {\n // let data = await transactionManager.getTransaction(isTransactionManager.type);\n // if (data) {\n // data = await data.try(isTransactionManager.config.argument);\n // siturationContainers.push(new SituationTypeContainer({situationType: InjectSituationType.TransactionManager, data, index: isTransactionManager.index}));\n // }\n // }\n if (siturationContainers.length) {\n otherStorage.set(SituationTypeContainers, siturationContainers);\n }\n }\n\n for (const paramType of paramTypes) {\n if (paramType === ReqFormUrlBody) {\n otherStorage.set(ReqFormUrlBody, await rr.reqBodyReqFormUrlBody())\n } else if (paramType === ReqPathData) {\n otherStorage.set(ReqPathData, routerModule.pathData)\n } else if (paramType === ReqJsonBody) {\n otherStorage.set(ReqJsonBody, await rr.reqBodyReqJsonBody())\n } else if (paramType === ReqSearchParamsObj) {\n otherStorage.set(ReqSearchParamsObj, rr.reqUrlSearchParamsObj)\n } else if (paramType === URLSearchParams) {\n otherStorage.set(URLSearchParams, rr.reqUrlSearchParams)\n } else if (paramType === ReqMultipartFormBody) {\n otherStorage.set(ReqMultipartFormBody, rr.reqBodyMultipartFormData())\n } else if (paramType === ReqHeader) {\n otherStorage.set(ReqHeader, rr.reqHeaderObj)\n }\n }\n\n // execute !!!\n let data = await this.simstanceManager.executeBindParameterSimPromise({\n target: moduleInstance,\n targetKey: it.propertyKey\n }, otherStorage);\n /*\n \uC5EC\uAE30\uC5D0\uC11C \uC815\uD574\uC9C4 \uD0C0\uC785 \uB9AC\uD134\uC5D0 \uB530\uB978 \uC870\uCE58\n ...\n */\n if (it.config?.resolver) {\n const execute = typeof it.config.resolver === 'function' ? this.simstanceManager.getOrNewSim({target: it.config.resolver}) : it.config.resolver;\n data = await execute?.resolve?.(data, rr);\n }\n const status = it.config?.res?.status ?? HttpStatus.Ok;\n const headers = it.config?.res?.header ?? {};\n if (it.config?.res?.contentType) {\n headers[HttpHeaders.ContentType] = it.config?.res?.contentType;\n }\n if ((it.config?.res?.contentType?.toLowerCase().indexOf(Mimes.ApplicationJson.toLowerCase()) ?? -1) > -1) {\n data = JSON.stringify(data);\n } else if (data && typeof data === 'object') {\n data = JSON.stringify(data);\n }\n rr.resSetHeaders(headers)\n rr.resSetStatusCode(status);\n rr.resWrite(data);\n }\n }\n\n if (this.option.noSuchRouteEndPointMappingThrow && methods.length <= 0 && rr.reqMethod()?.toUpperCase() !== HttpMethod.OPTIONS) {\n throw this.option.noSuchRouteEndPointMappingThrow(rr);\n }\n }\n\n // after\n for (const it of filter.filters.reverse()) {\n if (it.filter?.proceedAfter && !await it.filter.proceedAfter({rr, app: this, before: it.sw, carrier: filter.carrier})) {\n break;\n }\n }\n } catch (e) {\n console.error('request error:', e);\n transactionManager?.catch(e);\n rr.resStatusCode(e instanceof HttpError ? e.status : HttpStatus.InternalServerError)\n const execute = typeof this.option.globalAdvice === 'function' ? this.simstanceManager.getOrNewSim(this.option.globalAdvice) : this.option.globalAdvice;\n if (!execute) {\n rr.resEnd();\n // rr.resEnd().catch(e => {\n // });\n return;\n }\n if (e && typeof e === 'object') {\n otherStorage.set(e.constructor as ConstructorType<any>, e);\n otherStorage.set(SituationTypeContainer, new SituationTypeContainer({\n situationType: ExceptionHandlerSituationType.ERROR_OBJECT,\n data: e\n }));\n }\n const target = targetExceptionHandler(execute, e);\n if (target) {\n await this.simstanceManager.executeBindParameterSimPromise({\n target: execute,\n targetKey: target.propertyKey\n }, otherStorage);\n }\n } finally {\n transactionManager?.finally();\n }\n\n if (!rr.resIsDone()) {\n rr.resEnd();\n }\n });\n\n if (this.option.webSocketEndPoints) {\n const webSocketServer = new WebSocketServer({server: this.server});\n const execute = this.option.webSocketEndPoints.map(it => typeof it === 'function' ? this.simstanceManager.getOrNewSim({target: it}) : it);\n webSocketServer.on('connection', async (ws, request) => {\n this.webSocketClients.set(ws, {request});\n const wsSet = {socket: ws, request};\n execute.forEach(it => it.connect?.(wsSet));\n ws.on('error', err => execute.forEach(it => it.error?.(wsSet, err)));\n ws.on('message', (data, isBinary) => execute.forEach(it => it.message(wsSet, {data, isBinary})));\n ws.on('ping', () => execute.forEach(it => it.ping?.(wsSet)));\n ws.on('close', () => {\n this.webSocketClients.delete(ws);\n execute.forEach(it => it.close?.(wsSet));\n });\n });\n }\n this.server.listen(this.option.listen.port, this.option.listen.hostname, this.option.listen.backlog, () => {\n this.option.listen.listeningListener?.(this, this.server);\n });\n }\n}\n"],
5
5
  "mappings": "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",
6
6
  "names": ["it", "data"]
7
7
  }
@@ -7,7 +7,7 @@ var UrlMappingSituationType = /* @__PURE__ */ ((UrlMappingSituationType2) => {
7
7
  UrlMappingSituationType2["REQ_FORM_URL_BODY"] = "SIMPLE_BOOT_HTTP_SERVER://URLMAPPING/REQ_FORM_URL_BODY";
8
8
  return UrlMappingSituationType2;
9
9
  })(UrlMappingSituationType || {});
10
- const MappingMetadataKey = Symbol("MappingMetadataKey");
10
+ const MappingMetadataKey = Symbol.for("simple-boot-http-server:mapping-metadata");
11
11
  const process = (config, target, propertyKey, descriptor) => {
12
12
  const saveMappingConfigs = ReflectUtils.getMetadata(MappingMetadataKey, target.constructor) ?? [];
13
13
  saveMappingConfigs.push({ propertyKey, config });
@@ -176,6 +176,16 @@ const getCONNECT = (target, propertyKey) => {
176
176
  const getCONNECTS = (target) => {
177
177
  return getUrlMappings(target)?.filter((it) => it.config?.method.toUpperCase() === HttpMethod.CONNECT);
178
178
  };
179
+ const urlMapping = UrlMapping;
180
+ const getMethod = GET;
181
+ const postMethod = POST;
182
+ const patchMethod = PATCH;
183
+ const putMethod = PUT;
184
+ const deleteMethod = DELETE;
185
+ const optionsMethod = OPTIONS;
186
+ const headMethod = HEAD;
187
+ const traceMethod = TRACE;
188
+ const connectMethod = CONNECT;
179
189
  export {
180
190
  CONNECT,
181
191
  DELETE,
@@ -188,6 +198,8 @@ export {
188
198
  TRACE,
189
199
  UrlMapping,
190
200
  UrlMappingSituationType,
201
+ connectMethod,
202
+ deleteMethod,
191
203
  getCONNECT,
192
204
  getCONNECTS,
193
205
  getDELETE,
@@ -196,6 +208,7 @@ export {
196
208
  getGETS,
197
209
  getHEAD,
198
210
  getHEADS,
211
+ getMethod,
199
212
  getOPTIONS,
200
213
  getOPTIONSS,
201
214
  getPATCH,
@@ -207,6 +220,13 @@ export {
207
220
  getTRACE,
208
221
  getTRACES,
209
222
  getUrlMapping,
210
- getUrlMappings
223
+ getUrlMappings,
224
+ headMethod,
225
+ optionsMethod,
226
+ patchMethod,
227
+ postMethod,
228
+ putMethod,
229
+ traceMethod,
230
+ urlMapping
211
231
  };
212
232
  //# sourceMappingURL=MethodMapping.js.map
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../src/decorators/MethodMapping.ts"],
4
- "sourcesContent": ["import { ConstructorType } from '@dooboostore/core';\nimport { ReflectMethod } from '@dooboostore/simple-boot';\nimport { ReflectUtils } from '@dooboostore/core';\nimport { Resolver } from '../resolvers/Resolver';\nimport { Mimes } from '../codes/Mimes';\nimport { HttpMethod } from '../codes/HttpMethod';\n\nexport enum UrlMappingSituationType {\n REQ_JSON_BODY = 'SIMPLE_BOOT_HTTP_SERVER://URLMAPPING/REQ_JSON_BODY',\n REQ_PATH_DATA = 'SIMPLE_BOOT_HTTP_SERVER://URLMAPPING/REQ_PATH_DATA',\n // REQ_URL_SEARCH_PARAMS = 'SIMPLE_BOOT_HTTP_SERVER://URLMAPPING/REQ_URL_SEARCH_PARAMS',\n REQ_URL_SEARCH_PARAMS_OBJ = 'SIMPLE_BOOT_HTTP_SERVER://URLMAPPING/REQ_URL_SEARCH_PARAMS_OBJ',\n REQ_FORM_URL_BODY = 'SIMPLE_BOOT_HTTP_SERVER://URLMAPPING/REQ_FORM_URL_BODY'\n}\nexport type MappingConfig = {\n method: HttpMethod | string,\n description?: {\n name?: string;\n detail?: string;\n };\n\n req?: {\n contentType?: (Mimes|string)[];\n accept?: (Mimes|string)[];\n };\n\n res?: {\n status?: number;\n header?: {[key: string]: string};\n contentType?: Mimes | string;\n }\n resolver?: Resolver|ConstructorType<Resolver>;\n}\nexport type SaveMappingConfig = {propertyKey: string | symbol; config: MappingConfig}\nconst MappingMetadataKey = Symbol('MappingMetadataKey');\n// const GETSMappingMetadataKey = Symbol('GET_METHODS');\n// const GETMappingMetadataKey = Symbol('GET_METHOD');\n\nconst process = (config: MappingConfig, target: any, propertyKey: string | symbol, descriptor: PropertyDescriptor) => {\n const saveMappingConfigs = (ReflectUtils.getMetadata(MappingMetadataKey, target.constructor) ?? []) as SaveMappingConfig[];\n saveMappingConfigs.push({propertyKey, config});\n ReflectUtils.defineMetadata(MappingMetadataKey, saveMappingConfigs, target.constructor);\n ReflectUtils.defineMetadata(MappingMetadataKey, config, target, propertyKey);\n}\nexport function UrlMapping(config: MappingConfig): ReflectMethod;\nexport function UrlMapping(target: any, propertyKey: string | symbol, descriptor: PropertyDescriptor): void;\nexport function UrlMapping(configOrtarget?: MappingConfig | any, propertyKey?: string | symbol, descriptor?: PropertyDescriptor): ReflectMethod | void {\n if (propertyKey && descriptor) {\n process({method: HttpMethod.GET}, configOrtarget, propertyKey, descriptor);\n } else {\n return (target: any, propertyKey: string | symbol, descriptor: PropertyDescriptor) => {\n process(configOrtarget, target, propertyKey, descriptor);\n }\n }\n}\nexport const getUrlMapping = (target: any, propertyKey: string | symbol): MappingConfig | undefined => {\n return ReflectUtils.getMetadata(MappingMetadataKey, target, propertyKey);\n}\n\nexport const getUrlMappings = (target: any): SaveMappingConfig[] => {\n if (target !== null && undefined !== target && typeof target === 'object') {\n target = target.constructor;\n }\n return ReflectUtils.getMetadata(MappingMetadataKey, target);\n}\nexport function GET(config: Omit<MappingConfig, 'method'>): ReflectMethod;\nexport function GET(target: any, propertyKey: string | symbol, descriptor: PropertyDescriptor): void;\nexport function GET(configOrTarget?: Omit<MappingConfig, 'method'> | any, propertyKey?: string | symbol, descriptor?: PropertyDescriptor): ReflectMethod | void {\n if (propertyKey && descriptor) {\n process({method: HttpMethod.GET}, configOrTarget, propertyKey, descriptor);\n } else {\n return (target: any, propertyKey: string | symbol, descriptor: PropertyDescriptor) => {\n configOrTarget.method = HttpMethod.GET;\n process(configOrTarget, target, propertyKey, descriptor);\n }\n }\n}\n\nexport const getGET = (target: any, propertyKey: string | symbol): MappingConfig | undefined => {\n return getUrlMapping(target, propertyKey);\n}\nexport const getGETS = (target: any): SaveMappingConfig[] => {\n return getUrlMappings(target)?.filter(it => it.config?.method.toUpperCase() === HttpMethod.GET);\n}\nexport function POST(config: Omit<MappingConfig, 'method'>): ReflectMethod;\nexport function POST(target: any, propertyKey: string | symbol, descriptor: PropertyDescriptor): void;\nexport function POST(configOrTarget?: Omit<MappingConfig, 'method'> | any, propertyKey?: string | symbol, descriptor?: PropertyDescriptor): ReflectMethod | void {\n if (propertyKey && descriptor) {\n process({method: HttpMethod.POST}, configOrTarget, propertyKey, descriptor);\n } else {\n return (target: any, propertyKey: string | symbol, descriptor: PropertyDescriptor) => {\n configOrTarget.method = HttpMethod.POST;\n process(configOrTarget, target, propertyKey, descriptor);\n }\n }\n}\n\nexport const getPOST = (target: any, propertyKey: string | symbol): MappingConfig | undefined => {\n return getUrlMapping(target, propertyKey);\n}\nexport const getPOSTS = (target: any): SaveMappingConfig[] => {\n return getUrlMappings(target)?.filter(it => it.config?.method.toUpperCase() === HttpMethod.POST);\n}\nexport function DELETE(config: Omit<MappingConfig, 'method'>): ReflectMethod;\nexport function DELETE(target: any, propertyKey: string | symbol, descriptor: PropertyDescriptor): void;\nexport function DELETE(configOrTarget?: Omit<MappingConfig, 'method'> | any, propertyKey?: string | symbol, descriptor?: PropertyDescriptor): ReflectMethod | void {\n if (propertyKey && descriptor) {\n process({method: HttpMethod.DELETE}, configOrTarget, propertyKey, descriptor);\n } else {\n return (target: any, propertyKey: string | symbol, descriptor: PropertyDescriptor) => {\n configOrTarget.method = HttpMethod.DELETE;\n process(configOrTarget, target, propertyKey, descriptor);\n }\n }\n}\n\nexport const getDELETE = (target: any, propertyKey: string | symbol): MappingConfig | undefined => {\n return getUrlMapping(target, propertyKey);\n}\nexport const getDELETES = (target: any): SaveMappingConfig[] => {\n return getUrlMappings(target)?.filter(it => it.config?.method.toUpperCase() === HttpMethod.DELETE);\n}\nexport function PUT(config: Omit<MappingConfig, 'method'>): ReflectMethod;\nexport function PUT(target: any, propertyKey: string | symbol, descriptor: PropertyDescriptor): void;\nexport function PUT(configOrTarget?: Omit<MappingConfig, 'method'> | any, propertyKey?: string | symbol, descriptor?: PropertyDescriptor): ReflectMethod | void {\n if (propertyKey && descriptor) {\n process({method: HttpMethod.PUT}, configOrTarget, propertyKey, descriptor);\n } else {\n return (target: any, propertyKey: string | symbol, descriptor: PropertyDescriptor) => {\n configOrTarget.method = HttpMethod.PUT;\n process(configOrTarget, target, propertyKey, descriptor);\n }\n }\n}\n\nexport const getPUT = (target: any, propertyKey: string | symbol): MappingConfig | undefined => {\n return getUrlMapping(target, propertyKey);\n}\nexport const getPUTS = (target: any): SaveMappingConfig[] => {\n return getUrlMappings(target)?.filter(it => it.config?.method.toUpperCase() === HttpMethod.PUT);\n}\nexport function PATCH(config: Omit<MappingConfig, 'method'>): ReflectMethod;\nexport function PATCH(target: any, propertyKey: string | symbol, descriptor: PropertyDescriptor): void;\nexport function PATCH(configOrTarget?: Omit<MappingConfig, 'method'> | any, propertyKey?: string | symbol, descriptor?: PropertyDescriptor): ReflectMethod | void {\n if (propertyKey && descriptor) {\n process({method: HttpMethod.PATCH}, configOrTarget, propertyKey, descriptor);\n } else {\n return (target: any, propertyKey: string | symbol, descriptor: PropertyDescriptor) => {\n configOrTarget.method = HttpMethod.PATCH;\n process(configOrTarget, target, propertyKey, descriptor);\n }\n }\n}\n\nexport const getPATCH = (target: any, propertyKey: string | symbol): MappingConfig | undefined => {\n return getUrlMapping(target, propertyKey);\n}\nexport const getPATCHS = (target: any): SaveMappingConfig[] => {\n return getUrlMappings(target)?.filter(it => it.config?.method.toUpperCase() === HttpMethod.GET);\n}\nexport function OPTIONS(config: Omit<MappingConfig, 'method'>): ReflectMethod;\nexport function OPTIONS(target: any, propertyKey: string | symbol, descriptor: PropertyDescriptor): void;\nexport function OPTIONS(configOrTarget?: Omit<MappingConfig, 'method'> | any, propertyKey?: string | symbol, descriptor?: PropertyDescriptor): ReflectMethod | void {\n if (propertyKey && descriptor) {\n process({method: HttpMethod.OPTIONS}, configOrTarget, propertyKey, descriptor);\n } else {\n return (target: any, propertyKey: string | symbol, descriptor: PropertyDescriptor) => {\n configOrTarget.method = HttpMethod.OPTIONS;\n process(configOrTarget, target, propertyKey, descriptor);\n }\n }\n}\n\nexport const getOPTIONS = (target: any, propertyKey: string | symbol): MappingConfig | undefined => {\n return getUrlMapping(target, propertyKey);\n}\nexport const getOPTIONSS = (target: any): SaveMappingConfig[] => {\n return getUrlMappings(target)?.filter(it => it.config?.method.toUpperCase() === HttpMethod.OPTIONS);\n}\nexport function HEAD(config: Omit<MappingConfig, 'method'>): ReflectMethod;\nexport function HEAD(target: any, propertyKey: string | symbol, descriptor: PropertyDescriptor): void;\nexport function HEAD(configOrTarget?: Omit<MappingConfig, 'method'> | any, propertyKey?: string | symbol, descriptor?: PropertyDescriptor): ReflectMethod | void {\n if (propertyKey && descriptor) {\n process({method: HttpMethod.HEAD}, configOrTarget, propertyKey, descriptor);\n } else {\n return (target: any, propertyKey: string | symbol, descriptor: PropertyDescriptor) => {\n configOrTarget.method = HttpMethod.HEAD;\n process(configOrTarget, target, propertyKey, descriptor);\n }\n }\n}\n\nexport const getHEAD = (target: any, propertyKey: string | symbol): MappingConfig | undefined => {\n return getUrlMapping(target, propertyKey);\n}\nexport const getHEADS = (target: any): SaveMappingConfig[] => {\n return getUrlMappings(target)?.filter(it => it.config?.method.toUpperCase() === HttpMethod.GET);\n}\nexport function TRACE(config: Omit<MappingConfig, 'method'>): ReflectMethod;\nexport function TRACE(target: any, propertyKey: string | symbol, descriptor: PropertyDescriptor): void;\nexport function TRACE(configOrTarget?: Omit<MappingConfig, 'method'> | any, propertyKey?: string | symbol, descriptor?: PropertyDescriptor): ReflectMethod | void {\n if (propertyKey && descriptor) {\n process({method: HttpMethod.TRACE}, configOrTarget, propertyKey, descriptor);\n } else {\n return (target: any, propertyKey: string | symbol, descriptor: PropertyDescriptor) => {\n configOrTarget.method = HttpMethod.TRACE;\n process(configOrTarget, target, propertyKey, descriptor);\n }\n }\n}\n\nexport const getTRACE = (target: any, propertyKey: string | symbol): MappingConfig | undefined => {\n return getUrlMapping(target, propertyKey);\n}\nexport const getTRACES = (target: any): SaveMappingConfig[] => {\n return getUrlMappings(target)?.filter(it => it.config?.method.toUpperCase() === HttpMethod.TRACE);\n}\nexport function CONNECT(config: Omit<MappingConfig, 'method'>): ReflectMethod;\nexport function CONNECT(target: any, propertyKey: string | symbol, descriptor: PropertyDescriptor): void;\nexport function CONNECT(configOrTarget?: Omit<MappingConfig, 'method'> | any, propertyKey?: string | symbol, descriptor?: PropertyDescriptor): ReflectMethod | void {\n if (propertyKey && descriptor) {\n process({method: HttpMethod.CONNECT}, configOrTarget, propertyKey, descriptor);\n } else {\n return (target: any, propertyKey: string | symbol, descriptor: PropertyDescriptor) => {\n configOrTarget.method = HttpMethod.CONNECT;\n process(configOrTarget, target, propertyKey, descriptor);\n }\n }\n}\n\nexport const getCONNECT = (target: any, propertyKey: string | symbol): MappingConfig | undefined => {\n return getUrlMapping(target, propertyKey);\n}\nexport const getCONNECTS = (target: any): SaveMappingConfig[] => {\n return getUrlMappings(target)?.filter(it => it.config?.method.toUpperCase() === HttpMethod.CONNECT);\n}\n"],
5
- "mappings": "AAEA,SAAS,oBAAoB;AAG7B,SAAS,kBAAkB;AAEpB,IAAK,0BAAL,kBAAKA,6BAAL;AACH,EAAAA,yBAAA,mBAAgB;AAChB,EAAAA,yBAAA,mBAAgB;AAEhB,EAAAA,yBAAA,+BAA4B;AAC5B,EAAAA,yBAAA,uBAAoB;AALZ,SAAAA;AAAA,GAAA;AA2BZ,MAAM,qBAAqB,OAAO,oBAAoB;AAItD,MAAM,UAAU,CAAC,QAAuB,QAAa,aAA8B,eAAmC;AAClH,QAAM,qBAAsB,aAAa,YAAY,oBAAoB,OAAO,WAAW,KAAK,CAAC;AACjG,qBAAmB,KAAK,EAAC,aAAa,OAAM,CAAC;AAC7C,eAAa,eAAe,oBAAoB,oBAAoB,OAAO,WAAW;AACtF,eAAa,eAAe,oBAAoB,QAAQ,QAAQ,WAAW;AAC/E;AAGO,SAAS,WAAW,gBAAsC,aAA+B,YAAuD;AACnJ,MAAI,eAAe,YAAY;AAC3B,YAAQ,EAAC,QAAQ,WAAW,IAAG,GAAG,gBAAgB,aAAa,UAAU;AAAA,EAC7E,OAAO;AACH,WAAO,CAAC,QAAaC,cAA8BC,gBAAmC;AAClF,cAAQ,gBAAgB,QAAQD,cAAaC,WAAU;AAAA,IAC3D;AAAA,EACJ;AACJ;AACO,MAAM,gBAAgB,CAAC,QAAa,gBAA4D;AACnG,SAAO,aAAa,YAAY,oBAAoB,QAAQ,WAAW;AAC3E;AAEO,MAAM,iBAAiB,CAAC,WAAqC;AAChE,MAAI,WAAW,QAAQ,WAAc,UAAU,OAAO,WAAW,UAAU;AACvE,aAAS,OAAO;AAAA,EACpB;AACA,SAAO,aAAa,YAAY,oBAAoB,MAAM;AAC9D;AAGO,SAAS,IAAI,gBAAsD,aAA+B,YAAuD;AAC5J,MAAI,eAAe,YAAY;AAC3B,YAAQ,EAAC,QAAQ,WAAW,IAAG,GAAG,gBAAgB,aAAa,UAAU;AAAA,EAC7E,OAAO;AACH,WAAO,CAAC,QAAaD,cAA8BC,gBAAmC;AAClF,qBAAe,SAAS,WAAW;AACnC,cAAQ,gBAAgB,QAAQD,cAAaC,WAAU;AAAA,IAC3D;AAAA,EACJ;AACJ;AAEO,MAAM,SAAS,CAAC,QAAa,gBAA4D;AAC5F,SAAO,cAAc,QAAQ,WAAW;AAC5C;AACO,MAAM,UAAU,CAAC,WAAqC;AACzD,SAAO,eAAe,MAAM,GAAG,OAAO,QAAM,GAAG,QAAQ,OAAO,YAAY,MAAM,WAAW,GAAG;AAClG;AAGO,SAAS,KAAK,gBAAsD,aAA+B,YAAuD;AAC7J,MAAI,eAAe,YAAY;AAC3B,YAAQ,EAAC,QAAQ,WAAW,KAAI,GAAG,gBAAgB,aAAa,UAAU;AAAA,EAC9E,OAAO;AACH,WAAO,CAAC,QAAaD,cAA8BC,gBAAmC;AAClF,qBAAe,SAAS,WAAW;AACnC,cAAQ,gBAAgB,QAAQD,cAAaC,WAAU;AAAA,IAC3D;AAAA,EACJ;AACJ;AAEO,MAAM,UAAU,CAAC,QAAa,gBAA4D;AAC7F,SAAO,cAAc,QAAQ,WAAW;AAC5C;AACO,MAAM,WAAW,CAAC,WAAqC;AAC1D,SAAO,eAAe,MAAM,GAAG,OAAO,QAAM,GAAG,QAAQ,OAAO,YAAY,MAAM,WAAW,IAAI;AACnG;AAGO,SAAS,OAAO,gBAAsD,aAA+B,YAAuD;AAC/J,MAAI,eAAe,YAAY;AAC3B,YAAQ,EAAC,QAAQ,WAAW,OAAM,GAAG,gBAAgB,aAAa,UAAU;AAAA,EAChF,OAAO;AACH,WAAO,CAAC,QAAaD,cAA8BC,gBAAmC;AAClF,qBAAe,SAAS,WAAW;AACnC,cAAQ,gBAAgB,QAAQD,cAAaC,WAAU;AAAA,IAC3D;AAAA,EACJ;AACJ;AAEO,MAAM,YAAY,CAAC,QAAa,gBAA4D;AAC/F,SAAO,cAAc,QAAQ,WAAW;AAC5C;AACO,MAAM,aAAa,CAAC,WAAqC;AAC5D,SAAO,eAAe,MAAM,GAAG,OAAO,QAAM,GAAG,QAAQ,OAAO,YAAY,MAAM,WAAW,MAAM;AACrG;AAGO,SAAS,IAAI,gBAAsD,aAA+B,YAAuD;AAC5J,MAAI,eAAe,YAAY;AAC3B,YAAQ,EAAC,QAAQ,WAAW,IAAG,GAAG,gBAAgB,aAAa,UAAU;AAAA,EAC7E,OAAO;AACH,WAAO,CAAC,QAAaD,cAA8BC,gBAAmC;AAClF,qBAAe,SAAS,WAAW;AACnC,cAAQ,gBAAgB,QAAQD,cAAaC,WAAU;AAAA,IAC3D;AAAA,EACJ;AACJ;AAEO,MAAM,SAAS,CAAC,QAAa,gBAA4D;AAC5F,SAAO,cAAc,QAAQ,WAAW;AAC5C;AACO,MAAM,UAAU,CAAC,WAAqC;AACzD,SAAO,eAAe,MAAM,GAAG,OAAO,QAAM,GAAG,QAAQ,OAAO,YAAY,MAAM,WAAW,GAAG;AAClG;AAGO,SAAS,MAAM,gBAAsD,aAA+B,YAAuD;AAC9J,MAAI,eAAe,YAAY;AAC3B,YAAQ,EAAC,QAAQ,WAAW,MAAK,GAAG,gBAAgB,aAAa,UAAU;AAAA,EAC/E,OAAO;AACH,WAAO,CAAC,QAAaD,cAA8BC,gBAAmC;AAClF,qBAAe,SAAS,WAAW;AACnC,cAAQ,gBAAgB,QAAQD,cAAaC,WAAU;AAAA,IAC3D;AAAA,EACJ;AACJ;AAEO,MAAM,WAAW,CAAC,QAAa,gBAA4D;AAC9F,SAAO,cAAc,QAAQ,WAAW;AAC5C;AACO,MAAM,YAAY,CAAC,WAAqC;AAC3D,SAAO,eAAe,MAAM,GAAG,OAAO,QAAM,GAAG,QAAQ,OAAO,YAAY,MAAM,WAAW,GAAG;AAClG;AAGO,SAAS,QAAQ,gBAAsD,aAA+B,YAAuD;AAChK,MAAI,eAAe,YAAY;AAC3B,YAAQ,EAAC,QAAQ,WAAW,QAAO,GAAG,gBAAgB,aAAa,UAAU;AAAA,EACjF,OAAO;AACH,WAAO,CAAC,QAAaD,cAA8BC,gBAAmC;AAClF,qBAAe,SAAS,WAAW;AACnC,cAAQ,gBAAgB,QAAQD,cAAaC,WAAU;AAAA,IAC3D;AAAA,EACJ;AACJ;AAEO,MAAM,aAAa,CAAC,QAAa,gBAA4D;AAChG,SAAO,cAAc,QAAQ,WAAW;AAC5C;AACO,MAAM,cAAc,CAAC,WAAqC;AAC7D,SAAO,eAAe,MAAM,GAAG,OAAO,QAAM,GAAG,QAAQ,OAAO,YAAY,MAAM,WAAW,OAAO;AACtG;AAGO,SAAS,KAAK,gBAAsD,aAA+B,YAAuD;AAC7J,MAAI,eAAe,YAAY;AAC3B,YAAQ,EAAC,QAAQ,WAAW,KAAI,GAAG,gBAAgB,aAAa,UAAU;AAAA,EAC9E,OAAO;AACH,WAAO,CAAC,QAAaD,cAA8BC,gBAAmC;AAClF,qBAAe,SAAS,WAAW;AACnC,cAAQ,gBAAgB,QAAQD,cAAaC,WAAU;AAAA,IAC3D;AAAA,EACJ;AACJ;AAEO,MAAM,UAAU,CAAC,QAAa,gBAA4D;AAC7F,SAAO,cAAc,QAAQ,WAAW;AAC5C;AACO,MAAM,WAAW,CAAC,WAAqC;AAC1D,SAAO,eAAe,MAAM,GAAG,OAAO,QAAM,GAAG,QAAQ,OAAO,YAAY,MAAM,WAAW,GAAG;AAClG;AAGO,SAAS,MAAM,gBAAsD,aAA+B,YAAuD;AAC9J,MAAI,eAAe,YAAY;AAC3B,YAAQ,EAAC,QAAQ,WAAW,MAAK,GAAG,gBAAgB,aAAa,UAAU;AAAA,EAC/E,OAAO;AACH,WAAO,CAAC,QAAaD,cAA8BC,gBAAmC;AAClF,qBAAe,SAAS,WAAW;AACnC,cAAQ,gBAAgB,QAAQD,cAAaC,WAAU;AAAA,IAC3D;AAAA,EACJ;AACJ;AAEO,MAAM,WAAW,CAAC,QAAa,gBAA4D;AAC9F,SAAO,cAAc,QAAQ,WAAW;AAC5C;AACO,MAAM,YAAY,CAAC,WAAqC;AAC3D,SAAO,eAAe,MAAM,GAAG,OAAO,QAAM,GAAG,QAAQ,OAAO,YAAY,MAAM,WAAW,KAAK;AACpG;AAGO,SAAS,QAAQ,gBAAsD,aAA+B,YAAuD;AAChK,MAAI,eAAe,YAAY;AAC3B,YAAQ,EAAC,QAAQ,WAAW,QAAO,GAAG,gBAAgB,aAAa,UAAU;AAAA,EACjF,OAAO;AACH,WAAO,CAAC,QAAaD,cAA8BC,gBAAmC;AAClF,qBAAe,SAAS,WAAW;AACnC,cAAQ,gBAAgB,QAAQD,cAAaC,WAAU;AAAA,IAC3D;AAAA,EACJ;AACJ;AAEO,MAAM,aAAa,CAAC,QAAa,gBAA4D;AAChG,SAAO,cAAc,QAAQ,WAAW;AAC5C;AACO,MAAM,cAAc,CAAC,WAAqC;AAC7D,SAAO,eAAe,MAAM,GAAG,OAAO,QAAM,GAAG,QAAQ,OAAO,YAAY,MAAM,WAAW,OAAO;AACtG;",
4
+ "sourcesContent": ["import { ConstructorType } from '@dooboostore/core';\nimport { ReflectMethod } from '@dooboostore/simple-boot';\nimport { ReflectUtils } from '@dooboostore/core';\nimport { Resolver } from '../resolvers/Resolver';\nimport { Mimes } from '../codes/Mimes';\nimport { HttpMethod } from '../codes/HttpMethod';\n\nexport enum UrlMappingSituationType {\n REQ_JSON_BODY = 'SIMPLE_BOOT_HTTP_SERVER://URLMAPPING/REQ_JSON_BODY',\n REQ_PATH_DATA = 'SIMPLE_BOOT_HTTP_SERVER://URLMAPPING/REQ_PATH_DATA',\n // REQ_URL_SEARCH_PARAMS = 'SIMPLE_BOOT_HTTP_SERVER://URLMAPPING/REQ_URL_SEARCH_PARAMS',\n REQ_URL_SEARCH_PARAMS_OBJ = 'SIMPLE_BOOT_HTTP_SERVER://URLMAPPING/REQ_URL_SEARCH_PARAMS_OBJ',\n REQ_FORM_URL_BODY = 'SIMPLE_BOOT_HTTP_SERVER://URLMAPPING/REQ_FORM_URL_BODY'\n}\nexport type MappingConfig = {\n method: HttpMethod | string,\n description?: {\n name?: string;\n detail?: string;\n };\n\n req?: {\n contentType?: (Mimes|string)[];\n accept?: (Mimes|string)[];\n };\n\n res?: {\n status?: number;\n header?: {[key: string]: string};\n contentType?: Mimes | string;\n }\n resolver?: Resolver|ConstructorType<Resolver>;\n}\nexport type SaveMappingConfig = {propertyKey: string | symbol; config: MappingConfig}\nconst MappingMetadataKey = Symbol.for('simple-boot-http-server:mapping-metadata');\n// const GETSMappingMetadataKey = Symbol('GET_METHODS');\n// const GETMappingMetadataKey = Symbol('GET_METHOD');\n\nconst process = (config: MappingConfig, target: any, propertyKey: string | symbol, descriptor: PropertyDescriptor) => {\n const saveMappingConfigs = (ReflectUtils.getMetadata(MappingMetadataKey, target.constructor) ?? []) as SaveMappingConfig[];\n saveMappingConfigs.push({propertyKey, config});\n ReflectUtils.defineMetadata(MappingMetadataKey, saveMappingConfigs, target.constructor);\n ReflectUtils.defineMetadata(MappingMetadataKey, config, target, propertyKey);\n}\nexport function UrlMapping(config: MappingConfig): ReflectMethod;\nexport function UrlMapping(target: any, propertyKey: string | symbol, descriptor: PropertyDescriptor): void;\nexport function UrlMapping(configOrtarget?: MappingConfig | any, propertyKey?: string | symbol, descriptor?: PropertyDescriptor): ReflectMethod | void {\n if (propertyKey && descriptor) {\n process({method: HttpMethod.GET}, configOrtarget, propertyKey, descriptor);\n } else {\n return (target: any, propertyKey: string | symbol, descriptor: PropertyDescriptor) => {\n process(configOrtarget, target, propertyKey, descriptor);\n }\n }\n}\nexport const getUrlMapping = (target: any, propertyKey: string | symbol): MappingConfig | undefined => {\n return ReflectUtils.getMetadata(MappingMetadataKey, target, propertyKey);\n}\n\nexport const getUrlMappings = (target: any): SaveMappingConfig[] => {\n if (target !== null && undefined !== target && typeof target === 'object') {\n target = target.constructor;\n }\n return ReflectUtils.getMetadata(MappingMetadataKey, target);\n}\nexport function GET(config: Omit<MappingConfig, 'method'>): ReflectMethod;\nexport function GET(target: any, propertyKey: string | symbol, descriptor: PropertyDescriptor): void;\nexport function GET(configOrTarget?: Omit<MappingConfig, 'method'> | any, propertyKey?: string | symbol, descriptor?: PropertyDescriptor): ReflectMethod | void {\n if (propertyKey && descriptor) {\n process({method: HttpMethod.GET}, configOrTarget, propertyKey, descriptor);\n } else {\n return (target: any, propertyKey: string | symbol, descriptor: PropertyDescriptor) => {\n configOrTarget.method = HttpMethod.GET;\n process(configOrTarget, target, propertyKey, descriptor);\n }\n }\n}\n\nexport const getGET = (target: any, propertyKey: string | symbol): MappingConfig | undefined => {\n return getUrlMapping(target, propertyKey);\n}\nexport const getGETS = (target: any): SaveMappingConfig[] => {\n return getUrlMappings(target)?.filter(it => it.config?.method.toUpperCase() === HttpMethod.GET);\n}\nexport function POST(config: Omit<MappingConfig, 'method'>): ReflectMethod;\nexport function POST(target: any, propertyKey: string | symbol, descriptor: PropertyDescriptor): void;\nexport function POST(configOrTarget?: Omit<MappingConfig, 'method'> | any, propertyKey?: string | symbol, descriptor?: PropertyDescriptor): ReflectMethod | void {\n if (propertyKey && descriptor) {\n process({method: HttpMethod.POST}, configOrTarget, propertyKey, descriptor);\n } else {\n return (target: any, propertyKey: string | symbol, descriptor: PropertyDescriptor) => {\n configOrTarget.method = HttpMethod.POST;\n process(configOrTarget, target, propertyKey, descriptor);\n }\n }\n}\n\nexport const getPOST = (target: any, propertyKey: string | symbol): MappingConfig | undefined => {\n return getUrlMapping(target, propertyKey);\n}\nexport const getPOSTS = (target: any): SaveMappingConfig[] => {\n return getUrlMappings(target)?.filter(it => it.config?.method.toUpperCase() === HttpMethod.POST);\n}\nexport function DELETE(config: Omit<MappingConfig, 'method'>): ReflectMethod;\nexport function DELETE(target: any, propertyKey: string | symbol, descriptor: PropertyDescriptor): void;\nexport function DELETE(configOrTarget?: Omit<MappingConfig, 'method'> | any, propertyKey?: string | symbol, descriptor?: PropertyDescriptor): ReflectMethod | void {\n if (propertyKey && descriptor) {\n process({method: HttpMethod.DELETE}, configOrTarget, propertyKey, descriptor);\n } else {\n return (target: any, propertyKey: string | symbol, descriptor: PropertyDescriptor) => {\n configOrTarget.method = HttpMethod.DELETE;\n process(configOrTarget, target, propertyKey, descriptor);\n }\n }\n}\n\nexport const getDELETE = (target: any, propertyKey: string | symbol): MappingConfig | undefined => {\n return getUrlMapping(target, propertyKey);\n}\nexport const getDELETES = (target: any): SaveMappingConfig[] => {\n return getUrlMappings(target)?.filter(it => it.config?.method.toUpperCase() === HttpMethod.DELETE);\n}\nexport function PUT(config: Omit<MappingConfig, 'method'>): ReflectMethod;\nexport function PUT(target: any, propertyKey: string | symbol, descriptor: PropertyDescriptor): void;\nexport function PUT(configOrTarget?: Omit<MappingConfig, 'method'> | any, propertyKey?: string | symbol, descriptor?: PropertyDescriptor): ReflectMethod | void {\n if (propertyKey && descriptor) {\n process({method: HttpMethod.PUT}, configOrTarget, propertyKey, descriptor);\n } else {\n return (target: any, propertyKey: string | symbol, descriptor: PropertyDescriptor) => {\n configOrTarget.method = HttpMethod.PUT;\n process(configOrTarget, target, propertyKey, descriptor);\n }\n }\n}\n\nexport const getPUT = (target: any, propertyKey: string | symbol): MappingConfig | undefined => {\n return getUrlMapping(target, propertyKey);\n}\nexport const getPUTS = (target: any): SaveMappingConfig[] => {\n return getUrlMappings(target)?.filter(it => it.config?.method.toUpperCase() === HttpMethod.PUT);\n}\nexport function PATCH(config: Omit<MappingConfig, 'method'>): ReflectMethod;\nexport function PATCH(target: any, propertyKey: string | symbol, descriptor: PropertyDescriptor): void;\nexport function PATCH(configOrTarget?: Omit<MappingConfig, 'method'> | any, propertyKey?: string | symbol, descriptor?: PropertyDescriptor): ReflectMethod | void {\n if (propertyKey && descriptor) {\n process({method: HttpMethod.PATCH}, configOrTarget, propertyKey, descriptor);\n } else {\n return (target: any, propertyKey: string | symbol, descriptor: PropertyDescriptor) => {\n configOrTarget.method = HttpMethod.PATCH;\n process(configOrTarget, target, propertyKey, descriptor);\n }\n }\n}\n\nexport const getPATCH = (target: any, propertyKey: string | symbol): MappingConfig | undefined => {\n return getUrlMapping(target, propertyKey);\n}\nexport const getPATCHS = (target: any): SaveMappingConfig[] => {\n return getUrlMappings(target)?.filter(it => it.config?.method.toUpperCase() === HttpMethod.GET);\n}\nexport function OPTIONS(config: Omit<MappingConfig, 'method'>): ReflectMethod;\nexport function OPTIONS(target: any, propertyKey: string | symbol, descriptor: PropertyDescriptor): void;\nexport function OPTIONS(configOrTarget?: Omit<MappingConfig, 'method'> | any, propertyKey?: string | symbol, descriptor?: PropertyDescriptor): ReflectMethod | void {\n if (propertyKey && descriptor) {\n process({method: HttpMethod.OPTIONS}, configOrTarget, propertyKey, descriptor);\n } else {\n return (target: any, propertyKey: string | symbol, descriptor: PropertyDescriptor) => {\n configOrTarget.method = HttpMethod.OPTIONS;\n process(configOrTarget, target, propertyKey, descriptor);\n }\n }\n}\n\nexport const getOPTIONS = (target: any, propertyKey: string | symbol): MappingConfig | undefined => {\n return getUrlMapping(target, propertyKey);\n}\nexport const getOPTIONSS = (target: any): SaveMappingConfig[] => {\n return getUrlMappings(target)?.filter(it => it.config?.method.toUpperCase() === HttpMethod.OPTIONS);\n}\nexport function HEAD(config: Omit<MappingConfig, 'method'>): ReflectMethod;\nexport function HEAD(target: any, propertyKey: string | symbol, descriptor: PropertyDescriptor): void;\nexport function HEAD(configOrTarget?: Omit<MappingConfig, 'method'> | any, propertyKey?: string | symbol, descriptor?: PropertyDescriptor): ReflectMethod | void {\n if (propertyKey && descriptor) {\n process({method: HttpMethod.HEAD}, configOrTarget, propertyKey, descriptor);\n } else {\n return (target: any, propertyKey: string | symbol, descriptor: PropertyDescriptor) => {\n configOrTarget.method = HttpMethod.HEAD;\n process(configOrTarget, target, propertyKey, descriptor);\n }\n }\n}\n\nexport const getHEAD = (target: any, propertyKey: string | symbol): MappingConfig | undefined => {\n return getUrlMapping(target, propertyKey);\n}\nexport const getHEADS = (target: any): SaveMappingConfig[] => {\n return getUrlMappings(target)?.filter(it => it.config?.method.toUpperCase() === HttpMethod.GET);\n}\nexport function TRACE(config: Omit<MappingConfig, 'method'>): ReflectMethod;\nexport function TRACE(target: any, propertyKey: string | symbol, descriptor: PropertyDescriptor): void;\nexport function TRACE(configOrTarget?: Omit<MappingConfig, 'method'> | any, propertyKey?: string | symbol, descriptor?: PropertyDescriptor): ReflectMethod | void {\n if (propertyKey && descriptor) {\n process({method: HttpMethod.TRACE}, configOrTarget, propertyKey, descriptor);\n } else {\n return (target: any, propertyKey: string | symbol, descriptor: PropertyDescriptor) => {\n configOrTarget.method = HttpMethod.TRACE;\n process(configOrTarget, target, propertyKey, descriptor);\n }\n }\n}\n\nexport const getTRACE = (target: any, propertyKey: string | symbol): MappingConfig | undefined => {\n return getUrlMapping(target, propertyKey);\n}\nexport const getTRACES = (target: any): SaveMappingConfig[] => {\n return getUrlMappings(target)?.filter(it => it.config?.method.toUpperCase() === HttpMethod.TRACE);\n}\nexport function CONNECT(config: Omit<MappingConfig, 'method'>): ReflectMethod;\nexport function CONNECT(target: any, propertyKey: string | symbol, descriptor: PropertyDescriptor): void;\nexport function CONNECT(configOrTarget?: Omit<MappingConfig, 'method'> | any, propertyKey?: string | symbol, descriptor?: PropertyDescriptor): ReflectMethod | void {\n if (propertyKey && descriptor) {\n process({method: HttpMethod.CONNECT}, configOrTarget, propertyKey, descriptor);\n } else {\n return (target: any, propertyKey: string | symbol, descriptor: PropertyDescriptor) => {\n configOrTarget.method = HttpMethod.CONNECT;\n process(configOrTarget, target, propertyKey, descriptor);\n }\n }\n}\n\nexport const getCONNECT = (target: any, propertyKey: string | symbol): MappingConfig | undefined => {\n return getUrlMapping(target, propertyKey);\n}\nexport const getCONNECTS = (target: any): SaveMappingConfig[] => {\n return getUrlMappings(target)?.filter(it => it.config?.method.toUpperCase() === HttpMethod.CONNECT);\n}\n\n// Aliases for lowercase\nexport const urlMapping = UrlMapping;\nexport const getMethod = GET;\nexport const postMethod = POST;\nexport const patchMethod = PATCH;\nexport const putMethod = PUT;\nexport const deleteMethod = DELETE;\nexport const optionsMethod = OPTIONS;\nexport const headMethod = HEAD;\nexport const traceMethod = TRACE;\nexport const connectMethod = CONNECT;\n"],
5
+ "mappings": "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",
6
6
  "names": ["UrlMappingSituationType", "propertyKey", "descriptor"]
7
7
  }
@@ -1,7 +1,8 @@
1
1
  import { HttpError } from "./HttpError.js";
2
2
  import { HttpStatus } from "../codes/HttpStatus.js";
3
3
  class BadRequestError extends HttpError {
4
- constructor({ status = HttpStatus.BadRequest, message = "Bad Request" } = {}) {
4
+ constructor(input = {}) {
5
+ const { status = HttpStatus.BadRequest, message = "Bad Request" } = typeof input === "string" ? { message: input } : input;
5
6
  super({ status, message });
6
7
  }
7
8
  }
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../src/errors/BadRequestError.ts"],
4
- "sourcesContent": ["import {HttpError} from './HttpError';\nimport {HttpStatus} from '../codes/HttpStatus';\n\nexport class BadRequestError extends HttpError {\n constructor({status = HttpStatus.BadRequest, message = 'Bad Request'}: {status?: number, message?: string} = {}) {\n super({status, message});\n }\n}\n"],
5
- "mappings": "AAAA,SAAQ,iBAAgB;AACxB,SAAQ,kBAAiB;AAElB,MAAM,wBAAwB,UAAU;AAAA,EAC3C,YAAY,EAAC,SAAS,WAAW,YAAY,UAAU,cAAa,IAAyC,CAAC,GAAG;AAC7G,UAAM,EAAC,QAAQ,QAAO,CAAC;AAAA,EAC3B;AACJ;",
4
+ "sourcesContent": ["import {HttpError} from './HttpError';\nimport {HttpStatus} from '../codes/HttpStatus';\n\nexport class BadRequestError extends HttpError {\n constructor(\n input: { status?: number; message?: string } | string = {},\n ) {\n const {status = HttpStatus.BadRequest, message = 'Bad Request'} =\n typeof input === 'string' ? {message: input} : input;\n super({status, message});\n }\n}\n"],
5
+ "mappings": "AAAA,SAAQ,iBAAgB;AACxB,SAAQ,kBAAiB;AAElB,MAAM,wBAAwB,UAAU;AAAA,EAC7C,YACE,QAAwD,CAAC,GACzD;AACA,UAAM,EAAC,SAAS,WAAW,YAAY,UAAU,cAAa,IAC5D,OAAO,UAAU,WAAW,EAAC,SAAS,MAAK,IAAI;AACjD,UAAM,EAAC,QAAQ,QAAO,CAAC;AAAA,EACzB;AACF;",
6
6
  "names": []
7
7
  }