@famir/http-tools 0.0.2 → 0.0.4

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 (61) hide show
  1. package/README.md +1 -2
  2. package/dist/body.d.ts +6 -6
  3. package/dist/body.js +4 -4
  4. package/dist/body.js.map +1 -1
  5. package/dist/body.test.d.ts +1 -0
  6. package/dist/body.test.js +175 -0
  7. package/dist/body.test.js.map +1 -0
  8. package/dist/cheerio.d.ts +3 -4
  9. package/dist/cheerio.js +1 -4
  10. package/dist/cheerio.js.map +1 -1
  11. package/dist/content-type.d.ts +2 -6
  12. package/dist/content-type.js +3 -8
  13. package/dist/content-type.js.map +1 -1
  14. package/dist/cookies.d.ts +1 -13
  15. package/dist/cookies.js +3 -3
  16. package/dist/cookies.js.map +1 -1
  17. package/dist/cookies.test.d.ts +1 -0
  18. package/dist/cookies.test.js +365 -0
  19. package/dist/cookies.test.js.map +1 -0
  20. package/dist/headers.d.ts +5 -6
  21. package/dist/headers.js +5 -2
  22. package/dist/headers.js.map +1 -1
  23. package/dist/headers.test.d.ts +1 -0
  24. package/dist/headers.test.js +314 -0
  25. package/dist/headers.test.js.map +1 -0
  26. package/dist/isbot.js.map +1 -1
  27. package/dist/message.d.ts +11 -19
  28. package/dist/message.js +39 -37
  29. package/dist/message.js.map +1 -1
  30. package/dist/message.test.d.ts +1 -0
  31. package/dist/message.test.js +138 -0
  32. package/dist/message.test.js.map +1 -0
  33. package/dist/method.d.ts +2 -2
  34. package/dist/method.js +2 -1
  35. package/dist/method.js.map +1 -1
  36. package/dist/method.test.d.ts +1 -0
  37. package/dist/method.test.js +89 -0
  38. package/dist/method.test.js.map +1 -0
  39. package/dist/query-string.d.ts +4 -6
  40. package/dist/query-string.js +2 -7
  41. package/dist/query-string.js.map +1 -1
  42. package/dist/rewrite-url.js.map +1 -1
  43. package/dist/rewrite-url.test.d.ts +1 -0
  44. package/dist/rewrite-url.test.js +322 -0
  45. package/dist/rewrite-url.test.js.map +1 -0
  46. package/dist/status.d.ts +2 -2
  47. package/dist/status.js.map +1 -1
  48. package/dist/status.test.d.ts +1 -0
  49. package/dist/status.test.js +106 -0
  50. package/dist/status.test.js.map +1 -0
  51. package/dist/transforms.d.ts +3 -3
  52. package/dist/transforms.js.map +1 -1
  53. package/dist/ua-parser.d.ts +2 -1
  54. package/dist/ua-parser.js.map +1 -1
  55. package/dist/url.d.ts +7 -7
  56. package/dist/url.js +7 -7
  57. package/dist/url.js.map +1 -1
  58. package/dist/url.test.d.ts +1 -0
  59. package/dist/url.test.js +201 -0
  60. package/dist/url.test.js.map +1 -0
  61. package/package.json +16 -11
@@ -0,0 +1,314 @@
1
+ import assert from 'node:assert';
2
+ import { describe, it } from 'node:test';
3
+ import { HttpHeadersWrap } from './headers.js';
4
+ describe('HttpHeadersWrap', () => {
5
+ describe('fromScratch', () => {
6
+ it('should create wrapper from scratch', () => {
7
+ const headers = HttpHeadersWrap.fromScratch();
8
+ assert.strictEqual(headers.length, 0);
9
+ assert.deepStrictEqual(headers.toObject(), {});
10
+ });
11
+ });
12
+ describe('fromReq', () => {
13
+ it('should create wrapper from request object', () => {
14
+ const req = { headers: { HOST: 'example.com' } };
15
+ const headers = HttpHeadersWrap.fromReq(req);
16
+ assert.strictEqual(headers.get('host'), 'example.com');
17
+ assert.strictEqual(headers.get('Host'), 'example.com');
18
+ });
19
+ });
20
+ describe('clone', () => {
21
+ it('should clone wrapper', () => {
22
+ const original = new HttpHeadersWrap({ 'X-Test': 'value' });
23
+ const cloned = original.clone();
24
+ assert.deepStrictEqual(cloned, original);
25
+ assert.notStrictEqual(cloned, original);
26
+ });
27
+ it('should original and cloned objects are identicals', () => {
28
+ const original = new HttpHeadersWrap({ 'X-Test': 'value' });
29
+ const cloned = original.clone();
30
+ assert.deepStrictEqual(cloned.toObject(), original.toObject());
31
+ assert.notStrictEqual(cloned.toObject(), original.toObject());
32
+ });
33
+ it('should clone has independent state', () => {
34
+ const original = new HttpHeadersWrap({ 'X-TEST': 'value' });
35
+ const cloned = original.clone();
36
+ assert.strictEqual(original.getString('X-Test'), 'value');
37
+ cloned.set('X-Test', 'new-value');
38
+ assert.strictEqual(original.getString('X-Test'), 'value');
39
+ assert.strictEqual(cloned.getString('X-Test'), 'new-value');
40
+ });
41
+ });
42
+ describe('freeze', () => {
43
+ it('should freeze and prevent modifications', () => {
44
+ const headers = HttpHeadersWrap.fromScratch();
45
+ headers.freeze();
46
+ assert.strictEqual(headers.isFrozen, true);
47
+ assert.throws(() => headers.set('X-Test', 'value'), /frozen/);
48
+ });
49
+ it('should return this for chaining', () => {
50
+ const headers = HttpHeadersWrap.fromScratch();
51
+ const that = headers.freeze();
52
+ assert.strictEqual(that, headers);
53
+ });
54
+ });
55
+ describe('length', () => {
56
+ it('should return headers length', () => {
57
+ const headers = new HttpHeadersWrap({ 'X-One': 'value1' });
58
+ assert.strictEqual(headers.length, 1);
59
+ headers.set('X-Two', 'value2');
60
+ assert.strictEqual(headers.length, 2);
61
+ headers.set('X-Three', 'value3');
62
+ headers.set('X-Four', 'value4');
63
+ headers.set('X-Five', 'value5');
64
+ assert.strictEqual(headers.length, 5);
65
+ });
66
+ });
67
+ describe('get/set', () => {
68
+ it('should get header value', () => {
69
+ const headers = new HttpHeadersWrap({ 'X-TEST': 'value' });
70
+ assert.strictEqual(headers.get('x-test'), 'value');
71
+ assert.strictEqual(headers.get('X-Test'), 'value');
72
+ });
73
+ it('should set and get header value', () => {
74
+ const headers = HttpHeadersWrap.fromScratch();
75
+ headers.set('X-Test', 'value');
76
+ assert.strictEqual(headers.get('x-test'), 'value');
77
+ assert.strictEqual(headers.get('X-Test'), 'value');
78
+ });
79
+ it('should get string value', () => {
80
+ const headers = new HttpHeadersWrap({ 'ConTenT-TypE': 'text/html' });
81
+ assert.strictEqual(headers.getString('content-type'), 'text/html');
82
+ assert.strictEqual(headers.getString('Content-Type'), 'text/html');
83
+ });
84
+ it('should get first string of array values', () => {
85
+ const headers = new HttpHeadersWrap({ AccepT: ['text/html', 'text/css'] });
86
+ assert.strictEqual(headers.getString('accept'), 'text/html');
87
+ assert.strictEqual(headers.getString('Accept'), 'text/html');
88
+ });
89
+ it('should get header array of values', () => {
90
+ const headers = new HttpHeadersWrap({ AccepT: ['text/html', 'text/plain'] });
91
+ assert.deepStrictEqual(headers.getArray('accept'), ['text/html', 'text/plain']);
92
+ assert.deepStrictEqual(headers.getArray('Accept'), ['text/html', 'text/plain']);
93
+ });
94
+ it('should get undefined on non-existent header', () => {
95
+ const headers = HttpHeadersWrap.fromScratch();
96
+ assert.strictEqual(headers.get('X-Missing'), undefined);
97
+ assert.strictEqual(headers.getString('X-Missing'), undefined);
98
+ assert.strictEqual(headers.getArray('X-Missing'), undefined);
99
+ });
100
+ it('should return this for chaining', () => {
101
+ const headers = HttpHeadersWrap.fromScratch();
102
+ const that = headers.set('X-Test', 'value');
103
+ assert.strictEqual(that, headers);
104
+ });
105
+ });
106
+ describe('add value', () => {
107
+ it('should add value to non-existing header', () => {
108
+ const headers = HttpHeadersWrap.fromScratch();
109
+ headers.add('X-Test', 'value');
110
+ assert.deepStrictEqual(headers.get('X-Test'), 'value');
111
+ });
112
+ it('should add value to existing header string', () => {
113
+ const headers = new HttpHeadersWrap({ 'X-TEST': 'value1' });
114
+ headers.add('X-Test', 'value2');
115
+ assert.deepStrictEqual(headers.getArray('X-Test'), ['value1', 'value2']);
116
+ });
117
+ it('should add value to existing header array', () => {
118
+ const headers = new HttpHeadersWrap({ 'X-TEST': ['value1'] });
119
+ headers.add('X-Test', 'value2');
120
+ assert.deepStrictEqual(headers.getArray('X-Test'), ['value1', 'value2']);
121
+ });
122
+ it('should return this for chaining', () => {
123
+ const headers = HttpHeadersWrap.fromScratch();
124
+ const that = headers.add('X-Test', 'value');
125
+ assert.strictEqual(that, headers);
126
+ });
127
+ });
128
+ describe('has', () => {
129
+ it('should check if header exists', () => {
130
+ const headers = new HttpHeadersWrap({ 'X-TEST': 'value' });
131
+ assert.strictEqual(headers.has('x-test'), true);
132
+ assert.strictEqual(headers.has('X-Test'), true);
133
+ assert.strictEqual(headers.has('X-Missing'), false);
134
+ });
135
+ });
136
+ describe('delete', () => {
137
+ it('should delete single header', () => {
138
+ const headers = new HttpHeadersWrap({ 'X-TEST': 'value' });
139
+ headers.delete('X-Test');
140
+ assert.strictEqual(headers.get('X-Test'), undefined);
141
+ assert.strictEqual(headers.has('X-Test'), false);
142
+ });
143
+ it('should delete multiple headers', () => {
144
+ const headers = new HttpHeadersWrap({ 'X-ONE': 'value1', 'X-TWO': 'value2' });
145
+ headers.delete(['X-One', 'X-Two']);
146
+ assert.strictEqual(headers.get('X-One'), undefined);
147
+ assert.strictEqual(headers.has('X-One'), false);
148
+ assert.strictEqual(headers.get('X-Two'), undefined);
149
+ assert.strictEqual(headers.has('X-Two'), false);
150
+ });
151
+ it('should return this for chaining', () => {
152
+ const headers = HttpHeadersWrap.fromScratch();
153
+ const that = headers.delete('X-Test');
154
+ assert.strictEqual(that, headers);
155
+ });
156
+ });
157
+ describe('merge', () => {
158
+ it('should merge headers', () => {
159
+ const headers = HttpHeadersWrap.fromScratch();
160
+ headers.merge({ 'X-One': 'value1', 'X-Two': 'value2' });
161
+ assert.strictEqual(headers.get('X-One'), 'value1');
162
+ assert.strictEqual(headers.get('X-Two'), 'value2');
163
+ });
164
+ it('should return this for chaining', () => {
165
+ const headers = HttpHeadersWrap.fromScratch();
166
+ const that = headers.merge({});
167
+ assert.strictEqual(that, headers);
168
+ });
169
+ });
170
+ describe('content-type', () => {
171
+ it('should get null if content-type header not exists', () => {
172
+ const headers = HttpHeadersWrap.fromScratch();
173
+ assert.deepStrictEqual(headers.getContentType(), null);
174
+ });
175
+ it('should get parsed content-type', () => {
176
+ const headers = new HttpHeadersWrap({ 'CONTENT-TYPE': 'text/plain; charset=utf-8' });
177
+ const contentType = { type: 'text/plain', parameters: { charset: 'utf-8' } };
178
+ assert.deepEqual(headers.getContentType(), contentType);
179
+ });
180
+ it('should set content-type from object', () => {
181
+ const headers = HttpHeadersWrap.fromScratch();
182
+ const contentType = { type: 'text/html', parameters: { charset: 'utf-8' } };
183
+ headers.setContentType(contentType);
184
+ assert.strictEqual(headers.get('Content-Type'), 'text/html; charset=utf-8');
185
+ });
186
+ it('should set and get content-type object', () => {
187
+ const headers = HttpHeadersWrap.fromScratch();
188
+ const contentType = { type: 'text/plain', parameters: { charset: 'utf-8' } };
189
+ headers.setContentType(contentType);
190
+ assert.deepEqual(headers.getContentType(), contentType);
191
+ });
192
+ it('should cache content-type object', () => {
193
+ const headers = new HttpHeadersWrap({ 'CONTENT-TYPE': 'text/html' });
194
+ const contentType_1 = headers.getContentType();
195
+ const contentType_2 = headers.getContentType();
196
+ assert.strictEqual(contentType_1, contentType_2);
197
+ });
198
+ it('should return this for chaining', () => {
199
+ const headers = HttpHeadersWrap.fromScratch();
200
+ const that = headers.setContentType({ type: 'text/plain', parameters: {} });
201
+ assert.strictEqual(that, headers);
202
+ });
203
+ });
204
+ describe('cookie', () => {
205
+ it('should get null if cookies not exists', () => {
206
+ const headers = HttpHeadersWrap.fromScratch();
207
+ assert.deepStrictEqual(headers.getCookies(), null);
208
+ });
209
+ it('should get parsed cookies', () => {
210
+ const headers = new HttpHeadersWrap({
211
+ COOKIE: 'session=abc123; user=john',
212
+ });
213
+ const cookies = { session: 'abc123', user: 'john' };
214
+ assert.deepStrictEqual(headers.getCookies(), cookies);
215
+ });
216
+ it('should set and get cookies object', () => {
217
+ const headers = HttpHeadersWrap.fromScratch();
218
+ const cookies = { session: 'xyz789', user: 'jane' };
219
+ headers.setCookies(cookies);
220
+ assert.deepStrictEqual(headers.getCookies(), cookies);
221
+ });
222
+ it('should cache cookie object', () => {
223
+ const headers = new HttpHeadersWrap({ COOKIE: ['key=value'] });
224
+ const cookies_1 = headers.getCookies();
225
+ const cookies_2 = headers.getCookies();
226
+ assert.strictEqual(cookies_1, cookies_2);
227
+ });
228
+ it('should return this for chaining', () => {
229
+ const headers = HttpHeadersWrap.fromScratch();
230
+ const that = headers.setCookies({});
231
+ assert.strictEqual(that, headers);
232
+ });
233
+ });
234
+ describe('set-cookie', () => {
235
+ it('should get null if set-cookies not exists', () => {
236
+ const headers = HttpHeadersWrap.fromScratch();
237
+ assert.deepStrictEqual(headers.getSetCookies(), null);
238
+ });
239
+ it('should get parsed set-cookies', () => {
240
+ const headers = new HttpHeadersWrap({
241
+ 'SET-COOKIE': ['session=abc123; Path=/'],
242
+ });
243
+ const setCookies = {
244
+ session: {
245
+ value: 'abc123',
246
+ path: '/',
247
+ secure: false,
248
+ httpOnly: false,
249
+ },
250
+ };
251
+ assert.deepStrictEqual(headers.getSetCookies(), setCookies);
252
+ });
253
+ it('should set and get set-cookies object', () => {
254
+ const headers = HttpHeadersWrap.fromScratch();
255
+ const setCookies = {
256
+ session: {
257
+ value: 'xyz789',
258
+ path: '/',
259
+ },
260
+ };
261
+ headers.setSetCookies(setCookies);
262
+ assert.deepStrictEqual(headers.getSetCookies(), setCookies);
263
+ });
264
+ it('should cache set-cookie object', () => {
265
+ const headers = new HttpHeadersWrap({
266
+ 'SET-COOKIE': ['key=value'],
267
+ });
268
+ const setCookies_1 = headers.getSetCookies();
269
+ const setCookies_2 = headers.getSetCookies();
270
+ assert.strictEqual(setCookies_1, setCookies_2);
271
+ });
272
+ it('should return this for chaining', () => {
273
+ const headers = HttpHeadersWrap.fromScratch();
274
+ const that = headers.setSetCookies({});
275
+ assert.strictEqual(that, headers);
276
+ });
277
+ });
278
+ describe('object conversion', () => {
279
+ it('should convert to object', () => {
280
+ const headers = new HttpHeadersWrap({ 'X-ONE': 'value1', 'X-TWO': 'value2' });
281
+ assert.deepStrictEqual(headers.toObject(), { 'x-one': 'value1', 'x-two': 'value2' });
282
+ });
283
+ it('should get entries', () => {
284
+ const headers = new HttpHeadersWrap({ 'X-ONE': 'value1', 'X-TWO': 'value2' });
285
+ const accum = {};
286
+ headers.entries().forEach(([name, value]) => {
287
+ accum[name] = value;
288
+ });
289
+ assert.deepStrictEqual(accum, { 'x-one': 'value1', 'x-two': 'value2' });
290
+ });
291
+ it('should iterate with forEach', () => {
292
+ const headers = new HttpHeadersWrap({ 'X-ONE': 'value1', 'X-TWO': 'value2' });
293
+ const accum = {};
294
+ headers.forEach((name, value) => {
295
+ accum[name] = value;
296
+ });
297
+ assert.deepStrictEqual(accum, { 'x-one': 'value1', 'x-two': 'value2' });
298
+ });
299
+ });
300
+ describe('reset', () => {
301
+ it('should reset to default headers', () => {
302
+ const headers = new HttpHeadersWrap({ 'X-Test': 'value' });
303
+ assert.strictEqual(headers.length, 1);
304
+ headers.reset();
305
+ assert.strictEqual(headers.length, 0);
306
+ });
307
+ it('should return this for chaining', () => {
308
+ const headers = HttpHeadersWrap.fromScratch();
309
+ const that = headers.reset();
310
+ assert.strictEqual(that, headers);
311
+ });
312
+ });
313
+ });
314
+ //# sourceMappingURL=headers.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"headers.test.js","sourceRoot":"","sources":["../src/headers.test.ts"],"names":[],"mappings":"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"}
package/dist/isbot.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"isbot.js","sourceRoot":"","sources":["../src/isbot.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,KAAK,EAAE,MAAM,OAAO,CAAA"}
1
+ {"version":3,"file":"isbot.js","sourceRoot":"","sources":["../src/isbot.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,KAAK,EAAE,MAAM,OAAO,CAAA"}
package/dist/message.d.ts CHANGED
@@ -1,17 +1,17 @@
1
- import { HttpConnection, HttpError, HttpPayload, HttpType } from '@famir/common';
1
+ import { HttpConnection, HttpContentType, HttpError, HttpPayload, HttpType } from '@famir/http-proto';
2
2
  import { Transform } from 'node:stream';
3
3
  import { HttpBodyWrap } from './body.js';
4
- import { HttpContentType, HttpContentTypeName, HttpContentTypes } from './content-type.js';
4
+ import { HttpContentTypeName } from './content-type.js';
5
5
  import { HttpHeadersWrap } from './headers.js';
6
6
  import { HttpMethodWrap } from './method.js';
7
- import { RewriteUrlScheme, RewriteUrlTarget } from './rewrite-url.js';
7
+ import { RewriteUrlTarget } from './rewrite-url.js';
8
8
  import { HttpStatusWrap } from './status.js';
9
9
  import { HttpUrlWrap } from './url.js';
10
10
  export type HttpMessageInterceptor = (message: HttpMessage) => void;
11
+ export type HttpMessageInterceptors = Array<[string, HttpMessageInterceptor]>;
11
12
  export declare class HttpMessage {
12
13
  #private;
13
14
  static create(type: string): HttpMessage;
14
- readonly id: string;
15
15
  readonly method: HttpMethodWrap;
16
16
  readonly url: HttpUrlWrap;
17
17
  readonly requestHeaders: HttpHeadersWrap;
@@ -19,6 +19,7 @@ export declare class HttpMessage {
19
19
  readonly status: HttpStatusWrap;
20
20
  readonly responseHeaders: HttpHeadersWrap;
21
21
  readonly responseBody: HttpBodyWrap;
22
+ readonly id: string;
22
23
  constructor(type: HttpType);
23
24
  get isReady(): boolean;
24
25
  ready(): void;
@@ -29,36 +30,27 @@ export declare class HttpMessage {
29
30
  readonly payload: HttpPayload;
30
31
  readonly errors: HttpError[];
31
32
  addError(error: unknown, ...path: string[]): void;
32
- processor: string | null;
33
- protected readonly contentTypes: HttpContentTypes;
33
+ analyze: string | null;
34
34
  addContentTypes(name: HttpContentTypeName, types: string[]): void;
35
35
  isContentType(name: HttpContentTypeName, contentType: HttpContentType): boolean;
36
- protected readonly rewriteUrlContentTypes: string[];
37
36
  addRewriteUrlContentTypes(types: string[]): void;
38
37
  isRewriteUrlContentType(contentType: HttpContentType): boolean;
39
- protected readonly rewriteUrlSchemes: RewriteUrlScheme[];
40
- addRewriteUrlMoreSchemes(): void;
41
- private requestHeadInterceptors;
42
- private requestBodyInterceptors;
38
+ addRewriteUrlExtraSchemes(): void;
43
39
  addRequestHeadInterceptor(name: string, interceptor: HttpMessageInterceptor): void;
44
40
  addRequestBodyInterceptor(name: string, interceptor: HttpMessageInterceptor): void;
45
41
  runRequestHeadInterceptors(): void;
46
42
  runRequestBodyInterceptors(): void;
47
- private requestTransforms;
48
43
  addRequestTransform(transform: Transform): void;
49
- getRequestTransforms(): Readonly<Transform[]>;
50
- private responseHeadInterceptors;
51
- private responseBodyInterceptors;
44
+ getRequestTransforms(): Transform[];
52
45
  addResponseHeadInterceptor(name: string, interceptor: HttpMessageInterceptor): void;
53
46
  addResponseBodyInterceptor(name: string, interceptor: HttpMessageInterceptor): void;
54
47
  runResponseHeadInterceptors(): void;
55
48
  runResponseBodyInterceptors(): void;
56
- private responseTransforms;
57
49
  addResponseTransform(transform: Transform): void;
58
- getResponseTransforms(): Readonly<Transform[]>;
50
+ getResponseTransforms(): Transform[];
59
51
  isAbsoluteUrl(value: string): boolean;
60
52
  rewriteUrl(text: string, rev: boolean, targets: RewriteUrlTarget[]): string;
61
- protected sureNotReady(name: string): void;
62
- protected sureIsReady(name: string): void;
53
+ private sureNotReady;
54
+ private sureIsReady;
63
55
  private typesSwitch;
64
56
  }
package/dist/message.js CHANGED
@@ -1,4 +1,5 @@
1
1
  import { arrayIncludes, randomIdent, serializeError } from '@famir/common';
2
+ import { HTTP_TYPES_NORMAL, HTTP_TYPES_WEBSOCKET, } from '@famir/http-proto';
2
3
  import { HttpBodyWrap } from './body.js';
3
4
  import { HttpHeadersWrap } from './headers.js';
4
5
  import { HttpMethodWrap } from './method.js';
@@ -17,7 +18,6 @@ export class HttpMessage {
17
18
  throw new Error(`Message type not known: ${type}`);
18
19
  }
19
20
  }
20
- id = randomIdent();
21
21
  #type;
22
22
  method;
23
23
  url;
@@ -26,6 +26,7 @@ export class HttpMessage {
26
26
  status;
27
27
  responseHeaders;
28
28
  responseBody;
29
+ id = randomIdent();
29
30
  constructor(type) {
30
31
  this.#type = type;
31
32
  this.method = HttpMethodWrap.fromScratch();
@@ -66,52 +67,52 @@ export class HttpMessage {
66
67
  addError(error, ...path) {
67
68
  this.errors.push([serializeError(error), ...path]);
68
69
  }
69
- processor = null;
70
- contentTypes = {
70
+ analyze = null;
71
+ #contentTypes = {
71
72
  text: [],
72
73
  html: [],
73
74
  css: [],
74
75
  javascript: [],
75
76
  json: [],
76
77
  xml: [],
77
- urlEncoded: []
78
+ urlEncoded: [],
78
79
  };
79
80
  addContentTypes(name, types) {
80
81
  this.sureNotReady('addContentTypes');
81
- this.contentTypes[name].push(...types);
82
+ this.#contentTypes[name].push(...types);
82
83
  }
83
84
  isContentType(name, contentType) {
84
- return this.contentTypes[name].includes(contentType.type);
85
+ return this.#contentTypes[name].includes(contentType.type);
85
86
  }
86
- rewriteUrlContentTypes = [];
87
+ #rewriteUrlContentTypes = [];
87
88
  addRewriteUrlContentTypes(types) {
88
89
  this.sureNotReady('addRewriteUrlContentTypes');
89
- this.rewriteUrlContentTypes.push(...types);
90
+ this.#rewriteUrlContentTypes.push(...types);
90
91
  }
91
92
  isRewriteUrlContentType(contentType) {
92
- return this.rewriteUrlContentTypes.includes(contentType.type);
93
+ return this.#rewriteUrlContentTypes.includes(contentType.type);
93
94
  }
94
- rewriteUrlSchemes = [
95
+ #rewriteUrlSchemes = [
95
96
  ['://', true],
96
- ['//', false]
97
+ ['//', false],
97
98
  ];
98
- addRewriteUrlMoreSchemes() {
99
- this.sureNotReady('addRewriteUrlMoreSchemes');
100
- this.rewriteUrlSchemes.push(['%3A%2F%2F', true], ['%2F%2F', false], [':\\u002F\\u002F', true], ['\\u002F\\u002F', false]);
99
+ addRewriteUrlExtraSchemes() {
100
+ this.sureNotReady('addRewriteUrlExtraSchemes');
101
+ this.#rewriteUrlSchemes.push(['%3A%2F%2F', true], ['%2F%2F', false], [':\\u002F\\u002F', true], ['\\u002F\\u002F', false]);
101
102
  }
102
- requestHeadInterceptors = [];
103
- requestBodyInterceptors = [];
103
+ #requestHeadInterceptors = [];
104
+ #requestBodyInterceptors = [];
104
105
  addRequestHeadInterceptor(name, interceptor) {
105
106
  this.sureNotReady('addRequestHeadInterceptor');
106
- this.requestHeadInterceptors.push([name, interceptor]);
107
+ this.#requestHeadInterceptors.push([name, interceptor]);
107
108
  }
108
109
  addRequestBodyInterceptor(name, interceptor) {
109
110
  this.sureNotReady('addRequestBodyInterceptor');
110
- this.requestBodyInterceptors.push([name, interceptor]);
111
+ this.#requestBodyInterceptors.push([name, interceptor]);
111
112
  }
112
113
  runRequestHeadInterceptors() {
113
114
  this.sureIsReady('runRequestHeadInterceptors');
114
- for (const [name, interceptor] of this.requestHeadInterceptors) {
115
+ for (const [name, interceptor] of this.#requestHeadInterceptors) {
115
116
  try {
116
117
  interceptor(this);
117
118
  }
@@ -119,11 +120,12 @@ export class HttpMessage {
119
120
  this.addError(error, 'request-head-interceptor', name);
120
121
  }
121
122
  }
123
+ this.method.freeze();
122
124
  this.url.freeze();
123
125
  }
124
126
  runRequestBodyInterceptors() {
125
127
  this.sureIsReady('runRequestBodyInterceptors');
126
- for (const [name, interceptor] of this.requestBodyInterceptors) {
128
+ for (const [name, interceptor] of this.#requestBodyInterceptors) {
127
129
  try {
128
130
  interceptor(this);
129
131
  }
@@ -135,27 +137,27 @@ export class HttpMessage {
135
137
  this.requestHeaders.freeze();
136
138
  this.requestBody.freeze();
137
139
  }
138
- requestTransforms = [];
140
+ #requestTransforms = [];
139
141
  addRequestTransform(transform) {
140
142
  this.sureNotReady('addRequestTransform');
141
- this.requestTransforms.push(transform);
143
+ this.#requestTransforms.push(transform);
142
144
  }
143
145
  getRequestTransforms() {
144
- return this.requestTransforms;
146
+ return this.#requestTransforms;
145
147
  }
146
- responseHeadInterceptors = [];
147
- responseBodyInterceptors = [];
148
+ #responseHeadInterceptors = [];
149
+ #responseBodyInterceptors = [];
148
150
  addResponseHeadInterceptor(name, interceptor) {
149
151
  this.sureNotReady('addResponseHeadInterceptor');
150
- this.responseHeadInterceptors.push([name, interceptor]);
152
+ this.#responseHeadInterceptors.push([name, interceptor]);
151
153
  }
152
154
  addResponseBodyInterceptor(name, interceptor) {
153
155
  this.sureNotReady('addResponseBodyInterceptor');
154
- this.responseBodyInterceptors.push([name, interceptor]);
156
+ this.#responseBodyInterceptors.push([name, interceptor]);
155
157
  }
156
158
  runResponseHeadInterceptors() {
157
159
  this.sureIsReady('runResponseHeadInterceptors');
158
- for (const [name, interceptor] of this.responseHeadInterceptors) {
160
+ for (const [name, interceptor] of this.#responseHeadInterceptors) {
159
161
  try {
160
162
  interceptor(this);
161
163
  }
@@ -167,7 +169,7 @@ export class HttpMessage {
167
169
  }
168
170
  runResponseBodyInterceptors() {
169
171
  this.sureIsReady('runResponseBodyInterceptors');
170
- for (const [name, interceptor] of this.responseBodyInterceptors) {
172
+ for (const [name, interceptor] of this.#responseBodyInterceptors) {
171
173
  try {
172
174
  interceptor(this);
173
175
  }
@@ -179,20 +181,20 @@ export class HttpMessage {
179
181
  this.responseHeaders.freeze();
180
182
  this.responseBody.freeze();
181
183
  }
182
- responseTransforms = [];
184
+ #responseTransforms = [];
183
185
  addResponseTransform(transform) {
184
186
  this.sureNotReady('addResponseTransform');
185
- this.responseTransforms.push(transform);
187
+ this.#responseTransforms.push(transform);
186
188
  }
187
189
  getResponseTransforms() {
188
- return this.responseTransforms;
190
+ return this.#responseTransforms;
189
191
  }
190
192
  isAbsoluteUrl(value) {
191
193
  const regExp = /^https?:\/\/|^\/\//i;
192
194
  return regExp.test(value);
193
195
  }
194
196
  rewriteUrl(text, rev, targets) {
195
- return rewriteUrl(text, rev, targets, this.rewriteUrlSchemes);
197
+ return rewriteUrl(text, rev, targets, this.#rewriteUrlSchemes);
196
198
  }
197
199
  sureNotReady(name) {
198
200
  if (this.isReady) {
@@ -205,10 +207,10 @@ export class HttpMessage {
205
207
  }
206
208
  }
207
209
  typesSwitch = {
208
- 'normal-simple': ['normal-simple', 'normal-stream-request', 'normal-stream-response'],
209
- 'normal-stream-request': ['normal-simple', 'normal-stream-request', 'normal-stream-response'],
210
- 'normal-stream-response': ['normal-simple', 'normal-stream-request', 'normal-stream-response'],
211
- websocket: ['websocket']
210
+ 'normal-simple': [...HTTP_TYPES_NORMAL],
211
+ 'normal-stream-request': [...HTTP_TYPES_NORMAL],
212
+ 'normal-stream-response': [...HTTP_TYPES_NORMAL],
213
+ 'websocket': [...HTTP_TYPES_WEBSOCKET],
212
214
  };
213
215
  }
214
216
  //# sourceMappingURL=message.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"message.js","sourceRoot":"","sources":["../src/message.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"message.js","sourceRoot":"","sources":["../src/message.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,WAAW,EAAE,cAAc,EAAE,MAAM,eAAe,CAAA;AAC1E,OAAO,EACL,iBAAiB,EACjB,oBAAoB,GAMrB,MAAM,mBAAmB,CAAA;AAE1B,OAAO,EAAE,YAAY,EAAE,MAAM,WAAW,CAAA;AAExC,OAAO,EAAE,eAAe,EAAE,MAAM,cAAc,CAAA;AAC9C,OAAO,EAAE,cAAc,EAAE,MAAM,aAAa,CAAA;AAC5C,OAAO,EAAsC,UAAU,EAAE,MAAM,kBAAkB,CAAA;AACjF,OAAO,EAAE,cAAc,EAAE,MAAM,aAAa,CAAA;AAC5C,OAAO,EAAE,WAAW,EAAE,MAAM,UAAU,CAAA;AAoBtC,MAAM,OAAO,WAAW;IAQtB,MAAM,CAAC,MAAM,CAAC,IAAY;QACxB,IAAI,IAAI,KAAK,QAAQ,EAAE,CAAC;YACtB,OAAO,IAAI,WAAW,CAAC,eAAe,CAAC,CAAA;QACzC,CAAC;aAAM,IAAI,IAAI,KAAK,WAAW,EAAE,CAAC;YAChC,OAAO,IAAI,WAAW,CAAC,WAAW,CAAC,CAAA;QACrC,CAAC;aAAM,CAAC;YACN,MAAM,IAAI,KAAK,CAAC,2BAA2B,IAAI,EAAE,CAAC,CAAA;QACpD,CAAC;IACH,CAAC;IAED,KAAK,CAAU;IAEN,MAAM,CAAgB;IACtB,GAAG,CAAa;IAChB,cAAc,CAAiB;IAC/B,WAAW,CAAc;IACzB,MAAM,CAAgB;IACtB,eAAe,CAAiB;IAChC,YAAY,CAAc;IAE1B,EAAE,GAAG,WAAW,EAAE,CAAA;IAE3B,YAAY,IAAc;QACxB,IAAI,CAAC,KAAK,GAAG,IAAI,CAAA;QAEjB,IAAI,CAAC,MAAM,GAAG,cAAc,CAAC,WAAW,EAAE,CAAA;QAC1C,IAAI,CAAC,GAAG,GAAG,WAAW,CAAC,WAAW,EAAE,CAAA;QACpC,IAAI,CAAC,cAAc,GAAG,eAAe,CAAC,WAAW,EAAE,CAAA;QACnD,IAAI,CAAC,WAAW,GAAG,YAAY,CAAC,WAAW,EAAE,CAAA;QAC7C,IAAI,CAAC,MAAM,GAAG,cAAc,CAAC,WAAW,EAAE,CAAA;QAC1C,IAAI,CAAC,eAAe,GAAG,eAAe,CAAC,WAAW,EAAE,CAAA;QACpD,IAAI,CAAC,YAAY,GAAG,YAAY,CAAC,WAAW,EAAE,CAAA;IAChD,CAAC;IAED,QAAQ,GAAY,KAAK,CAAA;IAOzB,IAAI,OAAO;QACT,OAAO,IAAI,CAAC,QAAQ,CAAA;IACtB,CAAC;IAKD,KAAK;QACH,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAA;IACtB,CAAC;IAOD,IAAI,IAAI;QACN,OAAO,IAAI,CAAC,KAAK,CAAA;IACnB,CAAC;IAQD,OAAO,CAAC,IAAc;QACpB,IAAI,CAAC,YAAY,CAAC,SAAS,CAAC,CAAA;QAE5B,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,IAAI,CAAC,EAAE,CAAC;YAEtD,MAAM,IAAI,KAAK,CAAC,sBAAsB,IAAI,CAAC,IAAI,OAAO,IAAI,EAAE,CAAC,CAAA;QAC/D,CAAC;QAED,IAAI,CAAC,KAAK,GAAG,IAAI,CAAA;IACnB,CAAC;IAKQ,UAAU,GAAmB,EAAE,CAAA;IAOxC,eAAe,CAAC,UAA0B;QACxC,MAAM,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,EAAE,KAAK,CAAC,EAAE,EAAE;YACnD,IAAI,KAAK,IAAI,IAAI,EAAE,CAAC;gBAClB,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,GAAG,KAAK,CAAA;YAC/B,CAAC;QACH,CAAC,CAAC,CAAA;IACJ,CAAC;IAKQ,OAAO,GAAgB,EAAE,CAAA;IAKzB,MAAM,GAAgB,EAAE,CAAA;IAQjC,QAAQ,CAAC,KAAc,EAAE,GAAG,IAAc;QACxC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,cAAc,CAAC,KAAK,CAAC,EAAE,GAAG,IAAI,CAAC,CAAC,CAAA;IACpD,CAAC;IAKD,OAAO,GAAkB,IAAI,CAAA;IAG7B,aAAa,GAAqB;QAChC,IAAI,EAAE,EAAE;QACR,IAAI,EAAE,EAAE;QACR,GAAG,EAAE,EAAE;QACP,UAAU,EAAE,EAAE;QACd,IAAI,EAAE,EAAE;QACR,GAAG,EAAE,EAAE;QACP,UAAU,EAAE,EAAE;KACf,CAAA;IASD,eAAe,CAAC,IAAyB,EAAE,KAAe;QACxD,IAAI,CAAC,YAAY,CAAC,iBAAiB,CAAC,CAAA;QAEpC,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,GAAG,KAAK,CAAC,CAAA;IACzC,CAAC;IASD,aAAa,CAAC,IAAyB,EAAE,WAA4B;QACnE,OAAO,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,WAAW,CAAC,IAAI,CAAC,CAAA;IAC5D,CAAC;IAED,uBAAuB,GAAa,EAAE,CAAA;IAQtC,yBAAyB,CAAC,KAAe;QACvC,IAAI,CAAC,YAAY,CAAC,2BAA2B,CAAC,CAAA;QAE9C,IAAI,CAAC,uBAAuB,CAAC,IAAI,CAAC,GAAG,KAAK,CAAC,CAAA;IAC7C,CAAC;IAQD,uBAAuB,CAAC,WAA4B;QAClD,OAAO,IAAI,CAAC,uBAAuB,CAAC,QAAQ,CAAC,WAAW,CAAC,IAAI,CAAC,CAAA;IAChE,CAAC;IAED,kBAAkB,GAAuB;QACvC,CAAC,KAAK,EAAE,IAAI,CAAC;QACb,CAAC,IAAI,EAAE,KAAK,CAAC;KACd,CAAA;IAOD,yBAAyB;QACvB,IAAI,CAAC,YAAY,CAAC,2BAA2B,CAAC,CAAA;QAE9C,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAC1B,CAAC,WAAW,EAAE,IAAI,CAAC,EACnB,CAAC,QAAQ,EAAE,KAAK,CAAC,EACjB,CAAC,iBAAiB,EAAE,IAAI,CAAC,EACzB,CAAC,gBAAgB,EAAE,KAAK,CAAC,CAC1B,CAAA;IACH,CAAC;IAED,wBAAwB,GAA4B,EAAE,CAAA;IACtD,wBAAwB,GAA4B,EAAE,CAAA;IAStD,yBAAyB,CAAC,IAAY,EAAE,WAAmC;QACzE,IAAI,CAAC,YAAY,CAAC,2BAA2B,CAAC,CAAA;QAE9C,IAAI,CAAC,wBAAwB,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,WAAW,CAAC,CAAC,CAAA;IACzD,CAAC;IASD,yBAAyB,CAAC,IAAY,EAAE,WAAmC;QACzE,IAAI,CAAC,YAAY,CAAC,2BAA2B,CAAC,CAAA;QAE9C,IAAI,CAAC,wBAAwB,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,WAAW,CAAC,CAAC,CAAA;IACzD,CAAC;IAOD,0BAA0B;QACxB,IAAI,CAAC,WAAW,CAAC,4BAA4B,CAAC,CAAA;QAE9C,KAAK,MAAM,CAAC,IAAI,EAAE,WAAW,CAAC,IAAI,IAAI,CAAC,wBAAwB,EAAE,CAAC;YAChE,IAAI,CAAC;gBACH,WAAW,CAAC,IAAI,CAAC,CAAA;YACnB,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,IAAI,CAAC,QAAQ,CAAC,KAAK,EAAE,0BAA0B,EAAE,IAAI,CAAC,CAAA;YACxD,CAAC;QACH,CAAC;QAED,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,CAAA;QACpB,IAAI,CAAC,GAAG,CAAC,MAAM,EAAE,CAAA;IACnB,CAAC;IAOD,0BAA0B;QACxB,IAAI,CAAC,WAAW,CAAC,4BAA4B,CAAC,CAAA;QAE9C,KAAK,MAAM,CAAC,IAAI,EAAE,WAAW,CAAC,IAAI,IAAI,CAAC,wBAAwB,EAAE,CAAC;YAChE,IAAI,CAAC;gBACH,WAAW,CAAC,IAAI,CAAC,CAAA;YACnB,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,IAAI,CAAC,QAAQ,CAAC,KAAK,EAAE,0BAA0B,EAAE,IAAI,CAAC,CAAA;YACxD,CAAC;QACH,CAAC;QAED,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,gBAAgB,EAAE,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC,CAAA;QAE7E,IAAI,CAAC,cAAc,CAAC,MAAM,EAAE,CAAA;QAC5B,IAAI,CAAC,WAAW,CAAC,MAAM,EAAE,CAAA;IAC3B,CAAC;IAED,kBAAkB,GAAgB,EAAE,CAAA;IAQpC,mBAAmB,CAAC,SAAoB;QACtC,IAAI,CAAC,YAAY,CAAC,qBAAqB,CAAC,CAAA;QAExC,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,SAAS,CAAC,CAAA;IACzC,CAAC;IAOD,oBAAoB;QAClB,OAAO,IAAI,CAAC,kBAAkB,CAAA;IAChC,CAAC;IAED,yBAAyB,GAA4B,EAAE,CAAA;IACvD,yBAAyB,GAA4B,EAAE,CAAA;IASvD,0BAA0B,CAAC,IAAY,EAAE,WAAmC;QAC1E,IAAI,CAAC,YAAY,CAAC,4BAA4B,CAAC,CAAA;QAE/C,IAAI,CAAC,yBAAyB,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,WAAW,CAAC,CAAC,CAAA;IAC1D,CAAC;IASD,0BAA0B,CAAC,IAAY,EAAE,WAAmC;QAC1E,IAAI,CAAC,YAAY,CAAC,4BAA4B,CAAC,CAAA;QAE/C,IAAI,CAAC,yBAAyB,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,WAAW,CAAC,CAAC,CAAA;IAC1D,CAAC;IAOD,2BAA2B;QACzB,IAAI,CAAC,WAAW,CAAC,6BAA6B,CAAC,CAAA;QAE/C,KAAK,MAAM,CAAC,IAAI,EAAE,WAAW,CAAC,IAAI,IAAI,CAAC,yBAAyB,EAAE,CAAC;YACjE,IAAI,CAAC;gBACH,WAAW,CAAC,IAAI,CAAC,CAAA;YACnB,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,IAAI,CAAC,QAAQ,CAAC,KAAK,EAAE,2BAA2B,EAAE,IAAI,CAAC,CAAA;YACzD,CAAC;QACH,CAAC;QAED,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,CAAA;IACtB,CAAC;IAOD,2BAA2B;QACzB,IAAI,CAAC,WAAW,CAAC,6BAA6B,CAAC,CAAA;QAE/C,KAAK,MAAM,CAAC,IAAI,EAAE,WAAW,CAAC,IAAI,IAAI,CAAC,yBAAyB,EAAE,CAAC;YACjE,IAAI,CAAC;gBACH,WAAW,CAAC,IAAI,CAAC,CAAA;YACnB,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,IAAI,CAAC,QAAQ,CAAC,KAAK,EAAE,2BAA2B,EAAE,IAAI,CAAC,CAAA;YACzD,CAAC;QACH,CAAC;QAED,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,gBAAgB,EAAE,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC,CAAA;QAE/E,IAAI,CAAC,eAAe,CAAC,MAAM,EAAE,CAAA;QAC7B,IAAI,CAAC,YAAY,CAAC,MAAM,EAAE,CAAA;IAC5B,CAAC;IAED,mBAAmB,GAAgB,EAAE,CAAA;IAQrC,oBAAoB,CAAC,SAAoB;QACvC,IAAI,CAAC,YAAY,CAAC,sBAAsB,CAAC,CAAA;QAEzC,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,SAAS,CAAC,CAAA;IAC1C,CAAC;IAOD,qBAAqB;QACnB,OAAO,IAAI,CAAC,mBAAmB,CAAA;IACjC,CAAC;IAQD,aAAa,CAAC,KAAa;QACzB,MAAM,MAAM,GAAG,qBAAqB,CAAA;QACpC,OAAO,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;IAC3B,CAAC;IAUD,UAAU,CAAC,IAAY,EAAE,GAAY,EAAE,OAA2B;QAChE,OAAO,UAAU,CAAC,IAAI,EAAE,GAAG,EAAE,OAAO,EAAE,IAAI,CAAC,kBAAkB,CAAC,CAAA;IAChE,CAAC;IAEO,YAAY,CAAC,IAAY;QAC/B,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;YACjB,MAAM,IAAI,KAAK,CAAC,4BAA4B,IAAI,EAAE,CAAC,CAAA;QACrD,CAAC;IACH,CAAC;IAEO,WAAW,CAAC,IAAY;QAC9B,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC;YAClB,MAAM,IAAI,KAAK,CAAC,6BAA6B,IAAI,EAAE,CAAC,CAAA;QACtD,CAAC;IACH,CAAC;IAEO,WAAW,GAAiC;QAClD,eAAe,EAAE,CAAC,GAAG,iBAAiB,CAAC;QACvC,uBAAuB,EAAE,CAAC,GAAG,iBAAiB,CAAC;QAC/C,wBAAwB,EAAE,CAAC,GAAG,iBAAiB,CAAC;QAChD,WAAW,EAAE,CAAC,GAAG,oBAAoB,CAAC;KAC9B,CAAA;CACX"}
@@ -0,0 +1 @@
1
+ export {};