@dooboostore/simple-boot-http-server 1.0.27 → 1.0.28
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.
- package/README.md +44 -9
- package/dist/cjs/SimpleBootHttpServer.js +15 -2
- package/dist/cjs/SimpleBootHttpServer.js.map +2 -2
- package/dist/cjs/decorators/MethodMapping.js.map +2 -2
- package/dist/cjs/models/RequestResponse.js +52 -0
- package/dist/cjs/models/RequestResponse.js.map +3 -3
- package/dist/cjs/proxy/RequestResponseInjectProxy.js +35 -0
- package/dist/cjs/proxy/RequestResponseInjectProxy.js.map +7 -0
- package/dist/cjs/proxy/SymbolIntentApiServiceProxy.js +1 -1
- package/dist/cjs/proxy/SymbolIntentApiServiceProxy.js.map +2 -2
- package/dist/cjs/proxy/index.js +3 -1
- package/dist/cjs/proxy/index.js.map +2 -2
- package/dist/cjs/resolvers/Resolver.js.map +1 -1
- package/dist/esm/SimpleBootHttpServer.js +16 -3
- package/dist/esm/SimpleBootHttpServer.js.map +2 -2
- package/dist/esm/decorators/MethodMapping.js.map +2 -2
- package/dist/esm/models/RequestResponse.js +52 -0
- package/dist/esm/models/RequestResponse.js.map +2 -2
- package/dist/esm/proxy/RequestResponseInjectProxy.js +12 -0
- package/dist/esm/proxy/RequestResponseInjectProxy.js.map +7 -0
- package/dist/esm/proxy/SymbolIntentApiServiceProxy.js +1 -1
- package/dist/esm/proxy/SymbolIntentApiServiceProxy.js.map +2 -2
- package/dist/esm/proxy/index.js +1 -0
- package/dist/esm/proxy/index.js.map +2 -2
- package/dist/esm-bundle/dooboostore-simple-boot-http-server.esm.js +295 -252
- package/dist/esm-bundle/dooboostore-simple-boot-http-server.esm.js.map +4 -4
- package/dist/types/SimpleBootHttpServer.d.ts.map +1 -1
- package/dist/types/decorators/MethodMapping.d.ts +13 -16
- package/dist/types/decorators/MethodMapping.d.ts.map +1 -1
- package/dist/types/models/RequestResponse.d.ts +9 -0
- package/dist/types/models/RequestResponse.d.ts.map +1 -1
- package/dist/types/proxy/RequestResponseInjectProxy.d.ts +22 -0
- package/dist/types/proxy/RequestResponseInjectProxy.d.ts.map +1 -0
- package/dist/types/proxy/index.d.ts +1 -0
- package/dist/types/proxy/index.d.ts.map +1 -1
- package/dist/types/resolvers/Resolver.d.ts +2 -1
- package/dist/types/resolvers/Resolver.d.ts.map +1 -1
- package/dist/umd-bundle/dooboostore-simple-boot-http-server.umd.js +295 -252
- package/dist/umd-bundle/dooboostore-simple-boot-http-server.umd.js.map +4 -4
- package/dist/umd-bundle/websocket-client.umd.js +106 -140
- package/dist/umd-bundle/websocket-client.umd.js.map +2 -2
- package/package.json +7 -7
- package/src/SimpleBootHttpServer.ts +19 -3
- package/src/decorators/MethodMapping.ts +151 -159
- package/src/models/RequestResponse.ts +50 -0
- package/src/proxy/RequestResponseInjectProxy.ts +30 -0
- package/src/proxy/SymbolIntentApiServiceProxy.ts +1 -1
- package/src/proxy/index.ts +1 -0
- package/src/resolvers/Resolver.ts +2 -1
|
@@ -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 | {\n status?: number;\n header?: {[key: string]: string};\n contentType?: Mimes | string;\n manual?: false;\n }\n /**\n * manual: true \u2014 \uB9AC\uD134\uAC12\uC744 \uC774\uC6A9\uD55C \uC790\uB3D9 status/header/body \uCC98\uB9AC(\uBC0F resolver \uD638\uCD9C)\uB97C \uAC74\uB108\uB6F4\uB2E4.\n * SSE \uB4F1 \uD578\uB4E4\uB7EC\uAC00 ServerResponse\uB97C \uC9C1\uC811 \uC8FC\uC785\uBC1B\uC544 writeHead/write/end\uB97C \uC2A4\uC2A4\uB85C \uC81C\uC5B4\uD558\uB294 \uACBD\uC6B0 \uC0AC\uC6A9.\n */\n | { manual: true };\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.PATCH);\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.HEAD);\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": "AAEA,SAAS,oBAAoB;AAG7B,SAAS,kBAAkB;AAEpB,IAAK,0BAAL,kBAAKA,6BAAL;
|
|
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 RequestMappingConfig = {\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};\nexport type ResponseMappingConfig = {\n status?: number;\n header?: { [key: string]: string };\n contentType?: Mimes | string;\n};\nexport type MappingConfig = (RequestMappingConfig & { res?: ResponseMappingConfig; resolver?: Resolver | ConstructorType<Resolver> }) | (RequestMappingConfig & { res: 'manual' });\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.PATCH);\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.HEAD);\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
|
}
|
|
@@ -6,6 +6,7 @@ import { ReqFormUrlBody } from "./datas/body/ReqFormUrlBody.js";
|
|
|
6
6
|
import { ReqJsonBody } from "./datas/body/ReqJsonBody.js";
|
|
7
7
|
import { ReqHeader } from "./datas/ReqHeader.js";
|
|
8
8
|
import { gzip } from "node-gzip";
|
|
9
|
+
import { createGzip, constants as zlibConstants } from "zlib";
|
|
9
10
|
import { Blob } from "node:buffer";
|
|
10
11
|
import { FileUtils } from "@dooboostore/core-node";
|
|
11
12
|
import { ConvertUtils as CoreConvertUtils } from "@dooboostore/core";
|
|
@@ -447,6 +448,57 @@ class RequestResponse {
|
|
|
447
448
|
this.createRequestResponseChain(this.res.writeHead(statusCode, headers));
|
|
448
449
|
this.res.end();
|
|
449
450
|
}
|
|
451
|
+
/**
|
|
452
|
+
* 헤더를 즉시 보내고, source 가 내놓는 값을 하나씩 바로 body 에 쓴 뒤 end.
|
|
453
|
+
* (SSE / 스트리밍 응답용. resWrite 는 버퍼링 후 resEnd 에서 한 번에 보내므로 스트리밍 불가)
|
|
454
|
+
* - 문자열/Buffer 는 그대로, 그 외는 JSON.stringify
|
|
455
|
+
* - Accept-Encoding 에 gzip 이 있으면 gzip 스트림으로 압축하고, 청크마다 Z_SYNC_FLUSH 로 바로 내보낸다
|
|
456
|
+
* (flush 없이 쓰면 zlib 내부 버퍼에 모였다가 늦게 나가서 SSE 실시간성이 깨짐)
|
|
457
|
+
* - 클라이언트가 끊으면 source.return() 으로 제너레이터를 종료시켜 finally 가 돌게 한다
|
|
458
|
+
*/
|
|
459
|
+
async resStream(source) {
|
|
460
|
+
const res = this.res;
|
|
461
|
+
const gz = this.reqHeaderFirst(HttpHeaders.AcceptEncoding)?.includes("gzip") ? createGzip() : void 0;
|
|
462
|
+
if (gz) {
|
|
463
|
+
res.setHeader(HttpHeaders.ContentEncoding, "gzip");
|
|
464
|
+
res.removeHeader(HttpHeaders.ContentLength);
|
|
465
|
+
gz.pipe(res);
|
|
466
|
+
}
|
|
467
|
+
const out = gz ?? res;
|
|
468
|
+
res.flushHeaders();
|
|
469
|
+
let closed = false;
|
|
470
|
+
const onClose = () => {
|
|
471
|
+
closed = true;
|
|
472
|
+
source.return?.();
|
|
473
|
+
};
|
|
474
|
+
res.once("close", onClose);
|
|
475
|
+
try {
|
|
476
|
+
for await (const chunk of source) {
|
|
477
|
+
if (closed) break;
|
|
478
|
+
const data = typeof chunk === "string" || Buffer.isBuffer(chunk) ? chunk : JSON.stringify(chunk);
|
|
479
|
+
const ok = out.write(data);
|
|
480
|
+
gz?.flush(zlibConstants.Z_SYNC_FLUSH);
|
|
481
|
+
if (!ok) await new Promise((resolve) => {
|
|
482
|
+
out.once("drain", resolve);
|
|
483
|
+
res.once("close", resolve);
|
|
484
|
+
});
|
|
485
|
+
}
|
|
486
|
+
} catch (e) {
|
|
487
|
+
if (!closed) throw e;
|
|
488
|
+
} finally {
|
|
489
|
+
res.off("close", onClose);
|
|
490
|
+
if (closed) {
|
|
491
|
+
gz?.destroy();
|
|
492
|
+
} else if (!res.writableEnded) {
|
|
493
|
+
const finished = new Promise((resolve) => {
|
|
494
|
+
res.once("finish", resolve);
|
|
495
|
+
res.once("close", resolve);
|
|
496
|
+
});
|
|
497
|
+
out.end();
|
|
498
|
+
await finished;
|
|
499
|
+
}
|
|
500
|
+
}
|
|
501
|
+
}
|
|
450
502
|
resIsDone() {
|
|
451
503
|
return this.res.finished || this.res.writableEnded || this.res.headersSent;
|
|
452
504
|
}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../src/models/RequestResponse.ts"],
|
|
4
|
-
"sourcesContent": ["import { IncomingMessage, OutgoingHttpHeader, OutgoingHttpHeaders, ServerResponse } from 'http';\nimport { HttpHeaders, HttpHeadersType } from '../codes/HttpHeaders';\nimport { Mimes } from '../codes/Mimes';\nimport { Intent } from '@dooboostore/simple-boot';\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 { Blob } from 'node:buffer';\nimport * as fs from 'fs';\nimport * as os from 'os';\nimport { RandomUtils } from '@dooboostore/core';\nimport { FileUtils } from '@dooboostore/core-node';\nimport { ConvertUtils as CoreConvertUtils } from '@dooboostore/core';\nimport { ConvertUtils } from '@dooboostore/core-node';\nimport {HttpMethod} from \"../codes\";\n\ntype Config = { sessionManager?: SessionManager; option: HttpServerOption };\n\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\n // [\uC544\uD0A4\uD14D\uD2B8\uB2D8\uC758 \uC815\uC11D] RequestResponse \uAC1D\uCCB4 \uACE0\uC720\uC758 \uC18D\uC131 \uC800\uC7A5\uC18C (\uD2B8\uB79C\uC7AD\uC158 \uC0DD\uBA85\uC8FC\uAE30)\n protected attributes = new Map<string, any>();\n\n constructor(req: IncomingMessage | RequestResponse, res: ServerResponse, config: Config) {\n if (req instanceof RequestResponse) {\n this.req = req.req;\n this.res = req.res;\n this.config = config;\n this.attributes = req.attributes;\n } else {\n this.req = req;\n this.res = res!;\n this.config = config;\n }\n }\n\n // --- RequestResponse Attributes (Transaction Life-cycle) ---\n\n setAttribute(key: string, value: any): void {\n this.attributes.set(key, value);\n }\n\n getAttribute<T = any>(key: string): T | undefined {\n return this.attributes.get(key) as T;\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\n .split(';')\n .map(it => it.trim().split('='))\n .forEach(it => {\n if (it[0]) 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 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 }\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 const contentType = this.reqHeader(HttpHeaders.ContentType);\n if (!contentType) return false;\n \n const targetMime = mime.toString().toLowerCase();\n const contentTypes = Array.isArray(contentType) ? contentType : [contentType];\n \n // \uBAA8\uB4E0 Content-Type \uD5E4\uB354\uB97C \uD655\uC778\n return contentTypes.some(ct => {\n // Content-Type\uC740 \uBCF4\uD1B5 \uB2E8\uC77C \uAC12\uC774\uC9C0\uB9CC, \uD30C\uB77C\uBBF8\uD130\uAC00 \uBD99\uC744 \uC218 \uC788\uC74C (charset=utf-8 \uB4F1)\n // \uC138\uBBF8\uCF5C\uB860\uC73C\uB85C split\uD574\uC11C \uC55E \uBD80\uBD84(MIME \uD0C0\uC785)\uB9CC \uBE44\uAD50\n const [mimeType] = ct.split(';').map(m => m.trim());\n return mimeType.toLowerCase() === targetMime || mimeType.toLowerCase().includes(targetMime);\n });\n }\n\n reqHasAcceptHeader(mime: Mimes | string): boolean {\n const accept = this.reqHeader(HttpHeaders.Accept);\n if (!accept) return false;\n\n const targetMime = mime.toString().toLowerCase();\n const acceptHeaders = Array.isArray(accept) ? accept : [accept];\n\n return acceptHeaders.some(acceptHeader => {\n const acceptMimes = acceptHeader.split(',').map(m => m.split(';')[0].trim().toLowerCase());\n return acceptMimes.some(acceptMime => acceptMime.includes(targetMime));\n });\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 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, etcData: it });\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];\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');\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([]);\n }\n\n const fullBuffer = Buffer.concat(chunks, totalLength);\n const parsedParts: MultipartData[] = [];\n let currentPosition = 0;\n\n let boundaryStartIndex = fullBuffer.indexOf(boundaryBuffer, currentPosition);\n if (boundaryStartIndex === -1) {\n return reject(new Error('Initial boundary not found.'));\n }\n currentPosition = boundaryStartIndex + boundaryBuffer.length;\n if (fullBuffer.slice(currentPosition, currentPosition + crlfBuffer.length).equals(crlfBuffer)) {\n currentPosition += crlfBuffer.length;\n }\n\n while (currentPosition < fullBuffer.length) {\n const nextBoundaryIndex = fullBuffer.indexOf(boundaryBuffer, currentPosition);\n if (nextBoundaryIndex === -1) {\n break;\n }\n\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 const headerBodySeparatorIndex = partBuffer.indexOf(doubleCrlfBuffer);\n if (headerBodySeparatorIndex === -1) {\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 headerBuffer = partBuffer.slice(0, headerBodySeparatorIndex);\n const bodyBuffer = partBuffer.slice(headerBodySeparatorIndex + doubleCrlfBuffer.length);\n const headersStr = headerBuffer.toString('utf-8');\n\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 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 if (filename) {\n parsedParts.push({\n isFile: true,\n name: name,\n filename: filename,\n contentType: contentType ?? 'application/octet-stream',\n value: bodyBuffer\n });\n } else {\n parsedParts.push({\n isFile: false,\n name: name,\n value: bodyBuffer.toString('utf-8')\n });\n }\n }\n\n currentPosition = nextBoundaryIndex + boundaryBuffer.length;\n if (fullBuffer.slice(currentPosition, currentPosition + crlfBuffer.length).equals(crlfBuffer)) {\n currentPosition += crlfBuffer.length;\n }\n\n if (fullBuffer.slice(currentPosition, currentPosition + 2).toString() === '--') {\n break;\n }\n }\n resolve(parsedParts);\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 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 reqIsMethod(method: HttpMethod | string) {\n return this.reqMethod().toUpperCase() === (method as string).toUpperCase();\n }\n\n reqHeader(key: keyof typeof HttpHeaders | string) {\n return this.req.headers[(key as string).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: HttpHeadersType | string, defaultValue?: string) {\n const header = this.req.headers[(key as string).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 resStatusCode(code: number | HttpStatus): RequestResponseChain<number>;\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: HttpHeadersType | string) {\n return this.res.getHeader((key as string).toLowerCase());\n }\n\n resHeaderFirst(key: HttpHeadersType | string, defaultValue?: string) {\n const header = this.res.getHeader((key as string).toLowerCase());\n if (header && Array.isArray(header)) {\n return header[0] ?? defaultValue;\n } else {\n return (header as string) ?? defaultValue;\n }\n }\n\n async reqSession(): Promise<{ [key: string]: any }> {\n if (this.config.sessionManager) {\n const session = await this.config.sessionManager.session(this);\n session.dataSet.data ??= {};\n return session.dataSet.data;\n } else {\n return Promise.reject(new Error('Not SessionManager'));\n }\n }\n\n async reqSessionSet(key: string, value: any): Promise<void> {\n const sessionData = await this.reqSession();\n sessionData[key] = value;\n }\n\n async reqSessionGet<T = any>(key: string): Promise<T | undefined> {\n const sessionData = await this.reqSession();\n return sessionData[key] as T;\n }\n\n resSetStatusCode(statusCode: number) {\n this.res.statusCode = statusCode;\n return this.createRequestResponseChain(this.res.statusCode);\n }\n\n resWrite(chunk: string | Buffer | any, encoding: BufferEncoding = 'utf8') {\n this.resWriteChunk = chunk;\n return this.createRequestResponseChain(this.resWriteChunk);\n }\n\n resWriteJson(chunk: any, encoding: BufferEncoding = 'utf8') {\n return this.resWrite(JSON.stringify(chunk), encoding);\n }\n\n resSetHeader(key: HttpHeadersType | string, value: string | string[]) {\n this.res.setHeader((key as string).toLowerCase(), value);\n return this.createRequestResponseChain();\n }\n\n resAddHeader(key: HttpHeadersType | string, value: string | string[]) {\n const existingValue = this.res.getHeader((key as string).toLowerCase());\n const newValue = Array.isArray(existingValue) ? existingValue.concat(value) : existingValue ? [existingValue.toString(), ...[].concat(value as any)] : value;\n this.res.setHeader((key as string).toLowerCase(), newValue as any);\n return this.createRequestResponseChain();\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 private async resEndChunk() {\n const encoding = this.reqHeaderFirst(HttpHeaders.AcceptEncoding);\n let data = this.resWriteChunk;\n if (encoding?.includes('gzip') && data) {\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 | Blob | ArrayBuffer | Response) {\n if (chunk instanceof Response) {\n chunk.headers.forEach((value, key) => {\n this.res.setHeader(`ORIGIN-${key}`, value);\n });\n if (!this.resHeader(HttpHeaders.ContentType)) {\n const contentType = chunk.headers.get(HttpHeaders.ContentType);\n if (contentType) this.res.setHeader(HttpHeaders.ContentType, contentType);\n }\n this.res.statusCode = chunk.status;\n this.resWriteChunk = Buffer.from(await chunk.arrayBuffer());\n } else if (chunk instanceof Blob) {\n this.resWriteChunk = Buffer.from(await chunk.arrayBuffer());\n if (!this.resHeader(HttpHeaders.ContentType)) {\n this.res.setHeader(HttpHeaders.ContentType, chunk.type);\n }\n } else if (chunk instanceof ArrayBuffer) {\n this.resWriteChunk = Buffer.from(chunk);\n } else {\n this.resWriteChunk = chunk ?? this.resWriteChunk;\n }\n\n if (this.req.readable) {\n await this.reqBodyData();\n await this.resEndChunk();\n } else {\n await this.resEndChunk();\n }\n }\n\n resRedirect(statusCode: number, location: string) {\n this.res.statusCode = statusCode;\n this.res.setHeader(HttpHeaders.Location, location);\n this.res.end();\n }\n resWriteHead(statusCode: number, headers?: OutgoingHttpHeaders | OutgoingHttpHeader[] | { [key: string]: string | string[] }) {\n return this.createRequestResponseChain(this.res.writeHead(statusCode, headers as any));\n }\n resWriteHeadEnd(statusCode: number, headers?: OutgoingHttpHeaders | OutgoingHttpHeader[] | { [key: string]: string | string[] }) {\n this.createRequestResponseChain(this.res.writeHead(statusCode, headers as any));\n this.res.end();\n }\n\n resIsDone() {\n return this.res.finished || this.res.writableEnded || this.res.headersSent;\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\nexport class RequestResponseChain<T> extends RequestResponse {\n constructor(\n req: IncomingMessage,\n res: ServerResponse,\n config: Config,\n public result?: T\n ) {\n super(req, res, config);\n }\n}\n"],
|
|
5
|
-
"mappings": "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",
|
|
4
|
+
"sourcesContent": ["import { IncomingMessage, OutgoingHttpHeader, OutgoingHttpHeaders, ServerResponse } from 'http';\nimport { HttpHeaders, HttpHeadersType } from '../codes/HttpHeaders';\nimport { Mimes } from '../codes/Mimes';\nimport { Intent } from '@dooboostore/simple-boot';\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 { createGzip, constants as zlibConstants } from 'zlib';\nimport { SessionManager } from '../session/SessionManager';\nimport { HttpServerOption } from '../option/HttpServerOption';\nimport { Blob } from 'node:buffer';\nimport * as fs from 'fs';\nimport * as os from 'os';\nimport { RandomUtils } from '@dooboostore/core';\nimport { FileUtils } from '@dooboostore/core-node';\nimport { ConvertUtils as CoreConvertUtils } from '@dooboostore/core';\nimport { ConvertUtils } from '@dooboostore/core-node';\nimport {HttpMethod} from \"../codes\";\n\ntype Config = { sessionManager?: SessionManager; option: HttpServerOption };\n\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\n // [\uC544\uD0A4\uD14D\uD2B8\uB2D8\uC758 \uC815\uC11D] RequestResponse \uAC1D\uCCB4 \uACE0\uC720\uC758 \uC18D\uC131 \uC800\uC7A5\uC18C (\uD2B8\uB79C\uC7AD\uC158 \uC0DD\uBA85\uC8FC\uAE30)\n protected attributes = new Map<string, any>();\n\n constructor(req: IncomingMessage | RequestResponse, res: ServerResponse, config: Config) {\n if (req instanceof RequestResponse) {\n this.req = req.req;\n this.res = req.res;\n this.config = config;\n this.attributes = req.attributes;\n } else {\n this.req = req;\n this.res = res!;\n this.config = config;\n }\n }\n\n // --- RequestResponse Attributes (Transaction Life-cycle) ---\n\n setAttribute(key: string, value: any): void {\n this.attributes.set(key, value);\n }\n\n getAttribute<T = any>(key: string): T | undefined {\n return this.attributes.get(key) as T;\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\n .split(';')\n .map(it => it.trim().split('='))\n .forEach(it => {\n if (it[0]) 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 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 }\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 const contentType = this.reqHeader(HttpHeaders.ContentType);\n if (!contentType) return false;\n \n const targetMime = mime.toString().toLowerCase();\n const contentTypes = Array.isArray(contentType) ? contentType : [contentType];\n \n // \uBAA8\uB4E0 Content-Type \uD5E4\uB354\uB97C \uD655\uC778\n return contentTypes.some(ct => {\n // Content-Type\uC740 \uBCF4\uD1B5 \uB2E8\uC77C \uAC12\uC774\uC9C0\uB9CC, \uD30C\uB77C\uBBF8\uD130\uAC00 \uBD99\uC744 \uC218 \uC788\uC74C (charset=utf-8 \uB4F1)\n // \uC138\uBBF8\uCF5C\uB860\uC73C\uB85C split\uD574\uC11C \uC55E \uBD80\uBD84(MIME \uD0C0\uC785)\uB9CC \uBE44\uAD50\n const [mimeType] = ct.split(';').map(m => m.trim());\n return mimeType.toLowerCase() === targetMime || mimeType.toLowerCase().includes(targetMime);\n });\n }\n\n reqHasAcceptHeader(mime: Mimes | string): boolean {\n const accept = this.reqHeader(HttpHeaders.Accept);\n if (!accept) return false;\n\n const targetMime = mime.toString().toLowerCase();\n const acceptHeaders = Array.isArray(accept) ? accept : [accept];\n\n return acceptHeaders.some(acceptHeader => {\n const acceptMimes = acceptHeader.split(',').map(m => m.split(';')[0].trim().toLowerCase());\n return acceptMimes.some(acceptMime => acceptMime.includes(targetMime));\n });\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 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, etcData: it });\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];\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');\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([]);\n }\n\n const fullBuffer = Buffer.concat(chunks, totalLength);\n const parsedParts: MultipartData[] = [];\n let currentPosition = 0;\n\n let boundaryStartIndex = fullBuffer.indexOf(boundaryBuffer, currentPosition);\n if (boundaryStartIndex === -1) {\n return reject(new Error('Initial boundary not found.'));\n }\n currentPosition = boundaryStartIndex + boundaryBuffer.length;\n if (fullBuffer.slice(currentPosition, currentPosition + crlfBuffer.length).equals(crlfBuffer)) {\n currentPosition += crlfBuffer.length;\n }\n\n while (currentPosition < fullBuffer.length) {\n const nextBoundaryIndex = fullBuffer.indexOf(boundaryBuffer, currentPosition);\n if (nextBoundaryIndex === -1) {\n break;\n }\n\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 const headerBodySeparatorIndex = partBuffer.indexOf(doubleCrlfBuffer);\n if (headerBodySeparatorIndex === -1) {\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 headerBuffer = partBuffer.slice(0, headerBodySeparatorIndex);\n const bodyBuffer = partBuffer.slice(headerBodySeparatorIndex + doubleCrlfBuffer.length);\n const headersStr = headerBuffer.toString('utf-8');\n\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 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 if (filename) {\n parsedParts.push({\n isFile: true,\n name: name,\n filename: filename,\n contentType: contentType ?? 'application/octet-stream',\n value: bodyBuffer\n });\n } else {\n parsedParts.push({\n isFile: false,\n name: name,\n value: bodyBuffer.toString('utf-8')\n });\n }\n }\n\n currentPosition = nextBoundaryIndex + boundaryBuffer.length;\n if (fullBuffer.slice(currentPosition, currentPosition + crlfBuffer.length).equals(crlfBuffer)) {\n currentPosition += crlfBuffer.length;\n }\n\n if (fullBuffer.slice(currentPosition, currentPosition + 2).toString() === '--') {\n break;\n }\n }\n resolve(parsedParts);\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 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 reqIsMethod(method: HttpMethod | string) {\n return this.reqMethod().toUpperCase() === (method as string).toUpperCase();\n }\n\n reqHeader(key: keyof typeof HttpHeaders | string) {\n return this.req.headers[(key as string).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: HttpHeadersType | string, defaultValue?: string) {\n const header = this.req.headers[(key as string).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 resStatusCode(code: number | HttpStatus): RequestResponseChain<number>;\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: HttpHeadersType | string) {\n return this.res.getHeader((key as string).toLowerCase());\n }\n\n resHeaderFirst(key: HttpHeadersType | string, defaultValue?: string) {\n const header = this.res.getHeader((key as string).toLowerCase());\n if (header && Array.isArray(header)) {\n return header[0] ?? defaultValue;\n } else {\n return (header as string) ?? defaultValue;\n }\n }\n\n async reqSession(): Promise<{ [key: string]: any }> {\n if (this.config.sessionManager) {\n const session = await this.config.sessionManager.session(this);\n session.dataSet.data ??= {};\n return session.dataSet.data;\n } else {\n return Promise.reject(new Error('Not SessionManager'));\n }\n }\n\n async reqSessionSet(key: string, value: any): Promise<void> {\n const sessionData = await this.reqSession();\n sessionData[key] = value;\n }\n\n async reqSessionGet<T = any>(key: string): Promise<T | undefined> {\n const sessionData = await this.reqSession();\n return sessionData[key] as T;\n }\n\n resSetStatusCode(statusCode: number) {\n this.res.statusCode = statusCode;\n return this.createRequestResponseChain(this.res.statusCode);\n }\n\n resWrite(chunk: string | Buffer | any, encoding: BufferEncoding = 'utf8') {\n this.resWriteChunk = chunk;\n return this.createRequestResponseChain(this.resWriteChunk);\n }\n\n resWriteJson(chunk: any, encoding: BufferEncoding = 'utf8') {\n return this.resWrite(JSON.stringify(chunk), encoding);\n }\n\n resSetHeader(key: HttpHeadersType | string, value: string | string[]) {\n this.res.setHeader((key as string).toLowerCase(), value);\n return this.createRequestResponseChain();\n }\n\n resAddHeader(key: HttpHeadersType | string, value: string | string[]) {\n const existingValue = this.res.getHeader((key as string).toLowerCase());\n const newValue = Array.isArray(existingValue) ? existingValue.concat(value) : existingValue ? [existingValue.toString(), ...[].concat(value as any)] : value;\n this.res.setHeader((key as string).toLowerCase(), newValue as any);\n return this.createRequestResponseChain();\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 private async resEndChunk() {\n const encoding = this.reqHeaderFirst(HttpHeaders.AcceptEncoding);\n let data = this.resWriteChunk;\n if (encoding?.includes('gzip') && data) {\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 | Blob | ArrayBuffer | Response) {\n if (chunk instanceof Response) {\n chunk.headers.forEach((value, key) => {\n this.res.setHeader(`ORIGIN-${key}`, value);\n });\n if (!this.resHeader(HttpHeaders.ContentType)) {\n const contentType = chunk.headers.get(HttpHeaders.ContentType);\n if (contentType) this.res.setHeader(HttpHeaders.ContentType, contentType);\n }\n this.res.statusCode = chunk.status;\n this.resWriteChunk = Buffer.from(await chunk.arrayBuffer());\n } else if (chunk instanceof Blob) {\n this.resWriteChunk = Buffer.from(await chunk.arrayBuffer());\n if (!this.resHeader(HttpHeaders.ContentType)) {\n this.res.setHeader(HttpHeaders.ContentType, chunk.type);\n }\n } else if (chunk instanceof ArrayBuffer) {\n this.resWriteChunk = Buffer.from(chunk);\n } else {\n this.resWriteChunk = chunk ?? this.resWriteChunk;\n }\n\n if (this.req.readable) {\n await this.reqBodyData();\n await this.resEndChunk();\n } else {\n await this.resEndChunk();\n }\n }\n\n resRedirect(statusCode: number, location: string) {\n this.res.statusCode = statusCode;\n this.res.setHeader(HttpHeaders.Location, location);\n this.res.end();\n }\n resWriteHead(statusCode: number, headers?: OutgoingHttpHeaders | OutgoingHttpHeader[] | { [key: string]: string | string[] }) {\n return this.createRequestResponseChain(this.res.writeHead(statusCode, headers as any));\n }\n resWriteHeadEnd(statusCode: number, headers?: OutgoingHttpHeaders | OutgoingHttpHeader[] | { [key: string]: string | string[] }) {\n this.createRequestResponseChain(this.res.writeHead(statusCode, headers as any));\n this.res.end();\n }\n\n /**\n * \uD5E4\uB354\uB97C \uC989\uC2DC \uBCF4\uB0B4\uACE0, source \uAC00 \uB0B4\uB193\uB294 \uAC12\uC744 \uD558\uB098\uC529 \uBC14\uB85C body \uC5D0 \uC4F4 \uB4A4 end.\n * (SSE / \uC2A4\uD2B8\uB9AC\uBC0D \uC751\uB2F5\uC6A9. resWrite \uB294 \uBC84\uD37C\uB9C1 \uD6C4 resEnd \uC5D0\uC11C \uD55C \uBC88\uC5D0 \uBCF4\uB0B4\uBBC0\uB85C \uC2A4\uD2B8\uB9AC\uBC0D \uBD88\uAC00)\n * - \uBB38\uC790\uC5F4/Buffer \uB294 \uADF8\uB300\uB85C, \uADF8 \uC678\uB294 JSON.stringify\n * - Accept-Encoding \uC5D0 gzip \uC774 \uC788\uC73C\uBA74 gzip \uC2A4\uD2B8\uB9BC\uC73C\uB85C \uC555\uCD95\uD558\uACE0, \uCCAD\uD06C\uB9C8\uB2E4 Z_SYNC_FLUSH \uB85C \uBC14\uB85C \uB0B4\uBCF4\uB0B8\uB2E4\n * (flush \uC5C6\uC774 \uC4F0\uBA74 zlib \uB0B4\uBD80 \uBC84\uD37C\uC5D0 \uBAA8\uC600\uB2E4\uAC00 \uB2A6\uAC8C \uB098\uAC00\uC11C SSE \uC2E4\uC2DC\uAC04\uC131\uC774 \uAE68\uC9D0)\n * - \uD074\uB77C\uC774\uC5B8\uD2B8\uAC00 \uB04A\uC73C\uBA74 source.return() \uC73C\uB85C \uC81C\uB108\uB808\uC774\uD130\uB97C \uC885\uB8CC\uC2DC\uCF1C finally \uAC00 \uB3CC\uAC8C \uD55C\uB2E4\n */\n async resStream(source: Iterable<any> | AsyncIterable<any>) {\n const res = this.res;\n const gz = this.reqHeaderFirst(HttpHeaders.AcceptEncoding)?.includes('gzip') ? createGzip() : undefined;\n if (gz) {\n res.setHeader(HttpHeaders.ContentEncoding, 'gzip');\n res.removeHeader(HttpHeaders.ContentLength);\n gz.pipe(res);\n }\n const out = gz ?? res;\n res.flushHeaders();\n let closed = false;\n const onClose = () => {\n closed = true;\n (source as any).return?.();\n };\n res.once('close', onClose);\n try {\n for await (const chunk of source) {\n if (closed) break;\n const data = typeof chunk === 'string' || Buffer.isBuffer(chunk) ? chunk : JSON.stringify(chunk);\n const ok = out.write(data);\n gz?.flush(zlibConstants.Z_SYNC_FLUSH);\n // backpressure: \uBC84\uD37C\uAC00 \uCC28\uBA74 drain(\uB610\uB294 \uC5F0\uACB0 \uC885\uB8CC)\uAE4C\uC9C0 \uB300\uAE30\n if (!ok) await new Promise(resolve => { out.once('drain', resolve); res.once('close', resolve); });\n }\n } catch (e) {\n // \uD074\uB77C\uC774\uC5B8\uD2B8\uAC00 \uB04A\uAE34 \uB4A4\uC758 \uC5D0\uB7EC(AbortSignal \uB85C \uB300\uAE30\uB97C \uD47C AbortError \uB4F1)\uB294 \uBC1B\uC744 \uC0C1\uB300\uAC00 \uC5C6\uC73C\uB2C8 \uC0BC\uD0A8\uB2E4\n if (!closed) throw e;\n } finally {\n res.off('close', onClose);\n if (closed) {\n gz?.destroy();\n } else if (!res.writableEnded) {\n // gzip \uC774\uBA74 gz.end() \u2192 pipe \uAC00 res.end() \uAE4C\uC9C0 \uD574\uC900\uB2E4. \uB05D\uAE4C\uC9C0 \uD758\uB824\uBCF4\uB0B8 \uB4A4 \uB9AC\uD134\n const finished = new Promise(resolve => { res.once('finish', resolve); res.once('close', resolve); });\n out.end();\n await finished;\n }\n }\n }\n\n resIsDone() {\n return this.res.finished || this.res.writableEnded || this.res.headersSent;\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\nexport class RequestResponseChain<T> extends RequestResponse {\n constructor(\n req: IncomingMessage,\n res: ServerResponse,\n config: Config,\n public result?: T\n ) {\n super(req, res, config);\n }\n}\n"],
|
|
5
|
+
"mappings": "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",
|
|
6
6
|
"names": []
|
|
7
7
|
}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
const injectRequestResponse = (sim, rr) => new Proxy(sim, {
|
|
2
|
+
get(target, prop) {
|
|
3
|
+
const value = target[prop];
|
|
4
|
+
if (prop === "constructor" || typeof value !== "function") return value;
|
|
5
|
+
if (!rr) return value.bind(target);
|
|
6
|
+
return (...args) => value.apply(target, [...args, rr]);
|
|
7
|
+
}
|
|
8
|
+
});
|
|
9
|
+
export {
|
|
10
|
+
injectRequestResponse
|
|
11
|
+
};
|
|
12
|
+
//# sourceMappingURL=RequestResponseInjectProxy.js.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../../src/proxy/RequestResponseInjectProxy.ts"],
|
|
4
|
+
"sourcesContent": ["import { RequestResponse } from '../models/RequestResponse';\n\n/**\n * SSR \uC778\uD504\uB85C\uC138\uC2A4 \uB80C\uB354\uC6A9 sim \uB798\uD37C.\n *\n * \uD074\uB77C\uC774\uC5B8\uD2B8\uB294 SymbolIntentApiServiceProxy \uAC00 HTTP \uB85C \uD638\uCD9C\uD558\uBA70 IntentSchemeFilter \uAC00\n * intent.data \uB9C8\uC9C0\uB9C9\uC5D0 rr(RequestResponse) \uC744 \uBD99\uC5EC \uBC31\uC11C\uBE44\uC2A4\uC758 data \uC778\uC790\uB85C \uC804\uB2EC\uD55C\uB2E4.\n * \uBC18\uBA74 SSR \uC740 \uD398\uC774\uC9C0\uAC00 sim \uC744 \uC778\uD504\uB85C\uC138\uC2A4\uB85C \uC9C1\uC811 \uD638\uCD9C(`svc.method(request)`)\uD558\uBBC0\uB85C rr \uC774 \uC5C6\uB2E4.\n *\n * \uC774 \uD504\uB85D\uC2DC\uB294 \uADF8 \uACF5\uBC31\uC744 \uBA54\uC6B4\uB2E4 \u2014 \uBA54\uC11C\uB4DC \uD638\uCD9C \uC2DC \uB118\uC5B4\uC628 \uC778\uC790 **\uB4A4\uC5D0 rr \uC744 \uBD99\uC5EC\uC900\uB2E4**.\n * IntentSchemeFilter \uADDC\uC57D\uACFC \uB3D9\uC77C\uD558\uAC8C:\n * - \uC778\uC790 0\uAC1C \u2192 (rr) // \uBCF8\uBB38\u00B7\uCFFC\uB9AC \uC5C6\uB294 \uC694\uCCAD\uACFC \uB3D9\uC77C\n * - \uC778\uC790 1\uAC1C \u2192 (request, rr) // \uC77C\uBC18 \uC11C\uBE44\uC2A4 \uD638\uCD9C\n * - \uC778\uC790 N\uAC1C \u2192 (...args, rr) // \uC774\uBBF8 data \uB97C \uB118\uACBC\uC73C\uBA74 \uADF8\uAC74 \uADF8\uB300\uB85C \uC4F0\uC774\uACE0 rr \uC740 \uB4A4\uC5D0 \uBB34\uC2DC\uB428\n *\n * \uBC31\uC11C\uBE44\uC2A4 \uBA54\uC11C\uB4DC\uAC00 `data?: RequestResponse` \uC635\uC154\uB110\uC774\uB77C fn.length \uB85C arity \uB97C \uBABB \uC7AC\uBBC0\uB85C\n * (\uC635\uC154\uB110\uC740 length \uC5D0\uC11C \uC81C\uC678) \"\uBA54\uC11C\uB4DC \uD30C\uB77C\uBBF8\uD130 \uC218\"\uAC00 \uC544\uB2C8\uB77C \"\uD638\uCD9C \uC778\uC790 \uB4A4 append\" \uBC29\uC2DD\uC744 \uC4F4\uB2E4.\n *\n * constructor / \uBE44\uD568\uC218 \uD504\uB85C\uD37C\uD2F0\uB294 \uAC10\uC2F8\uC9C0 \uC54A\uB294\uB2E4 \u2014 Sim \uC774 it.constructor \uB85C \uD0C0\uC785\u00B7\uBA54\uD0C0\uB370\uC774\uD130\uB97C \uCC3E\uAE30 \uB54C\uBB38.\n * rr \uC774 \uC5C6\uC73C\uBA74(\uBE44SSR) \uC778\uC790\uB97C \uADF8\uB300\uB85C \uD758\uB824\uBCF4\uB0B8\uB2E4.\n */\nexport const injectRequestResponse = <T extends object>(sim: T, rr?: RequestResponse): T =>\n new Proxy(sim, {\n get(target: any, prop: string | symbol) {\n const value = target[prop];\n if (prop === 'constructor' || typeof value !== 'function') return value;\n if (!rr) return value.bind(target);\n return (...args: any[]) => value.apply(target, [...args, rr]);\n }\n });\n"],
|
|
5
|
+
"mappings": "AAqBO,MAAM,wBAAwB,CAAmB,KAAQ,OAC9D,IAAI,MAAM,KAAK;AAAA,EACb,IAAI,QAAa,MAAuB;AACtC,UAAM,QAAQ,OAAO,IAAI;AACzB,QAAI,SAAS,iBAAiB,OAAO,UAAU,WAAY,QAAO;AAClE,QAAI,CAAC,GAAI,QAAO,MAAM,KAAK,MAAM;AACjC,WAAO,IAAI,SAAgB,MAAM,MAAM,QAAQ,CAAC,GAAG,MAAM,EAAE,CAAC;AAAA,EAC9D;AACF,CAAC;",
|
|
6
|
+
"names": []
|
|
7
|
+
}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../src/proxy/SymbolIntentApiServiceProxy.ts"],
|
|
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
|
|
5
|
-
"mappings": ";;;;;;;;;AAAA,SAAQ,QAAQ,WAA0B;AAC1C,SAAS,mCAAmC;AAC5C,SAAyB,oBAAmB;AAC5C,SAAS,kBAAkB;AAW3B,MAAM,IAAI;AAGF,MAAO,gBAAgB,CAAmB,eAA2C;AAC3F,SAAO;IACL,IAAI,QAAW,MAAuB,UAAa;AACjD,UAAI,SAAS,sBAAsB;AACjC,eAAO;MACT;AACA,YAAM,YAAY,OAAO,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,GAAG,4BAA4B,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,aAAa,WAAW,
|
|
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: userConfig?.body ? ConvertUtils.toFormData(userConfig.body) : undefined\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,SAAQ,QAAQ,WAA0B;AAC1C,SAAS,mCAAmC;AAC5C,SAAyB,oBAAmB;AAC5C,SAAS,kBAAkB;AAW3B,MAAM,IAAI;AAGF,MAAO,gBAAgB,CAAmB,eAA2C;AAC3F,SAAO;IACL,IAAI,QAAW,MAAuB,UAAa;AACjD,UAAI,SAAS,sBAAsB;AACjC,eAAO;MACT;AACA,YAAM,YAAY,OAAO,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,GAAG,4BAA4B,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,YAAY,OAAO,aAAa,WAAW,WAAW,IAAI,IAAI;;;eAGzE;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;IADhC,IAAI,MAAM;yDAEuB,eAAU,eAAV,gBAAU,aAAA,KAAA,MAAA,CAAA;KADtC,2BAA2B;AAcjC,SAAO;AACT;",
|
|
6
6
|
"names": []
|
|
7
7
|
}
|
package/dist/esm/proxy/index.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../src/proxy/index.ts"],
|
|
4
|
-
"sourcesContent": ["export * from './SymbolIntentApiServiceProxy';\nexport * from './SymbolIntentApiServiceProxyBase';\nexport * from './TopicProtocolApiServiceProxy';\n"],
|
|
5
|
-
"mappings": "AAAA,cAAc;AACd,cAAc;AACd,cAAc;",
|
|
4
|
+
"sourcesContent": ["export * from './SymbolIntentApiServiceProxy';\nexport * from './SymbolIntentApiServiceProxyBase';\nexport * from './TopicProtocolApiServiceProxy';\nexport * from './RequestResponseInjectProxy';\n"],
|
|
5
|
+
"mappings": "AAAA,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;",
|
|
6
6
|
"names": []
|
|
7
7
|
}
|