@dooboostore/simple-boot-http-server 1.0.18 → 1.0.19

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 (199) hide show
  1. package/dist/cjs/SimpleBootHttpServer.d.ts +2 -1
  2. package/dist/cjs/SimpleBootHttpServer.d.ts.map +1 -1
  3. package/dist/cjs/SimpleBootHttpServer.js +53 -673
  4. package/dist/cjs/SimpleBootHttpServer.js.map +4 -4
  5. package/dist/cjs/codes/HttpHeaders.js +0 -2
  6. package/dist/cjs/codes/HttpHeaders.js.map +1 -1
  7. package/dist/cjs/codes/HttpMethod.js +0 -2
  8. package/dist/cjs/codes/HttpMethod.js.map +1 -1
  9. package/dist/cjs/codes/HttpStatus.js +0 -2
  10. package/dist/cjs/codes/HttpStatus.js.map +1 -1
  11. package/dist/cjs/codes/Mimes.js +0 -2
  12. package/dist/cjs/codes/Mimes.js.map +1 -1
  13. package/dist/cjs/codes/index.js +9 -126
  14. package/dist/cjs/codes/index.js.map +4 -4
  15. package/dist/cjs/decorators/MethodMapping.d.ts +0 -1
  16. package/dist/cjs/decorators/MethodMapping.d.ts.map +1 -1
  17. package/dist/cjs/decorators/MethodMapping.js +51 -53
  18. package/dist/cjs/decorators/MethodMapping.js.map +2 -2
  19. package/dist/cjs/decorators/index.js +3 -248
  20. package/dist/cjs/decorators/index.js.map +4 -4
  21. package/dist/cjs/endpoints/CrossDomainHeaderEndPoint.js +7 -8
  22. package/dist/cjs/endpoints/CrossDomainHeaderEndPoint.js.map +1 -1
  23. package/dist/cjs/endpoints/EndPoint.js +0 -2
  24. package/dist/cjs/endpoints/EndPoint.js.map +1 -1
  25. package/dist/cjs/endpoints/HeaderEndPoint.js +2 -4
  26. package/dist/cjs/endpoints/HeaderEndPoint.js.map +1 -1
  27. package/dist/cjs/endpoints/index.js +7 -54
  28. package/dist/cjs/endpoints/index.js.map +3 -3
  29. package/dist/cjs/errors/BadRequestError.js +5 -16
  30. package/dist/cjs/errors/BadRequestError.js.map +3 -3
  31. package/dist/cjs/errors/ForbiddenError.js +5 -16
  32. package/dist/cjs/errors/ForbiddenError.js.map +3 -3
  33. package/dist/cjs/errors/HttpError.js +7 -5
  34. package/dist/cjs/errors/HttpError.js.map +1 -1
  35. package/dist/cjs/errors/InternalServerError.js +5 -16
  36. package/dist/cjs/errors/InternalServerError.js.map +3 -3
  37. package/dist/cjs/errors/NotFoundError.js +5 -16
  38. package/dist/cjs/errors/NotFoundError.js.map +3 -3
  39. package/dist/cjs/errors/UnauthorizedError.js +5 -16
  40. package/dist/cjs/errors/UnauthorizedError.js.map +3 -3
  41. package/dist/cjs/errors/index.js +13 -64
  42. package/dist/cjs/errors/index.js.map +3 -3
  43. package/dist/cjs/filters/CacheFilter.js +14 -17
  44. package/dist/cjs/filters/CacheFilter.js.map +2 -2
  45. package/dist/cjs/filters/Filter.js +0 -2
  46. package/dist/cjs/filters/Filter.js.map +1 -1
  47. package/dist/cjs/filters/HttpStatusFilter.js +2 -4
  48. package/dist/cjs/filters/HttpStatusFilter.js.map +1 -1
  49. package/dist/cjs/filters/OpenApi3Filter.js +8 -20
  50. package/dist/cjs/filters/OpenApi3Filter.js.map +3 -3
  51. package/dist/cjs/filters/ResourceFilter.js +7 -7
  52. package/dist/cjs/filters/ResourceFilter.js.map +1 -1
  53. package/dist/cjs/filters/ThrowFilter.js +2 -4
  54. package/dist/cjs/filters/ThrowFilter.js.map +1 -1
  55. package/dist/cjs/filters/index.js +13 -299
  56. package/dist/cjs/filters/index.js.map +4 -4
  57. package/dist/cjs/index.d.ts +2 -12
  58. package/dist/cjs/index.d.ts.map +1 -1
  59. package/dist/cjs/index.js +2 -1734
  60. package/dist/cjs/index.js.map +4 -4
  61. package/dist/cjs/inject/InjectSituationType.js +0 -2
  62. package/dist/cjs/inject/InjectSituationType.js.map +1 -1
  63. package/dist/cjs/inject/index.js +3 -16
  64. package/dist/cjs/inject/index.js.map +4 -4
  65. package/dist/cjs/lifecycle/OnInit.js +0 -2
  66. package/dist/cjs/lifecycle/OnInit.js.map +1 -1
  67. package/dist/cjs/lifecycle/index.js +6 -2
  68. package/dist/cjs/lifecycle/index.js.map +1 -1
  69. package/dist/cjs/models/RequestResponse.js +26 -33
  70. package/dist/cjs/models/RequestResponse.js.map +3 -3
  71. package/dist/cjs/models/datas/HeaderData.js +2 -4
  72. package/dist/cjs/models/datas/HeaderData.js.map +1 -1
  73. package/dist/cjs/models/datas/MultipartData.js +0 -2
  74. package/dist/cjs/models/datas/MultipartData.js.map +1 -1
  75. package/dist/cjs/models/datas/ReqHeader.js +65 -4
  76. package/dist/cjs/models/datas/ReqHeader.js.map +1 -1
  77. package/dist/cjs/models/datas/Resource.js +8 -480
  78. package/dist/cjs/models/datas/Resource.js.map +4 -4
  79. package/dist/cjs/models/datas/body/ReqFormUrlBody.js +2 -4
  80. package/dist/cjs/models/datas/body/ReqFormUrlBody.js.map +1 -1
  81. package/dist/cjs/models/datas/body/ReqJsonBody.js +2 -4
  82. package/dist/cjs/models/datas/body/ReqJsonBody.js.map +1 -1
  83. package/dist/cjs/models/datas/body/ReqMultipartFormBody.js +2 -4
  84. package/dist/cjs/models/datas/body/ReqMultipartFormBody.js.map +1 -1
  85. package/dist/cjs/models/index.js +19 -574
  86. package/dist/cjs/models/index.js.map +4 -4
  87. package/dist/cjs/models/method/patch/PatchJson.js +2 -4
  88. package/dist/cjs/models/method/patch/PatchJson.js.map +1 -1
  89. package/dist/cjs/option/HttpServerOption.js +16 -11
  90. package/dist/cjs/option/HttpServerOption.js.map +1 -1
  91. package/dist/cjs/option/index.js +3 -50
  92. package/dist/cjs/option/index.js.map +3 -3
  93. package/dist/cjs/resolvers/Resolver.js +0 -2
  94. package/dist/cjs/resolvers/Resolver.js.map +1 -1
  95. package/dist/cjs/resolvers/ResourceResolver.js +10 -538
  96. package/dist/cjs/resolvers/ResourceResolver.js.map +4 -4
  97. package/dist/cjs/resolvers/index.js +5 -552
  98. package/dist/cjs/resolvers/index.js.map +4 -4
  99. package/dist/cjs/session/SessionManager.js +6 -479
  100. package/dist/cjs/session/SessionManager.js.map +4 -4
  101. package/dist/cjs/session/index.js +3 -560
  102. package/dist/cjs/session/index.js.map +4 -4
  103. package/dist/esm/SimpleBootHttpServer.d.ts +2 -1
  104. package/dist/esm/SimpleBootHttpServer.d.ts.map +1 -1
  105. package/dist/esm/SimpleBootHttpServer.js +37 -656
  106. package/dist/esm/SimpleBootHttpServer.js.map +4 -4
  107. package/dist/esm/codes/HttpHeaders.js +0 -1
  108. package/dist/esm/codes/HttpHeaders.js.map +1 -1
  109. package/dist/esm/codes/HttpMethod.js +0 -1
  110. package/dist/esm/codes/HttpMethod.js.map +1 -1
  111. package/dist/esm/codes/HttpStatus.js +0 -1
  112. package/dist/esm/codes/HttpStatus.js.map +1 -1
  113. package/dist/esm/codes/Mimes.js +0 -1
  114. package/dist/esm/codes/Mimes.js.map +1 -1
  115. package/dist/esm/codes/index.js +4 -115
  116. package/dist/esm/codes/index.js.map +4 -4
  117. package/dist/esm/decorators/MethodMapping.d.ts +0 -1
  118. package/dist/esm/decorators/MethodMapping.d.ts.map +1 -1
  119. package/dist/esm/decorators/MethodMapping.js +51 -52
  120. package/dist/esm/decorators/MethodMapping.js.map +2 -2
  121. package/dist/esm/decorators/index.js +1 -210
  122. package/dist/esm/decorators/index.js.map +4 -4
  123. package/dist/esm/endpoints/CrossDomainHeaderEndPoint.js +7 -7
  124. package/dist/esm/endpoints/CrossDomainHeaderEndPoint.js.map +1 -1
  125. package/dist/esm/endpoints/HeaderEndPoint.js +2 -3
  126. package/dist/esm/endpoints/HeaderEndPoint.js.map +1 -1
  127. package/dist/esm/endpoints/index.js +3 -45
  128. package/dist/esm/endpoints/index.js.map +3 -3
  129. package/dist/esm/errors/BadRequestError.js +5 -13
  130. package/dist/esm/errors/BadRequestError.js.map +3 -3
  131. package/dist/esm/errors/ForbiddenError.js +5 -13
  132. package/dist/esm/errors/ForbiddenError.js.map +3 -3
  133. package/dist/esm/errors/HttpError.js +7 -4
  134. package/dist/esm/errors/HttpError.js.map +1 -1
  135. package/dist/esm/errors/InternalServerError.js +5 -13
  136. package/dist/esm/errors/InternalServerError.js.map +3 -3
  137. package/dist/esm/errors/NotFoundError.js +5 -13
  138. package/dist/esm/errors/NotFoundError.js.map +3 -3
  139. package/dist/esm/errors/UnauthorizedError.js +5 -13
  140. package/dist/esm/errors/UnauthorizedError.js.map +3 -3
  141. package/dist/esm/errors/index.js +6 -51
  142. package/dist/esm/errors/index.js.map +3 -3
  143. package/dist/esm/filters/CacheFilter.js +14 -16
  144. package/dist/esm/filters/CacheFilter.js.map +2 -2
  145. package/dist/esm/filters/HttpStatusFilter.js +2 -3
  146. package/dist/esm/filters/HttpStatusFilter.js.map +1 -1
  147. package/dist/esm/filters/OpenApi3Filter.js +7 -16
  148. package/dist/esm/filters/OpenApi3Filter.js.map +3 -3
  149. package/dist/esm/filters/ResourceFilter.js +7 -6
  150. package/dist/esm/filters/ResourceFilter.js.map +1 -1
  151. package/dist/esm/filters/ThrowFilter.js +2 -3
  152. package/dist/esm/filters/ThrowFilter.js.map +1 -1
  153. package/dist/esm/filters/index.js +6 -277
  154. package/dist/esm/filters/index.js.map +4 -4
  155. package/dist/esm/index.d.ts +2 -12
  156. package/dist/esm/index.d.ts.map +1 -1
  157. package/dist/esm/index.js +2 -1659
  158. package/dist/esm/index.js.map +4 -4
  159. package/dist/esm/inject/InjectSituationType.js +0 -1
  160. package/dist/esm/inject/InjectSituationType.js.map +1 -1
  161. package/dist/esm/inject/index.js +1 -8
  162. package/dist/esm/inject/index.js.map +4 -4
  163. package/dist/esm/lifecycle/index.js +1 -0
  164. package/dist/esm/lifecycle/index.js.map +3 -3
  165. package/dist/esm/models/RequestResponse.js +23 -29
  166. package/dist/esm/models/RequestResponse.js.map +3 -3
  167. package/dist/esm/models/datas/HeaderData.js +2 -3
  168. package/dist/esm/models/datas/HeaderData.js.map +1 -1
  169. package/dist/esm/models/datas/ReqHeader.js +65 -3
  170. package/dist/esm/models/datas/ReqHeader.js.map +1 -1
  171. package/dist/esm/models/datas/Resource.js +7 -478
  172. package/dist/esm/models/datas/Resource.js.map +4 -4
  173. package/dist/esm/models/datas/body/ReqFormUrlBody.js +2 -3
  174. package/dist/esm/models/datas/body/ReqFormUrlBody.js.map +1 -1
  175. package/dist/esm/models/datas/body/ReqJsonBody.js +2 -3
  176. package/dist/esm/models/datas/body/ReqJsonBody.js.map +1 -1
  177. package/dist/esm/models/datas/body/ReqMultipartFormBody.js +2 -3
  178. package/dist/esm/models/datas/body/ReqMultipartFormBody.js.map +1 -1
  179. package/dist/esm/models/index.js +9 -548
  180. package/dist/esm/models/index.js.map +4 -4
  181. package/dist/esm/models/method/patch/PatchJson.js +2 -3
  182. package/dist/esm/models/method/patch/PatchJson.js.map +1 -1
  183. package/dist/esm/option/HttpServerOption.js +16 -10
  184. package/dist/esm/option/HttpServerOption.js.map +1 -1
  185. package/dist/esm/option/index.js +1 -42
  186. package/dist/esm/option/index.js.map +3 -3
  187. package/dist/esm/resolvers/ResourceResolver.js +8 -526
  188. package/dist/esm/resolvers/ResourceResolver.js.map +4 -4
  189. package/dist/esm/resolvers/index.js +2 -537
  190. package/dist/esm/resolvers/index.js.map +4 -4
  191. package/dist/esm/session/SessionManager.js +5 -477
  192. package/dist/esm/session/SessionManager.js.map +3 -3
  193. package/dist/esm/session/index.js +1 -552
  194. package/dist/esm/session/index.js.map +3 -3
  195. package/dist/esm-bundle/dooboostore-simple-boot-http-server.esm.js +3 -1659
  196. package/dist/esm-bundle/dooboostore-simple-boot-http-server.esm.js.map +4 -4
  197. package/dist/umd-bundle/dooboostore-simple-boot-http-server.umd.js +2 -1673
  198. package/dist/umd-bundle/dooboostore-simple-boot-http-server.umd.js.map +4 -4
  199. package/package.json +15 -12
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
- "sources": ["../../../src/models/index.ts", "../../../src/models/RequestResponse.ts", "../../../src/models/datas/body/ReqFormUrlBody.ts", "../../../src/models/datas/body/ReqJsonBody.ts", "../../../src/models/datas/ReqHeader.ts", "../../../src/models/datas/HeaderData.ts", "../../../src/models/datas/Resource.ts", "../../../src/models/datas/body/ReqMultipartFormBody.ts", "../../../src/models/method/patch/PatchJson.ts"],
4
- "sourcesContent": ["export * from './RequestResponse';\nexport * from './datas/HeaderData';\nexport * from './datas/MultipartData';\nexport * from './datas/ReqHeader';\nexport * from './datas/Resource';\nexport * from './datas/body/ReqFormUrlBody';\nexport * from './datas/body/ReqJsonBody';\nexport * from './datas/body/ReqMultipartFormBody';\nexport * from './method/patch/PatchJson';\n", "import { IncomingMessage, OutgoingHttpHeader, OutgoingHttpHeaders, ServerResponse } from 'http';\nimport { HttpHeaders } from '../codes/HttpHeaders';\nimport { Mimes } from '../codes/Mimes';\nimport { Intent } from '@dooboostore/simple-boot/intent/Intent';\nimport { URL, URLSearchParams } from 'url';\nimport { Buffer } from 'buffer';\nimport { MultipartData } from './datas/MultipartData';\nimport { ReqFormUrlBody } from './datas/body/ReqFormUrlBody';\nimport { ReqJsonBody } from './datas/body/ReqJsonBody';\nimport { ReqHeader } from './datas/ReqHeader';\nimport { ReqMultipartFormBody } from './datas/body/ReqMultipartFormBody';\nimport { HttpStatus } from '../codes/HttpStatus';\nimport { gzip } from 'node-gzip';\nimport { SessionManager } from '../session/SessionManager';\nimport { HttpServerOption } from '../option/HttpServerOption';\nimport * as fs from 'fs';\nimport * as os from 'os';\nimport { RandomUtils } from '@dooboostore/core/random/RandomUtils';\nimport { FileUtils } from '@dooboostore/core-node/file/FileUtils';\nimport { ConvertUtils as CoreConvertUtils} from '@dooboostore/core/convert/ConvertUtils';\nimport { ConvertUtils } from '@dooboostore/core-node/convert/ConvertUtils';\n// https://masteringjs.io/tutorials/node/http-request\ntype Config = { sessionManager?: SessionManager, option: HttpServerOption };\n\n// https://nodejs.org/ko/docs/guides/anatomy-of-an-http-transaction/\nexport class RequestResponse {\n protected resWriteChunk: string | Buffer | undefined;\n protected reqBodyChunk?: Buffer;\n protected req: IncomingMessage;\n protected res: ServerResponse;\n protected config: Config;\n // protected sessionManager?: SessionManager;\n\n // constructor(req: IncomingMessage, res: ServerResponse);\n // constructor(req: RequestResponse);\n // constructor(req: IncomingMessage, res: ServerResponse, sessionManager?: SessionManager);\n // constructor(req: IncomingMessage | RequestResponse, res?: ServerResponse, sessionManager?: SessionManager) {\n // // this.req = req;\n // // this.res = res;\n // if (req instanceof RequestResponse) {\n // this.req = req.req;\n // this.res = req.res;\n // this.sessionManager = req.sessionManager;\n // } else {\n // this.req = req;\n // this.res = res!;\n // this.sessionManager = sessionManager;\n // }\n // }\n constructor(req: IncomingMessage | RequestResponse, res: ServerResponse, config: Config) {\n // this.req = req;\n // this.res = res;\n if (req instanceof RequestResponse) {\n this.req = req.req;\n this.res = req.res;\n this.config = config;\n } else {\n this.req = req;\n this.res = res!;\n this.config = config;\n }\n }\n\n get reqSocket() {\n return this.req.socket;\n }\n\n get reqCookieMap() {\n let cookies = this.reqHeader(HttpHeaders.Cookie) ?? '';\n if (Array.isArray(cookies)) {\n cookies = cookies.join(';')\n }\n\n const map = new Map<string, string>();\n cookies.split(';').map(it => it.trim().split('=')).forEach(it => {\n map.set(it[0], it[1]);\n });\n return map;\n }\n\n reqCookieGet(key: string) {\n return this.reqCookieMap.get(key);\n }\n\n get reqRemoteAddress(): string | undefined {\n const ipHeader = this.req.headers['x-forwarded-for'];\n let ip = this.req.socket.remoteAddress;\n if (Array.isArray(ipHeader)) {\n ip = ipHeader.join(',').split(',').shift();\n } else if (typeof ipHeader === 'string') {\n ip = ipHeader.split(',').shift();\n }\n return ip;\n }\n\n get reqUrlObject(): URL {\n return new URL(this.reqUrl, `${this.reqSocket ? 'https://' : 'http'}${this.reqHost ?? 'localhost'}`);\n }\n\n get reqUrlPathName(): string {\n // parse(rr.reqUrl ?? '', true)\n return this.reqUrlObj().pathname ?? '';\n }\n\n get reqUrl(): string {\n return this.req.url ?? '';\n }\n\n reqUrlObj(config?:{scheme?: string, host?: string}): URL {\n return new URL(`${config?.scheme??'http' }://${config?.host ? config?.host : (this.reqHeaderFirst(HttpHeaders.Host) ?? 'localhost')}${this.req.url ?? ''}`);\n }\n\n get reqUrlSearchParamTuples(): [string, string][] {\n return Array.from(this.reqUrlObj().searchParams as any);\n }\n\n get reqUrlSearchParams(): URLSearchParams {\n return this.reqUrlObj().searchParams;\n }\n\n get reqUrlSearchParamsObj(): {[p: string]: string | string[]} {\n const entries = this.reqUrlObj().searchParams;\n return CoreConvertUtils.toObject(entries);\n // return obj;\n // return Object.fromEntries(entries as any)\n }\n\n get reqPathSearchParamUrl(): string {\n const reqUrlObj = this.reqUrlObj();\n return reqUrlObj.pathname + (reqUrlObj.searchParams.toString() ? '?' + reqUrlObj.searchParams.toString() : '')\n }\n\n get reqReadable() {\n return this.req.readable;\n }\n\n get reqIntent() {\n return new Intent(this.reqPathSearchParamUrl);\n }\n\n reqHasContentTypeHeader(mime: Mimes | string): boolean {\n return (this.reqHeaderFirst(HttpHeaders.ContentType) ?? '').toLowerCase().indexOf(mime.toLocaleLowerCase()) > -1;\n }\n\n reqHasAcceptHeader(mime: Mimes | string): boolean {\n return (this.reqHeaderFirst(HttpHeaders.Accept) ?? '').toLowerCase().indexOf(mime.toLocaleLowerCase()) > -1;\n }\n\n reqBodyData(): Promise<Buffer> {\n return new Promise<Buffer>((resolve, reject) => {\n if (this.reqReadable) {\n const data: Uint8Array[] = [];\n this.req.on('data', (chunk) => data.push(chunk));\n this.req.on('error', err => reject(err));\n this.req.on('end', () => {\n this.reqBodyChunk = Buffer.concat(data);\n resolve(this.reqBodyChunk);\n });\n } else {\n resolve(this.reqBodyChunk ?? Buffer.alloc(0));\n }\n });\n }\n \n resBodyData(): string | Buffer | undefined{\n return this.resWriteChunk;\n }\n\n\n\n async reqBodyMultipartFormDataObject<T>(): Promise<T> {\n const m = await this.reqBodyMultipartFormData();\n const formData = {} as any;\n\n for (const it of m) {\n if (it.isFile) {\n formData[it.name] = await FileUtils.writeFile(it.value, {originalName: it.filename });\n } else {\n const target = formData[it.name];\n if (Array.isArray(target)) {\n target.push(it.value);\n } else if (typeof target === 'string') {\n formData[it.name] = [target, it.value]\n } else {\n formData[it.name] = it.value;\n }\n }\n };\n return formData;\n }\n\n reqBodyMultipartFormData(): Promise<MultipartData[]> {\n return new Promise((resolve, reject) => {\n const contentTypeHeader = this.req.headers['content-type'];\n if (!contentTypeHeader || !contentTypeHeader.startsWith('multipart/form-data')) {\n return reject(new Error('Invalid Content-Type. Expected multipart/form-data.'));\n }\n\n const boundaryMatch = contentTypeHeader.match(/boundary=(?:\"([^\"]+)\"|([^;]+))/i);\n if (!boundaryMatch) {\n return reject(new Error('Boundary not found in Content-Type header.'));\n }\n const boundary = boundaryMatch[1] || boundaryMatch[2]; // \uB530\uC634\uD45C \uC720\uBB34 \uCC98\uB9AC\n if (!boundary) {\n return reject(new Error('Failed to extract boundary.'));\n }\n\n const boundaryBuffer = Buffer.from(`--${boundary}`);\n const crlfBuffer = Buffer.from('\\r\\n');\n const doubleCrlfBuffer = Buffer.from('\\r\\n\\r\\n'); // \uD5E4\uB354\uC640 \uBC14\uB514 \uAD6C\uBD84\uC790\n\n const chunks: Buffer[] = [];\n let totalLength = 0;\n\n this.req.on('data', (chunk: Buffer) => {\n chunks.push(chunk);\n totalLength += chunk.length;\n });\n\n this.req.on('error', (err) => {\n reject(err);\n });\n\n this.req.on('end', () => {\n if (totalLength === 0) {\n return resolve([]); // \uBE48 \uC694\uCCAD \uCC98\uB9AC\n }\n\n const fullBuffer = Buffer.concat(chunks, totalLength);\n const parsedParts: MultipartData[] = [];\n let currentPosition = 0;\n\n // \uCCAB \uBC88\uC9F8 boundary \uCC3E\uAE30 (\uBCF4\uD1B5 \uC2DC\uC791 \uBD80\uBD84\uC5D0 \uC788\uC74C)\n let boundaryStartIndex = fullBuffer.indexOf(boundaryBuffer, currentPosition);\n if (boundaryStartIndex === -1) {\n return reject(new Error('Initial boundary not found.'));\n }\n // boundary \uBC14\uB85C \uB2E4\uC74C \\r\\n \uAC74\uB108\uB6F0\uAE30\n currentPosition = boundaryStartIndex + boundaryBuffer.length;\n if (fullBuffer.slice(currentPosition, currentPosition + crlfBuffer.length).equals(crlfBuffer)) {\n currentPosition += crlfBuffer.length;\n }\n\n\n while (currentPosition < fullBuffer.length) {\n // \uB2E4\uC74C boundary \uCC3E\uAE30 (\uD30C\uD2B8\uC758 \uB05D)\n const nextBoundaryIndex = fullBuffer.indexOf(boundaryBuffer, currentPosition);\n if (nextBoundaryIndex === -1) {\n // \uB9C8\uC9C0\uB9C9 boundary (--)\uC778\uC9C0 \uD655\uC778 \uD544\uC694\uD558\uB098, \uC5EC\uAE30\uC11C\uB294 \uB2E8\uC21C\uD558\uAC8C \uCC98\uB9AC\n // console.warn('Next boundary not found, assuming end of data or malformed.');\n break;\n }\n\n // \uD604\uC7AC \uD30C\uD2B8 \uB370\uC774\uD130 \uCD94\uCD9C (boundary \uC774\uC804\uAE4C\uC9C0)\n // \uC2E4\uC81C \uD30C\uD2B8 \uB370\uC774\uD130\uB294 \uB2E4\uC74C boundary \uBC14\uB85C \uC55E\uC758 \\r\\n\uC744 \uC81C\uC678\uD574\uC57C \uD568\n let partEndIndex = nextBoundaryIndex;\n if (partEndIndex > crlfBuffer.length && fullBuffer.slice(partEndIndex - crlfBuffer.length, partEndIndex).equals(crlfBuffer)) {\n partEndIndex -= crlfBuffer.length;\n }\n const partBuffer = fullBuffer.slice(currentPosition, partEndIndex);\n\n // \uD5E4\uB354\uC640 \uBC14\uB514 \uBD84\uB9AC\n const headerBodySeparatorIndex = partBuffer.indexOf(doubleCrlfBuffer);\n if (headerBodySeparatorIndex === -1) {\n console.warn('Skipping malformed part: no header/body separator found.');\n currentPosition = nextBoundaryIndex + boundaryBuffer.length;\n if (fullBuffer.slice(currentPosition, currentPosition + crlfBuffer.length).equals(crlfBuffer)) {\n currentPosition += crlfBuffer.length;\n }\n if (fullBuffer.slice(currentPosition, currentPosition + 2).toString() === '--') break; // \uB9C8\uC9C0\uB9C9 boundary\n continue;\n }\n\n const headerBuffer = partBuffer.slice(0, headerBodySeparatorIndex);\n const bodyBuffer = partBuffer.slice(headerBodySeparatorIndex + doubleCrlfBuffer.length);\n const headersStr = headerBuffer.toString('utf-8'); // \uD5E4\uB354\uB294 \uBCF4\uD1B5 ASCII/UTF-8\n\n // \uD5E4\uB354 \uD30C\uC2F1\n const headers: { [key: string]: string } = {};\n headersStr.split('\\r\\n').forEach(line => {\n const colonIndex = line.indexOf(':');\n if (colonIndex > 0) {\n const key = line.substring(0, colonIndex).trim().toLowerCase();\n const value = line.substring(colonIndex + 1).trim();\n headers[key] = value;\n }\n });\n\n const contentDisposition = headers['content-disposition'];\n if (!contentDisposition) {\n console.warn('Skipping part: no Content-Disposition header.');\n currentPosition = nextBoundaryIndex + boundaryBuffer.length;\n if (fullBuffer.slice(currentPosition, currentPosition + crlfBuffer.length).equals(crlfBuffer)) {\n currentPosition += crlfBuffer.length;\n }\n if (fullBuffer.slice(currentPosition, currentPosition + 2).toString() === '--') break;\n continue;\n }\n\n const nameMatch = contentDisposition.match(/name=\"([^\"]+)\"/i);\n const filenameMatch = contentDisposition.match(/filename=\"([^\"]+)\"/i);\n\n const name = nameMatch ? nameMatch[1] : null;\n const filename = filenameMatch ? filenameMatch[1] : null;\n const contentType = headers['content-type'] || null;\n\n if (name) {\n\n const isFile = !!filename;\n // @ts-ignore\n const multipartData:MultipartData = {\n name:name,\n isFile: isFile, // filename\uC774 \uC788\uC73C\uBA74 \uD30C\uC77C\uB85C \uAC04\uC8FC\n filename: filename,\n contentType: contentType,\n value: isFile ? bodyBuffer: bodyBuffer.toString('utf-8'),\n }\n parsedParts.push(multipartData);\n } else {\n console.warn(\"Skipping part: 'name' not found in Content-Disposition.\");\n }\n\n // \uB2E4\uC74C \uD30C\uD2B8 \uC2DC\uC791 \uC704\uCE58\uB85C \uC774\uB3D9\n currentPosition = nextBoundaryIndex + boundaryBuffer.length;\n // boundary \uBC14\uB85C \uB2E4\uC74C \\r\\n \uAC74\uB108\uB6F0\uAE30\n if (fullBuffer.slice(currentPosition, currentPosition + crlfBuffer.length).equals(crlfBuffer)) {\n currentPosition += crlfBuffer.length;\n }\n\n // \uB9C8\uC9C0\uB9C9 boundary (--)\uC778\uC9C0 \uD655\uC778\uD558\uACE0 \uB8E8\uD504 \uC885\uB8CC\n if (fullBuffer.slice(currentPosition, currentPosition + 2).toString() === '--') {\n break;\n }\n }\n resolve(parsedParts);\n });\n })\n // const form = formidable({});\n // return new Promise((resolve, reject) => {\n // form.parse(this.req, (err, fields, files) => {\n // if (err) {\n // reject(err);\n // return;\n // }\n //\n // console.log('----', files)\n // // this.res.set('Content-Type', 'application/json');\n // // ctx.status = 200;\n // // ctx.state = { fields, files };\n // // ctx.body = JSON.stringify(ctx.state, null, 2);\n // resolve(' ' as any);\n // });\n // });\n\n // return new Promise<MultipartData<any>[]>((resolve, reject) => {\n //\n //\n // const contentType = this.req.headers['content-type'];\n // const boundary = contentType.split('boundary=')[1];\n //\n // let body: Uint8Array[] = [];\n // this.req.on('data', chunk => body.push(chunk));\n // this.req.on('end', async () => {\n // const buffer = Buffer.concat(body);\n // // Boundary\uB85C \uD30C\uD2B8 \uBD84\uB9AC\n // const parts = buffer.toString().split(`--${boundary}`).slice(1, -1);\n // let jsonData = {};\n // let fileData = null;\n //\n // for (let part of parts) {\n // const [headerPart, ...bodyParts] = part.split('\\r\\n\\r\\n');\n // const headers = headerPart.split('\\r\\n').reduce((acc, line) => {\n // const [key, value] = line.split(': ').map(s => s.trim().toLowerCase());\n // if (key) acc[key] = value;\n // return acc;\n // }, {});\n //\n // const content = bodyParts.join('\\r\\n\\r\\n').trim();\n // const disposition = headers['content-disposition'];\n // const name = disposition?.match(/name=\"([^\"]+)\"/)?.[1];\n // const filename = disposition?.match(/filename=\"([^\"]+)\"/)?.[1];\n //\n // if (filename) {\n // // \uD30C\uC77C \uB370\uC774\uD130 (Blob)\n // fileData = { filename, contentType: headers['content-type'], data: Buffer.from(content, 'binary') };\n // } else if (name) {\n // // \uD14D\uC2A4\uD2B8 \uB370\uC774\uD130\n // if (name === 'metadata') jsonData = JSON.parse(content);\n // }\n // }\n //\n // // \uD30C\uC77C \uC800\uC7A5\n // if (fileData) {\n //\n //\n //\n //\n // const uploadPath = this.config.option.fileUploadTempPath || os.tmpdir();\n // fs.mkdirSync(uploadPath, { recursive: true }); // \uD3F4\uB354\uAC00 \uC5C6\uC73C\uBA74 \uC0DD\uC131\n // const saveTempPath = `${uploadPath}/${RandomUtils.uuid4()}${fileData.filename}`;\n // console.log('saveTempPathsaveTempPath', saveTempPath)\n // await fs.promises.writeFile(saveTempPath, fileData.data);\n // this.res.writeHead(200, { 'Content-Type': 'application/json' });\n // this.res.end(JSON.stringify({ message: '\uC5C5\uB85C\uB4DC \uC131\uACF5', jsonData, filename: fileData?.filename }));\n // // const uploadPath = this.config.option.fileUploadTempPath ;\n // // fs.mkdirSync(uploadPath, { recursive: true }); // \uD3F4\uB354\uAC00 \uC5C6\uC73C\uBA74 \uC0DD\uC131\n // // await fs.writeFile(`${uploadPath}/${fileData.filename}`, fileData.data);\n // }\n // });\n // });\n }\n\n async reqBodyStringData(): Promise<string> {\n const data = (await this.reqBodyData()).toString()\n return data;\n }\n\n async reqBodyJsonData<T>(): Promise<T> {\n return JSON.parse(await this.reqBodyStringData());\n }\n\n async reqBodyFormUrlData<T>(): Promise<T> {\n const data = (await this.reqBodyStringData())\n const formData = {} as any;\n Array.from(new URLSearchParams(data).entries()).forEach(([k, v]) => {\n const target = formData[k];\n if (Array.isArray(target)) {\n target.push(v);\n } else if (typeof target === 'string') {\n formData[k] = [target, v]\n } else {\n formData[k] = v;\n }\n });\n return formData;\n }\n\n async reqBodyReqFormUrlBody() {\n const data = await this.reqBodyFormUrlData()\n return Object.assign(new ReqFormUrlBody(), data);\n }\n\n async reqBodyReqJsonBody(): Promise<ReqJsonBody> {\n const data = (await this.reqBodyStringData());\n return Object.assign(new ReqJsonBody(), data ? JSON.parse(data) : {})\n }\n\n // reqBodyReqMultipartFormBody(): Promise<ReqMultipartFormBody> {\n // return this.reqBodyMultipartFormData().then(it => new ReqMultipartFormBody(it))\n // }\n\n resBodyJsonData<T>(): (T | null) {\n const data = ConvertUtils.toString(this.resBodyData());\n return data ? JSON.parse(data) : null;\n }\n\n resBodyStringData() {\n return ConvertUtils.toString(this.resBodyData());\n }\n\n reqMethod() {\n return this.req.method?.toUpperCase();\n }\n\n reqHeader(key: HttpHeaders | string) {\n return this.req.headers[key.toLowerCase()];\n }\n\n get reqHost() {\n return this.reqHeaderFirst(HttpHeaders.Host)\n }\n\n get reqHeaderObj(): ReqHeader {\n const h = new ReqHeader();\n Object.entries(this.req.headers).forEach(([k, v]) => {\n h[k] = v;\n });\n return h;\n }\n\n reqHeaderFirst(key: HttpHeaders | string, defaultValue?: string) {\n const header = this.req.headers[key.toLowerCase()];\n if (header && Array.isArray(header)) {\n return header[0] ?? defaultValue;\n } else {\n return (header as string) ?? defaultValue;\n }\n }\n\n public reqAuthorizationHeader() {\n return this.reqHeaderFirst(HttpHeaders.Authorization);\n }\n\n reqRefreshTokenHeader() {\n return this.reqHeaderFirst(HttpHeaders.Authorization);\n }\n\n resStatusCode(code?: undefined): number;\n // eslint-disable-next-line no-dupe-class-members\n resStatusCode(code: number | HttpStatus): RequestResponseChain<number>;\n // eslint-disable-next-line no-dupe-class-members\n resStatusCode(code: number | undefined | HttpStatus): number | RequestResponseChain<number> {\n if (code) {\n this.res.statusCode = code;\n return new RequestResponseChain<number>(this.req, this.res, this.config, this.res.statusCode);\n } else {\n return this.res.statusCode;\n }\n }\n\n resHeader(key: HttpHeaders | string) {\n return this.res.getHeader(key.toLowerCase());\n }\n\n resHeaderFirst(key: HttpHeaders | string, defaultValue?: string) {\n const header = this.res.getHeader(key.toLowerCase());\n if (header && Array.isArray(header)) {\n return header[0] ?? defaultValue;\n } else {\n return header ?? defaultValue;\n }\n }\n\n async reqSession(): Promise<{ [key: string]: any }> {\n if (this.config.sessionManager) {\n return (await this.config.sessionManager.session(this)).dataSet.data;\n } else {\n return Promise.reject(new Error('Not SessionManager'));\n }\n }\n\n reqSessionSet(key: string, value: any): void {\n (this.reqSession as any)[key] = value;\n }\n\n reqSessionGet<T = any>(key: string): T | undefined {\n const session = this.reqSession as any;\n if (session) {\n return session[key] as T;\n }\n }\n\n resSetStatusCode(statusCode: number) {\n this.res.statusCode = statusCode;\n return this.createRequestResponseChain(this.res.statusCode);\n }\n\n // resEnd() {\n // this.res.end();\n // }\n\n // eslint-disable-next-line no-undef\n resWrite(chunk: string | Buffer | any, encoding: BufferEncoding = 'utf8') {\n this.resWriteChunk = chunk;\n return this.createRequestResponseChain(this.resWriteChunk);\n }\n\n // eslint-disable-next-line no-undef\n resWriteJson(chunk: any, encoding: BufferEncoding = 'utf8') {\n return this.resWrite(JSON.stringify(chunk), encoding);\n }\n\n resSetHeader(key: HttpHeaders | string, value: string | string[]) {\n return this.createRequestResponseChain(this.res.setHeader(key.toLowerCase(), value));\n }\n\n resAddHeader(key: HttpHeaders | string, value: string | string[]) {\n const existingValue = this.res.getHeader(key.toLowerCase());\n const newValue = Array.isArray(existingValue)\n ? existingValue.concat(value)\n : existingValue\n ? [existingValue.toString(), ...[].concat(value)]\n : value;\n return this.createRequestResponseChain(this.res.setHeader(key.toLowerCase(), newValue));\n }\n\n resSetHeaders(headers: { [key: string]: string | string[] }) {\n Object.entries(headers).forEach(([key, value]) => this.resSetHeader(key, value));\n return this.createRequestResponseChain();\n }\n\n resAddHeaders(headers: { [key: string]: string | string[] }) {\n Object.entries(headers).forEach(([key, value]) => this.resAddHeader(key, value));\n return this.createRequestResponseChain();\n }\n\n // \uB9C8\uC9C0\uB9C9 \uC885\uB8CC\uB420\uB54C \uD0C0\uB294\uAC70.\n private async resEndChunk() {\n const encoding = this.reqHeaderFirst(HttpHeaders.AcceptEncoding);\n let data = this.resWriteChunk;\n if (encoding?.includes('gzip')) {\n data = await gzip(data);\n this.resSetHeader(HttpHeaders.ContentEncoding, 'gzip');\n }\n this.res.end(data);\n }\n\n async resEnd(chunk?: string | Buffer) {\n this.resWriteChunk = chunk ?? this.resWriteChunk;\n if (this.req.readable) {\n await this.reqBodyData();\n await this.resEndChunk();\n } else {\n await this.resEndChunk();\n }\n }\n\n // writeContinue(callback?: () => void) {\n // this.res.writeContinue(callback);\n // return new RequestResponseChain(this.req, this.res);\n // }\n\n // reqWrite(chunk?: any) {\n // this.resWriteChunk = chunk;\n // // this.res.write(chunk);\n // return this.createRequestResponseChain();\n // }\n\n resWriteHead(statusCode: number, headers?: OutgoingHttpHeaders | OutgoingHttpHeader[] | { [key: string]: string | string[] }) {\n return this.createRequestResponseChain(this.res.writeHead(statusCode, headers));\n }\n resWriteHeadEnd(statusCode: number, headers?: OutgoingHttpHeaders | OutgoingHttpHeader[] | { [key: string]: string | string[] }) {\n this.createRequestResponseChain(this.res.writeHead(statusCode, headers));\n this.res.end();\n }\n\n resIsDone() {\n return this.res.finished || this.res.writableEnded || this.res.headersSent;\n // return new RequestResponseChain(this.req, this.res, this.res.finished || this.res.writableEnded);\n }\n\n createRequestResponseChain<T = any>(data?: T) {\n const requestResponseChain = new RequestResponseChain(this.req, this.res, this.config, data);\n requestResponseChain.resWriteChunk = this.resWriteChunk;\n requestResponseChain.reqBodyChunk = this.reqBodyChunk;\n return requestResponseChain;\n }\n\n // res.on(\"readable\", () => {\n // console.log('readable???')\n // });\n // res.on('complete', function (details) {\n // var size = details.req.bytes;\n // console.log('complete-->', size)\n // });\n // res.on('finish', function() {\n // console.log('finish??');\n // });\n // res.on('end', () => {\n // console.log('end--?')\n // });\n}\n\nexport class RequestResponseChain<T> extends RequestResponse {\n constructor(req: IncomingMessage, res: ServerResponse, config: Config, public result?: T) {\n super(req, res, config);\n }\n}", "export class ReqFormUrlBody {\n [key: string]: string | string[]\n}", "export class ReqJsonBody {\n [key: string]: any\n}", "import {IncomingHttpHeaders} from 'http';\n\nexport class ReqHeader implements IncomingHttpHeaders {\n [key: string]: string | string[] | undefined;\n\n 'accept-language': string | undefined;\n 'accept-patch': string | undefined;\n 'accept-ranges': string | undefined;\n 'access-control-allow-credentials': string | undefined;\n 'access-control-allow-headers': string | undefined;\n 'access-control-allow-methods': string | undefined;\n 'access-control-allow-origin': string | undefined;\n 'access-control-expose-headers': string | undefined;\n 'access-control-max-age': string | undefined;\n 'access-control-request-headers': string | undefined;\n 'access-control-request-method': string | undefined;\n 'alt-svc': string | undefined;\n 'cache-control': string | undefined;\n 'content-disposition': string | undefined;\n 'content-encoding': string | undefined;\n 'content-language': string | undefined;\n 'content-length': string | undefined;\n 'content-location': string | undefined;\n 'content-range': string | undefined;\n 'content-type': string | undefined;\n 'if-match': string | undefined;\n 'if-modified-since': string | undefined;\n 'if-none-match': string | undefined;\n 'if-unmodified-since': string | undefined;\n 'last-modified': string | undefined;\n 'proxy-authenticate': string | undefined;\n 'proxy-authorization': string | undefined;\n 'public-key-pins': string | undefined;\n 'retry-after': string | undefined;\n 'sec-websocket-accept': string | undefined;\n 'sec-websocket-extensions': string | undefined;\n 'sec-websocket-key': string | undefined;\n 'sec-websocket-protocol': string | undefined;\n 'sec-websocket-version': string | undefined;\n 'set-cookie': string[] | undefined;\n 'strict-transport-security': string | undefined;\n 'transfer-encoding': string | undefined;\n 'user-agent': string | undefined;\n 'www-authenticate': string | undefined;\n accept: string | undefined;\n age: string | undefined;\n allow: string | undefined;\n authorization: string | undefined;\n connection: string | undefined;\n cookie: string | undefined;\n date: string | undefined;\n etag: string | undefined;\n expect: string | undefined;\n expires: string | undefined;\n forwarded: string | undefined;\n from: string | undefined;\n host: string | undefined;\n location: string | undefined;\n origin: string | undefined;\n pragma: string | undefined;\n range: string | undefined;\n referer: string | undefined;\n tk: string | undefined;\n trailer: string | undefined;\n upgrade: string | undefined;\n vary: string | undefined;\n via: string | undefined;\n warning: string | undefined;\n}", "export class HeaderData<T> {\n constructor(public header: { [p: string]: [string] }, public data: T) {\n }\n}", "import fs from 'fs';\nimport path from 'path';\nimport mime from 'mime-types';\nimport { RequestResponse } from '../RequestResponse';\nimport { HttpStatus } from '../../codes/HttpStatus';\nimport { HttpHeaders } from '../../codes/HttpHeaders';\n\nexport class Resource {\n constructor(public path: string | RequestResponse | URL, public rootPath = process.cwd()) {\n }\n\n get absolutePath(): string {\n if (this.path instanceof RequestResponse) {\n return path.join(this.rootPath, this.path.reqUrlObj().pathname);\n } else if (this.path instanceof URL) {\n return path.join(this.rootPath, this.path.pathname);\n } else {\n return path.join(this.rootPath, this.path);\n }\n }\n\n get conTentType(): string {\n return mime.lookup(this.absolutePath).toString();\n }\n\n get data(): Promise<string> {\n const promise = new Promise<string>((resolve, reject) => {\n fs.readFile('', (error, fileBuffer) => {\n if (error) {\n reject(error);\n }\n const fileContent = fileBuffer.toString();\n resolve(fileContent);\n });\n });\n return promise;\n }\n\n async write(rr: RequestResponse) {\n rr.resStatusCode(HttpStatus.Ok);\n rr.resSetHeader(HttpHeaders.ContentType, this.conTentType);\n await rr.resEnd(fs.readFileSync(this.absolutePath));\n }\n}", "import {MultipartData} from '../MultipartData';\n\nexport class ReqMultipartFormBody {\n constructor(public field: MultipartData[] = []) {\n }\n}", "import jsonpatch, { Operation as JsonOperation } from 'fast-json-patch';\n// export enum OP {\n// test = 'test',\n// remove = 'remove',\n// add = 'add',\n// replace = 'replace',\n// move = 'move',\n// copy = 'copy',\n//\n// }\n// export type RequestPatchBody = {\n// op: OP;\n// path?: string;\n// from?: string;\n// value?: string | any[] | any;\n// }\nexport type Operation = JsonOperation;\nexport class PatchJson {\n constructor(private patch: Operation[]) {\n }\n\n apply(obj: any) {\n obj = jsonpatch.applyPatch(obj, this.patch).newDocument;\n return obj;\n // switch (this.body.op) {\n // case OP.test:\n // return obj[this.body.path!] === this.body.value;\n // case OP.remove:\n // delete obj[this.body.path!];\n // return true;\n // case OP.add:\n // obj[this.body.path!] = this.body.value;\n // return true;\n // case OP.replace:\n // obj[this.body.path!] = this.body.value;\n // return true;\n // case OP.move:\n // obj[this.body.path!] = obj[this.body.from!];\n // delete obj[this.body.from!];\n // return true;\n // case OP.copy:\n // obj[this.body.path!] = obj[this.body.from!];\n // return true;\n // }\n }\n}\n"],
5
- "mappings": "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",
6
- "names": ["import_ConvertUtils", "CoreConvertUtils", "mime", "path", "mime", "fs", "jsonpatch"]
3
+ "sources": ["../../../src/models/index.ts"],
4
+ "sourcesContent": ["export * from './RequestResponse';\nexport * from './datas/HeaderData';\nexport * from './datas/MultipartData';\nexport * from './datas/ReqHeader';\nexport * from './datas/Resource';\nexport * from './datas/body/ReqFormUrlBody';\nexport * from './datas/body/ReqJsonBody';\nexport * from './datas/body/ReqMultipartFormBody';\nexport * from './method/patch/PatchJson';\n"],
5
+ "mappings": ";;;;;;;;;;;;;;AAAA;AAAA;AAAA,2BAAc,8BAAd;AACA,2BAAc,+BADd;AAEA,2BAAc,kCAFd;AAGA,2BAAc,8BAHd;AAIA,2BAAc,6BAJd;AAKA,2BAAc,wCALd;AAMA,2BAAc,qCANd;AAOA,2BAAc,8CAPd;AAQA,2BAAc,qCARd;",
6
+ "names": []
7
7
  }
@@ -25,15 +25,13 @@ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__ge
25
25
  mod
26
26
  ));
27
27
  var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
28
-
29
- // src/models/method/patch/PatchJson.ts
30
28
  var PatchJson_exports = {};
31
29
  __export(PatchJson_exports, {
32
30
  PatchJson: () => PatchJson
33
31
  });
34
32
  module.exports = __toCommonJS(PatchJson_exports);
35
33
  var import_fast_json_patch = __toESM(require("fast-json-patch"), 1);
36
- var PatchJson = class {
34
+ class PatchJson {
37
35
  constructor(patch) {
38
36
  this.patch = patch;
39
37
  }
@@ -41,7 +39,7 @@ var PatchJson = class {
41
39
  obj = import_fast_json_patch.default.applyPatch(obj, this.patch).newDocument;
42
40
  return obj;
43
41
  }
44
- };
42
+ }
45
43
  // Annotate the CommonJS export names for ESM import in node:
46
44
  0 && (module.exports = {
47
45
  PatchJson
@@ -2,6 +2,6 @@
2
2
  "version": 3,
3
3
  "sources": ["../../../../../src/models/method/patch/PatchJson.ts"],
4
4
  "sourcesContent": ["import jsonpatch, { Operation as JsonOperation } from 'fast-json-patch';\n// export enum OP {\n// test = 'test',\n// remove = 'remove',\n// add = 'add',\n// replace = 'replace',\n// move = 'move',\n// copy = 'copy',\n//\n// }\n// export type RequestPatchBody = {\n// op: OP;\n// path?: string;\n// from?: string;\n// value?: string | any[] | any;\n// }\nexport type Operation = JsonOperation;\nexport class PatchJson {\n constructor(private patch: Operation[]) {\n }\n\n apply(obj: any) {\n obj = jsonpatch.applyPatch(obj, this.patch).newDocument;\n return obj;\n // switch (this.body.op) {\n // case OP.test:\n // return obj[this.body.path!] === this.body.value;\n // case OP.remove:\n // delete obj[this.body.path!];\n // return true;\n // case OP.add:\n // obj[this.body.path!] = this.body.value;\n // return true;\n // case OP.replace:\n // obj[this.body.path!] = this.body.value;\n // return true;\n // case OP.move:\n // obj[this.body.path!] = obj[this.body.from!];\n // delete obj[this.body.from!];\n // return true;\n // case OP.copy:\n // obj[this.body.path!] = obj[this.body.from!];\n // return true;\n // }\n }\n}\n"],
5
- "mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,6BAAsD;AAiB/C,IAAM,YAAN,MAAgB;AAAA,EACnB,YAAoB,OAAoB;AAApB;AAAA,EACpB;AAAA,EAEA,MAAM,KAAU;AACZ,UAAM,uBAAAA,QAAU,WAAW,KAAK,KAAK,KAAK,EAAE;AAC5C,WAAO;AAAA,EAqBX;AACJ;",
5
+ "mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,6BAAsD;AAiB/C,MAAM,UAAU;AAAA,EACnB,YAAoB,OAAoB;AAApB;AAAA,EACpB;AAAA,EAEA,MAAM,KAAU;AACZ,UAAM,uBAAAA,QAAU,WAAW,KAAK,KAAK,KAAK,EAAE;AAC5C,WAAO;AAAA,EAqBX;AACJ;",
6
6
  "names": ["jsonpatch"]
7
7
  }
@@ -15,25 +15,30 @@ var __copyProps = (to, from, except, desc) => {
15
15
  return to;
16
16
  };
17
17
  var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
18
-
19
- // src/option/HttpServerOption.ts
20
18
  var HttpServerOption_exports = {};
21
19
  __export(HttpServerOption_exports, {
22
20
  HttpServerOption: () => HttpServerOption
23
21
  });
24
22
  module.exports = __toCommonJS(HttpServerOption_exports);
25
23
  var import_SimOption = require("@dooboostore/simple-boot/SimOption");
26
- var HttpServerOption = class _HttpServerOption extends import_SimOption.SimOption {
27
- static {
28
- this.DEFAULT_PORT = 8081;
29
- }
30
- static {
31
- this.DEFAULT_HOSTNAME = "127.0.0.1";
32
- }
24
+ class HttpServerOption extends import_SimOption.SimOption {
25
+ static DEFAULT_PORT = 8081;
26
+ static DEFAULT_HOSTNAME = "127.0.0.1";
27
+ serverOption;
28
+ listen;
29
+ filters;
30
+ fileUploadTempPath;
31
+ requestEndPoints;
32
+ closeEndPoints;
33
+ errorEndPoints;
34
+ sessionOption;
35
+ globalAdvice;
36
+ noSuchRouteEndPointMappingThrow;
37
+ transactionManagerFactory;
33
38
  constructor({ serverOption, listen, filters, requestEndPoints, closeEndPoints, errorEndPoints, sessionOption, globalAdvice, fileUploadTempPath, noSuchRouteEndPointMappingThrow, transactionManagerFactory } = {}, initSimOption) {
34
39
  super(initSimOption);
35
40
  this.serverOption = serverOption;
36
- this.listen = Object.assign({ port: _HttpServerOption.DEFAULT_PORT, hostname: _HttpServerOption.DEFAULT_HOSTNAME }, listen);
41
+ this.listen = Object.assign({ port: HttpServerOption.DEFAULT_PORT, hostname: HttpServerOption.DEFAULT_HOSTNAME }, listen);
37
42
  this.filters = filters;
38
43
  this.requestEndPoints = requestEndPoints;
39
44
  this.closeEndPoints = closeEndPoints;
@@ -59,7 +64,7 @@ var HttpServerOption = class _HttpServerOption extends import_SimOption.SimOptio
59
64
  get isSecure() {
60
65
  return this.serverOption && "key" in this.serverOption && "cert" in this.serverOption;
61
66
  }
62
- };
67
+ }
63
68
  // Annotate the CommonJS export names for ESM import in node:
64
69
  0 && (module.exports = {
65
70
  HttpServerOption
@@ -2,6 +2,6 @@
2
2
  "version": 3,
3
3
  "sources": ["../../../src/option/HttpServerOption.ts"],
4
4
  "sourcesContent": ["import { InitOptionType, SimOption } from '@dooboostore/simple-boot/SimOption';\nimport { ConstructorType } from '@dooboostore/core/types';\nimport { Server as HttpServer, ServerOptions } from 'http';\nimport { Server as HttpsServer, ServerOptions as HttpsServerOption } from 'https';\nimport { Filter } from '../filters/Filter';\nimport { EndPoint } from '../endpoints/EndPoint';\nimport { RequestResponse } from '../models/RequestResponse';\nimport { SimpleBootHttpServer } from '../SimpleBootHttpServer';\nimport { TransactionManager } from '@dooboostore/core/transaction/TransactionManager';\n\nexport type Listen = { port?: number, hostname?: string, backlog?: number, listeningListener?: (server: SimpleBootHttpServer, httpServer: HttpServer | HttpsServer) => void };\n\nexport interface ListenData extends Listen {\n port: number;\n hostname: string;\n}\n\nexport class HttpServerOption extends SimOption {\n public static readonly DEFAULT_PORT = 8081;\n public static readonly DEFAULT_HOSTNAME = '127.0.0.1';\n public serverOption?: ServerOptions | HttpsServerOption;\n public listen: ListenData;\n public filters?: (Filter | ConstructorType<Filter>)[];\n public fileUploadTempPath?: string;\n public requestEndPoints?: (EndPoint | ConstructorType<EndPoint>)[];\n public closeEndPoints?: (EndPoint | ConstructorType<EndPoint>)[];\n public errorEndPoints?: (EndPoint | ConstructorType<EndPoint>)[];\n public sessionOption: { key: string, expiredTime: number, provider?: { uuids: () => Promise<string[]>, delete: (uuid: string) => Promise<void>, get: (uuid: string) => Promise<{ access: number, data?: any }>, set: (uuid: string, data: { access: number, data?: any }) => Promise<void> } };\n public globalAdvice?: any | ConstructorType<any>;\n public noSuchRouteEndPointMappingThrow?: (rr: RequestResponse) => any;\n public transactionManagerFactory?: () => TransactionManager;\n\n constructor({serverOption, listen, filters, requestEndPoints, closeEndPoints, errorEndPoints, sessionOption, globalAdvice, fileUploadTempPath,noSuchRouteEndPointMappingThrow, transactionManagerFactory}: {\n serverOption?: ServerOptions | HttpsServerOption,\n listen?: Listen,\n filters?: (Filter | ConstructorType<Filter>)[],\n requestEndPoints?: (EndPoint | ConstructorType<EndPoint>)[],\n closeEndPoints?: (EndPoint | ConstructorType<EndPoint>)[],\n errorEndPoints?: (EndPoint | ConstructorType<EndPoint>)[],\n sessionOption?: { key?: string, expiredTime?: number, provider?: { uuids: () => Promise<string[]>, delete: (uuid: string) => Promise<void>, get: (uuid: string) => Promise<{ access: number, data?: any }>, set: (uuid: string, data: { access: number, data?: any }) => Promise<void> } },\n globalAdvice?: any | ConstructorType<any>,\n fileUploadTempPath?: string,\n noSuchRouteEndPointMappingThrow?: (rr: RequestResponse) => any,\n transactionManagerFactory?: () => TransactionManager\n } = {}, initSimOption?: InitOptionType) {\n super(initSimOption);\n this.serverOption = serverOption;\n this.listen = Object.assign({port: HttpServerOption.DEFAULT_PORT, hostname: HttpServerOption.DEFAULT_HOSTNAME}, listen);\n this.filters = filters;\n this.requestEndPoints = requestEndPoints;\n this.closeEndPoints = closeEndPoints;\n this.errorEndPoints = errorEndPoints;\n this.sessionOption = Object.assign({key: 'SBSESSIONID', expiredTime: 1000 * 60 * 30}, sessionOption);\n this.globalAdvice = globalAdvice;\n this.fileUploadTempPath=fileUploadTempPath;\n this.noSuchRouteEndPointMappingThrow = noSuchRouteEndPointMappingThrow;\n this.transactionManagerFactory = transactionManagerFactory;\n }\n\n get hostname() {\n return this.listen.hostname;\n }\n\n get port() {\n return this.listen.port;\n }\n\n get protocol() {\n return this.isSecure ? 'https' : 'http';\n }\n\n get address() {\n return `${this.protocol}://${this.hostname}:${this.port}`;\n }\n\n get isSecure() {\n return this.serverOption && 'key' in this.serverOption && 'cert' in this.serverOption;\n }\n \n \n}\n"],
5
- "mappings": ";;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,uBAA0C;AAiBnC,IAAM,mBAAN,MAAM,0BAAyB,2BAAU;AAAA,EAC9C;AAAA,SAAuB,eAAe;AAAA;AAAA,EACtC;AAAA,SAAuB,mBAAmB;AAAA;AAAA,EAa1C,YAAY,EAAC,cAAc,QAAQ,SAAS,kBAAkB,gBAAgB,gBAAgB,eAAe,cAAc,oBAAmB,iCAAiC,0BAAyB,IAYpM,CAAC,GAAG,eAAgC;AACtC,UAAM,aAAa;AACnB,SAAK,eAAe;AACpB,SAAK,SAAS,OAAO,OAAO,EAAC,MAAM,kBAAiB,cAAc,UAAU,kBAAiB,iBAAgB,GAAG,MAAM;AACtH,SAAK,UAAU;AACf,SAAK,mBAAmB;AACxB,SAAK,iBAAiB;AACtB,SAAK,iBAAiB;AACtB,SAAK,gBAAgB,OAAO,OAAO,EAAC,KAAK,eAAe,aAAa,MAAO,KAAK,GAAE,GAAG,aAAa;AACnG,SAAK,eAAe;AACpB,SAAK,qBAAmB;AACxB,SAAK,kCAAkC;AACvC,SAAK,4BAA4B;AAAA,EACnC;AAAA,EAEA,IAAI,WAAW;AACb,WAAO,KAAK,OAAO;AAAA,EACrB;AAAA,EAEA,IAAI,OAAO;AACT,WAAO,KAAK,OAAO;AAAA,EACrB;AAAA,EAEA,IAAI,WAAW;AACb,WAAO,KAAK,WAAW,UAAU;AAAA,EACnC;AAAA,EAEA,IAAI,UAAU;AACZ,WAAO,GAAG,KAAK,QAAQ,MAAM,KAAK,QAAQ,IAAI,KAAK,IAAI;AAAA,EACzD;AAAA,EAEA,IAAI,WAAW;AACb,WAAO,KAAK,gBAAiB,SAAS,KAAK,gBAAgB,UAAU,KAAK;AAAA,EAC5E;AAGF;",
5
+ "mappings": ";;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,uBAA0C;AAiBnC,MAAM,yBAAyB,2BAAU;AAAA,EAC9C,OAAuB,eAAe;AAAA,EACtC,OAAuB,mBAAmB;AAAA,EACnC;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EAEP,YAAY,EAAC,cAAc,QAAQ,SAAS,kBAAkB,gBAAgB,gBAAgB,eAAe,cAAc,oBAAmB,iCAAiC,0BAAyB,IAYpM,CAAC,GAAG,eAAgC;AACtC,UAAM,aAAa;AACnB,SAAK,eAAe;AACpB,SAAK,SAAS,OAAO,OAAO,EAAC,MAAM,iBAAiB,cAAc,UAAU,iBAAiB,iBAAgB,GAAG,MAAM;AACtH,SAAK,UAAU;AACf,SAAK,mBAAmB;AACxB,SAAK,iBAAiB;AACtB,SAAK,iBAAiB;AACtB,SAAK,gBAAgB,OAAO,OAAO,EAAC,KAAK,eAAe,aAAa,MAAO,KAAK,GAAE,GAAG,aAAa;AACnG,SAAK,eAAe;AACpB,SAAK,qBAAmB;AACxB,SAAK,kCAAkC;AACvC,SAAK,4BAA4B;AAAA,EACnC;AAAA,EAEA,IAAI,WAAW;AACb,WAAO,KAAK,OAAO;AAAA,EACrB;AAAA,EAEA,IAAI,OAAO;AACT,WAAO,KAAK,OAAO;AAAA,EACrB;AAAA,EAEA,IAAI,WAAW;AACb,WAAO,KAAK,WAAW,UAAU;AAAA,EACnC;AAAA,EAEA,IAAI,UAAU;AACZ,WAAO,GAAG,KAAK,QAAQ,MAAM,KAAK,QAAQ,IAAI,KAAK,IAAI;AAAA,EACzD;AAAA,EAEA,IAAI,WAAW;AACb,WAAO,KAAK,gBAAiB,SAAS,KAAK,gBAAgB,UAAU,KAAK;AAAA,EAC5E;AAGF;",
6
6
  "names": []
7
7
  }
@@ -2,10 +2,6 @@ var __defProp = Object.defineProperty;
2
2
  var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
3
3
  var __getOwnPropNames = Object.getOwnPropertyNames;
4
4
  var __hasOwnProp = Object.prototype.hasOwnProperty;
5
- var __export = (target, all) => {
6
- for (var name in all)
7
- __defProp(target, name, { get: all[name], enumerable: true });
8
- };
9
5
  var __copyProps = (to, from, except, desc) => {
10
6
  if (from && typeof from === "object" || typeof from === "function") {
11
7
  for (let key of __getOwnPropNames(from))
@@ -14,56 +10,13 @@ var __copyProps = (to, from, except, desc) => {
14
10
  }
15
11
  return to;
16
12
  };
13
+ var __reExport = (target, mod, secondTarget) => (__copyProps(target, mod, "default"), secondTarget && __copyProps(secondTarget, mod, "default"));
17
14
  var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
18
-
19
- // src/option/index.ts
20
15
  var option_exports = {};
21
- __export(option_exports, {
22
- HttpServerOption: () => HttpServerOption
23
- });
24
16
  module.exports = __toCommonJS(option_exports);
25
-
26
- // src/option/HttpServerOption.ts
27
- var import_SimOption = require("@dooboostore/simple-boot/SimOption");
28
- var HttpServerOption = class _HttpServerOption extends import_SimOption.SimOption {
29
- static {
30
- this.DEFAULT_PORT = 8081;
31
- }
32
- static {
33
- this.DEFAULT_HOSTNAME = "127.0.0.1";
34
- }
35
- constructor({ serverOption, listen, filters, requestEndPoints, closeEndPoints, errorEndPoints, sessionOption, globalAdvice, fileUploadTempPath, noSuchRouteEndPointMappingThrow, transactionManagerFactory } = {}, initSimOption) {
36
- super(initSimOption);
37
- this.serverOption = serverOption;
38
- this.listen = Object.assign({ port: _HttpServerOption.DEFAULT_PORT, hostname: _HttpServerOption.DEFAULT_HOSTNAME }, listen);
39
- this.filters = filters;
40
- this.requestEndPoints = requestEndPoints;
41
- this.closeEndPoints = closeEndPoints;
42
- this.errorEndPoints = errorEndPoints;
43
- this.sessionOption = Object.assign({ key: "SBSESSIONID", expiredTime: 1e3 * 60 * 30 }, sessionOption);
44
- this.globalAdvice = globalAdvice;
45
- this.fileUploadTempPath = fileUploadTempPath;
46
- this.noSuchRouteEndPointMappingThrow = noSuchRouteEndPointMappingThrow;
47
- this.transactionManagerFactory = transactionManagerFactory;
48
- }
49
- get hostname() {
50
- return this.listen.hostname;
51
- }
52
- get port() {
53
- return this.listen.port;
54
- }
55
- get protocol() {
56
- return this.isSecure ? "https" : "http";
57
- }
58
- get address() {
59
- return `${this.protocol}://${this.hostname}:${this.port}`;
60
- }
61
- get isSecure() {
62
- return this.serverOption && "key" in this.serverOption && "cert" in this.serverOption;
63
- }
64
- };
17
+ __reExport(option_exports, require("./HttpServerOption"), module.exports);
65
18
  // Annotate the CommonJS export names for ESM import in node:
66
19
  0 && (module.exports = {
67
- HttpServerOption
20
+ ...require("./HttpServerOption")
68
21
  });
69
22
  //# sourceMappingURL=index.js.map
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
- "sources": ["../../../src/option/index.ts", "../../../src/option/HttpServerOption.ts"],
4
- "sourcesContent": ["export * from './HttpServerOption';\n", "import { InitOptionType, SimOption } from '@dooboostore/simple-boot/SimOption';\nimport { ConstructorType } from '@dooboostore/core/types';\nimport { Server as HttpServer, ServerOptions } from 'http';\nimport { Server as HttpsServer, ServerOptions as HttpsServerOption } from 'https';\nimport { Filter } from '../filters/Filter';\nimport { EndPoint } from '../endpoints/EndPoint';\nimport { RequestResponse } from '../models/RequestResponse';\nimport { SimpleBootHttpServer } from '../SimpleBootHttpServer';\nimport { TransactionManager } from '@dooboostore/core/transaction/TransactionManager';\n\nexport type Listen = { port?: number, hostname?: string, backlog?: number, listeningListener?: (server: SimpleBootHttpServer, httpServer: HttpServer | HttpsServer) => void };\n\nexport interface ListenData extends Listen {\n port: number;\n hostname: string;\n}\n\nexport class HttpServerOption extends SimOption {\n public static readonly DEFAULT_PORT = 8081;\n public static readonly DEFAULT_HOSTNAME = '127.0.0.1';\n public serverOption?: ServerOptions | HttpsServerOption;\n public listen: ListenData;\n public filters?: (Filter | ConstructorType<Filter>)[];\n public fileUploadTempPath?: string;\n public requestEndPoints?: (EndPoint | ConstructorType<EndPoint>)[];\n public closeEndPoints?: (EndPoint | ConstructorType<EndPoint>)[];\n public errorEndPoints?: (EndPoint | ConstructorType<EndPoint>)[];\n public sessionOption: { key: string, expiredTime: number, provider?: { uuids: () => Promise<string[]>, delete: (uuid: string) => Promise<void>, get: (uuid: string) => Promise<{ access: number, data?: any }>, set: (uuid: string, data: { access: number, data?: any }) => Promise<void> } };\n public globalAdvice?: any | ConstructorType<any>;\n public noSuchRouteEndPointMappingThrow?: (rr: RequestResponse) => any;\n public transactionManagerFactory?: () => TransactionManager;\n\n constructor({serverOption, listen, filters, requestEndPoints, closeEndPoints, errorEndPoints, sessionOption, globalAdvice, fileUploadTempPath,noSuchRouteEndPointMappingThrow, transactionManagerFactory}: {\n serverOption?: ServerOptions | HttpsServerOption,\n listen?: Listen,\n filters?: (Filter | ConstructorType<Filter>)[],\n requestEndPoints?: (EndPoint | ConstructorType<EndPoint>)[],\n closeEndPoints?: (EndPoint | ConstructorType<EndPoint>)[],\n errorEndPoints?: (EndPoint | ConstructorType<EndPoint>)[],\n sessionOption?: { key?: string, expiredTime?: number, provider?: { uuids: () => Promise<string[]>, delete: (uuid: string) => Promise<void>, get: (uuid: string) => Promise<{ access: number, data?: any }>, set: (uuid: string, data: { access: number, data?: any }) => Promise<void> } },\n globalAdvice?: any | ConstructorType<any>,\n fileUploadTempPath?: string,\n noSuchRouteEndPointMappingThrow?: (rr: RequestResponse) => any,\n transactionManagerFactory?: () => TransactionManager\n } = {}, initSimOption?: InitOptionType) {\n super(initSimOption);\n this.serverOption = serverOption;\n this.listen = Object.assign({port: HttpServerOption.DEFAULT_PORT, hostname: HttpServerOption.DEFAULT_HOSTNAME}, listen);\n this.filters = filters;\n this.requestEndPoints = requestEndPoints;\n this.closeEndPoints = closeEndPoints;\n this.errorEndPoints = errorEndPoints;\n this.sessionOption = Object.assign({key: 'SBSESSIONID', expiredTime: 1000 * 60 * 30}, sessionOption);\n this.globalAdvice = globalAdvice;\n this.fileUploadTempPath=fileUploadTempPath;\n this.noSuchRouteEndPointMappingThrow = noSuchRouteEndPointMappingThrow;\n this.transactionManagerFactory = transactionManagerFactory;\n }\n\n get hostname() {\n return this.listen.hostname;\n }\n\n get port() {\n return this.listen.port;\n }\n\n get protocol() {\n return this.isSecure ? 'https' : 'http';\n }\n\n get address() {\n return `${this.protocol}://${this.hostname}:${this.port}`;\n }\n\n get isSecure() {\n return this.serverOption && 'key' in this.serverOption && 'cert' in this.serverOption;\n }\n \n \n}\n"],
5
- "mappings": ";;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;;;ACAA,uBAA0C;AAiBnC,IAAM,mBAAN,MAAM,0BAAyB,2BAAU;AAAA,EAC9C;AAAA,SAAuB,eAAe;AAAA;AAAA,EACtC;AAAA,SAAuB,mBAAmB;AAAA;AAAA,EAa1C,YAAY,EAAC,cAAc,QAAQ,SAAS,kBAAkB,gBAAgB,gBAAgB,eAAe,cAAc,oBAAmB,iCAAiC,0BAAyB,IAYpM,CAAC,GAAG,eAAgC;AACtC,UAAM,aAAa;AACnB,SAAK,eAAe;AACpB,SAAK,SAAS,OAAO,OAAO,EAAC,MAAM,kBAAiB,cAAc,UAAU,kBAAiB,iBAAgB,GAAG,MAAM;AACtH,SAAK,UAAU;AACf,SAAK,mBAAmB;AACxB,SAAK,iBAAiB;AACtB,SAAK,iBAAiB;AACtB,SAAK,gBAAgB,OAAO,OAAO,EAAC,KAAK,eAAe,aAAa,MAAO,KAAK,GAAE,GAAG,aAAa;AACnG,SAAK,eAAe;AACpB,SAAK,qBAAmB;AACxB,SAAK,kCAAkC;AACvC,SAAK,4BAA4B;AAAA,EACnC;AAAA,EAEA,IAAI,WAAW;AACb,WAAO,KAAK,OAAO;AAAA,EACrB;AAAA,EAEA,IAAI,OAAO;AACT,WAAO,KAAK,OAAO;AAAA,EACrB;AAAA,EAEA,IAAI,WAAW;AACb,WAAO,KAAK,WAAW,UAAU;AAAA,EACnC;AAAA,EAEA,IAAI,UAAU;AACZ,WAAO,GAAG,KAAK,QAAQ,MAAM,KAAK,QAAQ,IAAI,KAAK,IAAI;AAAA,EACzD;AAAA,EAEA,IAAI,WAAW;AACb,WAAO,KAAK,gBAAiB,SAAS,KAAK,gBAAgB,UAAU,KAAK;AAAA,EAC5E;AAGF;",
3
+ "sources": ["../../../src/option/index.ts"],
4
+ "sourcesContent": ["export * from './HttpServerOption';\n"],
5
+ "mappings": ";;;;;;;;;;;;;;AAAA;AAAA;AAAA,2BAAc,+BAAd;",
6
6
  "names": []
7
7
  }
@@ -11,8 +11,6 @@ var __copyProps = (to, from, except, desc) => {
11
11
  return to;
12
12
  };
13
13
  var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
14
-
15
- // src/resolvers/Resolver.ts
16
14
  var Resolver_exports = {};
17
15
  module.exports = __toCommonJS(Resolver_exports);
18
16
  //# sourceMappingURL=Resolver.js.map
@@ -2,6 +2,6 @@
2
2
  "version": 3,
3
3
  "sources": ["../../../src/resolvers/Resolver.ts"],
4
4
  "sourcesContent": ["import {RequestResponse} from '../models/RequestResponse';\n\nexport interface Resolver<T = any> {\n resolve(data: T, rr: RequestResponse): Promise<void>;\n}\n"],
5
- "mappings": ";;;;;;;;;;;;;;;AAAA;AAAA;",
5
+ "mappings": ";;;;;;;;;;;;;AAAA;AAAA;",
6
6
  "names": []
7
7
  }