formflux 0.1.8 → 0.1.9

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 CHANGED
@@ -17,21 +17,23 @@ FormFlux focuses on giving developers greater control over file validation, pars
17
17
 
18
18
  ---
19
19
 
20
- ## Code Example
21
-
20
+ ## Setup
21
+ 1. **Type `CommonJs`**
22
+ ```js
23
+ const FormFlux = require('formflux').default;
24
+ ```
25
+ 2. **Type `module`**
22
26
  ```ts
23
- import express, { Request } from "express";
24
- import path from "path";
25
- import { FormFlux } from "formflux";
26
- import { File } from "./FormFlux.Types"; // adjust the path as needed
27
- import FormfluxError from "./FormFluxError"; // adjust the path as needed
27
+ import Formflux from "formflux";
28
+ ```
28
29
 
29
- const router = express.Router();
30
+ ## Code Example
30
31
 
32
+ ```ts
31
33
  // Step 1: Configure memory storage or disk storage with options
32
- const formFluxConfig = FormFlux.memoryStorage({
34
+ const formFluxConfig = FormFlux.diskStorage({
33
35
  attachFileToReqBody: true, // global behavior
34
- maxFields: 2,
36
+ maxFields: 2, // including file fields
35
37
  maxFileCount: 3,
36
38
  minFileCount: 1,
37
39
  maxFileSize: 580 * 1024, // 580KB
@@ -59,7 +61,7 @@ const formFluxConfig = FormFlux.memoryStorage({
59
61
  });
60
62
 
61
63
  // Step 2: Use in route like multer
62
- router.post(
64
+ app.post(
63
65
  "/upload",
64
66
  formFluxConfig.fields([
65
67
  { name: "avatar", maxFileCount: 2, minFileCount: 1, maxFileSize: 100 * 1024 },
@@ -67,13 +69,12 @@ router.post(
67
69
  ]),
68
70
  async (req, res) => {
69
71
  console.log("Files:", req.files);
70
- console.log("Body:", req.body); // Includes filenames if enabled
72
+ console.log("File",req.file);
73
+ console.log("Body:", req.body);
71
74
 
72
- res.json({ message: "Files uploaded successfully" });
75
+ res.status(200).json({ message: "Files uploaded successfully" });
73
76
  }
74
77
  );
75
-
76
- export default router;
77
78
  ```
78
79
 
79
80
  ## FormFlux Features
@@ -106,15 +107,18 @@ Here are some of the features of FormFlux:
106
107
  6. **Flexible Middleware API**
107
108
  - Just like Multer:
108
109
  - `formflux.single(fieldname)`
109
- - `formflux.fields([{ name, maxCount }])`
110
+ - `formflux.fields([{ name, maxFileCount, minFileCount, maxFileSize }])`
110
111
  - `formflux.any()`
111
- - `formflux.bodyParser()` – for parsing non-file fields
112
+ - `new formflux().bodyParser()` – for parsing non-file fields
112
113
 
113
114
  7. **Storage Options**
114
115
  - Supports `memoryStorage` and `diskStorage`, giving you full control over where and how files are saved.
115
116
 
116
117
  ---
117
118
 
119
+ 8. **Error Handling**
120
+ - Provides error handling through error class FormfluxError which also provides statuscodes. Similar to Multer error class.
121
+
118
122
  ## Limitation
119
123
 
120
124
  Due to its custom implementation (not using `busboy`), the recommended **maximum file size is 200MB**. Going beyond that may lead to performance issues or high memory usage.
@@ -2,6 +2,11 @@
2
2
 
3
3
  exports.__esModule = true;
4
4
  exports.default = void 0;
5
+ var _FormFlux = require("./FormFlux.Types");
6
+ exports.options = _FormFlux.options;
7
+ exports.optionFields = _FormFlux.optionFields;
8
+ exports.optionSingle = _FormFlux.optionSingle;
9
+ exports.File = _FormFlux.File;
5
10
  var _ExtractContent = _interopRequireDefault(require("./ExtractContent"));
6
11
  var _WriteFileContent = _interopRequireDefault(require("./WriteFileContent"));
7
12
  var _SetBodyContentToReq = _interopRequireDefault(require("./SetBodyContentToReq"));
@@ -9,6 +14,7 @@ var _setFileNameToBody = _interopRequireDefault(require("./setFileNameToBody"));
9
14
  var _setDatatoReqobj = _interopRequireDefault(require("./setDatatoReqobj"));
10
15
  var _EventHandlers = _interopRequireDefault(require("./EventHandlers"));
11
16
  var _FormFluxError = _interopRequireDefault(require("./FormFluxError"));
17
+ exports.FormfluxError = _FormFluxError.default;
12
18
  function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
13
19
  class Formflux {
14
20
  static diskStorage(options) {
@@ -1 +1 @@
1
- {"version":3,"file":"FormFlux.js","names":["_ExtractContent","_interopRequireDefault","require","_WriteFileContent","_SetBodyContentToReq","_setFileNameToBody","_setDatatoReqobj","_EventHandlers","_FormFluxError","e","__esModule","default","Formflux","diskStorage","options","any","req","res","next","_req$headers$content","obj","Buffer","from","buff","reqType","headers","includes","FormfluxError","boundary","split","on","chunk","push","_obj$modifiedReq$toSt","modifiedReq","concat","data","toString","pop","shift","ExtractFileContent","extraction","populateReqObj","populate","writeBool","parseBool","checkCompletion","writeComplete","parsecomplete","EventHandlers","message","writeFileContent","writeContent","attachFileToReqBody","setFileNameToBody","setFileNames","setContentToBody","setBody","err","fields","optionFields","_req$headers$content2","_obj$modifiedReq$toSt2","single","field","_req$headers$content3","_obj$modifiedReq$toSt3","memoryStorage","_req$headers$content4","_obj$modifiedReq$toSt4","_req$headers$content5","_obj$modifiedReq$toSt5","_req$headers$content6","_obj$modifiedReq$toSt6","bodyParser","_req$headers$content7","_obj$modifiedReq$toSt7","_default","exports"],"sources":["../../src/FormFlux.ts"],"sourcesContent":["import { NextFunction, Request, Response } from \"express\";\nimport { options, reqObj, optionFields, optionSingle } from \"./FormFlux.Types\";\nimport ExtractFileContent from \"./ExtractContent\";\nimport writeFileContent from \"./WriteFileContent\";\nimport setContentToBody from \"./SetBodyContentToReq\";\nimport setFileNameToBody from \"./setFileNameToBody\";\nimport populateReqObj from \"./setDatatoReqobj\";\nimport EventHandlers from \"./EventHandlers\";\nimport FormfluxError from \"./FormFluxError\";\n\nclass Formflux {\n\n static diskStorage(options: options) {\n return {\n any() {\n return async function (req: Request, res: Response, next: NextFunction): Promise<void> {\n let obj: reqObj = {\n \"originalReq\": \"\",\n \"modifiedReq\": Buffer.from(\"\"),\n \"data\": [],\n \"content\": [],\n \"metaData\": [],\n \"mimeType\": [],\n \"fieldNameBody\": [],\n \"fileName\": [],\n \"modifiedFileName\": [],\n \"contentBody\": [],\n \"fieldNameFile\": [],\n \"filePath\": [],\n \"filesize\": [],\n \"streams\":[]\n\n };\n let buff: Array<Buffer> = [];\n let reqType = req.headers[\"content-type\"];\n if (reqType && !reqType.includes(\"multipart/form-data\"))\n throw new FormfluxError(\"Invalid Request Type.Expected multipart/form-data\", 400);\n\n let boundary = req.headers[\"content-type\"]?.split(\"boundary=\")[1];\n\n req.on(\"data\", (chunk: Buffer) => {\n buff.push(chunk);\n })\n req.on(\"end\", () => {\n try {\n obj.modifiedReq = Buffer.concat(buff); // holding the concatinated buffer\n\n obj.data = obj.modifiedReq.toString(\"binary\")?.split(`--${boundary}`); // separating the boundary\n obj.data.pop();\n obj.data.shift();\n\n //*****Defaults*****\n //To*********extract content\n new ExtractFileContent(obj, options, null, null).extraction();\n\n //To*********SetFileDataToReqObj\n new populateReqObj(obj).populate();\n\n let writeBool: boolean = false;\n let parseBool: boolean = false;\n let checkCompletion = (writeComplete: boolean, parsecomplete: boolean) => {\n if (writeComplete && parsecomplete)\n next();\n }\n\n EventHandlers.on(\"parseEnd\", (message) => {\n parseBool = true;\n checkCompletion(writeBool, parseBool);\n })\n\n EventHandlers.on(\"writeEnd\", (message) => {\n writeBool = true;\n checkCompletion(writeBool, parseBool);\n })\n\n\n new writeFileContent(req, obj, options, \"any\", \"disk\").writeContent();\n if (options.attachFileToReqBody && options.attachFileToReqBody == true)\n new setFileNameToBody(obj).setFileNames(req);\n\n new setContentToBody(obj).setBody(req);\n\n } catch (err) {\n next(err);\n }\n })\n\n req.on(\"error\", () => {\n next(new FormfluxError(\"Error in recieving request\", 500));\n })\n\n }\n },\n fields(optionFields: optionFields) {\n return async function (req: Request, res: Response, next: NextFunction): Promise<void> {\n let obj: reqObj = {\n \"originalReq\": \"\",\n \"modifiedReq\": Buffer.from(\"\"),\n \"data\": [],\n \"content\": [],\n \"metaData\": [],\n \"mimeType\": [],\n \"fieldNameBody\": [],\n \"fileName\": [],\n \"modifiedFileName\": [],\n \"contentBody\": [],\n \"fieldNameFile\": [],\n \"filePath\": [],\n \"filesize\": [],\n \"streams\":[]\n\n };\n let buff: Array<Buffer> = [];\n let reqType = req.headers[\"content-type\"];\n if (reqType && !reqType.includes(\"multipart/form-data\"))\n throw new FormfluxError(\"Invalid Request Type.Expected multipart/form-data\", 400);\n let boundary = req.headers[\"content-type\"]?.split(\"boundary=\")[1];\n\n req.on(\"data\", (chunk: Buffer) => {\n buff.push(chunk);\n })\n req.on(\"end\", () => {\n try {\n obj.modifiedReq = Buffer.concat(buff); // holding the concatinated buffer\n\n obj.data = obj.modifiedReq.toString(\"binary\")?.split(`--${boundary}`); // separating the boundary\n obj.data.pop();\n obj.data.shift();\n\n //*****Defaults*****\n //To*********extract content\n new ExtractFileContent(obj, options, optionFields, null).extraction();\n\n //To*********SetFileDataToReqObj\n new populateReqObj(obj).populate();\n\n let writeBool: boolean = false;\n let parseBool: boolean = false;\n let checkCompletion = (writeComplete: boolean, parsecomplete: boolean) => {\n if (writeComplete && parsecomplete)\n next();\n }\n\n EventHandlers.on(\"parseEnd\", (message) => {\n parseBool = true;\n checkCompletion(writeBool, parseBool);\n })\n\n EventHandlers.on(\"writeEnd\", (message) => {\n writeBool = true;\n checkCompletion(writeBool, parseBool);\n })\n\n\n new writeFileContent(req, obj, options, \"fields\", \"disk\").writeContent();\n // new setFileContentToReq(obj).setFileNames(req);\n if (options.attachFileToReqBody && options.attachFileToReqBody == true)\n new setFileNameToBody(obj).setFileNames(req);\n\n new setContentToBody(obj).setBody(req);\n \n } catch (err) {\n next(err)\n }\n })\n\n req.on(\"error\", () => {\n next(new FormfluxError(\"Error in recieving request\", 500));\n })\n }\n },\n\n single(field: string) {\n return async function (req: Request, res: Response, next: NextFunction): Promise<void> {\n let obj: reqObj = {\n \"originalReq\": \"\",\n \"modifiedReq\": Buffer.from(\"\"),\n \"data\": [],\n \"content\": [],\n \"metaData\": [],\n \"mimeType\": [],\n \"fieldNameBody\": [],\n \"fileName\": [],\n \"modifiedFileName\": [],\n \"contentBody\": [],\n \"fieldNameFile\": [],\n \"filePath\": [],\n \"filesize\": [],\n \"streams\":[]\n\n };\n let buff: Array<Buffer> = [];\n let reqType = req.headers[\"content-type\"];\n if (reqType && !reqType.includes(\"multipart/form-data\"))\n throw new FormfluxError(\"Invalid Request Type.Expected multipart/form-data\", 400);\n let boundary = req.headers[\"content-type\"]?.split(\"boundary=\")[1];\n\n req.on(\"data\", (chunk: Buffer) => {\n buff.push(chunk);\n })\n req.on(\"end\", () => {\n try {\n obj.modifiedReq = Buffer.concat(buff); // holding the concatinated buffer\n\n obj.data = obj.modifiedReq.toString(\"binary\")?.split(`--${boundary}`); // separating the boundary\n obj.data.pop();\n obj.data.shift();\n\n //*****Defaults*****\n //To*********extract content\n new ExtractFileContent(obj, options, null, field).extraction();\n\n //To*********SetFileDataToReqObj\n new populateReqObj(obj).populate();\n\n let writeBool: boolean = false;\n let parseBool: boolean = false;\n let checkCompletion = (writeComplete: boolean, parsecomplete: boolean) => {\n if (writeComplete && parsecomplete)\n next();\n }\n\n EventHandlers.on(\"parseEnd\", (message) => {\n parseBool = true;\n checkCompletion(writeBool, parseBool);\n })\n\n EventHandlers.on(\"writeEnd\", (message) => {\n writeBool = true;\n checkCompletion(writeBool, parseBool);\n })\n\n\n new writeFileContent(req, obj, options, \"single\", \"disk\").writeContent();\n if (options.attachFileToReqBody && options.attachFileToReqBody == true)\n new setFileNameToBody(obj).setFileNames(req);\n\n new setContentToBody(obj).setBody(req);\n } catch (err) {\n next(err);\n }\n })\n\n req.on(\"error\", () => {\n next(new FormfluxError(\"Error in recieving request\", 500));\n })\n }\n },\n }\n }\n\n static memoryStorage(options: optionSingle) {\n return {\n any() {\n return async function (req: Request, res: Response, next: NextFunction): Promise<void> {\n let obj: reqObj = {\n \"originalReq\": \"\",\n \"modifiedReq\": Buffer.from(\"\"),\n \"data\": [],\n \"content\": [],\n \"metaData\": [],\n \"mimeType\": [],\n \"fieldNameBody\": [],\n \"fileName\": [],\n \"modifiedFileName\": [],\n \"contentBody\": [],\n \"fieldNameFile\": [],\n \"filePath\": [],\n \"filesize\": [],\n \"streams\":[]\n\n };\n let buff: Array<Buffer> = [];\n let reqType = req.headers[\"content-type\"];\n if (reqType && !reqType.includes(\"multipart/form-data\"))\n throw new FormfluxError(\"Invalid Request Type.Expected multipart/form-data\", 400);\n let boundary = req.headers[\"content-type\"]?.split(\"boundary=\")[1];\n\n req.on(\"data\", (chunk: Buffer) => {\n buff.push(chunk);\n })\n req.on(\"end\", () => {\n try {\n obj.modifiedReq = Buffer.concat(buff); // holding the concatinated buffer\n\n obj.data = obj.modifiedReq.toString(\"binary\")?.split(`--${boundary}`); // separating the boundary\n obj.data.pop();\n obj.data.shift();\n\n //*****Defaults*****\n //To*********extract content\n new ExtractFileContent(obj, options, null, null).extraction();\n\n //To*********SetFileDataToReqObj\n new populateReqObj(obj).populate();\n\n let writeBool: boolean = false;\n let parseBool: boolean = false;\n let checkCompletion = (writeComplete: boolean, parsecomplete: boolean) => {\n if (writeComplete && parsecomplete)\n next();\n }\n\n EventHandlers.on(\"parseEnd\", (message) => {\n parseBool = true;\n checkCompletion(writeBool, parseBool);\n })\n\n EventHandlers.on(\"writeEnd\", (message) => {\n writeBool = true;\n checkCompletion(writeBool, parseBool);\n })\n\n\n new writeFileContent(req, obj, options, \"any\", \"memory\").writeContent();\n if (options.attachFileToReqBody && options.attachFileToReqBody == true)\n new setFileNameToBody(obj).setFileNames(req);\n\n new setContentToBody(obj).setBody(req);\n } catch (err) {\n next(err);\n }\n })\n\n req.on(\"error\", () => {\n next(new FormfluxError(\"Error in recieving request\", 500));\n })\n }\n },\n fields(optionFields: optionFields) {\n return async function (req: Request, res: Response, next: NextFunction): Promise<void> {\n let obj: reqObj = {\n \"originalReq\": \"\",\n \"modifiedReq\": Buffer.from(\"\"),\n \"data\": [],\n \"content\": [],\n \"metaData\": [],\n \"mimeType\": [],\n \"fieldNameBody\": [],\n \"fileName\": [],\n \"modifiedFileName\": [],\n \"contentBody\": [],\n \"fieldNameFile\": [],\n \"filePath\": [],\n \"filesize\": [],\n \"streams\":[]\n\n };\n let buff: Array<Buffer> = [];\n let reqType = req.headers[\"content-type\"];\n if (reqType && !reqType.includes(\"multipart/form-data\"))\n throw new FormfluxError(\"Invalid Request Type.Expected multipart/form-data\", 400);\n let boundary = req.headers[\"content-type\"]?.split(\"boundary=\")[1];\n\n req.on(\"data\", (chunk: Buffer) => {\n buff.push(chunk);\n })\n req.on(\"end\", () => {\n try {\n obj.modifiedReq = Buffer.concat(buff); // holding the concatinated buffer\n\n obj.data = obj.modifiedReq.toString(\"binary\")?.split(`--${boundary}`); // separating the boundary\n obj.data.pop();\n obj.data.shift();\n\n //*****Defaults*****\n //To*********extract content\n new ExtractFileContent(obj, options, optionFields, null).extraction();\n\n //To*********SetFileDataToReqObj\n new populateReqObj(obj).populate();\n\n let writeBool: boolean = false;\n let parseBool: boolean = false;\n let checkCompletion = (writeComplete: boolean, parsecomplete: boolean) => {\n if (writeComplete && parsecomplete)\n next();\n }\n\n EventHandlers.on(\"parseEnd\", (message) => {\n parseBool = true;\n checkCompletion(writeBool, parseBool);\n })\n\n EventHandlers.on(\"writeEnd\", (message) => {\n writeBool = true;\n checkCompletion(writeBool, parseBool);\n })\n\n\n new writeFileContent(req, obj, options, \"fields\", \"memory\").writeContent();\n if (options.attachFileToReqBody && options.attachFileToReqBody == true)\n new setFileNameToBody(obj).setFileNames(req);\n\n new setContentToBody(obj).setBody(req);\n } catch (err) {\n next(err)\n }\n })\n\n req.on(\"error\", () => {\n next(new FormfluxError(\"Error in recieving request\", 500));\n })\n }\n },\n single(field: string) {\n return async function (req: Request, res: Response, next: NextFunction): Promise<void> {\n let obj: reqObj = {\n \"originalReq\": \"\",\n \"modifiedReq\": Buffer.from(\"\"),\n \"data\": [],\n \"content\": [],\n \"metaData\": [],\n \"mimeType\": [],\n \"fieldNameBody\": [],\n \"fileName\": [],\n \"modifiedFileName\": [],\n \"contentBody\": [],\n \"fieldNameFile\": [],\n \"filePath\": [],\n \"filesize\": [],\n \"streams\":[]\n\n };\n let buff: Array<Buffer> = [];\n let reqType = req.headers[\"content-type\"];\n if (reqType && !reqType.includes(\"multipart/form-data\"))\n throw new FormfluxError(\"Invalid Request Type.Expected multipart/form-data\", 400);\n let boundary = req.headers[\"content-type\"]?.split(\"boundary=\")[1];\n\n req.on(\"data\", (chunk: Buffer) => {\n buff.push(chunk);\n })\n req.on(\"end\", () => {\n try {\n obj.modifiedReq = Buffer.concat(buff); // holding the concatinated buffer\n\n obj.data = obj.modifiedReq.toString(\"binary\")?.split(`--${boundary}`); // separating the boundary\n obj.data.pop();\n obj.data.shift();\n\n //*****Defaults*****\n //To*********extract content\n new ExtractFileContent(obj, options, null, field).extraction();\n\n //To*********SetFileDataToReqObj\n new populateReqObj(obj).populate();\n\n let writeBool: boolean = false;\n let parseBool: boolean = false;\n let checkCompletion = (writeComplete: boolean, parsecomplete: boolean) => {\n if (writeComplete && parsecomplete)\n next();\n }\n\n EventHandlers.on(\"parseEnd\", (message) => {\n parseBool = true;\n checkCompletion(writeBool, parseBool);\n })\n\n EventHandlers.on(\"writeEnd\", (message) => {\n writeBool = true;\n checkCompletion(writeBool, parseBool);\n })\n\n new writeFileContent(req, obj, options, \"single\", \"memory\").writeContent();\n if (options.attachFileToReqBody && options.attachFileToReqBody == true)\n new setFileNameToBody(obj).setFileNames(req);\n\n new setContentToBody(obj).setBody(req);\n } catch (err) {\n next(err);\n }\n })\n\n req.on(\"error\", () => {\n next(new FormfluxError(\"Error in recieving request\", 500));\n })\n }\n },\n }\n }\n\n bodyParser(){\n return async function (req: Request, res: Response, next: NextFunction): Promise<void> {\n let obj: reqObj = {\n \"originalReq\": \"\",\n \"modifiedReq\": Buffer.from(\"\"),\n \"data\": [],\n \"content\": [],\n \"metaData\": [],\n \"mimeType\": [],\n \"fieldNameBody\": [],\n \"fileName\": [],\n \"modifiedFileName\": [],\n \"contentBody\": [],\n \"fieldNameFile\": [],\n \"filePath\": [],\n \"filesize\": [],\n \"streams\":[]\n\n };\n let buff: Array<Buffer> = [];\n let reqType = req.headers[\"content-type\"];\n if (reqType && !reqType.includes(\"multipart/form-data\"))\n throw new FormfluxError(\"Invalid Request Type.Expected multipart/form-data\", 400);\n\n let boundary = req.headers[\"content-type\"]?.split(\"boundary=\")[1];\n\n req.on(\"data\", (chunk: Buffer) => {\n buff.push(chunk);\n })\n req.on(\"end\", () => {\n try {\n obj.modifiedReq = Buffer.concat(buff); // holding the concatinated buffer\n\n obj.data = obj.modifiedReq.toString(\"binary\")?.split(`--${boundary}`); // separating the boundary\n obj.data.pop();\n obj.data.shift();\n\n //*****Defaults*****\n //To*********extract content\n new ExtractFileContent(obj, null, null, null).extraction();\n\n //To*********SetFileDataToReqObj\n let writeBool: boolean = false;\n let parseBool: boolean = false;\n let checkCompletion = (writeComplete: boolean, parsecomplete: boolean) => {\n if (writeComplete && parsecomplete)\n next();\n }\n\n EventHandlers.on(\"parseEnd\", (message) => {\n parseBool = true;\n next();\n })\n\n new setContentToBody(obj).setBody(req);\n\n } catch (err) {\n next(err);\n }\n })\n\n req.on(\"error\", () => {\n next(new FormfluxError(\"Error in recieving request\", 500));\n })\n }\n }\n \n}\n\nexport default Formflux;"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"FormFlux.js","names":["_FormFlux","require","exports","options","optionFields","optionSingle","File","_ExtractContent","_interopRequireDefault","_WriteFileContent","_SetBodyContentToReq","_setFileNameToBody","_setDatatoReqobj","_EventHandlers","_FormFluxError","FormfluxError","default","e","__esModule","Formflux","diskStorage","any","req","res","next","_req$headers$content","obj","Buffer","from","buff","reqType","headers","includes","boundary","split","on","chunk","push","_obj$modifiedReq$toSt","modifiedReq","concat","data","toString","pop","shift","ExtractFileContent","extraction","populateReqObj","populate","writeBool","parseBool","checkCompletion","writeComplete","parsecomplete","EventHandlers","message","writeFileContent","writeContent","attachFileToReqBody","setFileNameToBody","setFileNames","setContentToBody","setBody","err","fields","_req$headers$content2","_obj$modifiedReq$toSt2","single","field","_req$headers$content3","_obj$modifiedReq$toSt3","memoryStorage","_req$headers$content4","_obj$modifiedReq$toSt4","_req$headers$content5","_obj$modifiedReq$toSt5","_req$headers$content6","_obj$modifiedReq$toSt6","bodyParser","_req$headers$content7","_obj$modifiedReq$toSt7","_default"],"sources":["../../src/FormFlux.ts"],"sourcesContent":["import { NextFunction, Request, Response } from \"express\";\nimport { options, reqObj, optionFields, optionSingle, File } from \"./FormFlux.Types\";\nimport ExtractFileContent from \"./ExtractContent\";\nimport writeFileContent from \"./WriteFileContent\";\nimport setContentToBody from \"./SetBodyContentToReq\";\nimport setFileNameToBody from \"./setFileNameToBody\";\nimport populateReqObj from \"./setDatatoReqobj\";\nimport EventHandlers from \"./EventHandlers\";\nimport FormfluxError from \"./FormFluxError\";\n\nclass Formflux {\n\n static diskStorage(options: options) {\n return {\n any() {\n return async function (req: Request, res: Response, next: NextFunction): Promise<void> {\n let obj: reqObj = {\n \"originalReq\": \"\",\n \"modifiedReq\": Buffer.from(\"\"),\n \"data\": [],\n \"content\": [],\n \"metaData\": [],\n \"mimeType\": [],\n \"fieldNameBody\": [],\n \"fileName\": [],\n \"modifiedFileName\": [],\n \"contentBody\": [],\n \"fieldNameFile\": [],\n \"filePath\": [],\n \"filesize\": [],\n \"streams\": []\n\n };\n let buff: Array<Buffer> = [];\n let reqType = req.headers[\"content-type\"];\n if (reqType && !reqType.includes(\"multipart/form-data\"))\n throw new FormfluxError(\"Invalid Request Type.Expected multipart/form-data\", 400);\n\n let boundary = req.headers[\"content-type\"]?.split(\"boundary=\")[1];\n\n req.on(\"data\", (chunk: Buffer) => {\n buff.push(chunk);\n })\n req.on(\"end\", () => {\n try {\n obj.modifiedReq = Buffer.concat(buff); // holding the concatinated buffer\n\n obj.data = obj.modifiedReq.toString(\"binary\")?.split(`--${boundary}`); // separating the boundary\n obj.data.pop();\n obj.data.shift();\n\n //*****Defaults*****\n //To*********extract content\n new ExtractFileContent(obj, options, null, null).extraction();\n\n //To*********SetFileDataToReqObj\n new populateReqObj(obj).populate();\n\n let writeBool: boolean = false;\n let parseBool: boolean = false;\n let checkCompletion = (writeComplete: boolean, parsecomplete: boolean) => {\n if (writeComplete && parsecomplete)\n next();\n }\n\n EventHandlers.on(\"parseEnd\", (message) => {\n parseBool = true;\n checkCompletion(writeBool, parseBool);\n })\n\n EventHandlers.on(\"writeEnd\", (message) => {\n writeBool = true;\n checkCompletion(writeBool, parseBool);\n })\n\n\n new writeFileContent(req, obj, options, \"any\", \"disk\").writeContent();\n if (options.attachFileToReqBody && options.attachFileToReqBody == true)\n new setFileNameToBody(obj).setFileNames(req);\n\n new setContentToBody(obj).setBody(req);\n\n } catch (err) {\n next(err);\n }\n })\n\n req.on(\"error\", () => {\n next(new FormfluxError(\"Error in recieving request\", 500));\n })\n\n }\n },\n fields(optionFields: optionFields) {\n return async function (req: Request, res: Response, next: NextFunction): Promise<void> {\n let obj: reqObj = {\n \"originalReq\": \"\",\n \"modifiedReq\": Buffer.from(\"\"),\n \"data\": [],\n \"content\": [],\n \"metaData\": [],\n \"mimeType\": [],\n \"fieldNameBody\": [],\n \"fileName\": [],\n \"modifiedFileName\": [],\n \"contentBody\": [],\n \"fieldNameFile\": [],\n \"filePath\": [],\n \"filesize\": [],\n \"streams\": []\n\n };\n let buff: Array<Buffer> = [];\n let reqType = req.headers[\"content-type\"];\n if (reqType && !reqType.includes(\"multipart/form-data\"))\n throw new FormfluxError(\"Invalid Request Type.Expected multipart/form-data\", 400);\n let boundary = req.headers[\"content-type\"]?.split(\"boundary=\")[1];\n\n req.on(\"data\", (chunk: Buffer) => {\n buff.push(chunk);\n })\n req.on(\"end\", () => {\n try {\n obj.modifiedReq = Buffer.concat(buff); // holding the concatinated buffer\n\n obj.data = obj.modifiedReq.toString(\"binary\")?.split(`--${boundary}`); // separating the boundary\n obj.data.pop();\n obj.data.shift();\n\n //*****Defaults*****\n //To*********extract content\n new ExtractFileContent(obj, options, optionFields, null).extraction();\n\n //To*********SetFileDataToReqObj\n new populateReqObj(obj).populate();\n\n let writeBool: boolean = false;\n let parseBool: boolean = false;\n let checkCompletion = (writeComplete: boolean, parsecomplete: boolean) => {\n if (writeComplete && parsecomplete)\n next();\n }\n\n EventHandlers.on(\"parseEnd\", (message) => {\n parseBool = true;\n checkCompletion(writeBool, parseBool);\n })\n\n EventHandlers.on(\"writeEnd\", (message) => {\n writeBool = true;\n checkCompletion(writeBool, parseBool);\n })\n\n\n new writeFileContent(req, obj, options, \"fields\", \"disk\").writeContent();\n // new setFileContentToReq(obj).setFileNames(req);\n if (options.attachFileToReqBody && options.attachFileToReqBody == true)\n new setFileNameToBody(obj).setFileNames(req);\n\n new setContentToBody(obj).setBody(req);\n\n } catch (err) {\n next(err)\n }\n })\n\n req.on(\"error\", () => {\n next(new FormfluxError(\"Error in recieving request\", 500));\n })\n }\n },\n\n single(field: string) {\n return async function (req: Request, res: Response, next: NextFunction): Promise<void> {\n let obj: reqObj = {\n \"originalReq\": \"\",\n \"modifiedReq\": Buffer.from(\"\"),\n \"data\": [],\n \"content\": [],\n \"metaData\": [],\n \"mimeType\": [],\n \"fieldNameBody\": [],\n \"fileName\": [],\n \"modifiedFileName\": [],\n \"contentBody\": [],\n \"fieldNameFile\": [],\n \"filePath\": [],\n \"filesize\": [],\n \"streams\": []\n\n };\n let buff: Array<Buffer> = [];\n let reqType = req.headers[\"content-type\"];\n if (reqType && !reqType.includes(\"multipart/form-data\"))\n throw new FormfluxError(\"Invalid Request Type.Expected multipart/form-data\", 400);\n let boundary = req.headers[\"content-type\"]?.split(\"boundary=\")[1];\n\n req.on(\"data\", (chunk: Buffer) => {\n buff.push(chunk);\n })\n req.on(\"end\", () => {\n try {\n obj.modifiedReq = Buffer.concat(buff); // holding the concatinated buffer\n\n obj.data = obj.modifiedReq.toString(\"binary\")?.split(`--${boundary}`); // separating the boundary\n obj.data.pop();\n obj.data.shift();\n\n //*****Defaults*****\n //To*********extract content\n new ExtractFileContent(obj, options, null, field).extraction();\n\n //To*********SetFileDataToReqObj\n new populateReqObj(obj).populate();\n\n let writeBool: boolean = false;\n let parseBool: boolean = false;\n let checkCompletion = (writeComplete: boolean, parsecomplete: boolean) => {\n if (writeComplete && parsecomplete)\n next();\n }\n\n EventHandlers.on(\"parseEnd\", (message) => {\n parseBool = true;\n checkCompletion(writeBool, parseBool);\n })\n\n EventHandlers.on(\"writeEnd\", (message) => {\n writeBool = true;\n checkCompletion(writeBool, parseBool);\n })\n\n\n new writeFileContent(req, obj, options, \"single\", \"disk\").writeContent();\n if (options.attachFileToReqBody && options.attachFileToReqBody == true)\n new setFileNameToBody(obj).setFileNames(req);\n\n new setContentToBody(obj).setBody(req);\n } catch (err) {\n next(err);\n }\n })\n\n req.on(\"error\", () => {\n next(new FormfluxError(\"Error in recieving request\", 500));\n })\n }\n },\n }\n }\n\n static memoryStorage(options: optionSingle) {\n return {\n any() {\n return async function (req: Request, res: Response, next: NextFunction): Promise<void> {\n let obj: reqObj = {\n \"originalReq\": \"\",\n \"modifiedReq\": Buffer.from(\"\"),\n \"data\": [],\n \"content\": [],\n \"metaData\": [],\n \"mimeType\": [],\n \"fieldNameBody\": [],\n \"fileName\": [],\n \"modifiedFileName\": [],\n \"contentBody\": [],\n \"fieldNameFile\": [],\n \"filePath\": [],\n \"filesize\": [],\n \"streams\": []\n\n };\n let buff: Array<Buffer> = [];\n let reqType = req.headers[\"content-type\"];\n if (reqType && !reqType.includes(\"multipart/form-data\"))\n throw new FormfluxError(\"Invalid Request Type.Expected multipart/form-data\", 400);\n let boundary = req.headers[\"content-type\"]?.split(\"boundary=\")[1];\n\n req.on(\"data\", (chunk: Buffer) => {\n buff.push(chunk);\n })\n req.on(\"end\", () => {\n try {\n obj.modifiedReq = Buffer.concat(buff); // holding the concatinated buffer\n\n obj.data = obj.modifiedReq.toString(\"binary\")?.split(`--${boundary}`); // separating the boundary\n obj.data.pop();\n obj.data.shift();\n\n //*****Defaults*****\n //To*********extract content\n new ExtractFileContent(obj, options, null, null).extraction();\n\n //To*********SetFileDataToReqObj\n new populateReqObj(obj).populate();\n\n let writeBool: boolean = false;\n let parseBool: boolean = false;\n let checkCompletion = (writeComplete: boolean, parsecomplete: boolean) => {\n if (writeComplete && parsecomplete)\n next();\n }\n\n EventHandlers.on(\"parseEnd\", (message) => {\n parseBool = true;\n checkCompletion(writeBool, parseBool);\n })\n\n EventHandlers.on(\"writeEnd\", (message) => {\n writeBool = true;\n checkCompletion(writeBool, parseBool);\n })\n\n\n new writeFileContent(req, obj, options, \"any\", \"memory\").writeContent();\n if (options.attachFileToReqBody && options.attachFileToReqBody == true)\n new setFileNameToBody(obj).setFileNames(req);\n\n new setContentToBody(obj).setBody(req);\n } catch (err) {\n next(err);\n }\n })\n\n req.on(\"error\", () => {\n next(new FormfluxError(\"Error in recieving request\", 500));\n })\n }\n },\n fields(optionFields: optionFields) {\n return async function (req: Request, res: Response, next: NextFunction): Promise<void> {\n let obj: reqObj = {\n \"originalReq\": \"\",\n \"modifiedReq\": Buffer.from(\"\"),\n \"data\": [],\n \"content\": [],\n \"metaData\": [],\n \"mimeType\": [],\n \"fieldNameBody\": [],\n \"fileName\": [],\n \"modifiedFileName\": [],\n \"contentBody\": [],\n \"fieldNameFile\": [],\n \"filePath\": [],\n \"filesize\": [],\n \"streams\": []\n\n };\n let buff: Array<Buffer> = [];\n let reqType = req.headers[\"content-type\"];\n if (reqType && !reqType.includes(\"multipart/form-data\"))\n throw new FormfluxError(\"Invalid Request Type.Expected multipart/form-data\", 400);\n let boundary = req.headers[\"content-type\"]?.split(\"boundary=\")[1];\n\n req.on(\"data\", (chunk: Buffer) => {\n buff.push(chunk);\n })\n req.on(\"end\", () => {\n try {\n obj.modifiedReq = Buffer.concat(buff); // holding the concatinated buffer\n\n obj.data = obj.modifiedReq.toString(\"binary\")?.split(`--${boundary}`); // separating the boundary\n obj.data.pop();\n obj.data.shift();\n\n //*****Defaults*****\n //To*********extract content\n new ExtractFileContent(obj, options, optionFields, null).extraction();\n\n //To*********SetFileDataToReqObj\n new populateReqObj(obj).populate();\n\n let writeBool: boolean = false;\n let parseBool: boolean = false;\n let checkCompletion = (writeComplete: boolean, parsecomplete: boolean) => {\n if (writeComplete && parsecomplete)\n next();\n }\n\n EventHandlers.on(\"parseEnd\", (message) => {\n parseBool = true;\n checkCompletion(writeBool, parseBool);\n })\n\n EventHandlers.on(\"writeEnd\", (message) => {\n writeBool = true;\n checkCompletion(writeBool, parseBool);\n })\n\n\n new writeFileContent(req, obj, options, \"fields\", \"memory\").writeContent();\n if (options.attachFileToReqBody && options.attachFileToReqBody == true)\n new setFileNameToBody(obj).setFileNames(req);\n\n new setContentToBody(obj).setBody(req);\n } catch (err) {\n next(err)\n }\n })\n\n req.on(\"error\", () => {\n next(new FormfluxError(\"Error in recieving request\", 500));\n })\n }\n },\n single(field: string) {\n return async function (req: Request, res: Response, next: NextFunction): Promise<void> {\n let obj: reqObj = {\n \"originalReq\": \"\",\n \"modifiedReq\": Buffer.from(\"\"),\n \"data\": [],\n \"content\": [],\n \"metaData\": [],\n \"mimeType\": [],\n \"fieldNameBody\": [],\n \"fileName\": [],\n \"modifiedFileName\": [],\n \"contentBody\": [],\n \"fieldNameFile\": [],\n \"filePath\": [],\n \"filesize\": [],\n \"streams\": []\n\n };\n let buff: Array<Buffer> = [];\n let reqType = req.headers[\"content-type\"];\n if (reqType && !reqType.includes(\"multipart/form-data\"))\n throw new FormfluxError(\"Invalid Request Type.Expected multipart/form-data\", 400);\n let boundary = req.headers[\"content-type\"]?.split(\"boundary=\")[1];\n\n req.on(\"data\", (chunk: Buffer) => {\n buff.push(chunk);\n })\n req.on(\"end\", () => {\n try {\n obj.modifiedReq = Buffer.concat(buff); // holding the concatinated buffer\n\n obj.data = obj.modifiedReq.toString(\"binary\")?.split(`--${boundary}`); // separating the boundary\n obj.data.pop();\n obj.data.shift();\n\n //*****Defaults*****\n //To*********extract content\n new ExtractFileContent(obj, options, null, field).extraction();\n\n //To*********SetFileDataToReqObj\n new populateReqObj(obj).populate();\n\n let writeBool: boolean = false;\n let parseBool: boolean = false;\n let checkCompletion = (writeComplete: boolean, parsecomplete: boolean) => {\n if (writeComplete && parsecomplete)\n next();\n }\n\n EventHandlers.on(\"parseEnd\", (message) => {\n parseBool = true;\n checkCompletion(writeBool, parseBool);\n })\n\n EventHandlers.on(\"writeEnd\", (message) => {\n writeBool = true;\n checkCompletion(writeBool, parseBool);\n })\n\n new writeFileContent(req, obj, options, \"single\", \"memory\").writeContent();\n if (options.attachFileToReqBody && options.attachFileToReqBody == true)\n new setFileNameToBody(obj).setFileNames(req);\n\n new setContentToBody(obj).setBody(req);\n } catch (err) {\n next(err);\n }\n })\n\n req.on(\"error\", () => {\n next(new FormfluxError(\"Error in recieving request\", 500));\n })\n }\n },\n }\n }\n\n bodyParser() {\n return async function (req: Request, res: Response, next: NextFunction): Promise<void> {\n let obj: reqObj = {\n \"originalReq\": \"\",\n \"modifiedReq\": Buffer.from(\"\"),\n \"data\": [],\n \"content\": [],\n \"metaData\": [],\n \"mimeType\": [],\n \"fieldNameBody\": [],\n \"fileName\": [],\n \"modifiedFileName\": [],\n \"contentBody\": [],\n \"fieldNameFile\": [],\n \"filePath\": [],\n \"filesize\": [],\n \"streams\": []\n\n };\n let buff: Array<Buffer> = [];\n let reqType = req.headers[\"content-type\"];\n if (reqType && !reqType.includes(\"multipart/form-data\"))\n throw new FormfluxError(\"Invalid Request Type.Expected multipart/form-data\", 400);\n\n let boundary = req.headers[\"content-type\"]?.split(\"boundary=\")[1];\n\n req.on(\"data\", (chunk: Buffer) => {\n buff.push(chunk);\n })\n req.on(\"end\", () => {\n try {\n obj.modifiedReq = Buffer.concat(buff); // holding the concatinated buffer\n\n obj.data = obj.modifiedReq.toString(\"binary\")?.split(`--${boundary}`); // separating the boundary\n obj.data.pop();\n obj.data.shift();\n\n //*****Defaults*****\n //To*********extract content\n new ExtractFileContent(obj, null, null, null).extraction();\n\n //To*********SetFileDataToReqObj\n let writeBool: boolean = false;\n let parseBool: boolean = false;\n let checkCompletion = (writeComplete: boolean, parsecomplete: boolean) => {\n if (writeComplete && parsecomplete)\n next();\n }\n\n EventHandlers.on(\"parseEnd\", (message) => {\n parseBool = true;\n next();\n })\n\n new setContentToBody(obj).setBody(req);\n\n } catch (err) {\n next(err);\n }\n })\n\n req.on(\"error\", () => {\n next(new FormfluxError(\"Error in recieving request\", 500));\n })\n }\n }\n\n}\n\nexport default Formflux;\nexport { FormfluxError, optionFields, options, optionSingle, File };"],"mappings":";;;;AACA,IAAAA,SAAA,GAAAC,OAAA;AAAqFC,OAAA,CAAAC,OAAA,GAAAH,SAAA,CAAAG,OAAA;AAAAD,OAAA,CAAAE,YAAA,GAAAJ,SAAA,CAAAI,YAAA;AAAAF,OAAA,CAAAG,YAAA,GAAAL,SAAA,CAAAK,YAAA;AAAAH,OAAA,CAAAI,IAAA,GAAAN,SAAA,CAAAM,IAAA;AACrF,IAAAC,eAAA,GAAAC,sBAAA,CAAAP,OAAA;AACA,IAAAQ,iBAAA,GAAAD,sBAAA,CAAAP,OAAA;AACA,IAAAS,oBAAA,GAAAF,sBAAA,CAAAP,OAAA;AACA,IAAAU,kBAAA,GAAAH,sBAAA,CAAAP,OAAA;AACA,IAAAW,gBAAA,GAAAJ,sBAAA,CAAAP,OAAA;AACA,IAAAY,cAAA,GAAAL,sBAAA,CAAAP,OAAA;AACA,IAAAa,cAAA,GAAAN,sBAAA,CAAAP,OAAA;AAA4CC,OAAA,CAAAa,aAAA,GAAAD,cAAA,CAAAE,OAAA;AAAA,SAAAR,uBAAAS,CAAA,WAAAA,CAAA,IAAAA,CAAA,CAAAC,UAAA,GAAAD,CAAA,KAAAD,OAAA,EAAAC,CAAA;AAE5C,MAAME,QAAQ,CAAC;EAEX,OAAOC,WAAWA,CAACjB,OAAgB,EAAE;IACjC,OAAO;MACHkB,GAAGA,CAAA,EAAG;QACF,OAAO,gBAAgBC,GAAY,EAAEC,GAAa,EAAEC,IAAkB,EAAiB;UAAA,IAAAC,oBAAA;UACnF,IAAIC,GAAW,GAAG;YACd,aAAa,EAAE,EAAE;YACjB,aAAa,EAAEC,MAAM,CAACC,IAAI,CAAC,EAAE,CAAC;YAC9B,MAAM,EAAE,EAAE;YACV,SAAS,EAAE,EAAE;YACb,UAAU,EAAE,EAAE;YACd,UAAU,EAAE,EAAE;YACd,eAAe,EAAE,EAAE;YACnB,UAAU,EAAE,EAAE;YACd,kBAAkB,EAAE,EAAE;YACtB,aAAa,EAAE,EAAE;YACjB,eAAe,EAAE,EAAE;YACnB,UAAU,EAAE,EAAE;YACd,UAAU,EAAE,EAAE;YACd,SAAS,EAAE;UAEf,CAAC;UACD,IAAIC,IAAmB,GAAG,EAAE;UAC5B,IAAIC,OAAO,GAAGR,GAAG,CAACS,OAAO,CAAC,cAAc,CAAC;UACzC,IAAID,OAAO,IAAI,CAACA,OAAO,CAACE,QAAQ,CAAC,qBAAqB,CAAC,EACnD,MAAM,IAAIjB,sBAAa,CAAC,mDAAmD,EAAE,GAAG,CAAC;UAErF,IAAIkB,QAAQ,IAAAR,oBAAA,GAAGH,GAAG,CAACS,OAAO,CAAC,cAAc,CAAC,qBAA3BN,oBAAA,CAA6BS,KAAK,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC;UAEjEZ,GAAG,CAACa,EAAE,CAAC,MAAM,EAAGC,KAAa,IAAK;YAC9BP,IAAI,CAACQ,IAAI,CAACD,KAAK,CAAC;UACpB,CAAC,CAAC;UACFd,GAAG,CAACa,EAAE,CAAC,KAAK,EAAE,MAAM;YAChB,IAAI;cAAA,IAAAG,qBAAA;cACAZ,GAAG,CAACa,WAAW,GAAGZ,MAAM,CAACa,MAAM,CAACX,IAAI,CAAC,CAAC,CAAC;;cAEvCH,GAAG,CAACe,IAAI,IAAAH,qBAAA,GAAGZ,GAAG,CAACa,WAAW,CAACG,QAAQ,CAAC,QAAQ,CAAC,qBAAlCJ,qBAAA,CAAoCJ,KAAK,CAAC,KAAKD,QAAQ,EAAE,CAAC,CAAC,CAAC;cACvEP,GAAG,CAACe,IAAI,CAACE,GAAG,CAAC,CAAC;cACdjB,GAAG,CAACe,IAAI,CAACG,KAAK,CAAC,CAAC;;cAEhB;cACA;cACA,IAAIC,uBAAkB,CAACnB,GAAG,EAAEvB,OAAO,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC2C,UAAU,CAAC,CAAC;;cAE7D;cACA,IAAIC,wBAAc,CAACrB,GAAG,CAAC,CAACsB,QAAQ,CAAC,CAAC;cAElC,IAAIC,SAAkB,GAAG,KAAK;cAC9B,IAAIC,SAAkB,GAAG,KAAK;cAC9B,IAAIC,eAAe,GAAGA,CAACC,aAAsB,EAAEC,aAAsB,KAAK;gBACtE,IAAID,aAAa,IAAIC,aAAa,EAC9B7B,IAAI,CAAC,CAAC;cACd,CAAC;cAED8B,sBAAa,CAACnB,EAAE,CAAC,UAAU,EAAGoB,OAAO,IAAK;gBACtCL,SAAS,GAAG,IAAI;gBAChBC,eAAe,CAACF,SAAS,EAAEC,SAAS,CAAC;cACzC,CAAC,CAAC;cAEFI,sBAAa,CAACnB,EAAE,CAAC,UAAU,EAAGoB,OAAO,IAAK;gBACtCN,SAAS,GAAG,IAAI;gBAChBE,eAAe,CAACF,SAAS,EAAEC,SAAS,CAAC;cACzC,CAAC,CAAC;cAGF,IAAIM,yBAAgB,CAAClC,GAAG,EAAEI,GAAG,EAAEvB,OAAO,EAAE,KAAK,EAAE,MAAM,CAAC,CAACsD,YAAY,CAAC,CAAC;cACrE,IAAItD,OAAO,CAACuD,mBAAmB,IAAIvD,OAAO,CAACuD,mBAAmB,IAAI,IAAI,EAClE,IAAIC,0BAAiB,CAACjC,GAAG,CAAC,CAACkC,YAAY,CAACtC,GAAG,CAAC;cAEhD,IAAIuC,4BAAgB,CAACnC,GAAG,CAAC,CAACoC,OAAO,CAACxC,GAAG,CAAC;YAE1C,CAAC,CAAC,OAAOyC,GAAG,EAAE;cACVvC,IAAI,CAACuC,GAAG,CAAC;YACb;UACJ,CAAC,CAAC;UAEFzC,GAAG,CAACa,EAAE,CAAC,OAAO,EAAE,MAAM;YAClBX,IAAI,CAAC,IAAIT,sBAAa,CAAC,4BAA4B,EAAE,GAAG,CAAC,CAAC;UAC9D,CAAC,CAAC;QAEN,CAAC;MACL,CAAC;MACDiD,MAAMA,CAAC5D,YAA0B,EAAE;QAC/B,OAAO,gBAAgBkB,GAAY,EAAEC,GAAa,EAAEC,IAAkB,EAAiB;UAAA,IAAAyC,qBAAA;UACnF,IAAIvC,GAAW,GAAG;YACd,aAAa,EAAE,EAAE;YACjB,aAAa,EAAEC,MAAM,CAACC,IAAI,CAAC,EAAE,CAAC;YAC9B,MAAM,EAAE,EAAE;YACV,SAAS,EAAE,EAAE;YACb,UAAU,EAAE,EAAE;YACd,UAAU,EAAE,EAAE;YACd,eAAe,EAAE,EAAE;YACnB,UAAU,EAAE,EAAE;YACd,kBAAkB,EAAE,EAAE;YACtB,aAAa,EAAE,EAAE;YACjB,eAAe,EAAE,EAAE;YACnB,UAAU,EAAE,EAAE;YACd,UAAU,EAAE,EAAE;YACd,SAAS,EAAE;UAEf,CAAC;UACD,IAAIC,IAAmB,GAAG,EAAE;UAC5B,IAAIC,OAAO,GAAGR,GAAG,CAACS,OAAO,CAAC,cAAc,CAAC;UACzC,IAAID,OAAO,IAAI,CAACA,OAAO,CAACE,QAAQ,CAAC,qBAAqB,CAAC,EACnD,MAAM,IAAIjB,sBAAa,CAAC,mDAAmD,EAAE,GAAG,CAAC;UACrF,IAAIkB,QAAQ,IAAAgC,qBAAA,GAAG3C,GAAG,CAACS,OAAO,CAAC,cAAc,CAAC,qBAA3BkC,qBAAA,CAA6B/B,KAAK,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC;UAEjEZ,GAAG,CAACa,EAAE,CAAC,MAAM,EAAGC,KAAa,IAAK;YAC9BP,IAAI,CAACQ,IAAI,CAACD,KAAK,CAAC;UACpB,CAAC,CAAC;UACFd,GAAG,CAACa,EAAE,CAAC,KAAK,EAAE,MAAM;YAChB,IAAI;cAAA,IAAA+B,sBAAA;cACAxC,GAAG,CAACa,WAAW,GAAGZ,MAAM,CAACa,MAAM,CAACX,IAAI,CAAC,CAAC,CAAC;;cAEvCH,GAAG,CAACe,IAAI,IAAAyB,sBAAA,GAAGxC,GAAG,CAACa,WAAW,CAACG,QAAQ,CAAC,QAAQ,CAAC,qBAAlCwB,sBAAA,CAAoChC,KAAK,CAAC,KAAKD,QAAQ,EAAE,CAAC,CAAC,CAAC;cACvEP,GAAG,CAACe,IAAI,CAACE,GAAG,CAAC,CAAC;cACdjB,GAAG,CAACe,IAAI,CAACG,KAAK,CAAC,CAAC;;cAEhB;cACA;cACA,IAAIC,uBAAkB,CAACnB,GAAG,EAAEvB,OAAO,EAAEC,YAAY,EAAE,IAAI,CAAC,CAAC0C,UAAU,CAAC,CAAC;;cAErE;cACA,IAAIC,wBAAc,CAACrB,GAAG,CAAC,CAACsB,QAAQ,CAAC,CAAC;cAElC,IAAIC,SAAkB,GAAG,KAAK;cAC9B,IAAIC,SAAkB,GAAG,KAAK;cAC9B,IAAIC,eAAe,GAAGA,CAACC,aAAsB,EAAEC,aAAsB,KAAK;gBACtE,IAAID,aAAa,IAAIC,aAAa,EAC9B7B,IAAI,CAAC,CAAC;cACd,CAAC;cAED8B,sBAAa,CAACnB,EAAE,CAAC,UAAU,EAAGoB,OAAO,IAAK;gBACtCL,SAAS,GAAG,IAAI;gBAChBC,eAAe,CAACF,SAAS,EAAEC,SAAS,CAAC;cACzC,CAAC,CAAC;cAEFI,sBAAa,CAACnB,EAAE,CAAC,UAAU,EAAGoB,OAAO,IAAK;gBACtCN,SAAS,GAAG,IAAI;gBAChBE,eAAe,CAACF,SAAS,EAAEC,SAAS,CAAC;cACzC,CAAC,CAAC;cAGF,IAAIM,yBAAgB,CAAClC,GAAG,EAAEI,GAAG,EAAEvB,OAAO,EAAE,QAAQ,EAAE,MAAM,CAAC,CAACsD,YAAY,CAAC,CAAC;cACxE;cACA,IAAItD,OAAO,CAACuD,mBAAmB,IAAIvD,OAAO,CAACuD,mBAAmB,IAAI,IAAI,EAClE,IAAIC,0BAAiB,CAACjC,GAAG,CAAC,CAACkC,YAAY,CAACtC,GAAG,CAAC;cAEhD,IAAIuC,4BAAgB,CAACnC,GAAG,CAAC,CAACoC,OAAO,CAACxC,GAAG,CAAC;YAE1C,CAAC,CAAC,OAAOyC,GAAG,EAAE;cACVvC,IAAI,CAACuC,GAAG,CAAC;YACb;UACJ,CAAC,CAAC;UAEFzC,GAAG,CAACa,EAAE,CAAC,OAAO,EAAE,MAAM;YAClBX,IAAI,CAAC,IAAIT,sBAAa,CAAC,4BAA4B,EAAE,GAAG,CAAC,CAAC;UAC9D,CAAC,CAAC;QACN,CAAC;MACL,CAAC;MAEDoD,MAAMA,CAACC,KAAa,EAAE;QAClB,OAAO,gBAAgB9C,GAAY,EAAEC,GAAa,EAAEC,IAAkB,EAAiB;UAAA,IAAA6C,qBAAA;UACnF,IAAI3C,GAAW,GAAG;YACd,aAAa,EAAE,EAAE;YACjB,aAAa,EAAEC,MAAM,CAACC,IAAI,CAAC,EAAE,CAAC;YAC9B,MAAM,EAAE,EAAE;YACV,SAAS,EAAE,EAAE;YACb,UAAU,EAAE,EAAE;YACd,UAAU,EAAE,EAAE;YACd,eAAe,EAAE,EAAE;YACnB,UAAU,EAAE,EAAE;YACd,kBAAkB,EAAE,EAAE;YACtB,aAAa,EAAE,EAAE;YACjB,eAAe,EAAE,EAAE;YACnB,UAAU,EAAE,EAAE;YACd,UAAU,EAAE,EAAE;YACd,SAAS,EAAE;UAEf,CAAC;UACD,IAAIC,IAAmB,GAAG,EAAE;UAC5B,IAAIC,OAAO,GAAGR,GAAG,CAACS,OAAO,CAAC,cAAc,CAAC;UACzC,IAAID,OAAO,IAAI,CAACA,OAAO,CAACE,QAAQ,CAAC,qBAAqB,CAAC,EACnD,MAAM,IAAIjB,sBAAa,CAAC,mDAAmD,EAAE,GAAG,CAAC;UACrF,IAAIkB,QAAQ,IAAAoC,qBAAA,GAAG/C,GAAG,CAACS,OAAO,CAAC,cAAc,CAAC,qBAA3BsC,qBAAA,CAA6BnC,KAAK,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC;UAEjEZ,GAAG,CAACa,EAAE,CAAC,MAAM,EAAGC,KAAa,IAAK;YAC9BP,IAAI,CAACQ,IAAI,CAACD,KAAK,CAAC;UACpB,CAAC,CAAC;UACFd,GAAG,CAACa,EAAE,CAAC,KAAK,EAAE,MAAM;YAChB,IAAI;cAAA,IAAAmC,sBAAA;cACA5C,GAAG,CAACa,WAAW,GAAGZ,MAAM,CAACa,MAAM,CAACX,IAAI,CAAC,CAAC,CAAC;;cAEvCH,GAAG,CAACe,IAAI,IAAA6B,sBAAA,GAAG5C,GAAG,CAACa,WAAW,CAACG,QAAQ,CAAC,QAAQ,CAAC,qBAAlC4B,sBAAA,CAAoCpC,KAAK,CAAC,KAAKD,QAAQ,EAAE,CAAC,CAAC,CAAC;cACvEP,GAAG,CAACe,IAAI,CAACE,GAAG,CAAC,CAAC;cACdjB,GAAG,CAACe,IAAI,CAACG,KAAK,CAAC,CAAC;;cAEhB;cACA;cACA,IAAIC,uBAAkB,CAACnB,GAAG,EAAEvB,OAAO,EAAE,IAAI,EAAEiE,KAAK,CAAC,CAACtB,UAAU,CAAC,CAAC;;cAE9D;cACA,IAAIC,wBAAc,CAACrB,GAAG,CAAC,CAACsB,QAAQ,CAAC,CAAC;cAElC,IAAIC,SAAkB,GAAG,KAAK;cAC9B,IAAIC,SAAkB,GAAG,KAAK;cAC9B,IAAIC,eAAe,GAAGA,CAACC,aAAsB,EAAEC,aAAsB,KAAK;gBACtE,IAAID,aAAa,IAAIC,aAAa,EAC9B7B,IAAI,CAAC,CAAC;cACd,CAAC;cAED8B,sBAAa,CAACnB,EAAE,CAAC,UAAU,EAAGoB,OAAO,IAAK;gBACtCL,SAAS,GAAG,IAAI;gBAChBC,eAAe,CAACF,SAAS,EAAEC,SAAS,CAAC;cACzC,CAAC,CAAC;cAEFI,sBAAa,CAACnB,EAAE,CAAC,UAAU,EAAGoB,OAAO,IAAK;gBACtCN,SAAS,GAAG,IAAI;gBAChBE,eAAe,CAACF,SAAS,EAAEC,SAAS,CAAC;cACzC,CAAC,CAAC;cAGF,IAAIM,yBAAgB,CAAClC,GAAG,EAAEI,GAAG,EAAEvB,OAAO,EAAE,QAAQ,EAAE,MAAM,CAAC,CAACsD,YAAY,CAAC,CAAC;cACxE,IAAItD,OAAO,CAACuD,mBAAmB,IAAIvD,OAAO,CAACuD,mBAAmB,IAAI,IAAI,EAClE,IAAIC,0BAAiB,CAACjC,GAAG,CAAC,CAACkC,YAAY,CAACtC,GAAG,CAAC;cAEhD,IAAIuC,4BAAgB,CAACnC,GAAG,CAAC,CAACoC,OAAO,CAACxC,GAAG,CAAC;YAC1C,CAAC,CAAC,OAAOyC,GAAG,EAAE;cACVvC,IAAI,CAACuC,GAAG,CAAC;YACb;UACJ,CAAC,CAAC;UAEFzC,GAAG,CAACa,EAAE,CAAC,OAAO,EAAE,MAAM;YAClBX,IAAI,CAAC,IAAIT,sBAAa,CAAC,4BAA4B,EAAE,GAAG,CAAC,CAAC;UAC9D,CAAC,CAAC;QACN,CAAC;MACL;IACJ,CAAC;EACL;EAEA,OAAOwD,aAAaA,CAACpE,OAAqB,EAAE;IACxC,OAAO;MACHkB,GAAGA,CAAA,EAAG;QACF,OAAO,gBAAgBC,GAAY,EAAEC,GAAa,EAAEC,IAAkB,EAAiB;UAAA,IAAAgD,qBAAA;UACnF,IAAI9C,GAAW,GAAG;YACd,aAAa,EAAE,EAAE;YACjB,aAAa,EAAEC,MAAM,CAACC,IAAI,CAAC,EAAE,CAAC;YAC9B,MAAM,EAAE,EAAE;YACV,SAAS,EAAE,EAAE;YACb,UAAU,EAAE,EAAE;YACd,UAAU,EAAE,EAAE;YACd,eAAe,EAAE,EAAE;YACnB,UAAU,EAAE,EAAE;YACd,kBAAkB,EAAE,EAAE;YACtB,aAAa,EAAE,EAAE;YACjB,eAAe,EAAE,EAAE;YACnB,UAAU,EAAE,EAAE;YACd,UAAU,EAAE,EAAE;YACd,SAAS,EAAE;UAEf,CAAC;UACD,IAAIC,IAAmB,GAAG,EAAE;UAC5B,IAAIC,OAAO,GAAGR,GAAG,CAACS,OAAO,CAAC,cAAc,CAAC;UACzC,IAAID,OAAO,IAAI,CAACA,OAAO,CAACE,QAAQ,CAAC,qBAAqB,CAAC,EACnD,MAAM,IAAIjB,sBAAa,CAAC,mDAAmD,EAAE,GAAG,CAAC;UACrF,IAAIkB,QAAQ,IAAAuC,qBAAA,GAAGlD,GAAG,CAACS,OAAO,CAAC,cAAc,CAAC,qBAA3ByC,qBAAA,CAA6BtC,KAAK,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC;UAEjEZ,GAAG,CAACa,EAAE,CAAC,MAAM,EAAGC,KAAa,IAAK;YAC9BP,IAAI,CAACQ,IAAI,CAACD,KAAK,CAAC;UACpB,CAAC,CAAC;UACFd,GAAG,CAACa,EAAE,CAAC,KAAK,EAAE,MAAM;YAChB,IAAI;cAAA,IAAAsC,sBAAA;cACA/C,GAAG,CAACa,WAAW,GAAGZ,MAAM,CAACa,MAAM,CAACX,IAAI,CAAC,CAAC,CAAC;;cAEvCH,GAAG,CAACe,IAAI,IAAAgC,sBAAA,GAAG/C,GAAG,CAACa,WAAW,CAACG,QAAQ,CAAC,QAAQ,CAAC,qBAAlC+B,sBAAA,CAAoCvC,KAAK,CAAC,KAAKD,QAAQ,EAAE,CAAC,CAAC,CAAC;cACvEP,GAAG,CAACe,IAAI,CAACE,GAAG,CAAC,CAAC;cACdjB,GAAG,CAACe,IAAI,CAACG,KAAK,CAAC,CAAC;;cAEhB;cACA;cACA,IAAIC,uBAAkB,CAACnB,GAAG,EAAEvB,OAAO,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC2C,UAAU,CAAC,CAAC;;cAE7D;cACA,IAAIC,wBAAc,CAACrB,GAAG,CAAC,CAACsB,QAAQ,CAAC,CAAC;cAElC,IAAIC,SAAkB,GAAG,KAAK;cAC9B,IAAIC,SAAkB,GAAG,KAAK;cAC9B,IAAIC,eAAe,GAAGA,CAACC,aAAsB,EAAEC,aAAsB,KAAK;gBACtE,IAAID,aAAa,IAAIC,aAAa,EAC9B7B,IAAI,CAAC,CAAC;cACd,CAAC;cAED8B,sBAAa,CAACnB,EAAE,CAAC,UAAU,EAAGoB,OAAO,IAAK;gBACtCL,SAAS,GAAG,IAAI;gBAChBC,eAAe,CAACF,SAAS,EAAEC,SAAS,CAAC;cACzC,CAAC,CAAC;cAEFI,sBAAa,CAACnB,EAAE,CAAC,UAAU,EAAGoB,OAAO,IAAK;gBACtCN,SAAS,GAAG,IAAI;gBAChBE,eAAe,CAACF,SAAS,EAAEC,SAAS,CAAC;cACzC,CAAC,CAAC;cAGF,IAAIM,yBAAgB,CAAClC,GAAG,EAAEI,GAAG,EAAEvB,OAAO,EAAE,KAAK,EAAE,QAAQ,CAAC,CAACsD,YAAY,CAAC,CAAC;cACvE,IAAItD,OAAO,CAACuD,mBAAmB,IAAIvD,OAAO,CAACuD,mBAAmB,IAAI,IAAI,EAClE,IAAIC,0BAAiB,CAACjC,GAAG,CAAC,CAACkC,YAAY,CAACtC,GAAG,CAAC;cAEhD,IAAIuC,4BAAgB,CAACnC,GAAG,CAAC,CAACoC,OAAO,CAACxC,GAAG,CAAC;YAC1C,CAAC,CAAC,OAAOyC,GAAG,EAAE;cACVvC,IAAI,CAACuC,GAAG,CAAC;YACb;UACJ,CAAC,CAAC;UAEFzC,GAAG,CAACa,EAAE,CAAC,OAAO,EAAE,MAAM;YAClBX,IAAI,CAAC,IAAIT,sBAAa,CAAC,4BAA4B,EAAE,GAAG,CAAC,CAAC;UAC9D,CAAC,CAAC;QACN,CAAC;MACL,CAAC;MACDiD,MAAMA,CAAC5D,YAA0B,EAAE;QAC/B,OAAO,gBAAgBkB,GAAY,EAAEC,GAAa,EAAEC,IAAkB,EAAiB;UAAA,IAAAkD,qBAAA;UACnF,IAAIhD,GAAW,GAAG;YACd,aAAa,EAAE,EAAE;YACjB,aAAa,EAAEC,MAAM,CAACC,IAAI,CAAC,EAAE,CAAC;YAC9B,MAAM,EAAE,EAAE;YACV,SAAS,EAAE,EAAE;YACb,UAAU,EAAE,EAAE;YACd,UAAU,EAAE,EAAE;YACd,eAAe,EAAE,EAAE;YACnB,UAAU,EAAE,EAAE;YACd,kBAAkB,EAAE,EAAE;YACtB,aAAa,EAAE,EAAE;YACjB,eAAe,EAAE,EAAE;YACnB,UAAU,EAAE,EAAE;YACd,UAAU,EAAE,EAAE;YACd,SAAS,EAAE;UAEf,CAAC;UACD,IAAIC,IAAmB,GAAG,EAAE;UAC5B,IAAIC,OAAO,GAAGR,GAAG,CAACS,OAAO,CAAC,cAAc,CAAC;UACzC,IAAID,OAAO,IAAI,CAACA,OAAO,CAACE,QAAQ,CAAC,qBAAqB,CAAC,EACnD,MAAM,IAAIjB,sBAAa,CAAC,mDAAmD,EAAE,GAAG,CAAC;UACrF,IAAIkB,QAAQ,IAAAyC,qBAAA,GAAGpD,GAAG,CAACS,OAAO,CAAC,cAAc,CAAC,qBAA3B2C,qBAAA,CAA6BxC,KAAK,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC;UAEjEZ,GAAG,CAACa,EAAE,CAAC,MAAM,EAAGC,KAAa,IAAK;YAC9BP,IAAI,CAACQ,IAAI,CAACD,KAAK,CAAC;UACpB,CAAC,CAAC;UACFd,GAAG,CAACa,EAAE,CAAC,KAAK,EAAE,MAAM;YAChB,IAAI;cAAA,IAAAwC,sBAAA;cACAjD,GAAG,CAACa,WAAW,GAAGZ,MAAM,CAACa,MAAM,CAACX,IAAI,CAAC,CAAC,CAAC;;cAEvCH,GAAG,CAACe,IAAI,IAAAkC,sBAAA,GAAGjD,GAAG,CAACa,WAAW,CAACG,QAAQ,CAAC,QAAQ,CAAC,qBAAlCiC,sBAAA,CAAoCzC,KAAK,CAAC,KAAKD,QAAQ,EAAE,CAAC,CAAC,CAAC;cACvEP,GAAG,CAACe,IAAI,CAACE,GAAG,CAAC,CAAC;cACdjB,GAAG,CAACe,IAAI,CAACG,KAAK,CAAC,CAAC;;cAEhB;cACA;cACA,IAAIC,uBAAkB,CAACnB,GAAG,EAAEvB,OAAO,EAAEC,YAAY,EAAE,IAAI,CAAC,CAAC0C,UAAU,CAAC,CAAC;;cAErE;cACA,IAAIC,wBAAc,CAACrB,GAAG,CAAC,CAACsB,QAAQ,CAAC,CAAC;cAElC,IAAIC,SAAkB,GAAG,KAAK;cAC9B,IAAIC,SAAkB,GAAG,KAAK;cAC9B,IAAIC,eAAe,GAAGA,CAACC,aAAsB,EAAEC,aAAsB,KAAK;gBACtE,IAAID,aAAa,IAAIC,aAAa,EAC9B7B,IAAI,CAAC,CAAC;cACd,CAAC;cAED8B,sBAAa,CAACnB,EAAE,CAAC,UAAU,EAAGoB,OAAO,IAAK;gBACtCL,SAAS,GAAG,IAAI;gBAChBC,eAAe,CAACF,SAAS,EAAEC,SAAS,CAAC;cACzC,CAAC,CAAC;cAEFI,sBAAa,CAACnB,EAAE,CAAC,UAAU,EAAGoB,OAAO,IAAK;gBACtCN,SAAS,GAAG,IAAI;gBAChBE,eAAe,CAACF,SAAS,EAAEC,SAAS,CAAC;cACzC,CAAC,CAAC;cAGF,IAAIM,yBAAgB,CAAClC,GAAG,EAAEI,GAAG,EAAEvB,OAAO,EAAE,QAAQ,EAAE,QAAQ,CAAC,CAACsD,YAAY,CAAC,CAAC;cAC1E,IAAItD,OAAO,CAACuD,mBAAmB,IAAIvD,OAAO,CAACuD,mBAAmB,IAAI,IAAI,EAClE,IAAIC,0BAAiB,CAACjC,GAAG,CAAC,CAACkC,YAAY,CAACtC,GAAG,CAAC;cAEhD,IAAIuC,4BAAgB,CAACnC,GAAG,CAAC,CAACoC,OAAO,CAACxC,GAAG,CAAC;YAC1C,CAAC,CAAC,OAAOyC,GAAG,EAAE;cACVvC,IAAI,CAACuC,GAAG,CAAC;YACb;UACJ,CAAC,CAAC;UAEFzC,GAAG,CAACa,EAAE,CAAC,OAAO,EAAE,MAAM;YAClBX,IAAI,CAAC,IAAIT,sBAAa,CAAC,4BAA4B,EAAE,GAAG,CAAC,CAAC;UAC9D,CAAC,CAAC;QACN,CAAC;MACL,CAAC;MACDoD,MAAMA,CAACC,KAAa,EAAE;QAClB,OAAO,gBAAgB9C,GAAY,EAAEC,GAAa,EAAEC,IAAkB,EAAiB;UAAA,IAAAoD,qBAAA;UACnF,IAAIlD,GAAW,GAAG;YACd,aAAa,EAAE,EAAE;YACjB,aAAa,EAAEC,MAAM,CAACC,IAAI,CAAC,EAAE,CAAC;YAC9B,MAAM,EAAE,EAAE;YACV,SAAS,EAAE,EAAE;YACb,UAAU,EAAE,EAAE;YACd,UAAU,EAAE,EAAE;YACd,eAAe,EAAE,EAAE;YACnB,UAAU,EAAE,EAAE;YACd,kBAAkB,EAAE,EAAE;YACtB,aAAa,EAAE,EAAE;YACjB,eAAe,EAAE,EAAE;YACnB,UAAU,EAAE,EAAE;YACd,UAAU,EAAE,EAAE;YACd,SAAS,EAAE;UAEf,CAAC;UACD,IAAIC,IAAmB,GAAG,EAAE;UAC5B,IAAIC,OAAO,GAAGR,GAAG,CAACS,OAAO,CAAC,cAAc,CAAC;UACzC,IAAID,OAAO,IAAI,CAACA,OAAO,CAACE,QAAQ,CAAC,qBAAqB,CAAC,EACnD,MAAM,IAAIjB,sBAAa,CAAC,mDAAmD,EAAE,GAAG,CAAC;UACrF,IAAIkB,QAAQ,IAAA2C,qBAAA,GAAGtD,GAAG,CAACS,OAAO,CAAC,cAAc,CAAC,qBAA3B6C,qBAAA,CAA6B1C,KAAK,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC;UAEjEZ,GAAG,CAACa,EAAE,CAAC,MAAM,EAAGC,KAAa,IAAK;YAC9BP,IAAI,CAACQ,IAAI,CAACD,KAAK,CAAC;UACpB,CAAC,CAAC;UACFd,GAAG,CAACa,EAAE,CAAC,KAAK,EAAE,MAAM;YAChB,IAAI;cAAA,IAAA0C,sBAAA;cACAnD,GAAG,CAACa,WAAW,GAAGZ,MAAM,CAACa,MAAM,CAACX,IAAI,CAAC,CAAC,CAAC;;cAEvCH,GAAG,CAACe,IAAI,IAAAoC,sBAAA,GAAGnD,GAAG,CAACa,WAAW,CAACG,QAAQ,CAAC,QAAQ,CAAC,qBAAlCmC,sBAAA,CAAoC3C,KAAK,CAAC,KAAKD,QAAQ,EAAE,CAAC,CAAC,CAAC;cACvEP,GAAG,CAACe,IAAI,CAACE,GAAG,CAAC,CAAC;cACdjB,GAAG,CAACe,IAAI,CAACG,KAAK,CAAC,CAAC;;cAEhB;cACA;cACA,IAAIC,uBAAkB,CAACnB,GAAG,EAAEvB,OAAO,EAAE,IAAI,EAAEiE,KAAK,CAAC,CAACtB,UAAU,CAAC,CAAC;;cAE9D;cACA,IAAIC,wBAAc,CAACrB,GAAG,CAAC,CAACsB,QAAQ,CAAC,CAAC;cAElC,IAAIC,SAAkB,GAAG,KAAK;cAC9B,IAAIC,SAAkB,GAAG,KAAK;cAC9B,IAAIC,eAAe,GAAGA,CAACC,aAAsB,EAAEC,aAAsB,KAAK;gBACtE,IAAID,aAAa,IAAIC,aAAa,EAC9B7B,IAAI,CAAC,CAAC;cACd,CAAC;cAED8B,sBAAa,CAACnB,EAAE,CAAC,UAAU,EAAGoB,OAAO,IAAK;gBACtCL,SAAS,GAAG,IAAI;gBAChBC,eAAe,CAACF,SAAS,EAAEC,SAAS,CAAC;cACzC,CAAC,CAAC;cAEFI,sBAAa,CAACnB,EAAE,CAAC,UAAU,EAAGoB,OAAO,IAAK;gBACtCN,SAAS,GAAG,IAAI;gBAChBE,eAAe,CAACF,SAAS,EAAEC,SAAS,CAAC;cACzC,CAAC,CAAC;cAEF,IAAIM,yBAAgB,CAAClC,GAAG,EAAEI,GAAG,EAAEvB,OAAO,EAAE,QAAQ,EAAE,QAAQ,CAAC,CAACsD,YAAY,CAAC,CAAC;cAC1E,IAAItD,OAAO,CAACuD,mBAAmB,IAAIvD,OAAO,CAACuD,mBAAmB,IAAI,IAAI,EAClE,IAAIC,0BAAiB,CAACjC,GAAG,CAAC,CAACkC,YAAY,CAACtC,GAAG,CAAC;cAEhD,IAAIuC,4BAAgB,CAACnC,GAAG,CAAC,CAACoC,OAAO,CAACxC,GAAG,CAAC;YAC1C,CAAC,CAAC,OAAOyC,GAAG,EAAE;cACVvC,IAAI,CAACuC,GAAG,CAAC;YACb;UACJ,CAAC,CAAC;UAEFzC,GAAG,CAACa,EAAE,CAAC,OAAO,EAAE,MAAM;YAClBX,IAAI,CAAC,IAAIT,sBAAa,CAAC,4BAA4B,EAAE,GAAG,CAAC,CAAC;UAC9D,CAAC,CAAC;QACN,CAAC;MACL;IACJ,CAAC;EACL;EAEA+D,UAAUA,CAAA,EAAG;IACT,OAAO,gBAAgBxD,GAAY,EAAEC,GAAa,EAAEC,IAAkB,EAAiB;MAAA,IAAAuD,qBAAA;MACnF,IAAIrD,GAAW,GAAG;QACd,aAAa,EAAE,EAAE;QACjB,aAAa,EAAEC,MAAM,CAACC,IAAI,CAAC,EAAE,CAAC;QAC9B,MAAM,EAAE,EAAE;QACV,SAAS,EAAE,EAAE;QACb,UAAU,EAAE,EAAE;QACd,UAAU,EAAE,EAAE;QACd,eAAe,EAAE,EAAE;QACnB,UAAU,EAAE,EAAE;QACd,kBAAkB,EAAE,EAAE;QACtB,aAAa,EAAE,EAAE;QACjB,eAAe,EAAE,EAAE;QACnB,UAAU,EAAE,EAAE;QACd,UAAU,EAAE,EAAE;QACd,SAAS,EAAE;MAEf,CAAC;MACD,IAAIC,IAAmB,GAAG,EAAE;MAC5B,IAAIC,OAAO,GAAGR,GAAG,CAACS,OAAO,CAAC,cAAc,CAAC;MACzC,IAAID,OAAO,IAAI,CAACA,OAAO,CAACE,QAAQ,CAAC,qBAAqB,CAAC,EACnD,MAAM,IAAIjB,sBAAa,CAAC,mDAAmD,EAAE,GAAG,CAAC;MAErF,IAAIkB,QAAQ,IAAA8C,qBAAA,GAAGzD,GAAG,CAACS,OAAO,CAAC,cAAc,CAAC,qBAA3BgD,qBAAA,CAA6B7C,KAAK,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC;MAEjEZ,GAAG,CAACa,EAAE,CAAC,MAAM,EAAGC,KAAa,IAAK;QAC9BP,IAAI,CAACQ,IAAI,CAACD,KAAK,CAAC;MACpB,CAAC,CAAC;MACFd,GAAG,CAACa,EAAE,CAAC,KAAK,EAAE,MAAM;QAChB,IAAI;UAAA,IAAA6C,sBAAA;UACAtD,GAAG,CAACa,WAAW,GAAGZ,MAAM,CAACa,MAAM,CAACX,IAAI,CAAC,CAAC,CAAC;;UAEvCH,GAAG,CAACe,IAAI,IAAAuC,sBAAA,GAAGtD,GAAG,CAACa,WAAW,CAACG,QAAQ,CAAC,QAAQ,CAAC,qBAAlCsC,sBAAA,CAAoC9C,KAAK,CAAC,KAAKD,QAAQ,EAAE,CAAC,CAAC,CAAC;UACvEP,GAAG,CAACe,IAAI,CAACE,GAAG,CAAC,CAAC;UACdjB,GAAG,CAACe,IAAI,CAACG,KAAK,CAAC,CAAC;;UAEhB;UACA;UACA,IAAIC,uBAAkB,CAACnB,GAAG,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,CAACoB,UAAU,CAAC,CAAC;;UAE1D;UACA,IAAIG,SAAkB,GAAG,KAAK;UAC9B,IAAIC,SAAkB,GAAG,KAAK;UAC9B,IAAIC,eAAe,GAAGA,CAACC,aAAsB,EAAEC,aAAsB,KAAK;YACtE,IAAID,aAAa,IAAIC,aAAa,EAC9B7B,IAAI,CAAC,CAAC;UACd,CAAC;UAED8B,sBAAa,CAACnB,EAAE,CAAC,UAAU,EAAGoB,OAAO,IAAK;YACtCL,SAAS,GAAG,IAAI;YAChB1B,IAAI,CAAC,CAAC;UACV,CAAC,CAAC;UAEF,IAAIqC,4BAAgB,CAACnC,GAAG,CAAC,CAACoC,OAAO,CAACxC,GAAG,CAAC;QAE1C,CAAC,CAAC,OAAOyC,GAAG,EAAE;UACVvC,IAAI,CAACuC,GAAG,CAAC;QACb;MACJ,CAAC,CAAC;MAEFzC,GAAG,CAACa,EAAE,CAAC,OAAO,EAAE,MAAM;QAClBX,IAAI,CAAC,IAAIT,sBAAa,CAAC,4BAA4B,EAAE,GAAG,CAAC,CAAC;MAC9D,CAAC,CAAC;IACN,CAAC;EACL;AAEJ;AAAC,IAAAkE,QAAA,GAAA/E,OAAA,CAAAc,OAAA,GAEcG,QAAQ","ignoreList":[]}
@@ -1,3 +1,4 @@
1
+ import { options, optionFields, optionSingle, File } from "./FormFlux.Types";
1
2
  import ExtractFileContent from "./ExtractContent";
2
3
  import writeFileContent from "./WriteFileContent";
3
4
  import setContentToBody from "./SetBodyContentToReq";
@@ -472,4 +473,5 @@ class Formflux {
472
473
  }
473
474
  }
474
475
  export default Formflux;
476
+ export { FormfluxError, optionFields, options, optionSingle, File };
475
477
  //# sourceMappingURL=FormFlux.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"FormFlux.js","names":["ExtractFileContent","writeFileContent","setContentToBody","setFileNameToBody","populateReqObj","EventHandlers","FormfluxError","Formflux","diskStorage","options","any","req","res","next","_req$headers$content","obj","Buffer","from","buff","reqType","headers","includes","boundary","split","on","chunk","push","_obj$modifiedReq$toSt","modifiedReq","concat","data","toString","pop","shift","extraction","populate","writeBool","parseBool","checkCompletion","writeComplete","parsecomplete","message","writeContent","attachFileToReqBody","setFileNames","setBody","err","fields","optionFields","_req$headers$content2","_obj$modifiedReq$toSt2","single","field","_req$headers$content3","_obj$modifiedReq$toSt3","memoryStorage","_req$headers$content4","_obj$modifiedReq$toSt4","_req$headers$content5","_obj$modifiedReq$toSt5","_req$headers$content6","_obj$modifiedReq$toSt6","bodyParser","_req$headers$content7","_obj$modifiedReq$toSt7"],"sources":["../../src/FormFlux.ts"],"sourcesContent":["import { NextFunction, Request, Response } from \"express\";\nimport { options, reqObj, optionFields, optionSingle } from \"./FormFlux.Types\";\nimport ExtractFileContent from \"./ExtractContent\";\nimport writeFileContent from \"./WriteFileContent\";\nimport setContentToBody from \"./SetBodyContentToReq\";\nimport setFileNameToBody from \"./setFileNameToBody\";\nimport populateReqObj from \"./setDatatoReqobj\";\nimport EventHandlers from \"./EventHandlers\";\nimport FormfluxError from \"./FormFluxError\";\n\nclass Formflux {\n\n static diskStorage(options: options) {\n return {\n any() {\n return async function (req: Request, res: Response, next: NextFunction): Promise<void> {\n let obj: reqObj = {\n \"originalReq\": \"\",\n \"modifiedReq\": Buffer.from(\"\"),\n \"data\": [],\n \"content\": [],\n \"metaData\": [],\n \"mimeType\": [],\n \"fieldNameBody\": [],\n \"fileName\": [],\n \"modifiedFileName\": [],\n \"contentBody\": [],\n \"fieldNameFile\": [],\n \"filePath\": [],\n \"filesize\": [],\n \"streams\":[]\n\n };\n let buff: Array<Buffer> = [];\n let reqType = req.headers[\"content-type\"];\n if (reqType && !reqType.includes(\"multipart/form-data\"))\n throw new FormfluxError(\"Invalid Request Type.Expected multipart/form-data\", 400);\n\n let boundary = req.headers[\"content-type\"]?.split(\"boundary=\")[1];\n\n req.on(\"data\", (chunk: Buffer) => {\n buff.push(chunk);\n })\n req.on(\"end\", () => {\n try {\n obj.modifiedReq = Buffer.concat(buff); // holding the concatinated buffer\n\n obj.data = obj.modifiedReq.toString(\"binary\")?.split(`--${boundary}`); // separating the boundary\n obj.data.pop();\n obj.data.shift();\n\n //*****Defaults*****\n //To*********extract content\n new ExtractFileContent(obj, options, null, null).extraction();\n\n //To*********SetFileDataToReqObj\n new populateReqObj(obj).populate();\n\n let writeBool: boolean = false;\n let parseBool: boolean = false;\n let checkCompletion = (writeComplete: boolean, parsecomplete: boolean) => {\n if (writeComplete && parsecomplete)\n next();\n }\n\n EventHandlers.on(\"parseEnd\", (message) => {\n parseBool = true;\n checkCompletion(writeBool, parseBool);\n })\n\n EventHandlers.on(\"writeEnd\", (message) => {\n writeBool = true;\n checkCompletion(writeBool, parseBool);\n })\n\n\n new writeFileContent(req, obj, options, \"any\", \"disk\").writeContent();\n if (options.attachFileToReqBody && options.attachFileToReqBody == true)\n new setFileNameToBody(obj).setFileNames(req);\n\n new setContentToBody(obj).setBody(req);\n\n } catch (err) {\n next(err);\n }\n })\n\n req.on(\"error\", () => {\n next(new FormfluxError(\"Error in recieving request\", 500));\n })\n\n }\n },\n fields(optionFields: optionFields) {\n return async function (req: Request, res: Response, next: NextFunction): Promise<void> {\n let obj: reqObj = {\n \"originalReq\": \"\",\n \"modifiedReq\": Buffer.from(\"\"),\n \"data\": [],\n \"content\": [],\n \"metaData\": [],\n \"mimeType\": [],\n \"fieldNameBody\": [],\n \"fileName\": [],\n \"modifiedFileName\": [],\n \"contentBody\": [],\n \"fieldNameFile\": [],\n \"filePath\": [],\n \"filesize\": [],\n \"streams\":[]\n\n };\n let buff: Array<Buffer> = [];\n let reqType = req.headers[\"content-type\"];\n if (reqType && !reqType.includes(\"multipart/form-data\"))\n throw new FormfluxError(\"Invalid Request Type.Expected multipart/form-data\", 400);\n let boundary = req.headers[\"content-type\"]?.split(\"boundary=\")[1];\n\n req.on(\"data\", (chunk: Buffer) => {\n buff.push(chunk);\n })\n req.on(\"end\", () => {\n try {\n obj.modifiedReq = Buffer.concat(buff); // holding the concatinated buffer\n\n obj.data = obj.modifiedReq.toString(\"binary\")?.split(`--${boundary}`); // separating the boundary\n obj.data.pop();\n obj.data.shift();\n\n //*****Defaults*****\n //To*********extract content\n new ExtractFileContent(obj, options, optionFields, null).extraction();\n\n //To*********SetFileDataToReqObj\n new populateReqObj(obj).populate();\n\n let writeBool: boolean = false;\n let parseBool: boolean = false;\n let checkCompletion = (writeComplete: boolean, parsecomplete: boolean) => {\n if (writeComplete && parsecomplete)\n next();\n }\n\n EventHandlers.on(\"parseEnd\", (message) => {\n parseBool = true;\n checkCompletion(writeBool, parseBool);\n })\n\n EventHandlers.on(\"writeEnd\", (message) => {\n writeBool = true;\n checkCompletion(writeBool, parseBool);\n })\n\n\n new writeFileContent(req, obj, options, \"fields\", \"disk\").writeContent();\n // new setFileContentToReq(obj).setFileNames(req);\n if (options.attachFileToReqBody && options.attachFileToReqBody == true)\n new setFileNameToBody(obj).setFileNames(req);\n\n new setContentToBody(obj).setBody(req);\n \n } catch (err) {\n next(err)\n }\n })\n\n req.on(\"error\", () => {\n next(new FormfluxError(\"Error in recieving request\", 500));\n })\n }\n },\n\n single(field: string) {\n return async function (req: Request, res: Response, next: NextFunction): Promise<void> {\n let obj: reqObj = {\n \"originalReq\": \"\",\n \"modifiedReq\": Buffer.from(\"\"),\n \"data\": [],\n \"content\": [],\n \"metaData\": [],\n \"mimeType\": [],\n \"fieldNameBody\": [],\n \"fileName\": [],\n \"modifiedFileName\": [],\n \"contentBody\": [],\n \"fieldNameFile\": [],\n \"filePath\": [],\n \"filesize\": [],\n \"streams\":[]\n\n };\n let buff: Array<Buffer> = [];\n let reqType = req.headers[\"content-type\"];\n if (reqType && !reqType.includes(\"multipart/form-data\"))\n throw new FormfluxError(\"Invalid Request Type.Expected multipart/form-data\", 400);\n let boundary = req.headers[\"content-type\"]?.split(\"boundary=\")[1];\n\n req.on(\"data\", (chunk: Buffer) => {\n buff.push(chunk);\n })\n req.on(\"end\", () => {\n try {\n obj.modifiedReq = Buffer.concat(buff); // holding the concatinated buffer\n\n obj.data = obj.modifiedReq.toString(\"binary\")?.split(`--${boundary}`); // separating the boundary\n obj.data.pop();\n obj.data.shift();\n\n //*****Defaults*****\n //To*********extract content\n new ExtractFileContent(obj, options, null, field).extraction();\n\n //To*********SetFileDataToReqObj\n new populateReqObj(obj).populate();\n\n let writeBool: boolean = false;\n let parseBool: boolean = false;\n let checkCompletion = (writeComplete: boolean, parsecomplete: boolean) => {\n if (writeComplete && parsecomplete)\n next();\n }\n\n EventHandlers.on(\"parseEnd\", (message) => {\n parseBool = true;\n checkCompletion(writeBool, parseBool);\n })\n\n EventHandlers.on(\"writeEnd\", (message) => {\n writeBool = true;\n checkCompletion(writeBool, parseBool);\n })\n\n\n new writeFileContent(req, obj, options, \"single\", \"disk\").writeContent();\n if (options.attachFileToReqBody && options.attachFileToReqBody == true)\n new setFileNameToBody(obj).setFileNames(req);\n\n new setContentToBody(obj).setBody(req);\n } catch (err) {\n next(err);\n }\n })\n\n req.on(\"error\", () => {\n next(new FormfluxError(\"Error in recieving request\", 500));\n })\n }\n },\n }\n }\n\n static memoryStorage(options: optionSingle) {\n return {\n any() {\n return async function (req: Request, res: Response, next: NextFunction): Promise<void> {\n let obj: reqObj = {\n \"originalReq\": \"\",\n \"modifiedReq\": Buffer.from(\"\"),\n \"data\": [],\n \"content\": [],\n \"metaData\": [],\n \"mimeType\": [],\n \"fieldNameBody\": [],\n \"fileName\": [],\n \"modifiedFileName\": [],\n \"contentBody\": [],\n \"fieldNameFile\": [],\n \"filePath\": [],\n \"filesize\": [],\n \"streams\":[]\n\n };\n let buff: Array<Buffer> = [];\n let reqType = req.headers[\"content-type\"];\n if (reqType && !reqType.includes(\"multipart/form-data\"))\n throw new FormfluxError(\"Invalid Request Type.Expected multipart/form-data\", 400);\n let boundary = req.headers[\"content-type\"]?.split(\"boundary=\")[1];\n\n req.on(\"data\", (chunk: Buffer) => {\n buff.push(chunk);\n })\n req.on(\"end\", () => {\n try {\n obj.modifiedReq = Buffer.concat(buff); // holding the concatinated buffer\n\n obj.data = obj.modifiedReq.toString(\"binary\")?.split(`--${boundary}`); // separating the boundary\n obj.data.pop();\n obj.data.shift();\n\n //*****Defaults*****\n //To*********extract content\n new ExtractFileContent(obj, options, null, null).extraction();\n\n //To*********SetFileDataToReqObj\n new populateReqObj(obj).populate();\n\n let writeBool: boolean = false;\n let parseBool: boolean = false;\n let checkCompletion = (writeComplete: boolean, parsecomplete: boolean) => {\n if (writeComplete && parsecomplete)\n next();\n }\n\n EventHandlers.on(\"parseEnd\", (message) => {\n parseBool = true;\n checkCompletion(writeBool, parseBool);\n })\n\n EventHandlers.on(\"writeEnd\", (message) => {\n writeBool = true;\n checkCompletion(writeBool, parseBool);\n })\n\n\n new writeFileContent(req, obj, options, \"any\", \"memory\").writeContent();\n if (options.attachFileToReqBody && options.attachFileToReqBody == true)\n new setFileNameToBody(obj).setFileNames(req);\n\n new setContentToBody(obj).setBody(req);\n } catch (err) {\n next(err);\n }\n })\n\n req.on(\"error\", () => {\n next(new FormfluxError(\"Error in recieving request\", 500));\n })\n }\n },\n fields(optionFields: optionFields) {\n return async function (req: Request, res: Response, next: NextFunction): Promise<void> {\n let obj: reqObj = {\n \"originalReq\": \"\",\n \"modifiedReq\": Buffer.from(\"\"),\n \"data\": [],\n \"content\": [],\n \"metaData\": [],\n \"mimeType\": [],\n \"fieldNameBody\": [],\n \"fileName\": [],\n \"modifiedFileName\": [],\n \"contentBody\": [],\n \"fieldNameFile\": [],\n \"filePath\": [],\n \"filesize\": [],\n \"streams\":[]\n\n };\n let buff: Array<Buffer> = [];\n let reqType = req.headers[\"content-type\"];\n if (reqType && !reqType.includes(\"multipart/form-data\"))\n throw new FormfluxError(\"Invalid Request Type.Expected multipart/form-data\", 400);\n let boundary = req.headers[\"content-type\"]?.split(\"boundary=\")[1];\n\n req.on(\"data\", (chunk: Buffer) => {\n buff.push(chunk);\n })\n req.on(\"end\", () => {\n try {\n obj.modifiedReq = Buffer.concat(buff); // holding the concatinated buffer\n\n obj.data = obj.modifiedReq.toString(\"binary\")?.split(`--${boundary}`); // separating the boundary\n obj.data.pop();\n obj.data.shift();\n\n //*****Defaults*****\n //To*********extract content\n new ExtractFileContent(obj, options, optionFields, null).extraction();\n\n //To*********SetFileDataToReqObj\n new populateReqObj(obj).populate();\n\n let writeBool: boolean = false;\n let parseBool: boolean = false;\n let checkCompletion = (writeComplete: boolean, parsecomplete: boolean) => {\n if (writeComplete && parsecomplete)\n next();\n }\n\n EventHandlers.on(\"parseEnd\", (message) => {\n parseBool = true;\n checkCompletion(writeBool, parseBool);\n })\n\n EventHandlers.on(\"writeEnd\", (message) => {\n writeBool = true;\n checkCompletion(writeBool, parseBool);\n })\n\n\n new writeFileContent(req, obj, options, \"fields\", \"memory\").writeContent();\n if (options.attachFileToReqBody && options.attachFileToReqBody == true)\n new setFileNameToBody(obj).setFileNames(req);\n\n new setContentToBody(obj).setBody(req);\n } catch (err) {\n next(err)\n }\n })\n\n req.on(\"error\", () => {\n next(new FormfluxError(\"Error in recieving request\", 500));\n })\n }\n },\n single(field: string) {\n return async function (req: Request, res: Response, next: NextFunction): Promise<void> {\n let obj: reqObj = {\n \"originalReq\": \"\",\n \"modifiedReq\": Buffer.from(\"\"),\n \"data\": [],\n \"content\": [],\n \"metaData\": [],\n \"mimeType\": [],\n \"fieldNameBody\": [],\n \"fileName\": [],\n \"modifiedFileName\": [],\n \"contentBody\": [],\n \"fieldNameFile\": [],\n \"filePath\": [],\n \"filesize\": [],\n \"streams\":[]\n\n };\n let buff: Array<Buffer> = [];\n let reqType = req.headers[\"content-type\"];\n if (reqType && !reqType.includes(\"multipart/form-data\"))\n throw new FormfluxError(\"Invalid Request Type.Expected multipart/form-data\", 400);\n let boundary = req.headers[\"content-type\"]?.split(\"boundary=\")[1];\n\n req.on(\"data\", (chunk: Buffer) => {\n buff.push(chunk);\n })\n req.on(\"end\", () => {\n try {\n obj.modifiedReq = Buffer.concat(buff); // holding the concatinated buffer\n\n obj.data = obj.modifiedReq.toString(\"binary\")?.split(`--${boundary}`); // separating the boundary\n obj.data.pop();\n obj.data.shift();\n\n //*****Defaults*****\n //To*********extract content\n new ExtractFileContent(obj, options, null, field).extraction();\n\n //To*********SetFileDataToReqObj\n new populateReqObj(obj).populate();\n\n let writeBool: boolean = false;\n let parseBool: boolean = false;\n let checkCompletion = (writeComplete: boolean, parsecomplete: boolean) => {\n if (writeComplete && parsecomplete)\n next();\n }\n\n EventHandlers.on(\"parseEnd\", (message) => {\n parseBool = true;\n checkCompletion(writeBool, parseBool);\n })\n\n EventHandlers.on(\"writeEnd\", (message) => {\n writeBool = true;\n checkCompletion(writeBool, parseBool);\n })\n\n new writeFileContent(req, obj, options, \"single\", \"memory\").writeContent();\n if (options.attachFileToReqBody && options.attachFileToReqBody == true)\n new setFileNameToBody(obj).setFileNames(req);\n\n new setContentToBody(obj).setBody(req);\n } catch (err) {\n next(err);\n }\n })\n\n req.on(\"error\", () => {\n next(new FormfluxError(\"Error in recieving request\", 500));\n })\n }\n },\n }\n }\n\n bodyParser(){\n return async function (req: Request, res: Response, next: NextFunction): Promise<void> {\n let obj: reqObj = {\n \"originalReq\": \"\",\n \"modifiedReq\": Buffer.from(\"\"),\n \"data\": [],\n \"content\": [],\n \"metaData\": [],\n \"mimeType\": [],\n \"fieldNameBody\": [],\n \"fileName\": [],\n \"modifiedFileName\": [],\n \"contentBody\": [],\n \"fieldNameFile\": [],\n \"filePath\": [],\n \"filesize\": [],\n \"streams\":[]\n\n };\n let buff: Array<Buffer> = [];\n let reqType = req.headers[\"content-type\"];\n if (reqType && !reqType.includes(\"multipart/form-data\"))\n throw new FormfluxError(\"Invalid Request Type.Expected multipart/form-data\", 400);\n\n let boundary = req.headers[\"content-type\"]?.split(\"boundary=\")[1];\n\n req.on(\"data\", (chunk: Buffer) => {\n buff.push(chunk);\n })\n req.on(\"end\", () => {\n try {\n obj.modifiedReq = Buffer.concat(buff); // holding the concatinated buffer\n\n obj.data = obj.modifiedReq.toString(\"binary\")?.split(`--${boundary}`); // separating the boundary\n obj.data.pop();\n obj.data.shift();\n\n //*****Defaults*****\n //To*********extract content\n new ExtractFileContent(obj, null, null, null).extraction();\n\n //To*********SetFileDataToReqObj\n let writeBool: boolean = false;\n let parseBool: boolean = false;\n let checkCompletion = (writeComplete: boolean, parsecomplete: boolean) => {\n if (writeComplete && parsecomplete)\n next();\n }\n\n EventHandlers.on(\"parseEnd\", (message) => {\n parseBool = true;\n next();\n })\n\n new setContentToBody(obj).setBody(req);\n\n } catch (err) {\n next(err);\n }\n })\n\n req.on(\"error\", () => {\n next(new FormfluxError(\"Error in recieving request\", 500));\n })\n }\n }\n \n}\n\nexport default Formflux;"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"FormFlux.js","names":["options","optionFields","optionSingle","File","ExtractFileContent","writeFileContent","setContentToBody","setFileNameToBody","populateReqObj","EventHandlers","FormfluxError","Formflux","diskStorage","any","req","res","next","_req$headers$content","obj","Buffer","from","buff","reqType","headers","includes","boundary","split","on","chunk","push","_obj$modifiedReq$toSt","modifiedReq","concat","data","toString","pop","shift","extraction","populate","writeBool","parseBool","checkCompletion","writeComplete","parsecomplete","message","writeContent","attachFileToReqBody","setFileNames","setBody","err","fields","_req$headers$content2","_obj$modifiedReq$toSt2","single","field","_req$headers$content3","_obj$modifiedReq$toSt3","memoryStorage","_req$headers$content4","_obj$modifiedReq$toSt4","_req$headers$content5","_obj$modifiedReq$toSt5","_req$headers$content6","_obj$modifiedReq$toSt6","bodyParser","_req$headers$content7","_obj$modifiedReq$toSt7"],"sources":["../../src/FormFlux.ts"],"sourcesContent":["import { NextFunction, Request, Response } from \"express\";\nimport { options, reqObj, optionFields, optionSingle, File } from \"./FormFlux.Types\";\nimport ExtractFileContent from \"./ExtractContent\";\nimport writeFileContent from \"./WriteFileContent\";\nimport setContentToBody from \"./SetBodyContentToReq\";\nimport setFileNameToBody from \"./setFileNameToBody\";\nimport populateReqObj from \"./setDatatoReqobj\";\nimport EventHandlers from \"./EventHandlers\";\nimport FormfluxError from \"./FormFluxError\";\n\nclass Formflux {\n\n static diskStorage(options: options) {\n return {\n any() {\n return async function (req: Request, res: Response, next: NextFunction): Promise<void> {\n let obj: reqObj = {\n \"originalReq\": \"\",\n \"modifiedReq\": Buffer.from(\"\"),\n \"data\": [],\n \"content\": [],\n \"metaData\": [],\n \"mimeType\": [],\n \"fieldNameBody\": [],\n \"fileName\": [],\n \"modifiedFileName\": [],\n \"contentBody\": [],\n \"fieldNameFile\": [],\n \"filePath\": [],\n \"filesize\": [],\n \"streams\": []\n\n };\n let buff: Array<Buffer> = [];\n let reqType = req.headers[\"content-type\"];\n if (reqType && !reqType.includes(\"multipart/form-data\"))\n throw new FormfluxError(\"Invalid Request Type.Expected multipart/form-data\", 400);\n\n let boundary = req.headers[\"content-type\"]?.split(\"boundary=\")[1];\n\n req.on(\"data\", (chunk: Buffer) => {\n buff.push(chunk);\n })\n req.on(\"end\", () => {\n try {\n obj.modifiedReq = Buffer.concat(buff); // holding the concatinated buffer\n\n obj.data = obj.modifiedReq.toString(\"binary\")?.split(`--${boundary}`); // separating the boundary\n obj.data.pop();\n obj.data.shift();\n\n //*****Defaults*****\n //To*********extract content\n new ExtractFileContent(obj, options, null, null).extraction();\n\n //To*********SetFileDataToReqObj\n new populateReqObj(obj).populate();\n\n let writeBool: boolean = false;\n let parseBool: boolean = false;\n let checkCompletion = (writeComplete: boolean, parsecomplete: boolean) => {\n if (writeComplete && parsecomplete)\n next();\n }\n\n EventHandlers.on(\"parseEnd\", (message) => {\n parseBool = true;\n checkCompletion(writeBool, parseBool);\n })\n\n EventHandlers.on(\"writeEnd\", (message) => {\n writeBool = true;\n checkCompletion(writeBool, parseBool);\n })\n\n\n new writeFileContent(req, obj, options, \"any\", \"disk\").writeContent();\n if (options.attachFileToReqBody && options.attachFileToReqBody == true)\n new setFileNameToBody(obj).setFileNames(req);\n\n new setContentToBody(obj).setBody(req);\n\n } catch (err) {\n next(err);\n }\n })\n\n req.on(\"error\", () => {\n next(new FormfluxError(\"Error in recieving request\", 500));\n })\n\n }\n },\n fields(optionFields: optionFields) {\n return async function (req: Request, res: Response, next: NextFunction): Promise<void> {\n let obj: reqObj = {\n \"originalReq\": \"\",\n \"modifiedReq\": Buffer.from(\"\"),\n \"data\": [],\n \"content\": [],\n \"metaData\": [],\n \"mimeType\": [],\n \"fieldNameBody\": [],\n \"fileName\": [],\n \"modifiedFileName\": [],\n \"contentBody\": [],\n \"fieldNameFile\": [],\n \"filePath\": [],\n \"filesize\": [],\n \"streams\": []\n\n };\n let buff: Array<Buffer> = [];\n let reqType = req.headers[\"content-type\"];\n if (reqType && !reqType.includes(\"multipart/form-data\"))\n throw new FormfluxError(\"Invalid Request Type.Expected multipart/form-data\", 400);\n let boundary = req.headers[\"content-type\"]?.split(\"boundary=\")[1];\n\n req.on(\"data\", (chunk: Buffer) => {\n buff.push(chunk);\n })\n req.on(\"end\", () => {\n try {\n obj.modifiedReq = Buffer.concat(buff); // holding the concatinated buffer\n\n obj.data = obj.modifiedReq.toString(\"binary\")?.split(`--${boundary}`); // separating the boundary\n obj.data.pop();\n obj.data.shift();\n\n //*****Defaults*****\n //To*********extract content\n new ExtractFileContent(obj, options, optionFields, null).extraction();\n\n //To*********SetFileDataToReqObj\n new populateReqObj(obj).populate();\n\n let writeBool: boolean = false;\n let parseBool: boolean = false;\n let checkCompletion = (writeComplete: boolean, parsecomplete: boolean) => {\n if (writeComplete && parsecomplete)\n next();\n }\n\n EventHandlers.on(\"parseEnd\", (message) => {\n parseBool = true;\n checkCompletion(writeBool, parseBool);\n })\n\n EventHandlers.on(\"writeEnd\", (message) => {\n writeBool = true;\n checkCompletion(writeBool, parseBool);\n })\n\n\n new writeFileContent(req, obj, options, \"fields\", \"disk\").writeContent();\n // new setFileContentToReq(obj).setFileNames(req);\n if (options.attachFileToReqBody && options.attachFileToReqBody == true)\n new setFileNameToBody(obj).setFileNames(req);\n\n new setContentToBody(obj).setBody(req);\n\n } catch (err) {\n next(err)\n }\n })\n\n req.on(\"error\", () => {\n next(new FormfluxError(\"Error in recieving request\", 500));\n })\n }\n },\n\n single(field: string) {\n return async function (req: Request, res: Response, next: NextFunction): Promise<void> {\n let obj: reqObj = {\n \"originalReq\": \"\",\n \"modifiedReq\": Buffer.from(\"\"),\n \"data\": [],\n \"content\": [],\n \"metaData\": [],\n \"mimeType\": [],\n \"fieldNameBody\": [],\n \"fileName\": [],\n \"modifiedFileName\": [],\n \"contentBody\": [],\n \"fieldNameFile\": [],\n \"filePath\": [],\n \"filesize\": [],\n \"streams\": []\n\n };\n let buff: Array<Buffer> = [];\n let reqType = req.headers[\"content-type\"];\n if (reqType && !reqType.includes(\"multipart/form-data\"))\n throw new FormfluxError(\"Invalid Request Type.Expected multipart/form-data\", 400);\n let boundary = req.headers[\"content-type\"]?.split(\"boundary=\")[1];\n\n req.on(\"data\", (chunk: Buffer) => {\n buff.push(chunk);\n })\n req.on(\"end\", () => {\n try {\n obj.modifiedReq = Buffer.concat(buff); // holding the concatinated buffer\n\n obj.data = obj.modifiedReq.toString(\"binary\")?.split(`--${boundary}`); // separating the boundary\n obj.data.pop();\n obj.data.shift();\n\n //*****Defaults*****\n //To*********extract content\n new ExtractFileContent(obj, options, null, field).extraction();\n\n //To*********SetFileDataToReqObj\n new populateReqObj(obj).populate();\n\n let writeBool: boolean = false;\n let parseBool: boolean = false;\n let checkCompletion = (writeComplete: boolean, parsecomplete: boolean) => {\n if (writeComplete && parsecomplete)\n next();\n }\n\n EventHandlers.on(\"parseEnd\", (message) => {\n parseBool = true;\n checkCompletion(writeBool, parseBool);\n })\n\n EventHandlers.on(\"writeEnd\", (message) => {\n writeBool = true;\n checkCompletion(writeBool, parseBool);\n })\n\n\n new writeFileContent(req, obj, options, \"single\", \"disk\").writeContent();\n if (options.attachFileToReqBody && options.attachFileToReqBody == true)\n new setFileNameToBody(obj).setFileNames(req);\n\n new setContentToBody(obj).setBody(req);\n } catch (err) {\n next(err);\n }\n })\n\n req.on(\"error\", () => {\n next(new FormfluxError(\"Error in recieving request\", 500));\n })\n }\n },\n }\n }\n\n static memoryStorage(options: optionSingle) {\n return {\n any() {\n return async function (req: Request, res: Response, next: NextFunction): Promise<void> {\n let obj: reqObj = {\n \"originalReq\": \"\",\n \"modifiedReq\": Buffer.from(\"\"),\n \"data\": [],\n \"content\": [],\n \"metaData\": [],\n \"mimeType\": [],\n \"fieldNameBody\": [],\n \"fileName\": [],\n \"modifiedFileName\": [],\n \"contentBody\": [],\n \"fieldNameFile\": [],\n \"filePath\": [],\n \"filesize\": [],\n \"streams\": []\n\n };\n let buff: Array<Buffer> = [];\n let reqType = req.headers[\"content-type\"];\n if (reqType && !reqType.includes(\"multipart/form-data\"))\n throw new FormfluxError(\"Invalid Request Type.Expected multipart/form-data\", 400);\n let boundary = req.headers[\"content-type\"]?.split(\"boundary=\")[1];\n\n req.on(\"data\", (chunk: Buffer) => {\n buff.push(chunk);\n })\n req.on(\"end\", () => {\n try {\n obj.modifiedReq = Buffer.concat(buff); // holding the concatinated buffer\n\n obj.data = obj.modifiedReq.toString(\"binary\")?.split(`--${boundary}`); // separating the boundary\n obj.data.pop();\n obj.data.shift();\n\n //*****Defaults*****\n //To*********extract content\n new ExtractFileContent(obj, options, null, null).extraction();\n\n //To*********SetFileDataToReqObj\n new populateReqObj(obj).populate();\n\n let writeBool: boolean = false;\n let parseBool: boolean = false;\n let checkCompletion = (writeComplete: boolean, parsecomplete: boolean) => {\n if (writeComplete && parsecomplete)\n next();\n }\n\n EventHandlers.on(\"parseEnd\", (message) => {\n parseBool = true;\n checkCompletion(writeBool, parseBool);\n })\n\n EventHandlers.on(\"writeEnd\", (message) => {\n writeBool = true;\n checkCompletion(writeBool, parseBool);\n })\n\n\n new writeFileContent(req, obj, options, \"any\", \"memory\").writeContent();\n if (options.attachFileToReqBody && options.attachFileToReqBody == true)\n new setFileNameToBody(obj).setFileNames(req);\n\n new setContentToBody(obj).setBody(req);\n } catch (err) {\n next(err);\n }\n })\n\n req.on(\"error\", () => {\n next(new FormfluxError(\"Error in recieving request\", 500));\n })\n }\n },\n fields(optionFields: optionFields) {\n return async function (req: Request, res: Response, next: NextFunction): Promise<void> {\n let obj: reqObj = {\n \"originalReq\": \"\",\n \"modifiedReq\": Buffer.from(\"\"),\n \"data\": [],\n \"content\": [],\n \"metaData\": [],\n \"mimeType\": [],\n \"fieldNameBody\": [],\n \"fileName\": [],\n \"modifiedFileName\": [],\n \"contentBody\": [],\n \"fieldNameFile\": [],\n \"filePath\": [],\n \"filesize\": [],\n \"streams\": []\n\n };\n let buff: Array<Buffer> = [];\n let reqType = req.headers[\"content-type\"];\n if (reqType && !reqType.includes(\"multipart/form-data\"))\n throw new FormfluxError(\"Invalid Request Type.Expected multipart/form-data\", 400);\n let boundary = req.headers[\"content-type\"]?.split(\"boundary=\")[1];\n\n req.on(\"data\", (chunk: Buffer) => {\n buff.push(chunk);\n })\n req.on(\"end\", () => {\n try {\n obj.modifiedReq = Buffer.concat(buff); // holding the concatinated buffer\n\n obj.data = obj.modifiedReq.toString(\"binary\")?.split(`--${boundary}`); // separating the boundary\n obj.data.pop();\n obj.data.shift();\n\n //*****Defaults*****\n //To*********extract content\n new ExtractFileContent(obj, options, optionFields, null).extraction();\n\n //To*********SetFileDataToReqObj\n new populateReqObj(obj).populate();\n\n let writeBool: boolean = false;\n let parseBool: boolean = false;\n let checkCompletion = (writeComplete: boolean, parsecomplete: boolean) => {\n if (writeComplete && parsecomplete)\n next();\n }\n\n EventHandlers.on(\"parseEnd\", (message) => {\n parseBool = true;\n checkCompletion(writeBool, parseBool);\n })\n\n EventHandlers.on(\"writeEnd\", (message) => {\n writeBool = true;\n checkCompletion(writeBool, parseBool);\n })\n\n\n new writeFileContent(req, obj, options, \"fields\", \"memory\").writeContent();\n if (options.attachFileToReqBody && options.attachFileToReqBody == true)\n new setFileNameToBody(obj).setFileNames(req);\n\n new setContentToBody(obj).setBody(req);\n } catch (err) {\n next(err)\n }\n })\n\n req.on(\"error\", () => {\n next(new FormfluxError(\"Error in recieving request\", 500));\n })\n }\n },\n single(field: string) {\n return async function (req: Request, res: Response, next: NextFunction): Promise<void> {\n let obj: reqObj = {\n \"originalReq\": \"\",\n \"modifiedReq\": Buffer.from(\"\"),\n \"data\": [],\n \"content\": [],\n \"metaData\": [],\n \"mimeType\": [],\n \"fieldNameBody\": [],\n \"fileName\": [],\n \"modifiedFileName\": [],\n \"contentBody\": [],\n \"fieldNameFile\": [],\n \"filePath\": [],\n \"filesize\": [],\n \"streams\": []\n\n };\n let buff: Array<Buffer> = [];\n let reqType = req.headers[\"content-type\"];\n if (reqType && !reqType.includes(\"multipart/form-data\"))\n throw new FormfluxError(\"Invalid Request Type.Expected multipart/form-data\", 400);\n let boundary = req.headers[\"content-type\"]?.split(\"boundary=\")[1];\n\n req.on(\"data\", (chunk: Buffer) => {\n buff.push(chunk);\n })\n req.on(\"end\", () => {\n try {\n obj.modifiedReq = Buffer.concat(buff); // holding the concatinated buffer\n\n obj.data = obj.modifiedReq.toString(\"binary\")?.split(`--${boundary}`); // separating the boundary\n obj.data.pop();\n obj.data.shift();\n\n //*****Defaults*****\n //To*********extract content\n new ExtractFileContent(obj, options, null, field).extraction();\n\n //To*********SetFileDataToReqObj\n new populateReqObj(obj).populate();\n\n let writeBool: boolean = false;\n let parseBool: boolean = false;\n let checkCompletion = (writeComplete: boolean, parsecomplete: boolean) => {\n if (writeComplete && parsecomplete)\n next();\n }\n\n EventHandlers.on(\"parseEnd\", (message) => {\n parseBool = true;\n checkCompletion(writeBool, parseBool);\n })\n\n EventHandlers.on(\"writeEnd\", (message) => {\n writeBool = true;\n checkCompletion(writeBool, parseBool);\n })\n\n new writeFileContent(req, obj, options, \"single\", \"memory\").writeContent();\n if (options.attachFileToReqBody && options.attachFileToReqBody == true)\n new setFileNameToBody(obj).setFileNames(req);\n\n new setContentToBody(obj).setBody(req);\n } catch (err) {\n next(err);\n }\n })\n\n req.on(\"error\", () => {\n next(new FormfluxError(\"Error in recieving request\", 500));\n })\n }\n },\n }\n }\n\n bodyParser() {\n return async function (req: Request, res: Response, next: NextFunction): Promise<void> {\n let obj: reqObj = {\n \"originalReq\": \"\",\n \"modifiedReq\": Buffer.from(\"\"),\n \"data\": [],\n \"content\": [],\n \"metaData\": [],\n \"mimeType\": [],\n \"fieldNameBody\": [],\n \"fileName\": [],\n \"modifiedFileName\": [],\n \"contentBody\": [],\n \"fieldNameFile\": [],\n \"filePath\": [],\n \"filesize\": [],\n \"streams\": []\n\n };\n let buff: Array<Buffer> = [];\n let reqType = req.headers[\"content-type\"];\n if (reqType && !reqType.includes(\"multipart/form-data\"))\n throw new FormfluxError(\"Invalid Request Type.Expected multipart/form-data\", 400);\n\n let boundary = req.headers[\"content-type\"]?.split(\"boundary=\")[1];\n\n req.on(\"data\", (chunk: Buffer) => {\n buff.push(chunk);\n })\n req.on(\"end\", () => {\n try {\n obj.modifiedReq = Buffer.concat(buff); // holding the concatinated buffer\n\n obj.data = obj.modifiedReq.toString(\"binary\")?.split(`--${boundary}`); // separating the boundary\n obj.data.pop();\n obj.data.shift();\n\n //*****Defaults*****\n //To*********extract content\n new ExtractFileContent(obj, null, null, null).extraction();\n\n //To*********SetFileDataToReqObj\n let writeBool: boolean = false;\n let parseBool: boolean = false;\n let checkCompletion = (writeComplete: boolean, parsecomplete: boolean) => {\n if (writeComplete && parsecomplete)\n next();\n }\n\n EventHandlers.on(\"parseEnd\", (message) => {\n parseBool = true;\n next();\n })\n\n new setContentToBody(obj).setBody(req);\n\n } catch (err) {\n next(err);\n }\n })\n\n req.on(\"error\", () => {\n next(new FormfluxError(\"Error in recieving request\", 500));\n })\n }\n }\n\n}\n\nexport default Formflux;\nexport { FormfluxError, optionFields, options, optionSingle, File };"],"mappings":"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","ignoreList":[]}
package/dist/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "formflux",
3
- "version": "0.1.8",
3
+ "version": "0.1.9",
4
4
  "description": "A package to upload files to a server and parsing multipart-formData requests",
5
5
  "main": "./dist/cjs/FormFlux.js",
6
6
  "module": "./dist/esm/FormFlux.js",
@@ -1,5 +1,6 @@
1
1
  import { NextFunction, Request, Response } from "express";
2
- import { options, optionFields, optionSingle } from "./FormFlux.Types";
2
+ import { options, optionFields, optionSingle, File } from "./FormFlux.Types";
3
+ import FormfluxError from "./FormFluxError";
3
4
  declare class Formflux {
4
5
  static diskStorage(options: options): {
5
6
  any(): (req: Request, res: Response, next: NextFunction) => Promise<void>;
@@ -14,3 +15,4 @@ declare class Formflux {
14
15
  bodyParser(): (req: Request, res: Response, next: NextFunction) => Promise<void>;
15
16
  }
16
17
  export default Formflux;
18
+ export { FormfluxError, optionFields, options, optionSingle, File };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "formflux",
3
- "version": "0.1.8",
3
+ "version": "0.1.9",
4
4
  "description": "A package to upload files to a server and parsing multipart-formData requests",
5
5
  "main": "./dist/cjs/FormFlux.js",
6
6
  "module": "./dist/esm/FormFlux.js",