web_api_base 4.0.8 → 5.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (56) hide show
  1. package/dist/Application.d.ts +3 -1
  2. package/dist/Application.js +173 -42
  3. package/dist/Application.js.map +1 -1
  4. package/dist/File/AbstractFileService.d.ts +11 -0
  5. package/dist/File/AbstractFileService.js +6 -0
  6. package/dist/File/AbstractFileService.js.map +1 -0
  7. package/dist/File/AbstractMultiPartRequestService.d.ts +16 -0
  8. package/dist/File/AbstractMultiPartRequestService.js +12 -0
  9. package/dist/File/AbstractMultiPartRequestService.js.map +1 -0
  10. package/dist/File/File.d.ts +5 -0
  11. package/dist/File/File.js +10 -0
  12. package/dist/File/File.js.map +1 -0
  13. package/dist/File/FileService.d.ts +12 -0
  14. package/dist/File/FileService.js +136 -0
  15. package/dist/File/FileService.js.map +1 -0
  16. package/dist/File/FormidableMultiPartRequestService.d.ts +4 -0
  17. package/dist/File/FormidableMultiPartRequestService.js +73 -0
  18. package/dist/File/FormidableMultiPartRequestService.js.map +1 -0
  19. package/dist/decorators/controllers/ControllerDecorators.d.ts +16 -0
  20. package/dist/decorators/controllers/ControllerDecorators.js +75 -0
  21. package/dist/decorators/controllers/ControllerDecorators.js.map +1 -1
  22. package/dist/decorators/documentation/DocumentationDecorators.js.map +1 -1
  23. package/dist/documentation/Documentation.js +6 -1
  24. package/dist/documentation/Documentation.js.map +1 -1
  25. package/dist/documentation/JS.js +103 -10
  26. package/dist/documentation/JS.js.map +1 -1
  27. package/dist/exceptions/DecoratorException.d.ts +3 -0
  28. package/dist/exceptions/DecoratorException.js +10 -0
  29. package/dist/exceptions/DecoratorException.js.map +1 -0
  30. package/dist/exceptions/FileNotFoundException.d.ts +3 -0
  31. package/dist/exceptions/FileNotFoundException.js +10 -0
  32. package/dist/exceptions/FileNotFoundException.js.map +1 -0
  33. package/dist/exceptions/InvalidEntityException.d.ts +3 -0
  34. package/dist/exceptions/InvalidEntityException.js +10 -0
  35. package/dist/exceptions/InvalidEntityException.js.map +1 -0
  36. package/dist/index.d.ts +7 -0
  37. package/dist/index.js +22 -2
  38. package/dist/index.js.map +1 -1
  39. package/dist/metadata/Type.d.ts +1 -0
  40. package/dist/metadata/Type.js +52 -0
  41. package/dist/metadata/Type.js.map +1 -1
  42. package/dist/midlewares/IMidleware.d.ts +3 -3
  43. package/dist/temp/Application.d.ts +5 -0
  44. package/dist/temp/Application.js +29 -0
  45. package/dist/temp/Application.js.map +1 -0
  46. package/dist/temp/Index.d.ts +1 -0
  47. package/dist/temp/Index.js +19 -0
  48. package/dist/temp/Index.js.map +1 -0
  49. package/dist/temp/controllers/StatusController.d.ts +25 -0
  50. package/dist/temp/controllers/StatusController.js +158 -0
  51. package/dist/temp/controllers/StatusController.js.map +1 -0
  52. package/dist/temp/service/SampleService.d.ts +11 -0
  53. package/dist/temp/service/SampleService.js +24 -0
  54. package/dist/temp/service/SampleService.js.map +1 -0
  55. package/package.json +3 -1
  56. package/readme.md +20 -0
@@ -2,6 +2,7 @@ import { Express } from "express";
2
2
  import IApplication, { ApplicationExceptionHandler } from "./interfaces/IApplication";
3
3
  import IApplicationConfiguration from "./interfaces/IApplicationConfiguration";
4
4
  import { ControllerBase } from "./controllers/base/ControllerBase";
5
+ import AbstractMultiPartRequestService from "./File/AbstractMultiPartRequestService";
5
6
  export default abstract class Application implements IApplication {
6
7
  static Configurations: IApplicationConfiguration;
7
8
  private _createdControllers;
@@ -11,10 +12,11 @@ export default abstract class Application implements IApplication {
11
12
  ApplicationThreadExeptionHandler?: ApplicationExceptionHandler;
12
13
  constructor();
13
14
  StartAsync(): Promise<void>;
14
- UseCors(): void;
15
+ protected UseCors(): void;
15
16
  private GetIgnoredPaths;
16
17
  private TryFindControllerFolder;
17
18
  protected UseControllersAsync(root?: string): Promise<void>;
19
+ protected UseCustomMultiPartRequestHandler<T extends AbstractMultiPartRequestService>(cTor: new (...args: any[]) => T): void;
18
20
  protected AppendController<T extends ControllerBase>(ctor: {
19
21
  new (...args: any[]): T;
20
22
  }): void;
@@ -48,6 +48,10 @@ const Exception_1 = __importDefault(require("./exceptions/Exception"));
48
48
  const Documentation_1 = __importDefault(require("./documentation/Documentation"));
49
49
  const ActionResult_1 = __importDefault(require("./controllers/ActionResult"));
50
50
  const BodyParseException_1 = __importDefault(require("./exceptions/BodyParseException"));
51
+ const AbstractMultiPartRequestService_1 = __importStar(require("./File/AbstractMultiPartRequestService"));
52
+ const FormidableMultiPartRequestService_1 = __importDefault(require("./File/FormidableMultiPartRequestService"));
53
+ const File_1 = __importDefault(require("./File/File"));
54
+ const Type_1 = __importDefault(require("./metadata/Type"));
51
55
  class Application {
52
56
  constructor() {
53
57
  this._createdControllers = [];
@@ -60,6 +64,7 @@ class Application {
60
64
  yield this.ApplicationConfiguration.LoadAsync();
61
65
  Application.Configurations = this.ApplicationConfiguration;
62
66
  this.Express.use(express_1.default.json({ limit: 50 * 1024 * 1024 }));
67
+ this.ApplicationConfiguration.AddScoped(AbstractMultiPartRequestService_1.default, FormidableMultiPartRequestService_1.default);
63
68
  yield this.ConfigureAsync(this.ApplicationConfiguration);
64
69
  if (this.ApplicationConfiguration)
65
70
  this.Express.use((e, rq, rs, n) => {
@@ -141,6 +146,9 @@ class Application {
141
146
  resolve();
142
147
  }));
143
148
  }
149
+ UseCustomMultiPartRequestHandler(cTor) {
150
+ this.ApplicationConfiguration.AddScoped(AbstractMultiPartRequestService_1.default, cTor);
151
+ }
144
152
  AppendController(ctor) {
145
153
  let empty = new ctor();
146
154
  let methods = Reflect.ownKeys(empty.constructor.prototype).filter(m => {
@@ -159,6 +167,10 @@ class Application {
159
167
  let verb = ControllerDecorators_1.default.GetVerb(empty, method.toString());
160
168
  let fromBody = ControllerDecorators_1.default.GetFromBodyArgs(empty.constructor, method.toString());
161
169
  let fromQuery = ControllerDecorators_1.default.GetFromQueryArgs(empty.constructor, method.toString());
170
+ let fromFiles = ControllerDecorators_1.default.GetFromFilesArgs(empty.constructor, method.toString());
171
+ let maxFilesSize = ControllerDecorators_1.default.GetMaxFilesSize(empty.constructor);
172
+ let headers = ControllerDecorators_1.default.GetHeaders(empty.constructor);
173
+ ControllerDecorators_1.default.GetNonDecoratedArguments(empty, method, fromBody, fromQuery, fromFiles);
162
174
  if (!verb)
163
175
  verb = HttpVerbs_1.HTTPVerbs.GET;
164
176
  if (verb == HttpVerbs_1.HTTPVerbs.GET && fromBody.length > 0)
@@ -168,28 +180,92 @@ class Application {
168
180
  throw new ControllerLoadException_1.default(`The URI: ${route}${action} exists in two controllers: ${collision[0].Controller} and ${ctor.name}.${method.toString()}`);
169
181
  console.debug("appended : ", verb, `${route}${action}`);
170
182
  this._URIs.push({ URI: `${route}${action}`, Controller: `${ctor.name}.${method.toString()}` });
171
- this.Express[verb.toString().toLowerCase()](`${route}${action}`, (request, response) => {
172
- let midlewares = ControllerDecorators_1.default.GetMidlewares(empty).reverse();
173
- midlewares.push(...ControllerDecorators_1.default.GetBefores(empty, method.toString()).reverse());
174
- let afters = ControllerDecorators_1.default.GetMidlewaresAfter(empty).reverse();
175
- afters.push(...ControllerDecorators_1.default.GetAfters(empty, method.toString()).reverse());
176
- let handler = (context) => {
177
- var _a;
183
+ this.Express[verb.toString().toLowerCase()](`${route}${action}`, (request, response) => __awaiter(this, void 0, void 0, function* () {
184
+ let midlewares = ControllerDecorators_1.default.GetMidlewares(empty).map(s => s).reverse();
185
+ midlewares.push(...ControllerDecorators_1.default.GetBefores(empty, method.toString()).map(s => s).reverse());
186
+ let afters = ControllerDecorators_1.default.GetMidlewaresAfter(empty).map(s => s).reverse();
187
+ afters.push(...ControllerDecorators_1.default.GetAfters(empty, method.toString()).map(s => s).reverse());
188
+ let handler = (context) => __awaiter(this, void 0, void 0, function* () {
189
+ var _a, _b;
190
+ for (let h of headers) {
191
+ if (!request.headers[h]) {
192
+ response.status(400);
193
+ response.json({
194
+ Message: "Header missing",
195
+ Detailts: `Header ${h} is required to this endpoint`
196
+ });
197
+ }
198
+ }
178
199
  let params = [];
179
- let ts = (_a = Reflect.getMetadata("design:paramtypes", empty, method.toString())) !== null && _a !== void 0 ? _a : Reflect.getMetadata("design:paramtypes", empty.constructor, method.toString());
200
+ let ts = ((_b = ((_a = Reflect.getMetadata("design:paramtypes", empty, method.toString())) !== null && _a !== void 0 ? _a : Reflect.getMetadata("design:paramtypes", empty.constructor, method.toString()))) !== null && _b !== void 0 ? _b : []);
201
+ let content_type = request.headers["content-type"];
202
+ let isMultiPartFormData = content_type && content_type.indexOf('multipart/form-data') > -1;
203
+ let parts = [];
204
+ let fromFilesParams = [];
205
+ if (isMultiPartFormData) {
206
+ let multiPartService = DependecyService_1.default.Resolve(AbstractMultiPartRequestService_1.default);
207
+ try {
208
+ parts = yield multiPartService.GetPartsFromRequestAsync(request, { MaxFileSize: maxFilesSize });
209
+ }
210
+ catch (err) {
211
+ return this.CallErrorHandler(request, response, this.CastToExpection(err));
212
+ }
213
+ for (let f of fromFiles) {
214
+ let fs = parts === null || parts === void 0 ? void 0 : parts.filter(s => s.Type == AbstractMultiPartRequestService_1.PartType.FILE);
215
+ if (fs.length > 0) {
216
+ if (f.FileName) {
217
+ let files = fs.filter(s => s.Filename == f.FileName);
218
+ if (files.length > 0) {
219
+ let fileClass = new File_1.default(files[0].Filename, files[0].Content);
220
+ fromFilesParams.push(fileClass);
221
+ params[f.Index] = fileClass;
222
+ }
223
+ }
224
+ else {
225
+ let fileClass = new File_1.default(fs[0].Filename, fs[0].Content);
226
+ fromFilesParams.push(fileClass);
227
+ params[f.Index] = fileClass;
228
+ }
229
+ }
230
+ }
231
+ }
180
232
  let fromBodyParams = [];
181
233
  if (fromBody.length > 0) {
182
234
  fromBody.sort((a, b) => a.Index - b.Index).forEach(f => {
183
235
  let obj = undefined;
184
- if (!f.Field || f.Type.name == "Object")
185
- obj = request.body;
186
- else
187
- obj = request.body[f.Field];
236
+ if (!f.Field || f.Type.name == "Object") {
237
+ let fieldParts = parts.filter(s => s.Name == 'body');
238
+ if (isMultiPartFormData && fieldParts.length > 0) {
239
+ try {
240
+ obj = JSON.parse(fieldParts[0].Content);
241
+ }
242
+ catch (_a) {
243
+ obj = fieldParts[0].Content;
244
+ }
245
+ }
246
+ else {
247
+ obj = request.body;
248
+ }
249
+ }
250
+ else {
251
+ let fieldParts = parts.filter(s => s.Name == f.Field);
252
+ if (isMultiPartFormData && fieldParts.length > 0) {
253
+ try {
254
+ obj = JSON.parse(fieldParts[0].Content);
255
+ }
256
+ catch (_b) {
257
+ obj = fieldParts[0].Content;
258
+ }
259
+ }
260
+ else {
261
+ obj = request.body[f.Field];
262
+ }
263
+ }
188
264
  if (["string", "number", "boolean", "bigint"].filter(s => s == ts[f.Index].name.toLowerCase()).length == 0) {
189
265
  try {
190
266
  obj.__proto__ = ts[f.Index];
191
267
  }
192
- catch (_a) { }
268
+ catch (_c) { }
193
269
  if (f.Type.name == "Object") {
194
270
  fromBodyParams.push(obj);
195
271
  params[f.Index] = obj;
@@ -224,7 +300,7 @@ class Application {
224
300
  fromBodyParams.push(new Date(obj));
225
301
  params[f.Index] = new Date(obj);
226
302
  }
227
- catch (_b) { }
303
+ catch (_d) { }
228
304
  }
229
305
  else {
230
306
  fromBodyParams.push(obj);
@@ -290,6 +366,19 @@ class Application {
290
366
  if (p.Required && (params.length <= p.Index || params[p.Index] == undefined)) {
291
367
  modelBindErros.push(p);
292
368
  }
369
+ else {
370
+ try {
371
+ Type_1.default.ValidateType(params[p.Index], ts[p.Index]);
372
+ }
373
+ catch (e) {
374
+ response.status(400);
375
+ response.json({
376
+ Message: "Model binding fail",
377
+ Detailts: e.message
378
+ });
379
+ return;
380
+ }
381
+ }
293
382
  }
294
383
  if (modelBindErros.length > 0) {
295
384
  response.status(400);
@@ -316,12 +405,28 @@ class Application {
316
405
  return;
317
406
  }
318
407
  }
408
+ if (fromFiles.length > 0) {
409
+ let modelBindErros = [];
410
+ for (let p of fromFiles) {
411
+ if (p.Required && (params.length <= p.Index || params[p.Index] == undefined)) {
412
+ modelBindErros.push(p);
413
+ }
414
+ }
415
+ if (modelBindErros.length > 0) {
416
+ response.status(400);
417
+ response.json({
418
+ Message: "Model binding fail",
419
+ Detailts: modelBindErros.map(s => `The file ${(s.FileName ? `"${s.FileName} "` : "")}is required`)
420
+ });
421
+ return;
422
+ }
423
+ }
319
424
  let validationsErrors = [];
320
425
  for (let a of fromBodyParams) {
321
426
  try {
322
427
  validationsErrors.push(...ValidationDecorators_1.default.Validate(a).map(s => s.Message));
323
428
  }
324
- catch (_b) { }
429
+ catch (_c) { }
325
430
  }
326
431
  if (validationsErrors.length > 0) {
327
432
  response.status(400);
@@ -346,31 +451,43 @@ class Application {
346
451
  try {
347
452
  let exceutionTask = controller[method](...params);
348
453
  if (exceutionTask instanceof Promise) {
349
- exceutionTask.then(c => {
454
+ try {
455
+ let c = yield exceutionTask;
350
456
  for (let afterHandler of afters) {
351
- afterHandler({
352
- Request: request,
353
- Response: response,
354
- Result: exceutionTask
355
- });
457
+ try {
458
+ yield afterHandler({
459
+ Request: request,
460
+ Response: response,
461
+ Result: c
462
+ });
463
+ }
464
+ catch (subErr) {
465
+ return this.CallErrorHandler(request, response, this.CastToExpection(subErr));
466
+ }
356
467
  }
357
468
  this.SendResponseIfNecessary(controller, response, c);
358
- }).catch(err => {
469
+ }
470
+ catch (err) {
359
471
  for (let afterHandler of afters) {
360
- afterHandler({
361
- Exception: this.CastToExpection(err),
362
- Request: request,
363
- Response: response
364
- });
472
+ try {
473
+ yield afterHandler({
474
+ Exception: this.CastToExpection(err),
475
+ Request: request,
476
+ Response: response
477
+ });
478
+ }
479
+ catch (subErr) {
480
+ return this.CallErrorHandler(request, response, this.CastToExpection(subErr));
481
+ }
365
482
  }
366
483
  if (afters.length == 0)
367
484
  this.CallErrorHandler(request, response, this.CastToExpection(err));
368
- });
485
+ }
369
486
  }
370
487
  else {
371
488
  for (let afterHandler of afters) {
372
489
  try {
373
- afterHandler({
490
+ yield afterHandler({
374
491
  Request: request,
375
492
  Response: response,
376
493
  Result: exceutionTask
@@ -386,20 +503,20 @@ class Application {
386
503
  catch (err) {
387
504
  for (let afterHandler of afters) {
388
505
  try {
389
- afterHandler({
506
+ yield afterHandler({
390
507
  Exception: this.CastToExpection(err),
391
508
  Request: request,
392
509
  Response: response
393
510
  });
394
511
  }
395
- catch (err) {
396
- this.CallErrorHandler(request, response, this.CastToExpection(err));
512
+ catch (subErr) {
513
+ this.CallErrorHandler(request, response, this.CastToExpection(subErr));
397
514
  }
398
515
  }
399
516
  if (afters.length == 0)
400
517
  this.CallErrorHandler(request, response, this.CastToExpection(err));
401
518
  }
402
- };
519
+ });
403
520
  if (midlewares && midlewares.length > 0) {
404
521
  let httpRequestContexts = [];
405
522
  let pipeline = [];
@@ -407,7 +524,7 @@ class Application {
407
524
  httpRequestContexts.push({
408
525
  Request: request,
409
526
  Response: response,
410
- Next: () => { }
527
+ Next: () => __awaiter(this, void 0, void 0, function* () { })
411
528
  });
412
529
  }
413
530
  for (let i = 0; i < httpRequestContexts.length; i++) {
@@ -415,24 +532,36 @@ class Application {
415
532
  v: i
416
533
  };
417
534
  pipeline.push({
418
- Execute: () => {
419
- pipeline.length - 1 == box.v ? handler(httpRequestContexts[box.v]) : midlewares[box.v](httpRequestContexts[box.v]);
420
- }
535
+ Execute: () => __awaiter(this, void 0, void 0, function* () {
536
+ try {
537
+ pipeline.length - 1 == box.v ? yield handler(httpRequestContexts[box.v]) : yield midlewares[box.v](httpRequestContexts[box.v]);
538
+ }
539
+ catch (err) {
540
+ this.CallErrorHandler(request, response, this.CastToExpection(err));
541
+ }
542
+ })
421
543
  });
422
544
  }
423
545
  for (let i = 0; i < pipeline.length; i++) {
424
- httpRequestContexts[i].Next = i == pipeline.length - 1 ? () => { } : () => pipeline[i + 1].Execute();
546
+ httpRequestContexts[i].Next = i == pipeline.length - 1 ? () => __awaiter(this, void 0, void 0, function* () { }) : () => __awaiter(this, void 0, void 0, function* () {
547
+ try {
548
+ yield pipeline[i + 1].Execute();
549
+ }
550
+ catch (err) {
551
+ this.CallErrorHandler(request, response, this.CastToExpection(err));
552
+ }
553
+ });
425
554
  }
426
- pipeline[0].Execute();
555
+ yield pipeline[0].Execute();
427
556
  }
428
557
  else {
429
- handler({
558
+ yield handler({
430
559
  Request: request,
431
560
  Response: response,
432
- Next: () => { }
561
+ Next: () => __awaiter(this, void 0, void 0, function* () { })
433
562
  });
434
563
  }
435
- });
564
+ }));
436
565
  }
437
566
  }
438
567
  CreateDocumentation() {
@@ -464,6 +593,8 @@ class Application {
464
593
  CallErrorHandler(request, response, exception) {
465
594
  let defaultHandler = (request, response, exception) => {
466
595
  try {
596
+ if (response.headersSent)
597
+ return;
467
598
  response.status(500);
468
599
  response.json(exception);
469
600
  }
@@ -1 +1 @@
1
- {"version":3,"file":"Application.js","sourceRoot":"","sources":["../Application.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Application.js","sourceRoot":"","sources":["../Application.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AACA,sDAAoC;AACpC,0FAAiE;AAIjE,yGAAkF;AAClF,8FAAsE;AACtE,2DAAwD;AAExD,4CAAsB;AACtB,gDAAwB;AAExB,yGAAiF;AACjF,mGAA2E;AAC3E,uEAA+C;AAC/C,kFAA0D;AAE1D,8EAAsD;AACtD,yFAAiE;AACjE,0GAAiH;AACjH,iHAAyF;AACzF,uDAAoC;AACpC,2DAAmC;AAGnC,MAA8B,WAAW;IAcrC;QAVQ,wBAAmB,GAA2C,EAAE,CAAC;QAEjE,UAAK,GAAyC,EAAE,CAAC;QAUrD,IAAI,CAAC,wBAAwB,GAAG,IAAI,kCAAwB,EAAE,CAAC;QAE/D,IAAI,CAAC,OAAO,GAAG,IAAA,iBAAa,GAAE,CAAC;IAEnC,CAAC;IAGY,UAAU;;YACnB,MAAO,IAAI,CAAC,wBAAqD,CAAC,SAAS,EAAE,CAAC;YAE9E,WAAW,CAAC,cAAc,GAAG,IAAI,CAAC,wBAAwB,CAAC;YAE3D,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,iBAAa,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,EAAE,GAAG,IAAI,GAAG,IAAI,EAAE,CAAC,CAAC,CAAC;YAElE,IAAI,CAAC,wBAAwB,CAAC,SAAS,CAAC,yCAA+B,EAAE,2CAAiC,CAAC,CAAC;YAE5G,MAAM,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,wBAAwB,CAAC,CAAC;YAEzD,IAAG,IAAI,CAAC,wBAAwB;gBAC5B,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAO,EAAE,EAAQ,EAAE,EAAQ,EAAE,CAAO,EAAE,EAAE;oBAEtD,IAAG,CAAC,IAAI,CAAC,YAAY,KAAK,IAAI,CAAC,YAAY,WAAW,EACtD;wBACI,IAAI,CAAC,GAAG,IAAI,4BAAkB,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC;wBAC1C,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,KAAK,CAAC;wBAClB,IAAI,CAAC,gBAAgB,CAAC,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC;qBACpC;;wBAEG,CAAC,EAAE,CAAC;gBACZ,CAAC,CAAC,CAAC;YAEP,MAAO,IAAI,CAAC,wBAAqD,CAAC,SAAS,EAAE,CAAC;YAE9E,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,wBAAwB,CAAC,IAAI,EAAE,IAAI,CAAC,wBAAwB,CAAC,IAAI,EAAE,GAAG,EAAE;gBAC7F,OAAO,CAAC,GAAG,CAAC,0BAA0B,IAAI,CAAC,wBAAwB,CAAC,IAAI,IAAI,IAAI,CAAC,wBAAwB,CAAC,IAAI,EAAE,CAAC,CAAC;YACtH,CAAC,CAAC,CAAC;QACP,CAAC;KAAA;IAES,OAAO;QACb,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;IACxC,CAAC;IAEO,eAAe;QACnB,OAAO;YACH,MAAM;YACN,SAAS;YACT,UAAU;YACV,cAAc;SACjB,CAAA;IACL,CAAC;IAEO,uBAAuB,CAAC,IAAY;QAExC,IAAI,IAAI,CAAC,eAAe,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,GAAG,CAAC;YAC/D,OAAO,SAAS,CAAC;QAErB,IAAI,IAAI,CAAC,OAAO,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC;YACjC,OAAO,SAAS,CAAC;QAErB,IAAI,CAAC,YAAI,CAAC,UAAU,CAAC,IAAI,CAAC;YACtB,OAAO,SAAS,CAAC;QAErB,IAAI,YAAI,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,eAAe,CAAC,CAAC,CAAC,MAAM,GAAG,CAAC;YACxF,OAAO,IAAI,CAAC;QAEhB,IAAI,MAAM,GAAG,YAAI,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,YAAI,CAAC,SAAS,CAAC,cAAI,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC;QAE9F,IAAI,MAAM,CAAC,MAAM,IAAI,CAAC;YAClB,OAAO,SAAS,CAAC;QAErB,KAAK,IAAI,CAAC,IAAI,MAAM,EAAE;YAClB,IAAI,IAAI,GAAG,IAAI,CAAC,uBAAuB,CAAC,cAAI,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;YAE5D,IAAI,IAAI,IAAI,IAAI,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,aAAa,CAAC;gBAClD,OAAO,IAAI,CAAC;SAEnB;QAED,OAAO,SAAS,CAAC;IACrB,CAAC;IAIS,mBAAmB,CAAC,IAAa;QACvC,OAAO,IAAI,OAAO,CAAO,CAAO,OAAO,EAAE,MAAM,EAAE,EAAE;YAE/C,IAAI,eAAe,GAAuB,IAAI,CAAC,uBAAuB,CAAC,cAAI,CAAC,IAAI,CAAC,IAAI,aAAJ,IAAI,cAAJ,IAAI,GAAI,IAAI,CAAC,wBAAwB,CAAC,QAAQ,EAAE,aAAa,CAAC,CAAC,CAAC;YAEjJ,IAAI,CAAC,eAAe;gBAChB,eAAe,GAAG,IAAI,CAAC,uBAAuB,CAAC,IAAI,aAAJ,IAAI,cAAJ,IAAI,GAAI,IAAI,CAAC,wBAAwB,CAAC,QAAQ,CAAC,CAAC;YAEnG,IAAI,CAAC,eAAe,IAAI,CAAC,YAAI,CAAC,UAAU,CAAC,eAAgB,CAAC;gBACtD,OAAO;YAEX,OAAO,CAAC,KAAK,CAAC,0BAA0B,eAAe,EAAE,CAAC,CAAC;YAE3D,IAAI,KAAK,GAAa,YAAI,CAAC,WAAW,CAAC,eAAe,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,eAAe,CAAC,CAAC,CAAC;YAE/G,KAAK,IAAI,cAAc,IAAI,KAAK,EAAE;gBAG9B,IAAI,gBAAgB,GAAG,yBAAa,cAAI,CAAC,IAAI,CAAC,eAAe,EAAE,cAAc,CAAC,uCAAC,CAAC;gBAEhF,IAAI,eAAe,GAAoB,SAAS,CAAC;gBAEjD,IAAI,gBAAgB,CAAC,OAAO,IAAI,SAAS,EAAE;oBAEvC,KAAK,IAAI,CAAC,IAAI,gBAAgB,EAAE;wBAC5B,IAAI,CAAC,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,YAAY,CAAC,EAAE;4BACxC,eAAe,GAAG,gBAAgB,CAAC,CAAC,CAAC,CAAC;yBACzC;qBACJ;iBAEJ;;oBACG,eAAe,GAAG,gBAAgB,CAAC,OAAO,CAAC;gBAE/C,IAAI,eAAe,IAAI,SAAS;oBAC5B,MAAM,IAAI,iCAAuB,CAAC,uCAAuC,cAAc,EAAE,CAAC,CAAC;gBAE/F,IAAI,UAAU,GAAG,OAAO,CAAC,SAAS,CAAC,eAAe,CAAC,SAAS,CAAC,WAAW,EAAE,EAAE,CAAgB,CAAC;gBAE7F,IAAI,UAAU,IAAI,SAAS,IAAI,UAAU,IAAI,IAAI,EAAE;oBAC/C,IAAI,CAAC,gBAAgB,CAAC,eAAe,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC;iBAEhE;qBAAM;oBAEH,MAAM,IAAI,iCAAuB,CAAC,gBAAgB,eAAe,CAAC,IAAI,2BAA2B,cAAc,EAAE,CAAC,CAAC;iBACtH;aAGJ;YAED,OAAO,EAAE,CAAC;QAGd,CAAC,CAAA,CAAC,CAAA;IAGN,CAAC;IAES,gCAAgC,CAA4C,IAAgC;QAElH,IAAI,CAAC,wBAAwB,CAAC,SAAS,CAAC,yCAA+B,EAAE,IAAI,CAAC,CAAC;IACnF,CAAC;IAES,gBAAgB,CAA2B,IAAiC;QAClF,IAAI,KAAK,GAAG,IAAI,IAAI,EAAS,CAAC;QAE9B,IAAI,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,WAAW,CAAC,SAAS,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE;YAClE,OAAO,OAAO,KAAK,CAAC,CAAC,CAAC,IAAI,UAAU,CAAC;QACzC,CAAC,CAAC,CAAA;QAEF,IAAI,KAAK,GAAG,8BAAqB,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;QAClD,IAAI,YAAY,GAAG,8BAAqB,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC;QAE7D,IAAI,CAAC,KAAK;YACN,OAAO;QAEX,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAEpC,KAAK,IAAI,MAAM,IAAI,OAAO,EAAE;YACxB,IAAI,MAAM,GAAG,8BAAqB,CAAC,SAAS,CAAC,KAAK,EAAE,MAAM,CAAC,QAAQ,EAAE,CAAC,CAAC;YAEvE,IAAI,CAAC,MAAM,EAAE;gBACT,SAAS;aACZ;YAED,IAAI,IAAI,GAAG,8BAAqB,CAAC,OAAO,CAAC,KAAK,EAAE,MAAM,CAAC,QAAQ,EAAE,CAAC,CAAC;YACnE,IAAI,QAAQ,GAAG,8BAAqB,CAAC,eAAe,CAAC,KAAK,CAAC,WAAW,EAAE,MAAM,CAAC,QAAQ,EAAE,CAAC,CAAC;YAC3F,IAAI,SAAS,GAAG,8BAAqB,CAAC,gBAAgB,CAAC,KAAK,CAAC,WAAW,EAAE,MAAM,CAAC,QAAQ,EAAE,CAAC,CAAC;YAC7F,IAAI,SAAS,GAAG,8BAAqB,CAAC,gBAAgB,CAAC,KAAK,CAAC,WAAW,EAAE,MAAM,CAAC,QAAQ,EAAE,CAAC,CAAC;YAC7F,IAAI,YAAY,GAAG,8BAAqB,CAAC,eAAe,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC;YAC5E,IAAI,OAAO,GAAG,8BAAqB,CAAC,UAAU,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC;YAClE,8BAAqB,CAAC,wBAAwB,CAAC,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,SAAS,EAAE,SAAS,CAAC,CAAC;YAE9F,IAAI,CAAC,IAAI;gBACL,IAAI,GAAG,qBAAS,CAAC,GAAG,CAAC;YAEzB,IAAG,IAAI,IAAI,qBAAS,CAAC,GAAG,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC;gBAC3C,MAAM,IAAI,iCAAuB,CAAC,eAAe,IAAI,CAAC,IAAI,IAAI,MAAM,CAAC,QAAQ,EAAE,2BAA2B,CAAC,CAAC;YAEhH,IAAI,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,IAAI,GAAG,KAAK,GAAG,MAAM,EAAE,CAAC,CAAC;YAErE,IAAG,SAAS,CAAC,MAAM,GAAG,CAAC;gBACnB,MAAM,IAAI,iCAAuB,CAAC,YAAY,KAAK,GAAG,MAAM,+BAA+B,SAAS,CAAC,CAAC,CAAC,CAAC,UAAU,QAAQ,IAAI,CAAC,IAAI,IAAI,MAAM,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC;YAEhK,OAAO,CAAC,KAAK,CAAC,aAAa,EAAE,IAAI,EAAE,GAAG,KAAK,GAAG,MAAM,EAAE,CAAC,CAAC;YAExD,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,GAAG,EAAG,GAAG,KAAK,GAAG,MAAM,EAAE,EAAE,UAAU,EAAG,GAAG,IAAI,CAAC,IAAI,IAAI,MAAM,CAAC,QAAQ,EAAE,EAAE,EAAC,CAAC,CAAC;YAE/F,IAAI,CAAC,OAAe,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC,WAAW,EAAE,CAAC,CAAC,GAAG,KAAK,GAAG,MAAM,EAAE,EAAE,CAAO,OAAgB,EAAE,QAAkB,EAAE,EAAE;gBAErH,IAAI,UAAU,GAAG,8BAAqB,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC;gBAElF,UAAU,CAAC,IAAI,CAAC,GAAG,8BAAqB,CAAC,UAAU,CAAC,KAAK,EAAE,MAAM,CAAC,QAAQ,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC;gBAGrG,IAAI,MAAM,GAAG,8BAAqB,CAAC,kBAAkB,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC;gBAEnF,MAAM,CAAC,IAAI,CAAC,GAAG,8BAAqB,CAAC,SAAS,CAAC,KAAK,EAAE,MAAM,CAAC,QAAQ,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC;gBAEhG,IAAI,OAAO,GAAG,CAAO,OAA4B,EAAE,EAAE;;oBAEjD,KAAI,IAAI,CAAC,IAAI,OAAO,EACpB;wBACI,IAAG,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,EACtB;4BACI,QAAQ,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;4BACrB,QAAQ,CAAC,IAAI,CACT;gCACI,OAAO,EAAE,gBAAgB;gCACzB,QAAQ,EAAE,UAAU,CAAC,+BAA+B;6BACvD,CAAC,CAAC;yBACV;qBACJ;oBAED,IAAI,MAAM,GAAU,EAAE,CAAC;oBAEvB,IAAI,EAAE,GAAG,CAAC,MAAA,CAAC,MAAA,OAAO,CAAC,WAAW,CAAC,mBAAmB,EAAE,KAAK,EAAE,MAAM,CAAC,QAAQ,EAAE,CAAC,mCACzE,OAAO,CAAC,WAAW,CAAC,mBAAmB,EAAE,KAAK,CAAC,WAAW,EAAE,MAAM,CAAC,QAAQ,EAAE,CAAC,CAAC,mCAAI,EAAE,CAAe,CAAC;oBAEzG,IAAI,YAAY,GAAE,OAAO,CAAC,OAAO,CAAC,cAAc,CAAC,CAAC;oBAClD,IAAI,mBAAmB,GAAG,YAAY,IAAI,YAAY,CAAC,OAAO,CAAC,qBAAqB,CAAC,GAAG,CAAC,CAAC,CAAC;oBAC3F,IAAI,KAAK,GAAoB,EAAE,CAAC;oBAChC,IAAI,eAAe,GAAU,EAAE,CAAC;oBAChC,IAAG,mBAAmB,EACtB;wBACI,IAAI,gBAAgB,GAAG,0BAAgB,CAAC,OAAO,CAAkC,yCAA+B,CAAC,CAAC;wBAElH,IAAG;4BACC,KAAK,GAAG,MAAM,gBAAiB,CAAC,wBAAwB,CAAC,OAAO,EAAE,EAAE,WAAW,EAAE,YAAY,EAAC,CAAC,CAAC;yBAEnG;wBAAA,OAAO,GAAG,EAAE;4BACT,OAAO,IAAI,CAAC,gBAAgB,CAAC,OAAO,EAAE,QAAQ,EAAE,IAAI,CAAC,eAAe,CAAC,GAAY,CAAC,CAAC,CAAC;yBACvF;wBAED,KAAI,IAAI,CAAC,IAAI,SAAS,EACtB;4BACI,IAAI,EAAE,GAAG,KAAK,aAAL,KAAK,uBAAL,KAAK,CAAE,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,IAAI,0CAAQ,CAAC,IAAI,CAAC,CAAC;4BAErD,IAAG,EAAE,CAAC,MAAM,GAAG,CAAC,EAChB;gCACI,IAAG,CAAC,CAAC,QAAQ,EAAC;oCAEV,IAAI,KAAK,GAAG,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,IAAI,CAAC,CAAC,QAAQ,CAAC,CAAC;oCAErD,IAAG,KAAK,CAAC,MAAM,GAAG,CAAC,EACnB;wCACI,IAAI,SAAS,GAAG,IAAI,cAAS,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,QAAS,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC;wCACpE,eAAe,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;wCAChC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,SAAS,CAAC;qCAC/B;iCAEJ;qCAAI;oCAED,IAAI,SAAS,GAAG,IAAI,cAAS,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,QAAS,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC;oCAC9D,eAAe,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;oCAChC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,SAAS,CAAC;iCAC/B;6BACJ;yBAEJ;qBACJ;oBAID,IAAI,cAAc,GAAU,EAAE,CAAC;oBAC/B,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE;wBACrB,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE;4BACnD,IAAI,GAAG,GAAG,SAAS,CAAC;4BAEpB,IAAI,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,IAAI,QAAQ,EACnC;gCACI,IAAI,UAAU,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,IAAI,MAAM,CAAC,CAAC;gCAErD,IAAG,mBAAmB,IAAI,UAAU,CAAC,MAAM,GAAG,CAAC,EAC/C;oCACI,IAAG;wCACC,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC;qCAC3C;oCAAA,WAAK;wCACF,GAAG,GAAG,UAAU,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC;qCAC/B;iCACJ;qCAAI;oCACD,GAAG,GAAG,OAAO,CAAC,IAAI,CAAC;iCACtB;6BAEJ;iCAED;gCAEA,IAAI,UAAU,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,KAAK,CAAC,CAAC;gCAElD,IAAG,mBAAmB,IAAI,UAAU,CAAC,MAAM,GAAG,CAAC,EAC/C;oCACI,IAAG;wCACC,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC;qCAC3C;oCAAA,WAAK;wCACF,GAAG,GAAG,UAAU,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC;qCAC/B;iCACJ;qCAAI;oCACD,GAAG,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;iCAC/B;6BAER;4BAGD,IAAI,CAAC,QAAQ,EAAE,QAAQ,EAAE,SAAS,EAAE,QAAQ,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,CAAC,MAAM,IAAI,CAAC,EAAE;gCACxG,IAAI;oCACA,GAAG,CAAC,SAAS,GAAG,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;iCAC/B;gCAAC,WAAM,GAAG;gCAEX,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,IAAI,QAAQ,EAAE;oCACzB,cAAc,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;oCACzB,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,GAAG,CAAC;iCAEzB;qCAAM;oCAEH,IAAI,CAAC,GAAG,OAAO,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE,EAAE,CAAQ,CAAC;oCAClD,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;oCAEtB,cAAc,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;oCACvB,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;iCACvB;6BACJ;iCAAM;gCACH,IAAI,GAAG,IAAI,SAAS,IAAI,OAAO,GAAG,IAAI,QAAQ,IAAI,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,GAAG,CAAC,WAAW,CAAC,GAAG,CAAC,IAAI,GAAG,CAAC,MAAM,GAAG,CAAC;oCAC7G,GAAG,GAAG,GAAG,CAAC,SAAS,CAAC,CAAC,EAAE,GAAG,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;gCAE3C,IAAI,GAAG,IAAI,SAAS,IAAI,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,WAAW,EAAE,IAAI,QAAQ,EAAE;oCAChE,IAAI,MAAM,GAAG,MAAM,CAAC,UAAU,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAC,CAAC;oCAE/C,IAAI,MAAM,IAAI,MAAM,CAAC,GAAG,EAAE;wCACtB,cAAc,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;wCAC5B,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,MAAM,CAAC;qCAC5B;yCAED;wCACI,cAAc,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;wCAC/B,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,SAAS,CAAC;qCAC/B;iCAEJ;qCAAM,IAAI,GAAG,IAAI,SAAS,IAAI,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,WAAW,EAAE,IAAI,QAAQ,EAAE;oCACvE,cAAc,CAAC,IAAI,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAC,CAAC;oCACpC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,GAAG,CAAC,QAAQ,EAAE,CAAC;iCACpC;qCACI,IAAI,GAAG,IAAI,SAAS,IAAI,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,WAAW,EAAE,IAAI,MAAM,EAAE;oCACnE,IAAI;wCAEA,cAAc,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;wCACnC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,IAAI,IAAI,CAAC,GAAG,CAAC,CAAC;qCAEnC;oCAAC,WAAM,GAAG;iCACd;qCACI;oCACD,cAAc,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;oCACzB,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,GAAG,CAAC;iCACzB;6BACJ;wBACL,CAAC,CAAC,CAAC;qBACN;oBAED,IAAI,eAAe,GAAU,EAAE,CAAC;oBAChC,IAAI,SAAS,CAAC,MAAM,GAAG,CAAC,EAAE;wBACtB,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE;;4BACzD,IAAI,GAAuB,CAAC;4BAE5B,GAAG,GAAG,MAAA,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,0CAAE,QAAQ,EAAE,CAAC;4BAEzC,IAAI,GAAG,IAAI,SAAS,IAAI,OAAO,GAAG,IAAI,QAAQ,IAAI,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,GAAG,CAAC,WAAW,CAAC,GAAG,CAAC,IAAI,GAAG,CAAC,MAAM,GAAG,CAAC;gCAC7G,GAAG,GAAG,GAAG,CAAC,SAAS,CAAC,CAAC,EAAE,GAAG,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;4BAE3C,IAAI,GAAG,IAAI,SAAS,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,IAAI,QAAQ,EAAE;gCAC3D,IAAI,MAAM,GAAG,MAAM,CAAC,UAAU,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAC,CAAC;gCAE/C,IAAI,MAAM,IAAI,MAAM,CAAC,GAAG,EAAE;oCACtB,eAAe,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;oCAC7B,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,MAAM,CAAC;iCAC5B;qCAED;oCACI,cAAc,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;oCAC/B,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,SAAS,CAAC;iCAC/B;6BAEJ;iCAAM,IAAI,GAAG,IAAI,SAAS,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,IAAI,QAAQ,EAAE;gCAClE,eAAe,CAAC,IAAI,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAC,CAAC;gCACrC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,GAAG,CAAC,QAAQ,EAAE,CAAC;6BACpC;iCACI,IAAI,GAAG,IAAI,SAAS,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,IAAI,MAAM,EAAE;gCAC9D,IAAI;oCAEA,eAAe,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;oCACpC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,IAAI,IAAI,CAAC,GAAG,CAAC,CAAC;iCAEnC;gCAAC,WAAM,GAAG;6BAEd;iCACI,IAAI,GAAG,IAAI,SAAS,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,IAAI,SAAS,EAAE;gCACjE,IAAI;oCAEA,IAAI,OAAO,GAAG,IAAI,SAAS,EAAE;wCAEzB,IAAI,CAAC,GAAG,GAAG,CAAC,QAAQ,EAAE,CAAC,WAAW,EAAE,IAAI,MAAM,CAAC;wCAC/C,eAAe,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;wCACxB,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;qCACvB;yCACI;wCACD,eAAe,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;wCAC1B,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,GAAG,CAAC;qCACzB;iCAEJ;gCAAC,WAAM,GAAG;6BAEd;iCACI;gCACD,eAAe,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;gCAC1B,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,GAAG,CAAC;6BACzB;wBACL,CAAC,CAAC,CAAC;qBACN;oBAGD,IAAI,YAAY,EAAE;wBAEd,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE;4BACrB,IAAI,cAAc,GAAG,EAAE,CAAC;4BAExB,KAAK,IAAI,CAAC,IAAI,QAAQ,EAAE;gCACpB,IAAI,CAAC,CAAC,QAAQ,IAAI,CAAC,MAAM,CAAC,MAAM,IAAI,CAAC,CAAC,KAAK,IAAI,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,SAAS,CAAC,EAAE;oCAC1E,cAAc,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;iCAC1B;qCAED;oCACI,IAAG;wCACC,cAAI,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,CAAgC,CAAC,CAAC;qCAClF;oCAAA,OAAM,CAAC,EACR;wCACI,QAAQ,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;wCACrB,QAAQ,CAAC,IAAI,CACT;4CACI,OAAO,EAAE,oBAAoB;4CAC7B,QAAQ,EAAG,CAAS,CAAC,OAAO;yCAC/B,CAAC,CAAC;wCACP,OAAO;qCACV;iCACJ;6BACJ;4BAED,IAAI,cAAc,CAAC,MAAM,GAAG,CAAC,EAAE;gCAC3B,QAAQ,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;gCACrB,QAAQ,CAAC,IAAI,CACT;oCACI,OAAO,EAAE,oBAAoB;oCAC7B,QAAQ,EAAE,cAAc,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,cAAc,CAAC,CAAC,KAAK,eAAe,CAAC;iCAC1E,CAAC,CAAC;gCACP,OAAO;6BACV;yBAEJ;wBAED,IAAI,SAAS,CAAC,MAAM,GAAG,CAAC,EAAE;4BACtB,IAAI,cAAc,GAAG,EAAE,CAAC;4BAExB,KAAK,IAAI,CAAC,IAAI,SAAS,EAAE;gCACrB,IAAI,CAAC,CAAC,QAAQ,IAAI,CAAC,MAAM,CAAC,MAAM,IAAI,CAAC,CAAC,KAAK,IAAI,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,SAAS,CAAC,EAAE;oCAC1E,cAAc,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;iCAC1B;6BACJ;4BAED,IAAI,cAAc,CAAC,MAAM,GAAG,CAAC,EAAE;gCAC3B,QAAQ,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;gCACrB,QAAQ,CAAC,IAAI,CACT;oCACI,OAAO,EAAE,oBAAoB;oCAC7B,QAAQ,EAAE,cAAc,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,cAAc,CAAC,CAAC,KAAK,eAAe,CAAC;iCAC1E,CAAC,CAAC;gCACP,OAAO;6BACV;yBAEJ;wBAED,IAAI,SAAS,CAAC,MAAM,GAAG,CAAC,EAAE;4BACtB,IAAI,cAAc,GAAG,EAAE,CAAC;4BAExB,KAAK,IAAI,CAAC,IAAI,SAAS,EAAE;gCACrB,IAAI,CAAC,CAAC,QAAQ,IAAI,CAAC,MAAM,CAAC,MAAM,IAAI,CAAC,CAAC,KAAK,IAAI,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,SAAS,CAAC,EAAE;oCAC1E,cAAc,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;iCAC1B;6BACJ;4BAED,IAAI,cAAc,CAAC,MAAM,GAAG,CAAC,EAAE;gCAC3B,QAAQ,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;gCACrB,QAAQ,CAAC,IAAI,CACT;oCACI,OAAO,EAAE,oBAAoB;oCAC7B,QAAQ,EAAE,cAAc,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,YAAY,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,QAAQ,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,aAAa,CAAC;iCACrG,CAAC,CAAC;gCACP,OAAO;6BACV;yBAEJ;wBAED,IAAI,iBAAiB,GAAa,EAAE,CAAC;wBAErC,KAAK,IAAI,CAAC,IAAI,cAAc,EAAE;4BAC3B,IAAG;gCACF,iBAAiB,CAAC,IAAI,CAAC,GAAG,8BAAoB,CAAC,QAAQ,CAAW,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC;6BAC1F;4BAAA,WAAK,GAAE;yBACV;wBAED,IAAI,iBAAiB,CAAC,MAAM,GAAG,CAAC,EAAE;4BAC9B,QAAQ,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;4BACrB,QAAQ,CAAC,IAAI,CACT;gCACI,OAAO,EAAE,iBAAiB;gCAC1B,QAAQ,EAAE,iBAAiB;6BAC9B,CAAC,CAAC;4BACP,OAAO;yBACV;qBACJ;oBAGD,IAAI,UAAU,GAAG,0BAAgB,CAAC,WAAW,CAAC,KAAK,CAAC,WAAW,CAAmB,CAAC;oBAEnF,IAAI,UAAU,IAAI,SAAS;wBACvB,UAAU,GAAG,IAAI,IAAI,EAAoB,CAAC;oBAE9C,IAAI;wBAEA,0BAAgB,CAAC,8BAA8B,CAAC,UAAU,CAAC,CAAC;qBAE/D;oBAAC,OAAO,GAAG,EAAE;wBACV,IAAI,CAAC,gBAAgB,CAAC,OAAO,EAAE,QAAQ,EAAE,IAAI,CAAC,eAAe,CAAC,GAAY,CAAC,CAAC,CAAC;qBAChF;oBAED,UAAU,CAAC,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC;oBACrC,UAAU,CAAC,QAAQ,GAAG,OAAO,CAAC,QAAQ,CAAC;oBAEvC,IAAI;wBAEA,IAAI,aAAa,GAAI,UAAkB,CAAC,MAAM,CAAC,CAAC,GAAG,MAAM,CAAC,CAAC;wBAE3D,IAAI,aAAa,YAAY,OAAO,EAAE;4BAElC,IAAG;gCAEC,IAAI,CAAC,GAAG,MAAM,aAAa,CAAC;gCAE5B,KAAK,IAAI,YAAY,IAAI,MAAM,EAAE;oCAE7B,IAAG;wCAEC,MAAM,YAAY,CACd;4CACI,OAAO,EAAE,OAAO;4CAChB,QAAQ,EAAE,QAAQ;4CAClB,MAAM,EAAE,CAAC;yCACZ,CAAC,CAAC;qCAEV;oCAAA,OAAM,MAAM,EACb;wCACI,OAAO,IAAI,CAAC,gBAAgB,CAAC,OAAO,EAAE,QAAQ,EAAE,IAAI,CAAC,eAAe,CAAC,MAAe,CAAC,CAAC,CAAC;qCAC1F;iCAEJ;gCAED,IAAI,CAAC,uBAAuB,CAAC,UAAU,EAAE,QAAQ,EAAE,CAAC,CAAC,CAAC;6BAEzD;4BAAA,OAAM,GAAG,EACV;gCACI,KAAK,IAAI,YAAY,IAAI,MAAM,EAAE;oCAE7B,IAAG;wCACC,MAAM,YAAY,CACd;4CACI,SAAS,EAAE,IAAI,CAAC,eAAe,CAAC,GAAY,CAAC;4CAC7C,OAAO,EAAE,OAAO;4CAChB,QAAQ,EAAE,QAAQ;yCACrB,CAAC,CAAC;qCACV;oCAAA,OAAM,MAAM,EACb;wCACI,OAAO,IAAI,CAAC,gBAAgB,CAAC,OAAO,EAAE,QAAQ,EAAE,IAAI,CAAC,eAAe,CAAC,MAAe,CAAC,CAAC,CAAC;qCAC1F;iCACJ;gCAED,IAAI,MAAM,CAAC,MAAM,IAAI,CAAC;oCAClB,IAAI,CAAC,gBAAgB,CAAC,OAAO,EAAE,QAAQ,EAAE,IAAI,CAAC,eAAe,CAAC,GAAY,CAAC,CAAC,CAAC;6BACpF;yBAGJ;6BACI;4BAED,KAAK,IAAI,YAAY,IAAI,MAAM,EAAE;gCAC7B,IAAI;oCACA,MAAM,YAAY,CACd;wCACI,OAAO,EAAE,OAAO;wCAChB,QAAQ,EAAE,QAAQ;wCAClB,MAAM,EAAE,aAAa;qCACxB,CAAC,CAAC;iCACV;gCAAC,OAAO,GAAG,EAAE;oCACV,IAAI,CAAC,gBAAgB,CAAC,OAAO,EAAE,QAAQ,EAAE,IAAI,CAAC,eAAe,CAAC,GAAY,CAAC,CAAC,CAAA;iCAC/E;6BACJ;4BAED,IAAI,CAAC,uBAAuB,CAAC,UAAU,EAAE,QAAQ,EAAE,aAAa,CAAC,CAAC;yBAErE;qBAIJ;oBACD,OAAO,GAAG,EAAE;wBACR,KAAK,IAAI,YAAY,IAAI,MAAM,EAAE;4BAC7B,IAAI;gCAEA,MAAM,YAAY,CACd;oCACI,SAAS,EAAE,IAAI,CAAC,eAAe,CAAC,GAAY,CAAC;oCAC7C,OAAO,EAAE,OAAO;oCAChB,QAAQ,EAAE,QAAQ;iCACrB,CAAC,CAAC;6BAEV;4BAAC,OAAO,MAAM,EAAE;gCACb,IAAI,CAAC,gBAAgB,CAAC,OAAO,EAAE,QAAQ,EAAE,IAAI,CAAC,eAAe,CAAC,MAAe,CAAC,CAAC,CAAC;6BACnF;yBACJ;wBAED,IAAI,MAAM,CAAC,MAAM,IAAI,CAAC;4BAClB,IAAI,CAAC,gBAAgB,CAAC,OAAO,EAAE,QAAQ,EAAE,IAAI,CAAC,eAAe,CAAC,GAAY,CAAC,CAAC,CAAC;qBACpF;gBACL,CAAC,CAAA,CAAA;gBAED,IAAI,UAAU,IAAI,UAAU,CAAC,MAAM,GAAG,CAAC,EAAE;oBAErC,IAAI,mBAAmB,GAA0B,EAAE,CAAC;oBAEpD,IAAI,QAAQ,GAAU,EAAE,CAAC;oBAEzB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,UAAU,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;wBAEzC,mBAAmB,CAAC,IAAI,CACpB;4BACI,OAAO,EAAE,OAAO;4BAChB,QAAQ,EAAE,QAAQ;4BAClB,IAAI,EAAE,GAAS,EAAE,gDAAG,CAAC,CAAA;yBACxB,CAAC,CAAC;qBAEV;oBAED,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,mBAAmB,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;wBACjD,IAAI,GAAG,GACP;4BACI,CAAC,EAAE,CAAC;yBACP,CAAC;wBAGF,QAAQ,CAAC,IAAI,CACT;4BACI,OAAO,EAAE,GAAS,EAAE;gCAEhB,IAAG;oCAEC,QAAQ,CAAC,MAAM,GAAG,CAAC,IAAI,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,OAAO,CAAC,mBAAmB,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,mBAAmB,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAA;iCACjI;gCACD,OAAM,GAAG,EACT;oCACI,IAAI,CAAC,gBAAgB,CAAC,OAAO,EAAE,QAAQ,EAAE,IAAI,CAAC,eAAe,CAAC,GAAY,CAAC,CAAC,CAAC;iCAChF;4BACL,CAAC,CAAA;yBACJ,CAAC,CAAC;qBACV;oBAED,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,QAAQ,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;wBAEtC,mBAAmB,CAAC,CAAC,CAAC,CAAC,IAAI,GAAG,CAAC,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,GAAS,EAAE,gDAAG,CAAC,CAAA,CAAC,CAAC,CAAC,GAAS,EAAE;4BAElF,IAAG;gCAEC,MAAM,QAAQ,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC;6BACP;4BAC7B,OAAM,GAAG,EACT;gCACI,IAAI,CAAC,gBAAgB,CAAC,OAAO,EAAE,QAAQ,EAAE,IAAI,CAAC,eAAe,CAAC,GAAY,CAAC,CAAC,CAAC;6BAChF;wBAEL,CAAC,CAAA,CAAA;qBACJ;oBAGD,MAAM,QAAQ,CAAC,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC;iBAC/B;qBACI;oBAED,MAAM,OAAO,CAAC;wBACV,OAAO,EAAE,OAAO;wBAChB,QAAQ,EAAE,QAAQ;wBAClB,IAAI,EAAE,GAAS,EAAE,gDAAG,CAAC,CAAA;qBACxB,CAAC,CAAC;iBAEN;YAGL,CAAC,CAAA,CAAC,CAAA;SACL;IAEL,CAAC;IAEM,mBAAmB;QACtB,IAAI,uBAAa,EAAE,CAAC,mBAAmB,CAAC,IAAI,CAAC,mBAAmB,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;IACpF,CAAC;IAEO,uBAAuB,CAAC,UAA2B,EAAE,QAAmB,EAAE,MAAY;QAE1F,IAAG,QAAQ,CAAC,WAAW;YAAC,OAAO;QAE/B,IAAG,CAAC,MAAM,EACV;YACI,UAAU,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC;YAC7B,OAAO;SACV;QAED,IAAG,MAAM,YAAY,sBAAY,EACjC;YACG,UAAU,CAAC,YAAY,CAAC,MAAM,CAAC,UAAU,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC;YAC1D,OAAO;SACT;QAED,UAAU,CAAC,YAAY,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC;IAEzC,CAAC;IAEO,eAAe,CAAC,GAAU;QAC9B,IAAI,EAAyB,CAAC;QAE9B,IAAI,GAAG,YAAY,mBAAS;YACxB,EAAE,GAAG,GAAG,CAAC;aACR;YACD,EAAE,GAAG,IAAI,mBAAS,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;YAChC,EAAE,CAAC,KAAK,GAAG,GAAG,CAAC,KAAK,CAAC;SACxB;QAED,OAAO,EAAE,CAAC;IACd,CAAC;IAEO,gBAAgB,CAAC,OAAgB,EAAE,QAAkB,EAAE,SAAgB;QAC3E,IAAI,cAAc,GAAG,CAAC,OAAgB,EAAE,QAAkB,EAAE,SAAoB,EAAQ,EAAE;YACtF,IAAI;gBACA,IAAG,QAAQ,CAAC,WAAW;oBAAC,OAAO;gBAC/B,QAAQ,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;gBACrB,QAAQ,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;aAE5B;YAAC,OAAO,GAAG,EAAE;gBACV,OAAO,CAAC,GAAG,CAAC,qCAAqC,CAAC,CAAC;gBACnD,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;aAEpB;oBAAS;gBACN,OAAO,CAAC,GAAG,CAAC,iBAAiB,CAAC,CAAC;gBAC/B,OAAO,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;aAC1B;QACL,CAAC,CAAA;QAED,IAAI,IAAI,CAAC,gCAAgC,IAAI,SAAS,EAAE;YACpD,IAAI;gBACA,IAAI,CAAC,gCAAiC,CAAC,OAAO,EAAE,QAAQ,EAAE,IAAI,CAAC,eAAe,CAAC,SAAS,CAAC,CAAC,CAAC;aAE9F;YAAC,OAAO,GAAG,EAAE;gBACV,OAAO,CAAC,GAAG,CAAC,0DAA0D,CAAC,CAAC;gBACxE,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;gBACjB,cAAc,CAAC,OAAO,EAAE,QAAQ,EAAE,IAAI,CAAC,eAAe,CAAC,GAAY,CAAC,CAAC,CAAC;aACzE;SACJ;aAAM;YACH,cAAc,CAAC,OAAO,EAAE,QAAQ,EAAE,IAAI,CAAC,eAAe,CAAC,SAAS,CAAC,CAAC,CAAC;SACtE;IACL,CAAC;CAOJ;AA7xBD,8BA6xBC"}
@@ -0,0 +1,11 @@
1
+ export default abstract class AbstractFileService {
2
+ abstract CopyAsync(origin: string, dest: string): Promise<void>;
3
+ abstract DeleteAsync(file: string): Promise<void>;
4
+ abstract GetAllFilesAsync(origin: string): Promise<string[]>;
5
+ abstract GetAllFordersAsync(origin: string): Promise<string[]>;
6
+ abstract FileExistsAsync(file: string): Promise<boolean>;
7
+ abstract DirectoryExistsAsync(path: string): Promise<boolean>;
8
+ abstract CreateDirectoryAsync(path: string): Promise<void>;
9
+ abstract WriteAllTextAsync(path: string, text: string, encoding: 'utf-8' | 'win-1252'): Promise<void>;
10
+ abstract ReadAllTextAsync(path: string, encoding: 'utf-8' | 'win-1252'): Promise<string>;
11
+ }
@@ -0,0 +1,6 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ class AbstractFileService {
4
+ }
5
+ exports.default = AbstractFileService;
6
+ //# sourceMappingURL=AbstractFileService.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"AbstractFileService.js","sourceRoot":"","sources":["../../File/AbstractFileService.ts"],"names":[],"mappings":";;AACA,MAA8B,mBAAmB;CAahD;AAbD,sCAaC"}
@@ -0,0 +1,16 @@
1
+ export interface IGetPartsOptions {
2
+ MaxFileSize: number;
3
+ }
4
+ export default abstract class AbstractMultiPartRequestService {
5
+ abstract GetPartsFromRequestAsync(request: any, options?: IGetPartsOptions): Promise<IRequestPart[]>;
6
+ }
7
+ export interface IRequestPart {
8
+ Type: PartType;
9
+ Name: string;
10
+ Content: string;
11
+ Filename?: string;
12
+ }
13
+ export declare enum PartType {
14
+ FILE = 0,
15
+ TEXT = 1
16
+ }
@@ -0,0 +1,12 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.PartType = void 0;
4
+ class AbstractMultiPartRequestService {
5
+ }
6
+ exports.default = AbstractMultiPartRequestService;
7
+ var PartType;
8
+ (function (PartType) {
9
+ PartType[PartType["FILE"] = 0] = "FILE";
10
+ PartType[PartType["TEXT"] = 1] = "TEXT";
11
+ })(PartType || (exports.PartType = PartType = {}));
12
+ //# sourceMappingURL=AbstractMultiPartRequestService.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"AbstractMultiPartRequestService.js","sourceRoot":"","sources":["../../File/AbstractMultiPartRequestService.ts"],"names":[],"mappings":";;;AAMA,MAA8B,+BAA+B;CAE5D;AAFD,kDAEC;AASD,IAAY,QAGX;AAHD,WAAY,QAAQ;IAChB,uCAAI,CAAA;IACJ,uCAAI,CAAA;AACR,CAAC,EAHW,QAAQ,wBAAR,QAAQ,QAGnB"}
@@ -0,0 +1,5 @@
1
+ export default class File {
2
+ FileName: string;
3
+ Path: string;
4
+ constructor(filename: string, path: string);
5
+ }
@@ -0,0 +1,10 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ class File {
4
+ constructor(filename, path) {
5
+ this.FileName = filename;
6
+ this.Path = path;
7
+ }
8
+ }
9
+ exports.default = File;
10
+ //# sourceMappingURL=File.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"File.js","sourceRoot":"","sources":["../../File/File.ts"],"names":[],"mappings":";;AAAA,MAAqB,IAAI;IAKrB,YAAY,QAAiB,EAAG,IAAa;QAEzC,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;QACzB,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;IACrB,CAAC;CACJ;AAVD,uBAUC"}
@@ -0,0 +1,12 @@
1
+ import AbstractFileService from './AbstractFileService';
2
+ export default class FileService extends AbstractFileService {
3
+ WriteAllTextAsync(path: string, text: string, encoding: 'utf-8' | 'win-1252'): Promise<void>;
4
+ ReadAllTextAsync(path: string, encoding: 'utf-8' | 'win-1252'): Promise<string>;
5
+ CreateDirectoryAsync(path: string): Promise<void>;
6
+ FileExistsAsync(file: string): Promise<boolean>;
7
+ DirectoryExistsAsync(path: string): Promise<boolean>;
8
+ GetAllFilesAsync(origin: string): Promise<string[]>;
9
+ GetAllFordersAsync(origin: string): Promise<string[]>;
10
+ CopyAsync(origin: string, dest: string): Promise<void>;
11
+ DeleteAsync(file: string): Promise<void>;
12
+ }