badak 1.0.0 → 1.0.1

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 (48) hide show
  1. package/.eslintrc.json +102 -81
  2. package/.mocharc.json +9 -0
  3. package/build/{badak.js → cjs/badak.js} +37 -44
  4. package/build/cjs/badak.js.map +1 -0
  5. package/build/cjs/constants.js +25 -0
  6. package/build/cjs/constants.js.map +1 -0
  7. package/build/{interfaces.js → cjs/interfaces.js} +0 -0
  8. package/build/{interfaces.js.map → cjs/interfaces.js.map} +1 -1
  9. package/build/{public_api.js → cjs/public_api.js} +0 -0
  10. package/build/cjs/public_api.js.map +1 -0
  11. package/build/{util.js → cjs/util.js} +25 -6
  12. package/build/cjs/util.js.map +1 -0
  13. package/build/constants.d.ts +4 -0
  14. package/build/esm/badak.js +902 -0
  15. package/build/esm/badak.js.map +1 -0
  16. package/build/esm/constants.js +22 -0
  17. package/build/esm/constants.js.map +1 -0
  18. package/build/esm/interfaces.js +2 -0
  19. package/build/esm/interfaces.js.map +1 -0
  20. package/build/esm/public_api.js +3 -0
  21. package/build/esm/public_api.js.map +1 -0
  22. package/build/esm/util.js +165 -0
  23. package/build/esm/util.js.map +1 -0
  24. package/build/interfaces.d.ts +8 -8
  25. package/build/util.d.ts +2 -0
  26. package/package.json +16 -20
  27. package/sample/index.ts +3 -3
  28. package/spec/badak.spec.ts +113 -3432
  29. package/spec/config.spec.ts +711 -0
  30. package/spec/middleware.spec.ts +62 -55
  31. package/spec/route.spec.ts +1944 -0
  32. package/spec/setSPARoot.spec.ts +259 -0
  33. package/spec/static.spec.ts +387 -0
  34. package/spec/test-util.ts +28 -0
  35. package/src/badak.ts +111 -89
  36. package/src/constants.ts +16 -0
  37. package/src/interfaces.ts +11 -9
  38. package/src/util.ts +27 -4
  39. package/tsconfig.cjs.json +6 -0
  40. package/tsconfig.esm.json +10 -0
  41. package/tsconfig.json +3 -5
  42. package/build/badak.js.map +0 -1
  43. package/build/constants.js +0 -11
  44. package/build/constants.js.map +0 -1
  45. package/build/public_api.js.map +0 -1
  46. package/build/util.js.map +0 -1
  47. package/scripts/cp_static_files.js +0 -29
  48. package/tsconfig.spec.json +0 -14
package/.eslintrc.json CHANGED
@@ -1,81 +1,102 @@
1
- {
2
- "env": {
3
- "es2021": true,
4
- "node": true
5
- },
6
- "extends": [
7
- "eslint:recommended",
8
- "plugin:@typescript-eslint/recommended"
9
- ],
10
- "parser": "@typescript-eslint/parser",
11
- "parserOptions": {
12
- "ecmaVersion": 12,
13
- "sourceType": "module"
14
- },
15
- "plugins": [
16
- "@typescript-eslint"
17
- ],
18
- "rules": {
19
- "indent": "off",
20
- "@typescript-eslint/indent": [
21
- "warn",
22
- "tab",
23
- {
24
- "SwitchCase": 1,
25
- "ignoreComments": true,
26
- "ignoredNodes": [
27
- "CallExpression *"
28
- ]
29
- }
30
- ],
31
- "linebreak-style": [
32
- "warn",
33
- "windows"
34
- ],
35
- "arrow-parens": "warn",
36
- "quotes": [
37
- "warn",
38
- "single"
39
- ],
40
- "semi": [
41
- "warn",
42
- "always"
43
- ],
44
- "no-shadow": "off",
45
- "@typescript-eslint/no-shadow": "warn",
46
- "no-trailing-spaces": "warn",
47
- "no-var": "warn",
48
- "prefer-const": "warn",
49
- "space-before-function-paren": "warn",
50
- "brace-style": [
51
- "warn",
52
- "stroustrup"
53
- ],
54
- "key-spacing": [
55
- "warn",
56
- {
57
- "beforeColon": false,
58
- "afterColon": true
59
- }
60
- ],
61
- "@typescript-eslint/type-annotation-spacing": [
62
- "warn",
63
- {
64
- "before": false,
65
- "after": true,
66
- "overrides": {
67
- "arrow": {
68
- "before": true,
69
- "after": true
70
- }
71
- }
72
- }
73
- ],
74
- "@typescript-eslint/explicit-function-return-type": "warn",
75
- "@typescript-eslint/no-inferrable-types": "off",
76
- "@typescript-eslint/no-non-null-assertion": "warn",
77
- "@typescript-eslint/no-empty-function": "warn",
78
- "@typescript-eslint/no-unused-vars": "warn",
79
- "@typescript-eslint/explicit-module-boundary-types": "warn"
80
- }
81
- }
1
+ {
2
+ "env": {
3
+ "es2021": true,
4
+ "node": true
5
+ },
6
+ "extends": [
7
+ "eslint:recommended",
8
+ "plugin:@typescript-eslint/recommended"
9
+ ],
10
+ "parser": "@typescript-eslint/parser",
11
+ "parserOptions": {
12
+ "ecmaVersion": 12,
13
+ "sourceType": "module"
14
+ },
15
+ "plugins": [
16
+ "@typescript-eslint"
17
+ ],
18
+ "rules": {
19
+ "indent": "off",
20
+ "@typescript-eslint/indent": [
21
+ "warn",
22
+ "tab",
23
+ {
24
+ "ignoreComments": true,
25
+ "SwitchCase": 1,
26
+ "ignoredNodes": [
27
+ "CallExpression *",
28
+ "ExpressionStatement *",
29
+ "NewExpression *"
30
+ ]
31
+ }
32
+ ],
33
+ "linebreak-style": [
34
+ "warn",
35
+ "windows"
36
+ ],
37
+ "arrow-parens": "warn",
38
+ "quotes": [
39
+ "warn",
40
+ "single"
41
+ ],
42
+ "semi": [
43
+ "warn",
44
+ "always"
45
+ ],
46
+ "@typescript-eslint/member-delimiter-style": [
47
+ "warn",
48
+ {
49
+ "multiline": {
50
+ "delimiter": "semi",
51
+ "requireLast": true
52
+ },
53
+ "singleline": {
54
+ "delimiter": "comma",
55
+ "requireLast": false
56
+ }
57
+ }
58
+ ],
59
+ "no-shadow": "off",
60
+ "@typescript-eslint/no-shadow": "warn",
61
+ "no-trailing-spaces": "warn",
62
+ "no-var": "warn",
63
+ "prefer-const": "warn",
64
+ "space-before-function-paren": "warn",
65
+ "brace-style": [
66
+ "warn",
67
+ "stroustrup"
68
+ ],
69
+ "key-spacing": [
70
+ "warn",
71
+ {
72
+ "beforeColon": false,
73
+ "afterColon": true
74
+ }
75
+ ],
76
+ "@typescript-eslint/type-annotation-spacing": [
77
+ "warn",
78
+ {
79
+ "before": false,
80
+ "after": true,
81
+ "overrides": {
82
+ "arrow": {
83
+ "before": true,
84
+ "after": true
85
+ }
86
+ }
87
+ }
88
+ ],
89
+ "@typescript-eslint/explicit-function-return-type": "warn",
90
+ "@typescript-eslint/no-inferrable-types": "off",
91
+ "@typescript-eslint/no-non-null-assertion": "warn",
92
+ "@typescript-eslint/no-empty-function": "warn",
93
+ "@typescript-eslint/no-unused-vars": "warn",
94
+ "@typescript-eslint/explicit-module-boundary-types": "warn",
95
+ "operator-linebreak": [
96
+ "warn",
97
+ "before"
98
+ ],
99
+ "no-param-reassign": "warn",
100
+ "@typescript-eslint/no-empty-interface": "off"
101
+ }
102
+ }
package/.mocharc.json ADDED
@@ -0,0 +1,9 @@
1
+ {
2
+ "require": [
3
+ "ts-node/register"
4
+ ],
5
+ "spec": [
6
+ "spec/**/*.spec.ts"
7
+ ],
8
+ "timeout": 1000
9
+ }
@@ -374,10 +374,10 @@ class Badak {
374
374
  }
375
375
  else if (typeof value === 'string') {
376
376
  if (this._config.parseNumber) {
377
- arr[i] = util_1.convertNumberStr(value);
377
+ arr[i] = (0, util_1.convertNumberStr)(value);
378
378
  }
379
379
  if (this._config.parseDate) {
380
- arr[i] = util_1.convertDateStr(value);
380
+ arr[i] = (0, util_1.convertDateStr)(value);
381
381
  }
382
382
  }
383
383
  });
@@ -394,10 +394,10 @@ class Badak {
394
394
  }
395
395
  else if (typeof value === 'string') {
396
396
  if (this._config.parseNumber) {
397
- param[key] = util_1.convertNumberStr(value);
397
+ param[key] = (0, util_1.convertNumberStr)(value);
398
398
  }
399
399
  if (this._config.parseDate) {
400
- param[key] = util_1.convertDateStr(value);
400
+ param[key] = (0, util_1.convertDateStr)(value);
401
401
  }
402
402
  }
403
403
  }
@@ -528,9 +528,9 @@ class Badak {
528
528
  }
529
529
  static(uri, path) {
530
530
  return __awaiter(this, void 0, void 0, function* () {
531
- yield util_1.checkAbsoluteUri(uri);
532
- yield util_1.checkAbsolutePath(path);
533
- if (!(yield util_1.isFolder(path))) {
531
+ yield (0, util_1.checkAbsoluteUri)(uri);
532
+ yield (0, util_1.checkAbsolutePath)(path);
533
+ if (!(yield (0, util_1.isFolder)(path))) {
534
534
  throw new Error(`target should be a folder : ${path}`);
535
535
  }
536
536
  yield this._static(uri, path);
@@ -544,13 +544,13 @@ class Badak {
544
544
  // add folder to static & add route rule for Single Page Application
545
545
  setSPARoot(uri, path) {
546
546
  return __awaiter(this, void 0, void 0, function* () {
547
- yield util_1.checkAbsoluteUri(uri);
548
- yield util_1.checkAbsolutePath(path);
549
- if (!(yield util_1.isFolder(path))) {
547
+ yield (0, util_1.checkAbsoluteUri)(uri);
548
+ yield (0, util_1.checkAbsolutePath)(path);
549
+ if (!(yield (0, util_1.isFolder)(path))) {
550
550
  throw new Error(`target should be a folder : ${path}`);
551
551
  }
552
552
  // check index.file exists
553
- const indexExists = yield util_1.isExistFile(node_path.join(path, 'index.html'));
553
+ const indexExists = yield (0, util_1.isExistFile)(node_path.join(path, 'index.html'));
554
554
  if (!indexExists) {
555
555
  throw new Error(`index.html not exists in : ${path}`);
556
556
  }
@@ -569,7 +569,7 @@ class Badak {
569
569
  // load static files
570
570
  if (!!this._staticRules && this._staticRules.length > 0) {
571
571
  const allCache = yield Promise.all(this._staticRules.map((staticRule) => __awaiter(this, void 0, void 0, function* () {
572
- return util_1.loadFolder(staticRule.uri, staticRule.path);
572
+ return (0, util_1.loadFolder)(staticRule.uri, staticRule.path);
573
573
  })));
574
574
  allCache.forEach((oneCacheSet) => {
575
575
  oneCacheSet.forEach((oneCache) => {
@@ -689,10 +689,10 @@ class Badak {
689
689
  && routeRuleKey.indexOf('?') !== 0;
690
690
  });
691
691
  const targetQuestionKey = questionKeyArr.find((questionKey) => {
692
- const optionalCharacter = questionKey.substr(questionKey.indexOf('?') - 1, 1);
693
- const mandatoryKey = questionKey.substr(0, questionKey.indexOf(optionalCharacter + '?'));
694
- const restKey = questionKey.substr(questionKey.indexOf(optionalCharacter + '?')
695
- + optionalCharacter.length + 1);
692
+ const questionKeyIndex = questionKey.indexOf('?');
693
+ const optionalCharacter = questionKey.substring(questionKeyIndex - 1, questionKeyIndex);
694
+ const mandatoryKey = questionKey.substring(0, questionKeyIndex - 1);
695
+ const restKey = questionKey.substring(questionKeyIndex + 1);
696
696
  return new RegExp(`^${mandatoryKey}${optionalCharacter}?${restKey}$`).test(uriFrag);
697
697
  });
698
698
  if (targetQuestionKey !== undefined) {
@@ -825,30 +825,20 @@ class Badak {
825
825
  throw new Error('auth failed');
826
826
  }
827
827
  }
828
- const resObj = typeof targetFncObj === 'function'
828
+ const responseData = typeof targetFncObj === 'function'
829
829
  ? yield targetFncObj(param, req, res)
830
830
  : yield targetFncObj.fnc(param, req, res);
831
- if (resObj) {
832
- // check result is json
833
- if (typeof resObj === 'object') {
834
- try {
835
- // try to stringify()
836
- responseBody = JSON.stringify(resObj);
837
- res.setHeader('Content-Type', 'application/json');
838
- res.end(responseBody);
839
- }
840
- catch (err) {
841
- // no json
842
- responseBody = resObj;
843
- res.setHeader('Content-Type', 'text/plain');
844
- res.end(responseBody);
845
- }
846
- }
847
- else {
848
- responseBody = resObj;
849
- res.setHeader('Content-Type', 'text/plain');
850
- res.end(responseBody);
831
+ if (responseData) {
832
+ const contentType = (0, util_1.getContentType)(responseData);
833
+ res.setHeader('Content-Type', contentType);
834
+ switch (contentType) {
835
+ case constants_1.ContentType.ApplicationJson:
836
+ responseBody = JSON.stringify(responseData);
837
+ break;
838
+ default:
839
+ responseBody = responseData;
851
840
  }
841
+ res.end(responseBody);
852
842
  }
853
843
  else {
854
844
  res.end();
@@ -877,15 +867,18 @@ class Badak {
877
867
  if (err) {
878
868
  if (err instanceof Error) {
879
869
  responseBody = err.message;
880
- res.setHeader('Content-Type', 'text/plain');
881
- }
882
- else if (typeof err === 'object') {
883
- responseBody = JSON.stringify(err);
884
- res.setHeader('Content-Type', 'application/json');
870
+ res.setHeader('Content-Type', constants_1.ContentType.TextPlain);
885
871
  }
886
872
  else {
887
- responseBody = err;
888
- res.setHeader('Content-Type', 'text/plain');
873
+ const contentType = (0, util_1.getContentType)(err);
874
+ res.setHeader('Content-Type', contentType);
875
+ switch (contentType) {
876
+ case constants_1.ContentType.ApplicationJson:
877
+ responseBody = JSON.stringify(err);
878
+ break;
879
+ default:
880
+ responseBody = err;
881
+ }
889
882
  }
890
883
  res.end(responseBody);
891
884
  }
@@ -0,0 +1 @@
1
+ {"version":3,"file":"badak.js","sourceRoot":"","sources":["../../src/badak.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,6BAA6B;AAG7B,kCAAkC;AAclC,2CAAkD;AAClD,iCASgB;AAEhB;;;;;;;;;;;;;;;GAeG;AAEH,IAAK,WAGJ;AAHD,WAAK,WAAW;IACf,+CAAK,CAAA;IACL,qDAAQ,CAAA;AACT,CAAC,EAHI,WAAW,KAAX,WAAW,QAGf;AAED,MAAa,KAAK;IA2BjB,YAAa,MAA6B;QArB1C,uBAAuB;QACf,uBAAkB,GAAyB,EAAE,CAAC;QAC9C,sBAAiB,GAAyB,EAAE,CAAC;QAE7C,gBAAW,GAAgB,EAAE,CAAC;QAE9B,iBAAY,GAAiB,EAAE,CAAC;QAChC,iBAAY,GAAkB,EAAE,CAAC;QAIjC,YAAO,GAAgB;YAC9B,aAAa,EAAE,IAAI;YACnB,YAAY,EAAE,IAAI;YAElB,aAAa,EAAE,SAAS;YAExB,WAAW,EAAE,KAAK;YAClB,SAAS,EAAE,KAAK;SAChB,CAAC;QAGD,IAAI,MAAM,EAAE;YACX,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE;gBAClD,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;aAC1B;SACD;IACF,CAAC;IAED,6DAA6D;IACrD,gBAAgB,CAAE,IAA+B,EAAE,SAAkB,IAAI;QAChF,IAAI,IAAI,KAAK,SAAS,EAAE;YACvB,MAAM,IAAI,KAAK,CAAC,SAAS,CAAC,CAAC;SAC3B;QAED,MAAM,IAAI,GAAa,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAEzC,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE;YACtB,MAAM,IAAI,KAAK,CAAC,wBAAwB,CAAC,CAAC;SAC1C;QAED,mBAAmB;QACnB,KAAK,MAAM,CAAC,GAAG,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE;YACzC,IAAI,GAAG,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE;gBACvB,MAAM,IAAI,KAAK,CAAC,sBAAsB,CAAC,CAAC;aACxC;YAED,IAAI,MAAgB,CAAC;YAErB,IAAI,GAAG,KAAK,GAAG,EAAE;gBAChB,MAAM,GAAG,CAAC,GAAG,CAAC,CAAC;aACf;iBACI;gBACJ,MAAM,GAAG,GAAG;qBACV,KAAK,CAAC,GAAG,CAAC;qBACV,MAAM,CAAC,CAAC,OAAe,EAAqB,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC;aAC5D;YAED,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE;gBACxB,MAAM,IAAI,KAAK,CAAC,YAAY,CAAC,CAAC;aAC9B;YAED,MAAM,CAAC,OAAO,CAAC,CAAC,OAAe,EAAQ,EAAE;gBACxC,IAAI,OAAO,CAAC,IAAI,EAAE,KAAK,OAAO,EAAE;oBAC/B,MAAM,IAAI,KAAK,CAAC,mBAAmB,CAAC,CAAC;iBACrC;gBAED,IAAI,OAAO,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE;oBAC1B,MAAM,IAAI,KAAK,CAAC,gBAAgB,CAAC,CAAC;iBAClC;gBAED,IAAI,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE;oBACtD,MAAM,IAAI,KAAK,CAAC,qBAAqB,CAAC,CAAC;iBACvC;gBAED,IAAI,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,OAAO,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE;oBACrD,MAAM,IAAI,KAAK,CAAC,wBAAwB,CAAC,CAAC;iBAC1C;gBAED,IAAI,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,OAAO,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE;oBACrD,MAAM,IAAI,KAAK,CAAC,oBAAoB,CAAC,CAAC;iBACtC;YACF,CAAC,CAAC,CAAC;SACH;QAGD,MAAM,cAAc,GAAc,EAAE,CAAC;QAErC,qBAAqB;QACrB,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE;YAChD,kCAAkC;YAClC,MAAM,MAAM,GAAa;gBACxB,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE;gBACjB,GAAG,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC;aACjB;iBACC,MAAM,CAAC,CAAC,OAAe,EAAW,EAAE,CAAC,OAAO,KAAK,EAAE,CAAC,CAAC;YAEvD,IAAI,SAAS,GAAc,cAAc,CAAC;YAE1C,MAAM,CAAC,OAAO,CAAC,CAAC,OAAe,EAAE,CAAS,EAAE,GAAa,EAAQ,EAAE;gBAClE,IAAI,MAAM,CAAC,MAAM,CAAC,kBAAM,CAAC,CAAC,QAAQ,CAAC,OAAiB,CAAC,EAAE;oBACtD,MAAM,MAAM,GAAW,OAAiB,CAAC,CAAC,4BAA4B;oBAEtE,SAAS,CAAC,MAAM,CAAC,GAAG,IAAI,CAAC,MAAM,CAAkB,CAAC;iBAClD;qBACI;oBACJ,IAAI,CAAC,GAAG,GAAG,CAAC,MAAM,GAAG,CAAC,EAAE;wBACvB,0BAA0B;wBAC1B,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,EAAE;4BACxB,SAAS,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC;yBACxB;wBAED,SAAS,GAAG,SAAS,CAAC,OAAO,CAAc,CAAC;qBAC5C;yBACI;wBAKJ,gBAAgB;wBAChB,MAAM,SAAS,GAAe,IAAkB,CAAC;wBAEjD,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE;4BAC9B,SAAS,CAAC,OAAO,CAAC,GAAG,IAAI,CAAC,gBAAgB,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;yBACzD;6BACI,IAAI,OAAO,SAAS,CAAC,GAAG,CAAC,KAAK,UAAU,EAAE;4BAC9C,IAAI,IAAI,CAAC,OAAO,CAAC,aAAa,EAAE;gCAC/B,SAAS,CAAC,OAAO,CAAC,GAAG;oCACpB,CAAC,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,EAAE,SAAS,CAAC,GAAG,CAAC;iCAC5C,CAAC;6BACF;iCACI;gCACJ,MAAM,IAAI,KAAK,CAAC,uCAAuC,CAAC,CAAC;6BACzD;yBACD;qBACD;iBACD;YACF,CAAC,CAAC,CAAC;SACH;QAED,OAAO,cAAc,CAAC;IACvB,CAAC;IAED,mBAAmB;IACX,YAAY,CAAE,SAAoC;QACzD,MAAM,MAAM,GAAe,EAAE,CAAC;QAE9B,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,EAAE;YACrD,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE;gBAC9B,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,CAAC,GAAa,EAAQ,EAAE;oBACxD,MAAM,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,GAAG,GAAG,CAAC,CAAC,CAAC;gBAC5B,CAAC,CAAC,CAAC;aACH;iBACI;gBACJ,MAAM,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;aACnB;SACD;QAED,OAAO,MAAM,CAAC;IACf,CAAC;IAEO,oBAAoB,CAAE,gBAA6B,EAAE,YAAuB;QACnF,MAAM,UAAU,GAAe,EAAE,CAAC;QAElC,gBAAgB,CAAC,OAAO,CAAC,CAAC,YAAuB,EAAQ,EAAE;YAC1D,UAAU,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,YAAY,CAAC,YAAY,CAAC,CAAC,CAAC;QACrD,CAAC,CAAC,CAAC;QAEH,UAAU,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,YAAY,CAAC,YAAY,CAAC,CAAC,CAAC;QAEpD,MAAM,cAAc,GAAW,UAAU,CAAC,MAAM,CAAC,CAAC,SAAiB,EAAE,GAAa,EAAU,EAAE;YAC7F,OAAO,SAAS,GAAG,GAAG,CAAC,MAAM;gBAC5B,CAAC,CAAC,SAAS;gBACX,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC;QACf,CAAC,EAAE,CAAC,CAAC,CAAC;QAEN,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,cAAc,EAAE,CAAC,EAAE,EAAE;YACxC,MAAM,UAAU,GAAa,UAAU;iBACrC,GAAG,CAAC,CAAC,OAAiB,EAAU,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;iBAC9C,MAAM,CAAC,CAAC,IAAY,EAAkB,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,sBAAsB;YAE1E,gBAAgB;YAChB,MAAM,aAAa,GAAa,UAAU,CAAC,MAAM,CAAC,CAAC,GAAW,EAAW,EAAE,CAAC,GAAG,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC;YACjG,IAAI,aAAa,CAAC,MAAM,GAAG,CAAC,EAAE;gBAC7B,MAAM,IAAI,KAAK,CAAC,0BAA0B,CAAC,CAAC;aAC5C;YAED,mBAAmB;YACnB,MAAM,gBAAgB,GAAa,UAAU,CAAC,MAAM,CAAC,CAAC,GAAW,EAAW,EAAE,CAAC,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC;YAClG,IAAI,gBAAgB,CAAC,MAAM,GAAG,CAAC,EAAE;gBAChC,MAAM,UAAU,GAAa,UAAU,CAAC,MAAM,CAAC,CAAC,GAAW,EAAW,EAAE,CAAC,CAAC,gBAAgB,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC;gBAE1G,MAAM,cAAc,GAAuB,gBAAgB,CAAC,IAAI,CAAC,CAAC,MAAc,EAAW,EAAE;oBAC5F,OAAO,UAAU,CAAC,IAAI,CAAC,CAAC,GAAW,EAAW,EAAE,CAAC,IAAI,MAAM,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;gBAChF,CAAC,CAAC,CAAC;gBAEH,IAAI,cAAc,KAAK,SAAS,EAAE;oBACjC,MAAM,IAAI,KAAK,CAAC,6BAA6B,CAAC,CAAC;iBAC/C;aACD;YAED,eAAe;YACf,MAAM,YAAY,GAAa,UAAU,CAAC,MAAM,CAAC,CAAC,GAAW,EAAW,EAAE,CAAC,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC;YAC9F,IAAI,YAAY,CAAC,MAAM,GAAG,CAAC,EAAE;gBAC5B,MAAM,iBAAiB,GAAa,CAAC,GAAG,UAAU,CAAC,CAAC,CAAC,sBAAsB;gBAC3E,YAAY,CAAC,OAAO,CAAC,CAAC,GAAW,EAAQ,EAAE;oBAC1C,MAAM,YAAY,GAAW,GAAG,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;oBAClD,MAAM,YAAY,GAAW,GAAG,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;oBAEpD,IAAI,iBAAiB,CAAC,QAAQ,CAAC,YAAY,CAAC,IAAI,iBAAiB,CAAC,QAAQ,CAAC,YAAY,CAAC,EAAE;wBACzF,MAAM,IAAI,KAAK,CAAC,yBAAyB,CAAC,CAAC;qBAC3C;yBACI;wBACJ,iBAAiB,CAAC,IAAI,CAAC,YAAY,EAAE,YAAY,CAAC,CAAC;qBACnD;gBACF,CAAC,CAAC,CAAC;aACH;YAED,yBAAyB;SACzB;IACF,CAAC;IAEO,WAAW,CAAE,IAAe;QACnC,MAAM,WAAW,GAAc,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAC;QAE3D,IAAI,CAAC,oBAAoB,CAAC,IAAI,CAAC,WAAW,EAAE,WAAW,CAAC,CAAC;QAEzD,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;IACpC,CAAC;IAED,OAAO;IACD,IAAI,CAAE,GAAuB;;YAClC,IAAI,GAAG,KAAK,SAAS,EAAE;gBACtB,MAAM,IAAI,KAAK,CAAC,kBAAkB,CAAC,CAAC;aACpC;YAED,IAAI,OAAO,GAAG,KAAK,UAAU,EAAE;gBAC9B,MAAM,IAAI,KAAK,CAAC,+BAA+B,CAAC,CAAC;aACjD;YAED,IAAI,CAAC,QAAQ,GAAG,GAAG,CAAC;QACrB,CAAC;KAAA;IAEK,MAAM,CAAE,UAA8B;;YAC3C,IAAI,IAAI,CAAC,SAAS,EAAE,EAAE;gBACrB,MAAM,IAAI,KAAK,CAAC,2EAA2E,CAAC,CAAC;aAC7F;YAED,IAAI,UAAU,KAAK,SAAS,EAAE;gBAC7B,MAAM,IAAI,KAAK,CAAC,sCAAsC,CAAC,CAAC;aACxD;YAED,IAAI,OAAO,UAAU,KAAK,UAAU,EAAE;gBACrC,MAAM,IAAI,KAAK,CAAC,+BAA+B,CAAC,CAAC;aACjD;YAED,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QAC1C,CAAC;KAAA;IAEK,KAAK,CAAE,UAA8B;;YAC1C,IAAI,IAAI,CAAC,SAAS,EAAE,EAAE;gBACrB,MAAM,IAAI,KAAK,CAAC,2EAA2E,CAAC,CAAC;aAC7F;YAED,IAAI,UAAU,KAAK,SAAS,EAAE;gBAC7B,MAAM,IAAI,KAAK,CAAC,sCAAsC,CAAC,CAAC;aACxD;YAED,IAAI,OAAO,UAAU,KAAK,UAAU,EAAE;gBACrC,MAAM,IAAI,KAAK,CAAC,+BAA+B,CAAC,CAAC;aACjD;YAED,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QACzC,CAAC;KAAA;IAEK,MAAM,CAAE,GAAW,EAAE,KAAc;;YACxC,IAAI,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE;gBAC5C,QAAQ,GAAG,EAAE;oBACZ,eAAe;oBACf,KAAK,aAAa,CAAC;oBACnB,KAAK,WAAW;wBACf,IAAI,OAAO,KAAK,KAAK,SAAS,EAAE;4BAC/B,MAAM,IAAI,KAAK,CAAC,eAAe,CAAC,CAAC;yBACjC;wBAED,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;wBAC1B,MAAM;oBAEP,KAAK,eAAe;wBACnB,IAAI,KAAK,KAAK,IAAI,EAAE;4BACnB,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE;gCAC9B,MAAM,IAAI,KAAK,CAAC,0BAA0B,CAAC,CAAC;6BAC5C;4BAED,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,kBAAM,CAAC,CAAC,IAAI,CAAC,CAAC,MAAc,EAAW,EAAE;gCAC3D,OAAO,KAAK,CAAC,WAAW,EAAE,KAAK,MAAM,CAAC;4BACvC,CAAC,CAAC,EAAE;gCACH,MAAM,IAAI,KAAK,CAAC,oBAAoB,CAAC,CAAC;6BACtC;4BAED,IAAI,CAAC,OAAO,CAAC,aAAa,GAAG,KAAK,CAAC,WAAW,EAAY,CAAC;yBAC3D;6BACI;4BACJ,mBAAmB;4BACnB,OAAO,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;yBACzB;wBACD,MAAM;iBACP;aACD;iBACI;gBACJ,MAAM,IAAI,KAAK,CAAC,oBAAoB,CAAC,CAAC;aACtC;QACF,CAAC;KAAA;IAEO,mBAAmB,CAAE,OAAe,EAAE,GAAkB;QAC/D,IAAI,OAAO,KAAK,SAAS,EAAE;YAC1B,MAAM,IAAI,KAAK,CAAC,YAAY,CAAC,CAAC;SAC9B;QAED,IAAI,GAAG,KAAK,SAAS,EAAE;YACtB,MAAM,IAAI,KAAK,CAAC,aAAa,CAAC,CAAC;SAC/B;QAED,IAAI,OAAO,GAAG,KAAK,UAAU,EAAE;YAC9B,MAAM,IAAI,KAAK,CAAC,+BAA+B,CAAC,CAAC;SACjD;IACF,CAAC;IAED,qBAAqB;IACf,GAAG,CAAE,OAAe,EAAE,GAAkB,EAAE,MAAoB;;YACnE,IAAI,CAAC,mBAAmB,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC;YAEvC,uBAAuB;YACvB,IAAI,CAAC,WAAW,CAAC;gBAChB,CAAC,OAAO,CAAC,EAAE;oBACV,CAAC,kBAAM,CAAC,GAAG,CAAC,EAAE;wBACb,GAAG,EAAE,GAAG;wBACR,MAAM,EAAE,MAAM;qBACd;iBACD;aACD,CAAC,CAAC;QACJ,CAAC;KAAA;IAEK,IAAI,CAAE,OAAe,EAAE,GAAkB,EAAE,MAAoB;;YACpE,IAAI,CAAC,mBAAmB,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC;YAEvC,uBAAuB;YACvB,IAAI,CAAC,WAAW,CAAC;gBAChB,CAAC,OAAO,CAAC,EAAE;oBACV,CAAC,kBAAM,CAAC,IAAI,CAAC,EAAE;wBACd,GAAG,EAAE,GAAG;wBACR,MAAM,EAAE,MAAM;qBACd;iBACD;aACD,CAAC,CAAC;QACJ,CAAC;KAAA;IAEK,GAAG,CAAE,OAAe,EAAE,GAAkB,EAAE,MAAoB;;YACnE,IAAI,CAAC,mBAAmB,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC;YAEvC,uBAAuB;YACvB,IAAI,CAAC,WAAW,CAAC;gBAChB,CAAC,OAAO,CAAC,EAAE;oBACV,CAAC,kBAAM,CAAC,GAAG,CAAC,EAAE;wBACb,GAAG,EAAE,GAAG;wBACR,MAAM,EAAE,MAAM;qBACd;iBACD;aACD,CAAC,CAAC;QACJ,CAAC;KAAA;IAEK,MAAM,CAAE,OAAe,EAAE,GAAkB,EAAE,MAAoB;;YACtE,IAAI,CAAC,mBAAmB,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC;YAEvC,uBAAuB;YACvB,IAAI,CAAC,WAAW,CAAC;gBAChB,CAAC,OAAO,CAAC,EAAE;oBACV,CAAC,kBAAM,CAAC,MAAM,CAAC,EAAE;wBAChB,GAAG,EAAE,GAAG;wBACR,MAAM,EAAE,MAAM;qBACd;iBACD;aACD,CAAC,CAAC;QACJ,CAAC;KAAA;IAED,+DAA+D;IAC/D,6BAA6B;IACrB,eAAe,CAAE,KAA2B;QACnD,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE;YACzB,MAAM,YAAY,GAAc,KAAkB,CAAC;YAEnD,YAAY,CAAC,OAAO,CAAC,CAAC,KAAc,EAAE,CAAS,EAAE,GAAc,EAAQ,EAAE;gBACxE,IAAI,CAAC,KAAK,EAAE;oBACX,kBAAkB;oBAClB,GAAG,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC;iBACf;qBACI,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE;oBACnC,mBAAmB;oBACnB,GAAG,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,eAAe,CAAC,KAA6B,CAAC,CAAC;iBAC7D;qBACI,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE;oBACnC,IAAI,IAAI,CAAC,OAAO,CAAC,WAAW,EAAE;wBAC7B,GAAG,CAAC,CAAC,CAAC,GAAG,IAAA,uBAAgB,EAAC,KAAK,CAAC,CAAC;qBACjC;oBACD,IAAI,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE;wBAC3B,GAAG,CAAC,CAAC,CAAC,GAAG,IAAA,qBAAc,EAAC,KAAK,CAAC,CAAC;qBAC/B;iBACD;YACF,CAAC,CAAC,CAAC;SACH;aACI;YACJ,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE;gBACjD,IAAI,CAAC,KAAK,EAAE;oBACX,kBAAkB;oBAClB,KAAK,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;iBACnB;qBACI,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE;oBACnC,mBAAmB;oBACnB,KAAK,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,eAAe,CAAC,KAA6B,CAAC,CAAC;iBACjE;qBACI,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE;oBACnC,IAAI,IAAI,CAAC,OAAO,CAAC,WAAW,EAAE;wBAC7B,KAAK,CAAC,GAAG,CAAC,GAAG,IAAA,uBAAgB,EAAC,KAAK,CAAC,CAAC;qBACrC;oBACD,IAAI,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE;wBAC3B,KAAK,CAAC,GAAG,CAAC,GAAG,IAAA,qBAAc,EAAC,KAAK,CAAC,CAAC;qBACnC;iBACD;aACD;SACD;QAED,OAAO,KAAK,CAAC;IACd,CAAC;IAED,gBAAgB;IAChB,4FAA4F;IAC9E,YAAY,CAAE,GAAoB;;YAC/C,OAAO,IAAI,OAAO,CAA8B,CAAC,OAAO,EAAE,MAAM,EAAQ,EAAE;gBACzE,MAAM,UAAU,GAAa,EAAE,CAAC;gBAChC,IAAI,OAA2B,CAAC;gBAEhC,GAAG,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,MAAc,EAAQ,EAAE;oBACvC,UAAU,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;gBACzB,CAAC,CAAC,CAAC;gBAEH,GAAG,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,GAAU,EAAQ,EAAE;oBACpC,MAAM,CAAC,GAAG,CAAC,CAAC;gBACb,CAAC,CAAC,CAAC;gBAEH,GAAG,CAAC,EAAE,CAAC,KAAK,EAAE,GAAwB,EAAE;oBACvC,IAAI,KAAuC,CAAC;oBAE5C,MAAM,mBAAmB,GAAW,GAAG,CAAC,OAAO,CAAC,cAAc,CAAW,CAAC;oBAE1E,IAAI,mBAAmB,EAAE;wBACxB,MAAM,iBAAiB,GAAa,mBAAmB,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;wBACnE,MAAM,WAAW,GAAG,iBAAiB,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;wBAEhD,OAAO,GAAG,MAAM,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,QAAQ,EAAE,CAAC;wBAG/C,QAAQ,WAAW,EAAE;4BACpB,KAAK,qBAAqB,CAAC,CAAC;gCAC3B,MAAM,cAAc,GAAa,iBAAiB,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;gCACjE,MAAM,WAAW,GAAW,cAAc,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;gCAErD,IAAI,CAAC,WAAW,EAAE;oCACjB,MAAM,IAAI,KAAK,CAAC,sBAAsB,CAAC,CAAC;iCACxC;gCAED,OAAO,CAAC,KAAK,CAAC,WAAW,CAAC;qCACxB,MAAM,CAAC,CAAC,GAAW,EAAW,EAAE;oCAChC,OAAO,GAAG,CAAC,QAAQ,CAAC,qBAAqB,CAAC;2CACtC,GAAG,CAAC,QAAQ,CAAC,WAAW,CAAC;2CACzB,GAAG,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;gCAC3B,CAAC,CAAC;qCACD,GAAG,CAAC,CAAC,GAAW,EAAU,EAAE;oCAC5B,OAAO,GAAG;yCACR,OAAO,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC,oDAAoD;yCAC1E,OAAO,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,CAAC,cAAc;gCACvC,CAAC,CAAC;qCACD,OAAO,CAAC,CAAC,KAAa,EAAQ,EAAE;oCAChC,qBAAqB;oCACrB,MAAM,CAAC,EAAE,GAAG,EAAE,KAAK,CAAC,GAAG,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;oCAExC,IAAI,CAAC,KAAK,EAAE;wCACX,KAAK,GAAG,EAA0B,CAAC;qCACnC;oCAED,IAAI,GAAG,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE;wCACvB,QAAQ;wCACR,MAAM,SAAS,GAAW,GAAG,CAAC,OAAO,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC;wCAEnD,IAAI,KAAK,CAAC,SAAS,CAAC,EAAE;4CACpB,KAAK,CAAC,SAAS,CAAoB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;yCACjD;6CACI;4CACJ,KAAK,CAAC,SAAS,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;yCAC3B;qCACD;yCACI;wCACJ,KAAK,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;qCACnB;gCACF,CAAC,CAAC,CAAC;gCAEJ,MAAM;6BACN;4BAED,KAAK,kBAAkB;gCACtB,IAAI,OAAO,EAAE;oCACZ,IAAI;wCACH,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;qCAC5B;oCACD,OAAO,CAAC,EAAE;wCACT,MAAM,IAAI,KAAK,CAAC,0BAA0B,CAAC,CAAC;qCAC5C;iCACD;gCACD,qBAAqB;gCACrB,MAAM;4BAEP,KAAK,mCAAmC;gCACvC,IAAI,OAAO,EAAE;oCACZ,OAAO;yCACL,KAAK,CAAC,GAAG,CAAC;yCACV,OAAO,CAAC,CAAC,KAAa,EAAQ,EAAE;wCAChC,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,GAAG,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;wCAEtC,IAAI,CAAC,KAAK,EAAE;4CACX,KAAK,GAAG,EAA0B,CAAC;yCACnC;wCAED,IAAI,GAAG,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE;4CACvB,QAAQ;4CACR,MAAM,SAAS,GAAW,GAAG,CAAC,OAAO,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC;4CAEnD,IAAI,KAAK,CAAC,SAAS,CAAC,KAAK,SAAS,EAAE;gDAClC,KAAK,CAAC,SAAS,CAAoB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;6CACjD;iDACI;gDACJ,KAAK,CAAC,SAAS,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;6CAC3B;yCACD;6CACI;4CACJ,KAAK,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;yCACnB;oCACF,CAAC,CAAC,CAAC;iCACJ;gCAED,qBAAqB;gCACrB,MAAM;yBACP;wBAED,IAAI,KAAK,EAAE;4BACV,KAAK,GAAG,IAAI,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC;yBACpC;wBAED,OAAO,CAAC,KAAK,CAAC,CAAC;qBACf;yBACI;wBACJ,0BAA0B;wBAC1B,OAAO,EAAE,CAAC;qBACV;gBACF,CAAC,CAAA,CAAC,CAAC;YACJ,CAAC,CAAC,CAAC;QACJ,CAAC;KAAA;IAEa,OAAO,CAAE,GAAW,EAAE,IAAY;;YAC/C,2BAA2B;YAC3B,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE;gBACvB,IAAI,CAAC,YAAY,GAAG,CAAC,EAAE,GAAG,EAAE,IAAI,EAAE,CAAC,CAAC;aACpC;iBACI;gBACJ,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,EAAE,GAAG,EAAE,IAAI,EAAE,CAAC,CAAC;aACtC;QACF,CAAC;KAAA;IAEK,MAAM,CAAE,GAAW,EAAE,IAAY;;YACtC,MAAM,IAAA,uBAAgB,EAAC,GAAG,CAAC,CAAC;YAE5B,MAAM,IAAA,wBAAiB,EAAC,IAAI,CAAC,CAAC;YAE9B,IAAI,CAAC,CAAA,MAAM,IAAA,eAAQ,EAAC,IAAI,CAAC,CAAA,EAAE;gBAC1B,MAAM,IAAI,KAAK,CAAC,+BAAgC,IAAK,EAAE,CAAC,CAAC;aACzD;YAED,MAAM,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;QAC/B,CAAC;KAAA;IAEK,KAAK,CAAE,IAAe;;YAC3B,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;QACxB,CAAC;KAAA;IAED,oEAAoE;IAC9D,UAAU,CAAE,GAAW,EAAE,IAAY;;YAC1C,MAAM,IAAA,uBAAgB,EAAC,GAAG,CAAC,CAAC;YAE5B,MAAM,IAAA,wBAAiB,EAAC,IAAI,CAAC,CAAC;YAE9B,IAAI,CAAC,CAAA,MAAM,IAAA,eAAQ,EAAC,IAAI,CAAC,CAAA,EAAE;gBAC1B,MAAM,IAAI,KAAK,CAAC,+BAAgC,IAAK,EAAE,CAAC,CAAC;aACzD;YAED,0BAA0B;YAC1B,MAAM,WAAW,GAAY,MAAM,IAAA,kBAAW,EAAC,SAAS,CAAC,IAAI,CAAC,IAAI,EAAE,YAAY,CAAC,CAAC,CAAC;YAEnF,IAAI,CAAC,WAAW,EAAE;gBACjB,MAAM,IAAI,KAAK,CAAC,8BAA+B,IAAK,EAAE,CAAC,CAAC;aACxD;YAED,MAAM,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;YAE9B,IAAI,CAAC,QAAQ,GAAG,GAAG,CAAC;QACrB,CAAC;KAAA;IAEK,MAAM,CAAE,IAAY;;YACzB,IAAI,IAAI,KAAK,SAAS,EAAE;gBACvB,MAAM,IAAI,KAAK,CAAC,uBAAuB,CAAC,CAAC;aACzC;YAED,IAAI,IAAI,CAAC,SAAS,EAAE,EAAE;gBACrB,MAAM,IAAI,KAAK,CAAC,2BAA2B,CAAC,CAAC;aAC7C;YAED,oBAAoB;YACpB,IAAI,CAAC,CAAC,IAAI,CAAC,YAAY,IAAI,IAAI,CAAC,YAAY,CAAC,MAAM,GAAG,CAAC,EAAE;gBACxD,MAAM,QAAQ,GAAoB,MAAM,OAAO,CAAC,GAAG,CAClD,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,CAAO,UAAsB,EAA0B,EAAE;oBAC9E,OAAO,IAAA,iBAAU,EAAC,UAAU,CAAC,GAAG,EAAE,UAAU,CAAC,IAAI,CAAC,CAAC;gBACpD,CAAC,CAAA,CAAC,CACF,CAAC;gBAEF,QAAQ,CAAC,OAAO,CAAC,CAAC,WAA0B,EAAQ,EAAE;oBACrD,WAAW,CAAC,OAAO,CAAC,CAAC,QAAqB,EAAQ,EAAE;wBACnD,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;wBAEjC,IAAI,CAAC,GAAG,CACP,QAAQ,CAAC,GAAG,EACZ,CAAO,KAAc,EAAE,GAAoB,EAAE,GAAmB,EAAiB,EAAE;4BAClF,GAAG,CAAC,SAAS,CAAC,cAAc,EAAE,QAAQ,CAAC,IAAI,CAAC,CAAC;4BAC7C,GAAG,CAAC,KAAK,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;4BAC7B,GAAG,CAAC,GAAG,EAAE,CAAC;wBACX,CAAC,CAAA,EACD;4BACC,IAAI,EAAE,KAAK;yBACX,CACD,CAAC;oBACH,CAAC,CAAC,CAAC;gBACJ,CAAC,CAAC,CAAC;gBAEH,IAAI,IAAI,CAAC,QAAQ,EAAE;oBAClB,MAAM,aAAa,GAAW,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,GAAG,CAAC;wBACxD,CAAC,CAAC,IAAI,CAAC,QAAQ;wBACf,CAAC,CAAC,IAAI,CAAC,QAAQ,GAAG,GAAG,CAAC;oBACvB,MAAM,aAAa,GAAW,aAAa,GAAG,IAAI,CAAC;oBAEnD,MAAM,IAAI,CAAC,GAAG,CACb,aAAa,EACb,CAAO,KAAc,EAAE,GAAoB,EAAE,GAAmB,EAAiB,EAAE;wBAClF,2CAA2C;wBAC3C,MAAM,YAAY,GAAW,aAAa,GAAG,YAAY,CAAC;wBAE1D,MAAM,WAAW,GAA4B,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC,KAAkB,EAAW,EAAE;4BACnG,OAAO,KAAK,CAAC,GAAG,KAAK,YAAY,CAAC;wBACnC,CAAC,CAAC,CAAC;wBAEH,IAAI,WAAW,EAAE;4BAChB,MAAM,UAAU,GAGZ;gCACH,IAAI,EAAE,WAAW,CAAC,IAAI;gCACtB,QAAQ,EAAE,WAAW,CAAC,QAAQ;6BAC9B,CAAC;4BAEF,GAAG,CAAC,SAAS,CAAC,cAAc,EAAE,UAAU,CAAC,IAAI,CAAC,CAAC;4BAC/C,GAAG,CAAC,KAAK,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC;yBAC/B;wBAED,GAAG,CAAC,GAAG,EAAE,CAAC;oBACX,CAAC,CAAA,EACD;wBACC,IAAI,EAAE,KAAK;qBACX,CACD,CAAC;iBACF;aACD;YAED,6CAA6C;YAC7C,MAAM,IAAI,OAAO,CAAO,CAAC,OAAO,EAAE,MAAM,EAAQ,EAAE;gBACjD,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,YAAY,CAAC,CAAC,GAAoB,EAAE,GAAmB,EAAQ,EAAE;oBAClF,IAAI,YAAqB,CAAC;oBAE1B,kCAAkC;oBAClC,CAAC,GAAwB,EAAE;;wBAC1B,8CAA8C;wBAC9C,2CAA2C;wBAC3C,mCAAmC;wBACnC,IAAI;4BACH,MAAM,OAAO,CAAC,GAAG,CAChB,IAAI,CAAC,kBAAkB,CAAC,GAAG,CAAC,CAAC,aAAiC,EAAwB,EAAE;gCACvF,OAAO,aAAa,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;4BAChC,CAAC,CAAC,CACF,CAAC;yBACF;wBACD,OAAO,GAAG,EAAE;4BACX,6BAA6B;4BAC7B,IAAI,IAAI,CAAC,OAAO,CAAC,aAAa,EAAE;gCAC/B,OAAO,CAAC,KAAK,CAAC,oCAAoC,EAAE,GAAG,CAAC,CAAC;6BACzD;yBACD;wBAED,IAAI,CAAC,GAAG,CAAC,MAAM,EAAE;4BAChB,MAAM,IAAI,KAAK,CAAC,WAAW,CAAC,CAAC;yBAC7B;wBAED,MAAM,MAAM,GAAW,GAAG,CAAC,MAAM,CAAC,WAAW,EAAE,CAAC;wBAChD,MAAM,GAAG,GAAW,GAAG,CAAC,GAAa,CAAC;wBAEtC,IACC,CAAC,CAAC,IAAI,CAAC,WAAW,IAAI,IAAI,CAAC,WAAW,CAAC,MAAM,KAAK,CAAC,CAAC;+BACjD,IAAI,CAAC,YAAY,KAAK,IAAI,EAC5B;4BACD,mBAAmB;4BACnB,MAAM,IAAI,KAAK,CAAC,SAAS,CAAC,CAAC;yBAC3B;wBAED,IAAI,YAA0D,CAAC;wBAC/D,IAAI,KAAkC,CAAC;wBAGvC,MAAM,eAAe,GAAW,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC;wBAExD,IAAI,cAAqC,CAAC;wBAE1C,gEAAgE;wBAChE,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,eAAe,EAAE,CAAC,EAAE,EAAE;4BACzC,cAAc,GAAG,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC;4BAErC,iBAAiB;4BACjB,MAAM,MAAM,GAAa;gCACxB,GAAG;gCACH,GAAG,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC;6BACjB;iCACC,MAAM,CAAC,CAAC,IAAY,EAAW,EAAE,CAAC,IAAI,KAAK,EAAE,CAAC,CAAC;4BACjD,MAAM,YAAY,GAAW,MAAM,CAAC,MAAM,CAAC;4BAE3C,uBAAuB;4BACvB,0CAA0C;4BAC1C,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,YAAY,EAAE,CAAC,EAAE,EAAE;gCACtC,IAAI,WAAoC,CAAC;gCAEzC,MAAM,eAAe,GAAa,MAAM,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;gCAC9D,MAAM,OAAO,GAAW,MAAM,CAAC,CAAC,CAAC,CAAC;gCAElC,iBAAiB;gCACjB,IAAI,cAAc,CAAC,OAAO,CAAC,KAAK,SAAS,EAAE;oCAC1C,cAAc,GAAG,cAAc,CAAC,OAAO,CAAc,CAAC;oCAEtD,WAAW,GAAG,WAAW,CAAC,QAAQ,CAAC;iCACnC;gCAED,IAAI,CAAC,WAAW,EAAE;oCACjB,gBAAgB;oCAChB,MAAM,UAAU,GAAuB,eAAe,CAAC,IAAI,CAAC,CAAC,QAAgB,EAAW,EAAE;wCACzF,OAAO,QAAQ,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC;oCACjC,CAAC,CAAC,CAAC;oCAEH,IAAI,UAAU,KAAK,SAAS,EAAE;wCAC7B,cAAc,GAAG,cAAc,CAAC,UAAU,CAAc,CAAC;wCAEzD,IAAI,KAAK,KAAK,SAAS,EAAE;4CACxB,KAAK,GAAG,EAAE,CAAC;yCACX;wCAED,qCAAqC;wCACrC,uBAAuB;wCACvB,IAAI;wCAEJ,kCAAkC;wCAClC,KAAK,CAAC,UAAU,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,GAAG,OAAO,CAAC;wCAE7C,WAAW,GAAG,WAAW,CAAC,QAAQ,CAAC;qCACnC;iCACD;gCAED,IAAI,CAAC,WAAW,EAAE;oCACjB,mBAAmB;oCACnB,MAAM,cAAc,GAAa,eAAe,CAAC,MAAM,CAAC,CAAC,YAAoB,EAAW,EAAE;wCACzF,OAAO,YAAY,CAAC,QAAQ,CAAC,GAAG,CAAC;+CAC7B,YAAY,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;oCACrC,CAAC,CAAC,CAAC;oCAEH,MAAM,iBAAiB,GAAuB,cAAc,CAAC,IAAI,CAAC,CAAC,WAAmB,EAAW,EAAE;wCAClG,MAAM,gBAAgB,GAAW,WAAW,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;wCAE1D,MAAM,iBAAiB,GAAW,WAAW,CAAC,SAAS,CACtD,gBAAgB,GAAG,CAAC,EACpB,gBAAgB,CAChB,CAAC;wCAEF,MAAM,YAAY,GAAW,WAAW,CAAC,SAAS,CAAC,CAAC,EAAE,gBAAgB,GAAG,CAAC,CAAC,CAAC;wCAC5E,MAAM,OAAO,GAAW,WAAW,CAAC,SAAS,CAAC,gBAAgB,GAAG,CAAC,CAAC,CAAC;wCAEpE,OAAO,IAAI,MAAM,CAAC,IAAK,YAAa,GAAI,iBAAkB,IAAK,OAAQ,GAAG,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;oCAC3F,CAAC,CAAC,CAAC;oCAEH,IAAI,iBAAiB,KAAK,SAAS,EAAE;wCACpC,cAAc,GAAG,cAAc,CAAC,iBAAiB,CAAc,CAAC;wCAEhE,IAAI,KAAK,KAAK,SAAS,EAAE;4CACxB,KAAK,GAAG,EAAE,CAAC;yCACX;wCAED,qCAAqC;wCACrC,uBAAuB;wCACvB,IAAI;wCAEJ,yCAAyC;wCACzC,KAAK,CAAC,iBAAiB,CAAC,GAAG,OAAO,CAAC;wCAEnC,WAAW,GAAG,WAAW,CAAC,QAAQ,CAAC;qCACnC;iCACD;gCAED,IAAI,CAAC,WAAW,EAAE;oCACjB,eAAe;oCACf,MAAM,UAAU,GAAa,eAAe,CAAC,MAAM,CAAC,CAAC,YAAoB,EAAW,EAAE;wCACrF,OAAO,YAAY,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;oCACnC,CAAC,CAAC,CAAC;oCAEH,MAAM,aAAa,GAAuB,UAAU,CAAC,IAAI,CAAC,CAAC,OAAe,EAAW,EAAE;wCACtF,OAAO,IAAI,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;oCAC1C,CAAC,CAAC,CAAC;oCAEH,IAAI,aAAa,KAAK,SAAS,EAAE;wCAChC,cAAc,GAAG,cAAc,CAAC,aAAa,CAAc,CAAC;wCAE5D,IAAI,KAAK,KAAK,SAAS,EAAE;4CACxB,KAAK,GAAG,EAAE,CAAC;yCACX;wCAED,qCAAqC;wCACrC,uBAAuB;wCACvB,IAAI;wCAEJ,qCAAqC;wCACrC,KAAK,CAAC,aAAa,CAAC,GAAG,OAAO,CAAC;wCAE/B,WAAW,GAAG,WAAW,CAAC,QAAQ,CAAC;qCACnC;iCACD;gCAED,IAAI,CAAC,WAAW,EAAE;oCACjB,IAAI,eAAe,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE;wCAClC,cAAc,GAAG,cAAc,CAAC,GAAG,CAAc,CAAC;wCAElD,IAAI,KAAK,KAAK,SAAS,EAAE;4CACxB,KAAK,GAAG,EAAE,CAAC;yCACX;wCAED,KAAK,CAAC,GAAG,CAAC,GAAG,OAAO,CAAC;wCAErB,WAAW,GAAG,WAAW,CAAC,QAAQ,CAAC;qCACnC;iCACD;gCAED,IAAI,CAAC,WAAW,EAAE;oCACjB,2BAA2B;oCAC3B,MAAM,iBAAiB,GAAuB,eAAe;yCAC3D,MAAM,CAAC,CAAC,YAAoB,EAAW,EAAE;wCACzC,OAAO,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;oCAClC,CAAC,CAAC;yCACD,IAAI,CAAC,CAAC,WAAmB,EAAW,EAAE;wCACtC,wBAAwB;wCACxB,OAAO,IAAI,MAAM,CAChB,WAAW,CAAC,OAAO,CAAC,GAAG,EAAE,MAAM,CAAC,CAChC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;oCACjB,CAAC,CAAC,CAAC;oCAEJ,IAAI,iBAAiB,KAAK,SAAS,EAAE;wCACpC,cAAc,GAAG,cAAc,CAAC,iBAAiB,CAAc,CAAC;wCAEhE,IAAI,KAAK,KAAK,SAAS,EAAE;4CACxB,KAAK,GAAG,EAAE,CAAC;yCACX;wCAED,qCAAqC;wCACrC,uBAAuB;wCACvB,IAAI;wCAEJ,yCAAyC;wCACzC,KAAK,CAAC,iBAAiB,CAAC,GAAG,OAAO,CAAC;wCAEnC,WAAW,GAAG,WAAW,CAAC,QAAQ,CAAC;qCACnC;iCACD;gCAGD,gCAAgC;gCAChC,MAAM,oBAAoB,GAAa,MAAM,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;gCAEnE,IAAI,CAAC,KAAK,YAAY,GAAG,CAAC,CAAC,8BAA8B;uCACrD,oBAAoB,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE;oCACvC,cAAc,GAAG,cAAc,CAAC,GAAG,CAAc,CAAC;oCAElD,IAAI,KAAK,KAAK,SAAS,EAAE;wCACxB,KAAK,GAAG,EAAE,CAAC;qCACX;oCAED,KAAK,CAAC,GAAG,CAAC,GAAG,OAAO,CAAC;oCAErB,WAAW,GAAG,WAAW,CAAC,KAAK,CAAC;iCAChC;qCACI,IAAI,eAAe,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,oBAAoB,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE;oCAC/E,cAAc,GAAG,cAAc,CAAC,IAAI,CAAc,CAAC;oCAEnD,IAAI,KAAK,KAAK,SAAS,EAAE;wCACxB,KAAK,GAAG,EAAE,CAAC;qCACX;oCAED,KAAK,CAAC,IAAI,CAAC,GAAG,OAAO,CAAC;oCAEtB,uBAAuB;oCACvB,WAAW,GAAG,WAAW,CAAC,KAAK,CAAC;iCAChC;gCAED,kDAAkD;gCAClD,IAAI,WAAW,KAAK,WAAW,CAAC,KAAK,EAAE;oCACtC,MAAM;iCACN;qCACI,IAAI,WAAW,KAAK,SAAS,EAAE;oCACnC,YAAY;oCACZ,cAAc,GAAG,SAAS,CAAC;oCAC3B,MAAM;iCACN;gCACD,kDAAkD;6BAClD;4BAED,IAAI,cAAc,IAAI,cAAc,CAAC,MAAM,CAAC,EAAE;gCAC7C,YAAY,GAAG,cAAc,CAAC,MAAM,CAAqB,CAAC;gCAE1D,MAAM;6BACN;yBACD;wBAED,IAAI,YAAY,KAAK,SAAS,EAAE;4BAC/B,MAAM,IAAI,KAAK,CAAC,SAAS,CAAC,CAAC;yBAC3B;wBAED,QAAQ,MAAM,EAAE;4BACf,KAAK,kBAAM,CAAC,GAAG,CAAC;4BAChB,KAAK,kBAAM,CAAC,IAAI;gCACf,IAAI,KAAK,EAAE;oCACV,4CAA4C;oCAC5C,KAAK,GAAG,MAAM,CAAC,MAAM,CAAC,KAAK,EAAE,MAAM,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC,CAAC;iCAC3D;qCACI;oCACJ,KAAK,GAAG,MAAM,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC;iCACrC;gCACD,MAAM;yBACP;wBAED,IAAI,IAAI,CAAC,QAAQ;+BACb,OAAO,IAAI,CAAC,QAAQ,KAAK,UAAU;+BACnC,CAAA,MAAA,MAAC,YAAiC,0CAAE,MAAM,0CAAE,IAAI,MAAK,KAAK,EAC5D;4BACD,kCAAkC;4BAClC,IAAI;gCACH,MAAM,IAAI,CAAC,QAAQ,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;6BAC9B;4BACD,OAAO,CAAC,EAAE;gCACT,4BAA4B;gCAC5B,MAAM,IAAI,KAAK,CAAC,aAAa,CAAC,CAAC;6BAC/B;yBACD;wBAGD,MAAM,YAAY,GAAY,OAAO,YAAY,KAAK,UAAU;4BAC/D,CAAC,CAAC,MAAM,YAAY,CAAC,KAAK,EAAE,GAAG,EAAE,GAAG,CAAC;4BACrC,CAAC,CAAC,MAAO,YAAiC,CAAC,GAAG,CAAC,KAAK,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC;wBAEjE,IAAI,YAAY,EAAE;4BACjB,MAAM,WAAW,GAAgB,IAAA,qBAAc,EAAC,YAAY,CAAC,CAAC;4BAE9D,GAAG,CAAC,SAAS,CAAC,cAAc,EAAE,WAAW,CAAC,CAAC;4BAE3C,QAAQ,WAAW,EAAE;gCACpB,KAAK,uBAAW,CAAC,eAAe;oCAC/B,YAAY,GAAG,IAAI,CAAC,SAAS,CAAC,YAAY,CAAC,CAAC;oCAC5C,MAAM;gCAEP;oCACC,YAAY,GAAG,YAAY,CAAC;6BAE7B;4BAED,GAAG,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC;yBACtB;6BACI;4BACJ,GAAG,CAAC,GAAG,EAAE,CAAC;yBACV;oBACF,CAAC,CAAA,CAAC,EAAE;yBACF,KAAK,CAAC,CAAO,GAAiC,EAAiB,EAAE;wBACjE,IAAI,IAAI,CAAC,OAAO,CAAC,aAAa,EAAE;4BAC/B,OAAO,CAAC,KAAK,CAAC,wBAAwB,EAAE,GAAG,CAAC,CAAC;yBAC7C;wBAED,QAAQ,GAAG,CAAC,OAAO,EAAE;4BACpB,KAAK,aAAa;gCACjB,GAAG,CAAC,UAAU,GAAG,GAAG,CAAC,CAAC,gCAAgC;gCAEtD,GAAG,CAAC,GAAG,EAAE,CAAC;gCACV,MAAM;4BAEP,KAAK,SAAS;gCACb,GAAG,CAAC,UAAU,GAAG,GAAG,CAAC,CAAC,YAAY;gCAElC,GAAG,CAAC,GAAG,EAAE,CAAC;gCACV,MAAM;4BAEP,kBAAkB;4BAClB,KAAK,0BAA0B;gCAC9B,GAAG,CAAC,UAAU,GAAG,GAAG,CAAC,CAAC,wBAAwB;gCAE9C,GAAG,CAAC,GAAG,EAAE,CAAC;gCACV,MAAM;4BAEP;gCACC,GAAG,CAAC,UAAU,GAAG,GAAG,CAAC,CAAC,wBAAwB;gCAE9C,IAAI,GAAG,EAAE;oCACR,IAAI,GAAG,YAAY,KAAK,EAAE;wCACzB,YAAY,GAAG,GAAG,CAAC,OAAO,CAAC;wCAC3B,GAAG,CAAC,SAAS,CAAC,cAAc,EAAE,uBAAW,CAAC,SAAS,CAAC,CAAC;qCACrD;yCACI;wCACJ,MAAM,WAAW,GAAgB,IAAA,qBAAc,EAAC,GAAG,CAAC,CAAC;wCAErD,GAAG,CAAC,SAAS,CAAC,cAAc,EAAE,WAAW,CAAC,CAAC;wCAE3C,QAAQ,WAAW,EAAE;4CACpB,KAAK,uBAAW,CAAC,eAAe;gDAC/B,YAAY,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC;gDACnC,MAAM;4CAEP;gDACC,YAAY,GAAG,GAAG,CAAC;yCACpB;qCACD;oCAED,GAAG,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC;iCACtB;qCACI;oCACJ,GAAG,CAAC,GAAG,EAAE,CAAC;iCACV;gCACD,MAAM;yBACP;wBAED,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,YAAY,EAAE;4BAC/B,MAAM,GAAG,CAAC;yBACV;oBACF,CAAC,CAAA,CAAC;yBACD,IAAI,CAAC,GAAwB,EAAE;wBAC/B,iCAAiC;wBACjC,IAAI;4BACH,MAAM,OAAO,CAAC,GAAG,CAChB,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,CAAC,aAAiC,EAAwB,EAAE;gCACtF,OAAO,aAAa,CAAC,GAAG,EAAE,GAAG,EAAE,YAAY,CAAC,CAAC;4BAC9C,CAAC,CAAC,CACF,CAAC;yBACF;wBACD,OAAO,GAAG,EAAE;4BACX,6BAA6B;4BAC7B,IAAI,IAAI,CAAC,OAAO,CAAC,aAAa,EAAE;gCAC/B,OAAO,CAAC,KAAK,CAAC,mCAAmC,EAAE,GAAG,CAAC,CAAC;6BACxD;yBACD;oBACF,CAAC,CAAA,CAAC,CAAC;gBACL,CAAC,CAAC,CAAC;gBAEH,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,GAAU,EAAQ,EAAE;oBAC3C,MAAM,CAAC,GAAG,CAAC,CAAC;gBACb,CAAC,CAAC,CAAC;gBAEH,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,EAAE,GAAS,EAAE;oBAClC,OAAO,EAAE,CAAC;gBACX,CAAC,CAAC,CAAC;YACJ,CAAC,CAAC,CAAC;QACJ,CAAC;KAAA;IAED,SAAS;QACR,OAAO,IAAI,CAAC,KAAK,KAAK,SAAS,CAAC;IACjC,CAAC;IAED,aAAa;QACZ,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,EAAE;YACtB,MAAM,IAAI,KAAK,CAAC,uBAAuB,CAAC,CAAC;SACzC;QAED,OAAO,IAAI,CAAC,KAAK,CAAC;IACnB,CAAC;IAEK,IAAI;;YACT,IAAI,IAAI,CAAC,KAAK,KAAK,SAAS,EAAE;gBAC7B,MAAM,IAAI,KAAK,CAAC,oDAAoD,CAAC,CAAC;aACtE;YAED,OAAO,IAAI,OAAO,CAAO,CAAC,OAAO,EAAQ,EAAE;;gBAC1C,MAAA,IAAI,CAAC,KAAK,0CAAE,KAAK,CAAC,GAAS,EAAE;oBAC5B,OAAO,IAAI,CAAC,KAAK,CAAC;oBAElB,OAAO,EAAE,CAAC;gBACX,CAAC,CAAC,CAAC;YACJ,CAAC,CAAC,CAAC;QACJ,CAAC;KAAA;CACD;AAjmCD,sBAimCC"}
@@ -0,0 +1,25 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.ContentType = exports.Method = void 0;
4
+ var Method;
5
+ (function (Method) {
6
+ Method["GET"] = "GET";
7
+ Method["POST"] = "POST";
8
+ Method["PUT"] = "PUT";
9
+ Method["DELETE"] = "DELETE";
10
+ })(Method = exports.Method || (exports.Method = {}));
11
+ var ContentType;
12
+ (function (ContentType) {
13
+ ContentType["TextPlain"] = "text/plain";
14
+ // TextHtml = 'text/html',
15
+ // TextCss = 'text/css',
16
+ // TextJavaScript = 'text/javascript',
17
+ //
18
+ // ImageGif = 'image/gif',
19
+ // ImagePng = 'image/png',
20
+ // ImageJpeg = 'image/jpeg',
21
+ // ImageBmp = 'image/bmp',
22
+ // ImageWebp = 'image/webp',
23
+ ContentType["ApplicationJson"] = "application/json";
24
+ })(ContentType = exports.ContentType || (exports.ContentType = {}));
25
+ //# sourceMappingURL=constants.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"constants.js","sourceRoot":"","sources":["../../src/constants.ts"],"names":[],"mappings":";;;AAAA,IAAY,MAKX;AALD,WAAY,MAAM;IACjB,qBAAW,CAAA;IACX,uBAAa,CAAA;IACb,qBAAW,CAAA;IACX,2BAAiB,CAAA;AAClB,CAAC,EALW,MAAM,GAAN,cAAM,KAAN,cAAM,QAKjB;AAED,IAAY,WAcX;AAdD,WAAY,WAAW;IACtB,uCAAwB,CAAA;IACxB,0BAA0B;IAC1B,wBAAwB;IACxB,sCAAsC;IACtC,EAAE;IACF,0BAA0B;IAC1B,0BAA0B;IAC1B,4BAA4B;IAC5B,0BAA0B;IAC1B,4BAA4B;IAG5B,mDAAoC,CAAA;AACrC,CAAC,EAdW,WAAW,GAAX,mBAAW,KAAX,mBAAW,QActB"}
File without changes
@@ -1 +1 @@
1
- {"version":3,"file":"interfaces.js","sourceRoot":"","sources":["../src/interfaces.ts"],"names":[],"mappings":""}
1
+ {"version":3,"file":"interfaces.js","sourceRoot":"","sources":["../../src/interfaces.ts"],"names":[],"mappings":""}
File without changes
@@ -0,0 +1 @@
1
+ {"version":3,"file":"public_api.js","sourceRoot":"","sources":["../../src/public_api.ts"],"names":[],"mappings":";;;AAAA,iCAAgC;AAAvB,8FAAA,KAAK,OAAA;AACd,yCAAqC;AAA5B,mGAAA,MAAM,OAAA"}
@@ -9,11 +9,12 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
9
9
  });
10
10
  };
11
11
  Object.defineProperty(exports, "__esModule", { value: true });
12
- exports.loadFolder = exports.isFolder = exports.isExistFile = exports.checkAbsolutePath = exports.checkAbsoluteUri = exports.convertDateStr = exports.convertNumberStr = void 0;
12
+ exports.getContentType = exports.loadFolder = exports.isFolder = exports.isExistFile = exports.checkAbsolutePath = exports.checkAbsoluteUri = exports.convertDateStr = exports.convertNumberStr = void 0;
13
13
  // convert if number string
14
14
  // if not number string, return itself
15
15
  const fs = require("fs");
16
16
  const node_path = require("path");
17
+ const constants_1 = require("./constants");
17
18
  const convertNumberStr = (param) => {
18
19
  return !isNaN(+param)
19
20
  ? +param
@@ -105,9 +106,9 @@ const loadFolder = (uri, path) => __awaiter(void 0, void 0, void 0, function* ()
105
106
  .replace(/\\/g, '/'); // path \\ changed to /
106
107
  const fullPath = node_path.join(path, folderOrFileName);
107
108
  let cacheSet;
108
- if (yield exports.isFolder(fullPath)) {
109
+ if (yield (0, exports.isFolder)(fullPath)) {
109
110
  // call recursively
110
- cacheSet = yield exports.loadFolder(uriSanitized, fullPath);
111
+ cacheSet = yield (0, exports.loadFolder)(uriSanitized, fullPath);
111
112
  }
112
113
  else {
113
114
  const matchArr = fullPath.match(/(\.[\w\d]+)?\.[\w\d]+$/);
@@ -123,11 +124,11 @@ const loadFolder = (uri, path) => __awaiter(void 0, void 0, void 0, function* ()
123
124
  '.jpeg': 'image/jpeg',
124
125
  '.jpg': 'image/jpeg',
125
126
  '.js': 'text/javascript',
126
- '.json': 'application/json',
127
+ '.json': constants_1.ContentType.ApplicationJson,
127
128
  '.pdf': 'application/pdf',
128
129
  '.png': 'image/png',
129
- '.txt': 'text/plain',
130
- '.text': 'text/plain',
130
+ '.txt': constants_1.ContentType.TextPlain,
131
+ '.text': constants_1.ContentType.TextPlain,
131
132
  '.tif': 'image/tiff',
132
133
  '.tiff': 'image/tiff',
133
134
  '.xls': 'application/vnd.ms-excel',
@@ -163,4 +164,22 @@ const loadFile = (path) => __awaiter(void 0, void 0, void 0, function* () {
163
164
  });
164
165
  });
165
166
  });
167
+ const getContentType = (data) => {
168
+ let contentType;
169
+ switch (typeof data) {
170
+ case 'object':
171
+ try {
172
+ JSON.stringify(data);
173
+ contentType = constants_1.ContentType.ApplicationJson;
174
+ }
175
+ catch (e) {
176
+ contentType = constants_1.ContentType.TextPlain;
177
+ }
178
+ break;
179
+ default:
180
+ contentType = constants_1.ContentType.TextPlain;
181
+ }
182
+ return contentType;
183
+ };
184
+ exports.getContentType = getContentType;
166
185
  //# sourceMappingURL=util.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"util.js","sourceRoot":"","sources":["../../src/util.ts"],"names":[],"mappings":"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"}
@@ -4,3 +4,7 @@ export declare enum Method {
4
4
  PUT = "PUT",
5
5
  DELETE = "DELETE"
6
6
  }
7
+ export declare enum ContentType {
8
+ TextPlain = "text/plain",
9
+ ApplicationJson = "application/json"
10
+ }