routup 0.6.0 → 0.8.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 (81) hide show
  1. package/dist/config/accessors.d.ts +15 -0
  2. package/dist/config/accessors.d.ts.map +1 -0
  3. package/dist/config/accessors.js +32 -0
  4. package/dist/config/accessors.js.map +1 -0
  5. package/dist/config/index.d.ts +5 -0
  6. package/dist/config/index.d.ts.map +1 -0
  7. package/dist/config/index.js +27 -0
  8. package/dist/config/index.js.map +1 -0
  9. package/dist/config/module.d.ts +23 -0
  10. package/dist/config/module.d.ts.map +1 -0
  11. package/dist/config/module.js +126 -0
  12. package/dist/config/module.js.map +1 -0
  13. package/dist/config/singleton.d.ts +4 -0
  14. package/dist/config/singleton.d.ts.map +1 -0
  15. package/dist/config/singleton.js +50 -0
  16. package/dist/config/singleton.js.map +1 -0
  17. package/dist/config/type.d.ts +78 -0
  18. package/dist/config/type.d.ts.map +1 -0
  19. package/dist/config/type.js +9 -0
  20. package/dist/config/type.js.map +1 -0
  21. package/dist/config/utils/etag.d.ts +3 -0
  22. package/dist/config/utils/etag.d.ts.map +1 -0
  23. package/dist/config/utils/etag.js +43 -0
  24. package/dist/config/utils/etag.js.map +1 -0
  25. package/dist/config/utils/index.d.ts +4 -0
  26. package/dist/config/utils/index.d.ts.map +1 -0
  27. package/dist/config/utils/index.js +26 -0
  28. package/dist/config/utils/index.js.map +1 -0
  29. package/dist/config/utils/trust-proxy.d.ts +3 -0
  30. package/dist/config/utils/trust-proxy.d.ts.map +1 -0
  31. package/dist/config/utils/trust-proxy.js +31 -0
  32. package/dist/config/utils/trust-proxy.js.map +1 -0
  33. package/dist/config/utils/validator.d.ts +3 -0
  34. package/dist/config/utils/validator.d.ts.map +1 -0
  35. package/dist/config/utils/validator.js +20 -0
  36. package/dist/config/utils/validator.js.map +1 -0
  37. package/dist/constants.d.ts +5 -1
  38. package/dist/constants.d.ts.map +1 -1
  39. package/dist/constants.js +4 -0
  40. package/dist/constants.js.map +1 -1
  41. package/dist/helpers/request/hostname.d.ts +8 -0
  42. package/dist/helpers/request/hostname.d.ts.map +1 -0
  43. package/dist/helpers/request/hostname.js +46 -0
  44. package/dist/helpers/request/hostname.js.map +1 -0
  45. package/dist/helpers/request/index.d.ts +3 -0
  46. package/dist/helpers/request/index.d.ts.map +1 -1
  47. package/dist/helpers/request/index.js +3 -0
  48. package/dist/helpers/request/index.js.map +1 -1
  49. package/dist/helpers/request/ip.d.ts +8 -0
  50. package/dist/helpers/request/ip.d.ts.map +1 -0
  51. package/dist/helpers/request/ip.js +29 -0
  52. package/dist/helpers/request/ip.js.map +1 -0
  53. package/dist/helpers/request/protocol.d.ts +9 -0
  54. package/dist/helpers/request/protocol.d.ts.map +1 -0
  55. package/dist/helpers/request/protocol.js +50 -0
  56. package/dist/helpers/request/protocol.js.map +1 -0
  57. package/dist/helpers/response/send.js +11 -14
  58. package/dist/helpers/response/send.js.map +1 -1
  59. package/dist/layer/module.d.ts.map +1 -1
  60. package/dist/layer/module.js +17 -2
  61. package/dist/layer/module.js.map +1 -1
  62. package/dist/route/module.d.ts.map +1 -1
  63. package/dist/route/module.js +3 -1
  64. package/dist/route/module.js.map +1 -1
  65. package/dist/router/module.d.ts.map +1 -1
  66. package/dist/router/module.js +18 -12
  67. package/dist/router/module.js.map +1 -1
  68. package/dist/type.d.ts +1 -0
  69. package/dist/type.d.ts.map +1 -1
  70. package/dist/utils/index.d.ts +1 -1
  71. package/dist/utils/index.d.ts.map +1 -1
  72. package/dist/utils/index.js +1 -1
  73. package/dist/utils/index.js.map +1 -1
  74. package/dist/utils/request.d.ts +3 -0
  75. package/dist/utils/request.d.ts.map +1 -0
  76. package/dist/utils/{response.js → request.js} +7 -6
  77. package/dist/utils/request.js.map +1 -0
  78. package/package.json +8 -5
  79. package/dist/utils/response.d.ts +0 -3
  80. package/dist/utils/response.d.ts.map +0 -1
  81. package/dist/utils/response.js.map +0 -1
@@ -0,0 +1,15 @@
1
+ import { ConfigOptions, ConfigOptionsInput } from './type';
2
+ /**
3
+ * Fast set config option accessor.
4
+ *
5
+ * @param key
6
+ * @param value
7
+ */
8
+ export declare function setConfigOption<K extends keyof ConfigOptionsInput>(key: K, value: ConfigOptionsInput[K]): void;
9
+ /**
10
+ * Fast get config option accessor.
11
+ *
12
+ * @param key
13
+ */
14
+ export declare function getConfigOption<K extends keyof ConfigOptions>(key: K): ConfigOptions[K];
15
+ //# sourceMappingURL=accessors.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"accessors.d.ts","sourceRoot":"","sources":["../../src/config/accessors.ts"],"names":[],"mappings":"AAQA,OAAO,EAAE,aAAa,EAAE,kBAAkB,EAAE,MAAM,QAAQ,CAAC;AAE3D;;;;;GAKG;AACH,wBAAgB,eAAe,CAAC,CAAC,SAAS,MAAM,kBAAkB,EAAE,GAAG,EAAE,CAAC,EAAE,KAAK,EAAE,kBAAkB,CAAC,CAAC,CAAC,QAIvG;AAED;;;;GAIG;AACH,wBAAgB,eAAe,CAAC,CAAC,SAAS,MAAM,aAAa,EAAE,GAAG,EAAE,CAAC,GAAI,aAAa,CAAC,CAAC,CAAC,CAIxF"}
@@ -0,0 +1,32 @@
1
+ "use strict";
2
+ /*
3
+ * Copyright (c) 2022.
4
+ * Author Peter Placzek (tada5hi)
5
+ * For the full copyright and license information,
6
+ * view the LICENSE file that was distributed with this source code.
7
+ */
8
+ Object.defineProperty(exports, "__esModule", { value: true });
9
+ exports.getConfigOption = exports.setConfigOption = void 0;
10
+ const singleton_1 = require("./singleton");
11
+ /**
12
+ * Fast set config option accessor.
13
+ *
14
+ * @param key
15
+ * @param value
16
+ */
17
+ function setConfigOption(key, value) {
18
+ const config = (0, singleton_1.useConfig)();
19
+ config.setRaw(key, value);
20
+ }
21
+ exports.setConfigOption = setConfigOption;
22
+ /**
23
+ * Fast get config option accessor.
24
+ *
25
+ * @param key
26
+ */
27
+ function getConfigOption(key) {
28
+ const config = (0, singleton_1.useConfig)();
29
+ return config.get(key);
30
+ }
31
+ exports.getConfigOption = getConfigOption;
32
+ //# sourceMappingURL=accessors.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"accessors.js","sourceRoot":"","sources":["../../src/config/accessors.ts"],"names":[],"mappings":";AAAA;;;;;GAKG;;;AAEH,2CAAwC;AAGxC;;;;;GAKG;AACH,SAAgB,eAAe,CAAqC,GAAM,EAAE,KAA4B;IACpG,MAAM,MAAM,GAAG,IAAA,qBAAS,GAAE,CAAC;IAE3B,MAAM,CAAC,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;AAC9B,CAAC;AAJD,0CAIC;AAED;;;;GAIG;AACH,SAAgB,eAAe,CAAgC,GAAM;IACjE,MAAM,MAAM,GAAG,IAAA,qBAAS,GAAE,CAAC;IAE3B,OAAO,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;AAC3B,CAAC;AAJD,0CAIC"}
@@ -0,0 +1,5 @@
1
+ export * from './accessors';
2
+ export * from './module';
3
+ export * from './singleton';
4
+ export * from './type';
5
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/config/index.ts"],"names":[],"mappings":"AAOA,cAAc,aAAa,CAAC;AAC5B,cAAc,UAAU,CAAC;AACzB,cAAc,aAAa,CAAC;AAC5B,cAAc,QAAQ,CAAC"}
@@ -0,0 +1,27 @@
1
+ "use strict";
2
+ /*
3
+ * Copyright (c) 2022.
4
+ * Author Peter Placzek (tada5hi)
5
+ * For the full copyright and license information,
6
+ * view the LICENSE file that was distributed with this source code.
7
+ */
8
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
9
+ if (k2 === undefined) k2 = k;
10
+ var desc = Object.getOwnPropertyDescriptor(m, k);
11
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
12
+ desc = { enumerable: true, get: function() { return m[k]; } };
13
+ }
14
+ Object.defineProperty(o, k2, desc);
15
+ }) : (function(o, m, k, k2) {
16
+ if (k2 === undefined) k2 = k;
17
+ o[k2] = m[k];
18
+ }));
19
+ var __exportStar = (this && this.__exportStar) || function(m, exports) {
20
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
21
+ };
22
+ Object.defineProperty(exports, "__esModule", { value: true });
23
+ __exportStar(require("./accessors"), exports);
24
+ __exportStar(require("./module"), exports);
25
+ __exportStar(require("./singleton"), exports);
26
+ __exportStar(require("./type"), exports);
27
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/config/index.ts"],"names":[],"mappings":";AAAA;;;;;GAKG;;;;;;;;;;;;;;;;AAEH,8CAA4B;AAC5B,2CAAyB;AACzB,8CAA4B;AAC5B,yCAAuB"}
@@ -0,0 +1,23 @@
1
+ import { ObjectLiteral } from '../type';
2
+ import { ConfigContext, ConfigOptionsTransformer, ConfigOptionsValidators } from './type';
3
+ export declare class Config<O extends ObjectLiteral, I extends {
4
+ [K in keyof O]?: any;
5
+ } = O> {
6
+ protected options: Partial<O>;
7
+ protected defaults: O;
8
+ protected transformers: ConfigOptionsTransformer<O>;
9
+ protected validators: ConfigOptionsValidators<O>;
10
+ constructor(context: ConfigContext<O>);
11
+ set(value: O): this;
12
+ set<K extends keyof O>(key: K, value: O[K]): this;
13
+ setRaw(value: I): this;
14
+ setRaw<K extends keyof O>(key: K, value: I[K]): this;
15
+ has(key: keyof O): boolean;
16
+ reset(): this;
17
+ reset(key: keyof O): this;
18
+ reset(keys: (keyof O)[]): this;
19
+ get<K extends keyof O>(key: K): O[K];
20
+ setDefault<K extends keyof O>(key: K, value: O[K]): this;
21
+ getDefault<K extends keyof O>(key: K): O[K];
22
+ }
23
+ //# sourceMappingURL=module.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"module.d.ts","sourceRoot":"","sources":["../../src/config/module.ts"],"names":[],"mappings":"AAQA,OAAO,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AACxC,OAAO,EACH,aAAa,EAA2B,wBAAwB,EAAE,uBAAuB,EAC5F,MAAM,QAAQ,CAAC;AAGhB,qBAAa,MAAM,CACf,CAAC,SAAS,aAAa,EACvB,CAAC,SAAS;KAAG,CAAC,IAAI,MAAM,CAAC,CAAC,CAAC,EAAE,GAAG;CAAE,GAAG,CAAC;IAEtC,SAAS,CAAC,OAAO,EAAG,OAAO,CAAC,CAAC,CAAC,CAAC;IAE/B,SAAS,CAAC,QAAQ,EAAE,CAAC,CAAC;IAEtB,SAAS,CAAC,YAAY,EAAE,wBAAwB,CAAC,CAAC,CAAC,CAAC;IAEpD,SAAS,CAAC,UAAU,EAAG,uBAAuB,CAAC,CAAC,CAAC,CAAC;gBAItC,OAAO,EAAE,aAAa,CAAC,CAAC,CAAC;IASrC,GAAG,CAAC,KAAK,EAAE,CAAC,GAAI,IAAI;IAEpB,GAAG,CAAC,CAAC,SAAS,MAAM,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,CAAC,GAAI,IAAI;IAuClD,MAAM,CAAC,KAAK,EAAE,CAAC,GAAI,IAAI;IAEvB,MAAM,CAAC,CAAC,SAAS,MAAM,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,CAAC,GAAI,IAAI;IAqBrD,GAAG,CAAC,GAAG,EAAE,MAAM,CAAC,GAAI,OAAO;IAM3B,KAAK,IAAK,IAAI;IAEd,KAAK,CAAC,GAAG,EAAE,MAAM,CAAC,GAAI,IAAI;IAE1B,KAAK,CAAC,IAAI,EAAE,CAAC,MAAM,CAAC,CAAC,EAAE,GAAI,IAAI;IAyB/B,GAAG,CAAC,CAAC,SAAS,MAAM,CAAC,EAAE,GAAG,EAAE,CAAC,GAAI,CAAC,CAAC,CAAC,CAAC;IAUrC,UAAU,CAAC,CAAC,SAAS,MAAM,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,CAAC,GAAI,IAAI;IA6BzD,UAAU,CAAC,CAAC,SAAS,MAAM,CAAC,EAAE,GAAG,EAAE,CAAC,GAAI,CAAC,CAAC,CAAC,CAAC;CAG/C"}
@@ -0,0 +1,126 @@
1
+ "use strict";
2
+ /*
3
+ * Copyright (c) 2022-2022.
4
+ * Author Peter Placzek (tada5hi)
5
+ * For the full copyright and license information,
6
+ * view the LICENSE file that was distributed with this source code.
7
+ */
8
+ Object.defineProperty(exports, "__esModule", { value: true });
9
+ exports.Config = void 0;
10
+ const smob_1 = require("smob");
11
+ const utils_1 = require("./utils");
12
+ class Config {
13
+ // -------------------------------------------------
14
+ constructor(context) {
15
+ this.options = context.options || {};
16
+ this.defaults = context.defaults;
17
+ this.transformers = context.transformers || {};
18
+ this.validators = context.validators || {};
19
+ }
20
+ set(key, value) {
21
+ /* istanbul ignore next */
22
+ if (typeof key === 'object') {
23
+ const keys = Object.keys(key);
24
+ for (let i = 0; i < keys.length; i++) {
25
+ this.set(keys[i], key[keys[i]]);
26
+ }
27
+ return this;
28
+ }
29
+ const validator = this.validators[key];
30
+ if (validator) {
31
+ try {
32
+ const output = validator(value);
33
+ if ((0, utils_1.isConfigOptionValidatorResult)(output)) {
34
+ if (output.success) {
35
+ this.options[key] = output.data;
36
+ }
37
+ }
38
+ else {
39
+ /* istanbul ignore next */
40
+ this.options[key] = value;
41
+ }
42
+ }
43
+ catch (e) {
44
+ // do nothing
45
+ }
46
+ return this;
47
+ }
48
+ /* istanbul ignore next */
49
+ this.options[key] = value;
50
+ /* istanbul ignore next */
51
+ return this;
52
+ }
53
+ setRaw(key, value) {
54
+ if (typeof key === 'object') {
55
+ const keys = Object.keys(key);
56
+ for (let i = 0; i < keys.length; i++) {
57
+ this.setRaw(keys[i], key[keys[i]]);
58
+ }
59
+ return this;
60
+ }
61
+ if (this.transformers[key]) {
62
+ this.set(key, this.transformers[key](value));
63
+ }
64
+ else if (this.validators[key]) {
65
+ this.set(key, value);
66
+ }
67
+ return this;
68
+ }
69
+ has(key) {
70
+ return (0, smob_1.hasOwnProperty)(this.options, key);
71
+ }
72
+ reset(key) {
73
+ if (typeof key === 'undefined') {
74
+ this.options = {};
75
+ return this;
76
+ }
77
+ if (Array.isArray(key)) {
78
+ for (let i = 0; i < key.length; i++) {
79
+ this.reset(key[i]);
80
+ }
81
+ return this;
82
+ }
83
+ if ((0, smob_1.hasOwnProperty)(this.options, key)) {
84
+ delete this.options[key];
85
+ }
86
+ return this;
87
+ }
88
+ // ----------------------------------------------
89
+ get(key) {
90
+ if ((0, smob_1.hasOwnProperty)(this.options, key)) {
91
+ return this.options[key];
92
+ }
93
+ return this.defaults[key];
94
+ }
95
+ // -------------------------------------------------
96
+ setDefault(key, value) {
97
+ const validator = this.validators[key];
98
+ if (validator) {
99
+ try {
100
+ const output = validator(value);
101
+ if ((0, utils_1.isConfigOptionValidatorResult)(output)) {
102
+ if (output.success) {
103
+ this.defaults[key] = output.data;
104
+ }
105
+ }
106
+ else {
107
+ /* istanbul ignore next */
108
+ this.defaults[key] = value;
109
+ }
110
+ }
111
+ catch (e) {
112
+ // do nothing
113
+ }
114
+ return this;
115
+ }
116
+ /* istanbul ignore next */
117
+ this.defaults[key] = value;
118
+ /* istanbul ignore next */
119
+ return this;
120
+ }
121
+ getDefault(key) {
122
+ return this.defaults[key];
123
+ }
124
+ }
125
+ exports.Config = Config;
126
+ //# sourceMappingURL=module.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"module.js","sourceRoot":"","sources":["../../src/config/module.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,4 @@
1
+ import { Config } from './module';
2
+ import { ConfigOptions, ConfigOptionsInput } from './type';
3
+ export declare function useConfig(): Config<ConfigOptions, ConfigOptionsInput>;
4
+ //# sourceMappingURL=singleton.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"singleton.d.ts","sourceRoot":"","sources":["../../src/config/singleton.ts"],"names":[],"mappings":"AAQA,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAClC,OAAO,EACH,aAAa,EAAE,kBAAkB,EACpC,MAAM,QAAQ,CAAC;AAKhB,wBAAgB,SAAS,IAAK,MAAM,CAAC,aAAa,EAAE,kBAAkB,CAAC,CAiCtE"}
@@ -0,0 +1,50 @@
1
+ "use strict";
2
+ /*
3
+ * Copyright (c) 2021.
4
+ * Author Peter Placzek (tada5hi)
5
+ * For the full copyright and license information,
6
+ * view the LICENSE file that was distributed with this source code.
7
+ */
8
+ var __importDefault = (this && this.__importDefault) || function (mod) {
9
+ return (mod && mod.__esModule) ? mod : { "default": mod };
10
+ };
11
+ Object.defineProperty(exports, "__esModule", { value: true });
12
+ exports.useConfig = void 0;
13
+ const zod_1 = __importDefault(require("zod"));
14
+ const module_1 = require("./module");
15
+ const utils_1 = require("./utils");
16
+ let instance;
17
+ function useConfig() {
18
+ if (typeof instance !== 'undefined') {
19
+ return instance;
20
+ }
21
+ instance = new module_1.Config({
22
+ defaults: {
23
+ env: process.env.NODE_ENV || 'development',
24
+ trustProxy: () => false,
25
+ subdomainOffset: 2,
26
+ etag: (0, utils_1.buildConfigEtagOption)(),
27
+ proxyIpHeader: 'X-Forwarded-For',
28
+ proxyIpMax: 0,
29
+ caseSensitive: true,
30
+ requestIdHeader: 'request-id',
31
+ },
32
+ transformers: {
33
+ etag: (value) => (0, utils_1.buildConfigEtagOption)(value),
34
+ trustProxy: (value) => (0, utils_1.buildConfigTrustProxyOption)(value),
35
+ },
36
+ validators: {
37
+ env: (value) => zod_1.default.string().safeParse(value),
38
+ trustProxy: (value) => zod_1.default.any().safeParse(value),
39
+ subdomainOffset: (value) => zod_1.default.number().nonnegative().safeParse(value),
40
+ etag: (value) => zod_1.default.any().safeParse(value),
41
+ proxyIpHeader: (value) => zod_1.default.string().min(3).safeParse(value),
42
+ proxyIpMax: (value) => zod_1.default.number().nonnegative().safeParse(value),
43
+ caseSensitive: (value) => zod_1.default.boolean().safeParse(value),
44
+ requestIdHeader: (value) => zod_1.default.string().min(3).safeParse(value),
45
+ },
46
+ });
47
+ return instance;
48
+ }
49
+ exports.useConfig = useConfig;
50
+ //# sourceMappingURL=singleton.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"singleton.js","sourceRoot":"","sources":["../../src/config/singleton.ts"],"names":[],"mappings":";AAAA;;;;;GAKG;;;;;;AAEH,8CAAsB;AACtB,qCAAkC;AAIlC,mCAA6E;AAE7E,IAAI,QAAgE,CAAC;AAErE,SAAgB,SAAS;IACrB,IAAI,OAAO,QAAQ,KAAK,WAAW,EAAE;QACjC,OAAO,QAAQ,CAAC;KACnB;IAED,QAAQ,GAAG,IAAI,eAAM,CAAoC;QACrD,QAAQ,EAAE;YACN,GAAG,EAAE,OAAO,CAAC,GAAG,CAAC,QAAQ,IAAI,aAAa;YAC1C,UAAU,EAAE,GAAG,EAAE,CAAC,KAAK;YACvB,eAAe,EAAE,CAAC;YAClB,IAAI,EAAE,IAAA,6BAAqB,GAAE;YAC7B,aAAa,EAAE,iBAAiB;YAChC,UAAU,EAAE,CAAC;YACb,aAAa,EAAE,IAAI;YACnB,eAAe,EAAE,YAAY;SAChC;QACD,YAAY,EAAE;YACV,IAAI,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,IAAA,6BAAqB,EAAC,KAAkB,CAAC;YAC1D,UAAU,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,IAAA,mCAA2B,EAAC,KAAwB,CAAC;SAC/E;QACD,UAAU,EAAE;YACR,GAAG,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,aAAG,CAAC,MAAM,EAAE,CAAC,SAAS,CAAC,KAAK,CAAC;YAC7C,UAAU,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,aAAG,CAAC,GAAG,EAAE,CAAC,SAAS,CAAC,KAAK,CAAC;YACjD,eAAe,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,aAAG,CAAC,MAAM,EAAE,CAAC,WAAW,EAAE,CAAC,SAAS,CAAC,KAAK,CAAC;YACvE,IAAI,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,aAAG,CAAC,GAAG,EAAE,CAAC,SAAS,CAAC,KAAK,CAAC;YAC3C,aAAa,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,aAAG,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,KAAK,CAAC;YAC9D,UAAU,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,aAAG,CAAC,MAAM,EAAE,CAAC,WAAW,EAAE,CAAC,SAAS,CAAC,KAAK,CAAC;YAClE,aAAa,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,aAAG,CAAC,OAAO,EAAE,CAAC,SAAS,CAAC,KAAK,CAAC;YACxD,eAAe,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,aAAG,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,KAAK,CAAC;SACnE;KACJ,CAAC,CAAC;IAEH,OAAO,QAAQ,CAAC;AACpB,CAAC;AAjCD,8BAiCC"}
@@ -0,0 +1,78 @@
1
+ /// <reference types="node" />
2
+ import { Options as EtagBaseOptions } from 'etag';
3
+ import { ObjectLiteral } from '../type';
4
+ export type EtagOptions = EtagBaseOptions & {
5
+ /**
6
+ * Threshold of bytes from which an etag is generated.
7
+ *
8
+ * default: undefined
9
+ */
10
+ threshold?: number;
11
+ };
12
+ export type EtagFn = (body: any, encoding?: BufferEncoding, size?: number) => string | undefined;
13
+ export type EtagInput = boolean | EtagOptions | EtagFn;
14
+ export type TrustProxyFn = (address: string, hop: number) => boolean;
15
+ export type TrustProxyInput = boolean | number | string | string[] | TrustProxyFn;
16
+ export type ConfigOptions = {
17
+ /**
18
+ * default: process.NODE_ENV
19
+ */
20
+ env: string;
21
+ /**
22
+ * default: () => false
23
+ */
24
+ trustProxy: TrustProxyFn;
25
+ /**
26
+ * default: 2
27
+ */
28
+ subdomainOffset: number;
29
+ /**
30
+ * default: () => true
31
+ */
32
+ etag: EtagFn;
33
+ /**
34
+ * Default: X-Forwarded-For
35
+ */
36
+ proxyIpHeader: string;
37
+ /**
38
+ * default: 0
39
+ */
40
+ proxyIpMax?: number;
41
+ /**
42
+ * default: true
43
+ */
44
+ caseSensitive: boolean;
45
+ /**
46
+ * default: request-id
47
+ */
48
+ requestIdHeader: string;
49
+ };
50
+ export type ConfigOptionsInput = {
51
+ /**
52
+ * default: true
53
+ */
54
+ etag?: EtagInput;
55
+ /**
56
+ * default: false
57
+ */
58
+ trustProxy?: TrustProxyInput;
59
+ } & Partial<Omit<ConfigOptions, 'etag' | 'trustProxy'>>;
60
+ export type ConfigOptionTransformer<V> = (value: unknown) => V;
61
+ export type ConfigOptionsTransformer<T extends ObjectLiteral> = {
62
+ [K in keyof T]?: ConfigOptionTransformer<T[K]>;
63
+ };
64
+ export type ConfigOptionValidatorResult<V> = {
65
+ success: boolean;
66
+ data: V;
67
+ };
68
+ export type ConfigOptionValidator<V> = (value: unknown) => unknown;
69
+ export type ConfigOptionsValidators<T extends ObjectLiteral> = {
70
+ [K in keyof T]?: ConfigOptionValidator<T[K]>;
71
+ };
72
+ export type ConfigContext<T extends ObjectLiteral> = {
73
+ defaults: T;
74
+ options?: Partial<T>;
75
+ transformers?: ConfigOptionsTransformer<T>;
76
+ validators?: ConfigOptionsValidators<T>;
77
+ };
78
+ //# sourceMappingURL=type.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"type.d.ts","sourceRoot":"","sources":["../../src/config/type.ts"],"names":[],"mappings":";AAOA,OAAO,EAAE,OAAO,IAAI,eAAe,EAAE,MAAM,MAAM,CAAC;AAClD,OAAO,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AAExC,MAAM,MAAM,WAAW,GAAG,eAAe,GAAG;IACxC;;;;OAIG;IACH,SAAS,CAAC,EAAE,MAAM,CAAA;CACrB,CAAC;AAEF,MAAM,MAAM,MAAM,GAAG,CAAC,IAAI,EAAE,GAAG,EAAE,QAAQ,CAAC,EAAE,cAAc,EAAE,IAAI,CAAC,EAAE,MAAM,KAAK,MAAM,GAAG,SAAS,CAAC;AACjG,MAAM,MAAM,SAAS,GAAG,OAAO,GAAG,WAAW,GAAG,MAAM,CAAC;AAEvD,MAAM,MAAM,YAAY,GAAG,CAAC,OAAO,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,KAAK,OAAO,CAAC;AACrE,MAAM,MAAM,eAAe,GAAG,OAAO,GAAG,MAAM,GAAG,MAAM,GAAG,MAAM,EAAE,GAAG,YAAY,CAAC;AAElF,MAAM,MAAM,aAAa,GAAG;IACxB;;OAEG;IACH,GAAG,EAAE,MAAM,CAAC;IACZ;;OAEG;IACH,UAAU,EAAE,YAAY,CAAC;IACzB;;OAEG;IACH,eAAe,EAAE,MAAM,CAAC;IACxB;;OAEG;IACH,IAAI,EAAE,MAAM,CAAC;IAEb;;OAEG;IACH,aAAa,EAAE,MAAM,CAAC;IAEtB;;OAEG;IACH,UAAU,CAAC,EAAE,MAAM,CAAC;IAEpB;;OAEG;IACH,aAAa,EAAE,OAAO,CAAC;IAEvB;;OAEG;IACH,eAAe,EAAE,MAAM,CAAC;CAC3B,CAAC;AAEF,MAAM,MAAM,kBAAkB,GAAG;IAC7B;;OAEG;IACH,IAAI,CAAC,EAAE,SAAS,CAAC;IAEjB;;OAEG;IACH,UAAU,CAAC,EAAE,eAAe,CAAC;CAChC,GAAG,OAAO,CAAC,IAAI,CAAC,aAAa,EAAE,MAAM,GAAG,YAAY,CAAC,CAAC,CAAC;AACxD,MAAM,MAAM,uBAAuB,CAAC,CAAC,IAAI,CAAC,KAAK,EAAE,OAAO,KAAK,CAAC,CAAC;AAE/D,MAAM,MAAM,wBAAwB,CAAC,CAAC,SAAS,aAAa,IAAI;KAC3D,CAAC,IAAI,MAAM,CAAC,CAAC,CAAC,EAAE,uBAAuB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;CACjD,CAAC;AAEF,MAAM,MAAM,2BAA2B,CAAC,CAAC,IAAI;IACzC,OAAO,EAAE,OAAO,CAAC;IACjB,IAAI,EAAE,CAAC,CAAA;CACV,CAAC;AAEF,MAAM,MAAM,qBAAqB,CAAC,CAAC,IAAI,CAAC,KAAK,EAAE,OAAO,KAAK,OAAO,CAAC;AAEnE,MAAM,MAAM,uBAAuB,CAAC,CAAC,SAAS,aAAa,IAAI;KAC1D,CAAC,IAAI,MAAM,CAAC,CAAC,CAAC,EAAE,qBAAqB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;CAC/C,CAAC;AAEF,MAAM,MAAM,aAAa,CAAC,CAAC,SAAS,aAAa,IAAI;IACjD,QAAQ,EAAE,CAAC,CAAC;IACZ,OAAO,CAAC,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC;IACrB,YAAY,CAAC,EAAE,wBAAwB,CAAC,CAAC,CAAC,CAAC;IAC3C,UAAU,CAAC,EAAE,uBAAuB,CAAC,CAAC,CAAC,CAAA;CAC1C,CAAC"}
@@ -0,0 +1,9 @@
1
+ "use strict";
2
+ /*
3
+ * Copyright (c) 2022-2022.
4
+ * Author Peter Placzek (tada5hi)
5
+ * For the full copyright and license information,
6
+ * view the LICENSE file that was distributed with this source code.
7
+ */
8
+ Object.defineProperty(exports, "__esModule", { value: true });
9
+ //# sourceMappingURL=type.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"type.js","sourceRoot":"","sources":["../../src/config/type.ts"],"names":[],"mappings":";AAAA;;;;;GAKG"}
@@ -0,0 +1,3 @@
1
+ import { EtagFn, EtagOptions } from '../type';
2
+ export declare function buildConfigEtagOption(input?: boolean | EtagOptions | EtagFn): EtagFn;
3
+ //# sourceMappingURL=etag.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"etag.d.ts","sourceRoot":"","sources":["../../../src/config/utils/etag.ts"],"names":[],"mappings":"AASA,OAAO,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;AAE9C,wBAAgB,qBAAqB,CAAC,KAAK,CAAC,EAAE,OAAO,GAAG,WAAW,GAAG,MAAM,GAAI,MAAM,CAkCrF"}
@@ -0,0 +1,43 @@
1
+ "use strict";
2
+ /*
3
+ * Copyright (c) 2022.
4
+ * Author Peter Placzek (tada5hi)
5
+ * For the full copyright and license information,
6
+ * view the LICENSE file that was distributed with this source code.
7
+ */
8
+ var __importDefault = (this && this.__importDefault) || function (mod) {
9
+ return (mod && mod.__esModule) ? mod : { "default": mod };
10
+ };
11
+ Object.defineProperty(exports, "__esModule", { value: true });
12
+ exports.buildConfigEtagOption = void 0;
13
+ const etag_1 = __importDefault(require("etag"));
14
+ const smob_1 = require("smob");
15
+ function buildConfigEtagOption(input) {
16
+ if (typeof input === 'function') {
17
+ return input;
18
+ }
19
+ input = input !== null && input !== void 0 ? input : true;
20
+ if (input === false) {
21
+ return () => undefined;
22
+ }
23
+ let options = {
24
+ weak: true,
25
+ };
26
+ if ((0, smob_1.isObject)(input)) {
27
+ options = (0, smob_1.merge)(input, options);
28
+ }
29
+ return (body, encoding, size) => {
30
+ const buff = Buffer.isBuffer(body) ?
31
+ body :
32
+ Buffer.from(body, encoding);
33
+ if (typeof options.threshold !== 'undefined') {
34
+ size = size !== null && size !== void 0 ? size : Buffer.byteLength(buff);
35
+ if (size <= options.threshold) {
36
+ return undefined;
37
+ }
38
+ }
39
+ return (0, etag_1.default)(buff, options);
40
+ };
41
+ }
42
+ exports.buildConfigEtagOption = buildConfigEtagOption;
43
+ //# sourceMappingURL=etag.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"etag.js","sourceRoot":"","sources":["../../../src/config/utils/etag.ts"],"names":[],"mappings":";AAAA;;;;;GAKG;;;;;;AAEH,gDAAwB;AACxB,+BAAuC;AAGvC,SAAgB,qBAAqB,CAAC,KAAsC;IACxE,IAAI,OAAO,KAAK,KAAK,UAAU,EAAE;QAC7B,OAAO,KAAK,CAAC;KAChB;IAED,KAAK,GAAG,KAAK,aAAL,KAAK,cAAL,KAAK,GAAI,IAAI,CAAC;IAEtB,IAAI,KAAK,KAAK,KAAK,EAAE;QACjB,OAAO,GAAG,EAAE,CAAC,SAAS,CAAC;KAC1B;IAED,IAAI,OAAO,GAAiB;QACxB,IAAI,EAAE,IAAI;KACb,CAAC;IAEF,IAAI,IAAA,eAAQ,EAAC,KAAK,CAAC,EAAE;QACjB,OAAO,GAAG,IAAA,YAAK,EAAC,KAAK,EAAE,OAAO,CAAC,CAAC;KACnC;IAED,OAAO,CAAC,IAAS,EAAE,QAAyB,EAAE,IAAa,EAAE,EAAE;QAC3D,MAAM,IAAI,GAAG,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC;YAChC,IAAI,CAAC,CAAC;YACN,MAAM,CAAC,IAAI,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;QAEhC,IAAI,OAAO,OAAO,CAAC,SAAS,KAAK,WAAW,EAAE;YAC1C,IAAI,GAAG,IAAI,aAAJ,IAAI,cAAJ,IAAI,GAAI,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;YAEvC,IAAI,IAAI,IAAI,OAAO,CAAC,SAAS,EAAE;gBAC3B,OAAO,SAAS,CAAC;aACpB;SACJ;QAED,OAAO,IAAA,cAAI,EAAC,IAAI,EAAE,OAAO,CAAC,CAAC;IAC/B,CAAC,CAAC;AACN,CAAC;AAlCD,sDAkCC"}
@@ -0,0 +1,4 @@
1
+ export * from './etag';
2
+ export * from './trust-proxy';
3
+ export * from './validator';
4
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/config/utils/index.ts"],"names":[],"mappings":"AAOA,cAAc,QAAQ,CAAC;AACvB,cAAc,eAAe,CAAC;AAC9B,cAAc,aAAa,CAAC"}
@@ -0,0 +1,26 @@
1
+ "use strict";
2
+ /*
3
+ * Copyright (c) 2022.
4
+ * Author Peter Placzek (tada5hi)
5
+ * For the full copyright and license information,
6
+ * view the LICENSE file that was distributed with this source code.
7
+ */
8
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
9
+ if (k2 === undefined) k2 = k;
10
+ var desc = Object.getOwnPropertyDescriptor(m, k);
11
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
12
+ desc = { enumerable: true, get: function() { return m[k]; } };
13
+ }
14
+ Object.defineProperty(o, k2, desc);
15
+ }) : (function(o, m, k, k2) {
16
+ if (k2 === undefined) k2 = k;
17
+ o[k2] = m[k];
18
+ }));
19
+ var __exportStar = (this && this.__exportStar) || function(m, exports) {
20
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
21
+ };
22
+ Object.defineProperty(exports, "__esModule", { value: true });
23
+ __exportStar(require("./etag"), exports);
24
+ __exportStar(require("./trust-proxy"), exports);
25
+ __exportStar(require("./validator"), exports);
26
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/config/utils/index.ts"],"names":[],"mappings":";AAAA;;;;;GAKG;;;;;;;;;;;;;;;;AAEH,yCAAuB;AACvB,gDAA8B;AAC9B,8CAA4B"}
@@ -0,0 +1,3 @@
1
+ import { TrustProxyFn } from '../type';
2
+ export declare function buildConfigTrustProxyOption(input?: boolean | number | string | string[] | TrustProxyFn): TrustProxyFn;
3
+ //# sourceMappingURL=trust-proxy.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"trust-proxy.d.ts","sourceRoot":"","sources":["../../../src/config/utils/trust-proxy.ts"],"names":[],"mappings":"AAQA,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AAEvC,wBAAgB,2BAA2B,CACvC,KAAK,CAAC,EAAE,OAAO,GAAG,MAAM,GAAG,MAAM,GAAG,MAAM,EAAE,GAAG,YAAY,GAC3D,YAAY,CAmBf"}
@@ -0,0 +1,31 @@
1
+ "use strict";
2
+ /*
3
+ * Copyright (c) 2022.
4
+ * Author Peter Placzek (tada5hi)
5
+ * For the full copyright and license information,
6
+ * view the LICENSE file that was distributed with this source code.
7
+ */
8
+ var __importDefault = (this && this.__importDefault) || function (mod) {
9
+ return (mod && mod.__esModule) ? mod : { "default": mod };
10
+ };
11
+ Object.defineProperty(exports, "__esModule", { value: true });
12
+ exports.buildConfigTrustProxyOption = void 0;
13
+ const proxy_addr_1 = __importDefault(require("proxy-addr"));
14
+ function buildConfigTrustProxyOption(input) {
15
+ if (typeof input === 'function') {
16
+ return input;
17
+ }
18
+ if (input === true) {
19
+ return () => true;
20
+ }
21
+ if (typeof input === 'number') {
22
+ return (address, hop) => hop < input;
23
+ }
24
+ if (typeof input === 'string') {
25
+ input = input.split(',')
26
+ .map((value) => value.trim());
27
+ }
28
+ return proxy_addr_1.default.compile(input || []);
29
+ }
30
+ exports.buildConfigTrustProxyOption = buildConfigTrustProxyOption;
31
+ //# sourceMappingURL=trust-proxy.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"trust-proxy.js","sourceRoot":"","sources":["../../../src/config/utils/trust-proxy.ts"],"names":[],"mappings":";AAAA;;;;;GAKG;;;;;;AAEH,4DAAmC;AAGnC,SAAgB,2BAA2B,CACvC,KAA2D;IAE3D,IAAI,OAAO,KAAK,KAAK,UAAU,EAAE;QAC7B,OAAO,KAAK,CAAC;KAChB;IAED,IAAI,KAAK,KAAK,IAAI,EAAE;QAChB,OAAO,GAAG,EAAE,CAAC,IAAI,CAAC;KACrB;IAED,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE;QAC3B,OAAO,CAAC,OAAO,EAAE,GAAG,EAAE,EAAE,CAAC,GAAG,GAAI,KAAgB,CAAC;KACpD;IAED,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE;QAC3B,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC;aACnB,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC;KACrC;IAED,OAAO,oBAAS,CAAC,OAAO,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC;AAC1C,CAAC;AArBD,kEAqBC"}
@@ -0,0 +1,3 @@
1
+ import { ConfigOptionValidatorResult } from '../type';
2
+ export declare function isConfigOptionValidatorResult<V>(value: unknown): value is ConfigOptionValidatorResult<V>;
3
+ //# sourceMappingURL=validator.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"validator.d.ts","sourceRoot":"","sources":["../../../src/config/utils/validator.ts"],"names":[],"mappings":"AASA,OAAO,EAAE,2BAA2B,EAAE,MAAM,SAAS,CAAC;AAEtD,wBAAgB,6BAA6B,CAAC,CAAC,EAAE,KAAK,EAAE,OAAO,GAAI,KAAK,IAAI,2BAA2B,CAAC,CAAC,CAAC,CAQzG"}
@@ -0,0 +1,20 @@
1
+ "use strict";
2
+ /*
3
+ * Copyright (c) 2022.
4
+ * Author Peter Placzek (tada5hi)
5
+ * For the full copyright and license information,
6
+ * view the LICENSE file that was distributed with this source code.
7
+ */
8
+ Object.defineProperty(exports, "__esModule", { value: true });
9
+ exports.isConfigOptionValidatorResult = void 0;
10
+ const smob_1 = require("smob");
11
+ const utils_1 = require("../../utils");
12
+ function isConfigOptionValidatorResult(value) {
13
+ return (0, utils_1.isObject)(value) &&
14
+ (0, smob_1.hasOwnProperty)(value, 'success') &&
15
+ typeof value.success === 'boolean' &&
16
+ ((0, smob_1.hasOwnProperty)(value, 'data') ||
17
+ (0, smob_1.hasOwnProperty)(value, 'error'));
18
+ }
19
+ exports.isConfigOptionValidatorResult = isConfigOptionValidatorResult;
20
+ //# sourceMappingURL=validator.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"validator.js","sourceRoot":"","sources":["../../../src/config/utils/validator.ts"],"names":[],"mappings":";AAAA;;;;;GAKG;;;AAEH,+BAAsC;AACtC,uCAAuC;AAGvC,SAAgB,6BAA6B,CAAI,KAAc;IAC3D,OAAO,IAAA,gBAAQ,EAAC,KAAK,CAAC;QAClB,IAAA,qBAAc,EAAC,KAAK,EAAE,SAAS,CAAC;QAChC,OAAO,KAAK,CAAC,OAAO,KAAK,SAAS;QAClC,CACI,IAAA,qBAAc,EAAC,KAAK,EAAE,MAAM,CAAC;YAC7B,IAAA,qBAAc,EAAC,KAAK,EAAE,OAAO,CAAC,CACjC,CAAC;AACV,CAAC;AARD,sEAQC"}
@@ -19,8 +19,12 @@ export declare enum HeaderName {
19
19
  CONTENT_LENGTH = "content-length",
20
20
  CONTENT_TYPE = "content-type",
21
21
  COOKIE = "cookie",
22
+ HOST = "host",
22
23
  LAST_MODIFIED = "last-modified",
23
24
  LOCATION = "location",
24
- SET_COOKIE = "set-cookie"
25
+ SET_COOKIE = "set-cookie",
26
+ X_FORWARDED_HOST = "x-forwarded-host",
27
+ X_FORWARDED_FOR = "x-forwarded-for",
28
+ X_FORWARDED_PROTO = "x-forwarded-proto"
25
29
  }
26
30
  //# sourceMappingURL=constants.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../src/constants.ts"],"names":[],"mappings":"AAOA,oBAAY,MAAM;IACd,GAAG,QAAQ;IACX,IAAI,SAAS;IACb,GAAG,QAAQ;IACX,KAAK,UAAU;IACf,MAAM,WAAW;IACjB,OAAO,YAAY;IACnB,IAAI,SAAS;CAChB;AAED,oBAAY,UAAU;IAClB,MAAM,WAAW;IACjB,cAAc,mBAAmB;IACjC,eAAe,oBAAoB;IACnC,eAAe,oBAAoB;IACnC,KAAK,UAAU;IACf,aAAa,kBAAkB;IAC/B,mBAAmB,wBAAwB;IAC3C,gBAAgB,qBAAqB;IACrC,cAAc,mBAAmB;IACjC,YAAY,iBAAiB;IAC7B,MAAM,WAAW;IACjB,aAAa,kBAAkB;IAC/B,QAAQ,aAAa;IACrB,UAAU,eAAe;CAC5B"}
1
+ {"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../src/constants.ts"],"names":[],"mappings":"AAOA,oBAAY,MAAM;IACd,GAAG,QAAQ;IACX,IAAI,SAAS;IACb,GAAG,QAAQ;IACX,KAAK,UAAU;IACf,MAAM,WAAW;IACjB,OAAO,YAAY;IACnB,IAAI,SAAS;CAChB;AAED,oBAAY,UAAU;IAClB,MAAM,WAAW;IACjB,cAAc,mBAAmB;IACjC,eAAe,oBAAoB;IACnC,eAAe,oBAAoB;IACnC,KAAK,UAAU;IACf,aAAa,kBAAkB;IAC/B,mBAAmB,wBAAwB;IAC3C,gBAAgB,qBAAqB;IACrC,cAAc,mBAAmB;IACjC,YAAY,iBAAiB;IAC7B,MAAM,WAAW;IACjB,IAAI,SAAS;IACb,aAAa,kBAAkB;IAC/B,QAAQ,aAAa;IACrB,UAAU,eAAe;IACzB,gBAAgB,qBAAqB;IACrC,eAAe,oBAAoB;IACnC,iBAAiB,sBAAsB;CAC1C"}
package/dist/constants.js CHANGED
@@ -30,8 +30,12 @@ var HeaderName;
30
30
  HeaderName["CONTENT_LENGTH"] = "content-length";
31
31
  HeaderName["CONTENT_TYPE"] = "content-type";
32
32
  HeaderName["COOKIE"] = "cookie";
33
+ HeaderName["HOST"] = "host";
33
34
  HeaderName["LAST_MODIFIED"] = "last-modified";
34
35
  HeaderName["LOCATION"] = "location";
35
36
  HeaderName["SET_COOKIE"] = "set-cookie";
37
+ HeaderName["X_FORWARDED_HOST"] = "x-forwarded-host";
38
+ HeaderName["X_FORWARDED_FOR"] = "x-forwarded-for";
39
+ HeaderName["X_FORWARDED_PROTO"] = "x-forwarded-proto";
36
40
  })(HeaderName = exports.HeaderName || (exports.HeaderName = {}));
37
41
  //# sourceMappingURL=constants.js.map