@adviser/cement 0.2.40 → 0.2.42
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/{chunk-USQXEZHL.js → chunk-3RHIVQAA.js} +2 -2
- package/{chunk-W2GV5KXV.js → chunk-N3NUTN4B.js} +3 -3
- package/{chunk-F5W6VELE.js → chunk-N5LQQXOU.js} +2 -2
- package/chunk-PPS4L4VW.js +38 -0
- package/{chunk-GES3MUGV.js.map → chunk-PPS4L4VW.js.map} +1 -1
- package/index.cjs +500 -179
- package/index.cjs.map +1 -1
- package/index.d.cts +73 -30
- package/index.d.ts +73 -30
- package/index.js +506 -141
- package/index.js.map +1 -1
- package/node/index.js +2 -2
- package/package.json +2 -2
- package/src/http_header.ts +161 -0
- package/src/index.ts +1 -0
- package/src/jsr.json +1 -1
- package/src/log-level-impl.ts +7 -0
- package/src/logger-impl.ts +70 -43
- package/src/logger.ts +37 -9
- package/src/option.ts +7 -0
- package/src/result.ts +7 -1
- package/src/uri.ts +35 -11
- package/src/utils/relative-path.ts +161 -0
- package/ts/http_header.d.ts +29 -0
- package/ts/http_header.d.ts.map +1 -0
- package/ts/http_header.js +155 -0
- package/ts/http_header.js.map +1 -0
- package/ts/http_header.test.d.ts +2 -0
- package/ts/http_header.test.d.ts.map +1 -0
- package/ts/http_header.test.js +90 -0
- package/ts/http_header.test.js.map +1 -0
- package/ts/index.d.ts +1 -0
- package/ts/index.d.ts.map +1 -1
- package/ts/index.js +1 -0
- package/ts/index.js.map +1 -1
- package/ts/log-level-impl.d.ts +3 -0
- package/ts/log-level-impl.d.ts.map +1 -1
- package/ts/log-level-impl.js +5 -0
- package/ts/log-level-impl.js.map +1 -1
- package/ts/logger-impl.d.ts +2 -1
- package/ts/logger-impl.d.ts.map +1 -1
- package/ts/logger-impl.js +66 -47
- package/ts/logger-impl.js.map +1 -1
- package/ts/logger.d.ts +10 -1
- package/ts/logger.d.ts.map +1 -1
- package/ts/logger.js +22 -8
- package/ts/logger.js.map +1 -1
- package/ts/logger.test.js +111 -58
- package/ts/logger.test.js.map +1 -1
- package/ts/option.d.ts +1 -0
- package/ts/option.d.ts.map +1 -1
- package/ts/option.js +6 -0
- package/ts/option.js.map +1 -1
- package/ts/result.d.ts +1 -1
- package/ts/result.d.ts.map +1 -1
- package/ts/result.js +6 -0
- package/ts/result.js.map +1 -1
- package/ts/result.test.js +6 -0
- package/ts/result.test.js.map +1 -1
- package/ts/tracer.js +24 -6
- package/ts/tracer.js.map +1 -1
- package/ts/uri.d.ts +3 -1
- package/ts/uri.d.ts.map +1 -1
- package/ts/uri.js +27 -10
- package/ts/uri.js.map +1 -1
- package/ts/uri.test.js +39 -10
- package/ts/uri.test.js.map +1 -1
- package/ts/utils/relative-path.d.ts +17 -0
- package/ts/utils/relative-path.d.ts.map +1 -0
- package/ts/utils/relative-path.js +148 -0
- package/ts/utils/relative-path.js.map +1 -0
- package/ts/utils/relative-path.test.d.ts +2 -0
- package/ts/utils/relative-path.test.d.ts.map +1 -0
- package/ts/utils/relative-path.test.js +187 -0
- package/ts/utils/relative-path.test.js.map +1 -0
- package/ts/utils/stripper.js +1 -1
- package/ts/utils/stripper.js.map +1 -1
- package/utils/index.js +2 -2
- package/web/index.js +3 -3
- package/chunk-GES3MUGV.js +0 -92
- /package/{chunk-USQXEZHL.js.map → chunk-3RHIVQAA.js.map} +0 -0
- /package/{chunk-W2GV5KXV.js.map → chunk-N3NUTN4B.js.map} +0 -0
- /package/{chunk-F5W6VELE.js.map → chunk-N5LQQXOU.js.map} +0 -0
package/src/uri.ts
CHANGED
@@ -1,4 +1,5 @@
|
|
1
1
|
import { exception2Result, Result } from "./result.js";
|
2
|
+
import { relativePath } from "./utils/relative-path.js";
|
2
3
|
import { StripCommand, stripper } from "./utils/stripper.js";
|
3
4
|
|
4
5
|
type NullOrUndef = null | undefined;
|
@@ -9,9 +10,11 @@ export type MsgFn = (...keys: string[]) => string;
|
|
9
10
|
/*
|
10
11
|
if KeyParam is a Object
|
11
12
|
if the right side is a string, it is the default value
|
12
|
-
if the right side is a !string, it is required
|
13
|
+
if the right side is a !string | REQUIRED, it is required
|
13
14
|
*/
|
14
|
-
export
|
15
|
+
export const REQUIRED = 4711; // must be !string
|
16
|
+
|
17
|
+
export type KeysParam = (string | MsgFn | Record<string, typeof REQUIRED | unknown>)[];
|
15
18
|
|
16
19
|
// type ReturnType<T extends (...args: KeysParam) => unknown> = T extends (...args: KeysParam) => infer R ? R : unknown;
|
17
20
|
|
@@ -335,10 +338,30 @@ export class BuildURI implements URIInterface<BuildURI> {
|
|
335
338
|
return this;
|
336
339
|
}
|
337
340
|
|
341
|
+
// could pass a relative path or a full URL
|
342
|
+
// if relative path, it will be appended to the current path
|
343
|
+
resolve(p: CoerceURI): BuildURI {
|
344
|
+
if (!p) {
|
345
|
+
return this;
|
346
|
+
}
|
347
|
+
if (typeof p === "string") {
|
348
|
+
// relative path
|
349
|
+
if (!p.match(/^[a-zA-Z0-9]+:/)) {
|
350
|
+
if (p.startsWith("/")) {
|
351
|
+
this.pathname(p);
|
352
|
+
return this;
|
353
|
+
}
|
354
|
+
return this.appendRelative(p);
|
355
|
+
}
|
356
|
+
}
|
357
|
+
this._url = new MutableURL(p.toString());
|
358
|
+
return this;
|
359
|
+
}
|
360
|
+
|
338
361
|
appendRelative(p: CoerceURI): BuildURI {
|
339
362
|
const appendUrl = URI.from(p);
|
340
|
-
|
341
|
-
|
363
|
+
const pathname = "./" + appendUrl.pathname;
|
364
|
+
const basePath = this._url.pathname;
|
342
365
|
/*
|
343
366
|
* cases
|
344
367
|
* pathname "" basePAth "" -> ""
|
@@ -350,13 +373,14 @@ export class BuildURI implements URIInterface<BuildURI> {
|
|
350
373
|
* pathname "ab" basePath "/ab/" -> "/ab/ab"
|
351
374
|
* pathname "/ab/" basePath "/ab/" -> "/ab/ab/"
|
352
375
|
*/
|
353
|
-
|
354
|
-
|
355
|
-
|
356
|
-
|
357
|
-
|
358
|
-
|
359
|
-
|
376
|
+
this.pathname(relativePath(basePath, pathname));
|
377
|
+
// if (pathname.startsWith("/")) {
|
378
|
+
// pathname = pathname.replace(/^\//, "");
|
379
|
+
// }
|
380
|
+
// if (basePath.length > 0) {
|
381
|
+
// basePath = basePath.replace(/\/$/, "");
|
382
|
+
// }
|
383
|
+
// this.pathname(basePath + "/" + pathname);
|
360
384
|
for (const [key, value] of appendUrl.getParams) {
|
361
385
|
this.setParam(key, value);
|
362
386
|
}
|
@@ -0,0 +1,161 @@
|
|
1
|
+
export enum PartType {
|
2
|
+
Slash = 0x1,
|
3
|
+
Root = 0x3,
|
4
|
+
Up = 0x4 /* /../ */,
|
5
|
+
Noop = 0x8 /* ./ */,
|
6
|
+
// RootUp = 0x8 /* ../ */,
|
7
|
+
}
|
8
|
+
|
9
|
+
export type PathItem = string | PartType;
|
10
|
+
|
11
|
+
export class Path {
|
12
|
+
readonly parts: PathItem[];
|
13
|
+
constructor(parts: PathItem[] = []) {
|
14
|
+
this.parts = parts;
|
15
|
+
}
|
16
|
+
|
17
|
+
toString(): string {
|
18
|
+
return this.parts
|
19
|
+
.map((part) => {
|
20
|
+
if (typeof part === "string") {
|
21
|
+
return part;
|
22
|
+
} else {
|
23
|
+
switch (part) {
|
24
|
+
case PartType.Slash:
|
25
|
+
case PartType.Root:
|
26
|
+
return "/";
|
27
|
+
case PartType.Up:
|
28
|
+
return "..";
|
29
|
+
default:
|
30
|
+
return part;
|
31
|
+
}
|
32
|
+
}
|
33
|
+
})
|
34
|
+
.join("");
|
35
|
+
}
|
36
|
+
|
37
|
+
add(part: PathItem): void {
|
38
|
+
if (this.parts.includes(PartType.Root) && part === PartType.Root) {
|
39
|
+
throw new Error("Cannot add absolute part to absolute path");
|
40
|
+
}
|
41
|
+
const last = this.parts[this.parts.length - 1] as number;
|
42
|
+
if (last & PartType.Slash && part === PartType.Slash) {
|
43
|
+
return;
|
44
|
+
}
|
45
|
+
switch (part) {
|
46
|
+
case ".":
|
47
|
+
this.parts.push(PartType.Noop);
|
48
|
+
return;
|
49
|
+
case "..":
|
50
|
+
part = PartType.Up;
|
51
|
+
}
|
52
|
+
|
53
|
+
// if (part === PartType.Up && last === PartType.Slash) {
|
54
|
+
// this.parts[this.parts.length - 1] = PartType.Up
|
55
|
+
// return
|
56
|
+
// }
|
57
|
+
if (last === PartType.Noop && part === PartType.Slash) {
|
58
|
+
if (last === PartType.Noop) {
|
59
|
+
this.parts.pop();
|
60
|
+
}
|
61
|
+
return;
|
62
|
+
}
|
63
|
+
this.parts.push(part);
|
64
|
+
}
|
65
|
+
}
|
66
|
+
|
67
|
+
export function splitPath(path: string): Path {
|
68
|
+
const p = new Path();
|
69
|
+
if (path === "") {
|
70
|
+
return p;
|
71
|
+
}
|
72
|
+
for (let count = 0; path.length; count++) {
|
73
|
+
// const ipath = path
|
74
|
+
if (path.match(/^\/+/)) {
|
75
|
+
if (count === 0) {
|
76
|
+
p.add(PartType.Root);
|
77
|
+
} else {
|
78
|
+
p.add(PartType.Slash);
|
79
|
+
}
|
80
|
+
path = path.replace(/^\/+/, "");
|
81
|
+
} else {
|
82
|
+
const part = path.replace(/\/.*$/, "");
|
83
|
+
p.add(part);
|
84
|
+
path = path.replace(/^[^/]+/, "");
|
85
|
+
}
|
86
|
+
}
|
87
|
+
return p;
|
88
|
+
}
|
89
|
+
|
90
|
+
export function pathJoin(...paths: string[]): string {
|
91
|
+
let prev = "";
|
92
|
+
const res: string[] = [];
|
93
|
+
// eslint-disable-next-line @typescript-eslint/prefer-for-of
|
94
|
+
for (let i = 0; i < paths.length; i++) {
|
95
|
+
const path = paths[i];
|
96
|
+
if (path === "") {
|
97
|
+
continue;
|
98
|
+
}
|
99
|
+
// i + 1 !== paths.length &&
|
100
|
+
if (!(prev.endsWith("/") || path.startsWith("/"))) {
|
101
|
+
if (prev !== "") {
|
102
|
+
res.push("/");
|
103
|
+
}
|
104
|
+
res.push(path);
|
105
|
+
} else {
|
106
|
+
res.push(path);
|
107
|
+
}
|
108
|
+
prev = path;
|
109
|
+
}
|
110
|
+
return res.join("");
|
111
|
+
}
|
112
|
+
|
113
|
+
export function relativePath(path: string, relative: string): string {
|
114
|
+
const relativeParts = splitPath(relative);
|
115
|
+
let result: string;
|
116
|
+
if (relativeParts.parts[0] === PartType.Root) {
|
117
|
+
result = relative;
|
118
|
+
} else {
|
119
|
+
result = pathJoin(path, relative);
|
120
|
+
}
|
121
|
+
const unoptPath = splitPath(result);
|
122
|
+
// console.log("What", result, unoptPath.parts)
|
123
|
+
const out: PathItem[] = [];
|
124
|
+
let topUp = false;
|
125
|
+
for (const part of unoptPath.parts) {
|
126
|
+
switch (part) {
|
127
|
+
case PartType.Root:
|
128
|
+
out.push(PartType.Root);
|
129
|
+
break;
|
130
|
+
case PartType.Up:
|
131
|
+
if (out.length && !topUp) {
|
132
|
+
const last = out.length - 1;
|
133
|
+
if (typeof out[last] === "string" && (out[last - 1] as PartType) == PartType.Root) {
|
134
|
+
out.pop();
|
135
|
+
} else {
|
136
|
+
out.pop();
|
137
|
+
out.pop();
|
138
|
+
}
|
139
|
+
if (out.length === 0) {
|
140
|
+
topUp = !topUp ? true : topUp;
|
141
|
+
out.push(PartType.Up);
|
142
|
+
}
|
143
|
+
} else {
|
144
|
+
out.push(PartType.Up);
|
145
|
+
}
|
146
|
+
break;
|
147
|
+
case PartType.Slash:
|
148
|
+
if (!((out[out.length - 1] as PartType) & PartType.Slash)) {
|
149
|
+
out.push(PartType.Slash);
|
150
|
+
}
|
151
|
+
break;
|
152
|
+
default:
|
153
|
+
out.push(part);
|
154
|
+
break;
|
155
|
+
}
|
156
|
+
}
|
157
|
+
return new Path(out).toString();
|
158
|
+
// return pathParts
|
159
|
+
// .filter((part, index) => part !== relativeParts[index])
|
160
|
+
// .join("")
|
161
|
+
}
|
@@ -0,0 +1,29 @@
|
|
1
|
+
export declare class HeadersImpl extends Headers {
|
2
|
+
readonly _headers: Map<string, string>;
|
3
|
+
constructor(init: Map<string, string>);
|
4
|
+
[Symbol.iterator](): HeadersIterator<[string, string]>;
|
5
|
+
entries(): HeadersIterator<[string, string]>;
|
6
|
+
keys(): HeadersIterator<string>;
|
7
|
+
values(): HeadersIterator<string>;
|
8
|
+
append(key: string, value: string | string[] | undefined): HeadersImpl;
|
9
|
+
}
|
10
|
+
export declare class HttpHeader {
|
11
|
+
readonly _headers: Map<string, string[]>;
|
12
|
+
static from(headers?: HeadersInit | NodeJS.Dict<string | string[]> | Headers): HttpHeader;
|
13
|
+
_asStringString(): Map<string, string>;
|
14
|
+
_key(key: string): string;
|
15
|
+
Values(key: string): string[];
|
16
|
+
Get(key: string): string | undefined;
|
17
|
+
Set(key: string, valueOr: string | string[]): HttpHeader;
|
18
|
+
Add(key: string, value: string | string[] | undefined): HttpHeader;
|
19
|
+
Del(ey: string): HttpHeader;
|
20
|
+
Items(): [string, string[]][];
|
21
|
+
SortItems(): [string, string[]][];
|
22
|
+
Clone(): HttpHeader;
|
23
|
+
AsRecordStringStringArray(): Record<string, string[]>;
|
24
|
+
AsRecordStringString(): Record<string, string>;
|
25
|
+
AsHeaderInit(): HeadersInit;
|
26
|
+
AsHeaders(): Headers;
|
27
|
+
Merge(other?: HttpHeader): HttpHeader;
|
28
|
+
}
|
29
|
+
//# sourceMappingURL=http_header.d.ts.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"http_header.d.ts","sourceRoot":"","sources":["../../src/http_header.ts"],"names":[],"mappings":"AAAA,qBAAa,WAAY,SAAQ,OAAO;IACtC,QAAQ,CAAC,QAAQ,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;gBAE3B,IAAI,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC;IAKrC,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,eAAe,CAAC,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAItD,OAAO,IAAI,eAAe,CAAC,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAG5C,IAAI,IAAI,eAAe,CAAC,MAAM,CAAC;IAG/B,MAAM,IAAI,eAAe,CAAC,MAAM,CAAC;IAIjC,MAAM,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM,EAAE,GAAG,SAAS,GAAG,WAAW;CAYvE;AAED,qBAAa,UAAU;IACrB,QAAQ,CAAC,QAAQ,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,CAA+B;IAEvE,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,WAAW,GAAG,MAAM,CAAC,IAAI,CAAC,MAAM,GAAG,MAAM,EAAE,CAAC,GAAG,OAAO,GAAG,UAAU;IA8BzF,eAAe,IAAI,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC;IAQtC,IAAI,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM;IAGzB,MAAM,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,EAAE;IAI7B,GAAG,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS;IAOpC,GAAG,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,MAAM,EAAE,GAAG,UAAU;IAKxD,GAAG,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM,EAAE,GAAG,SAAS,GAAG,UAAU;IAalE,GAAG,CAAC,EAAE,EAAE,MAAM,GAAG,UAAU;IAI3B,KAAK,IAAI,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,EAAE;IAI7B,SAAS,IAAI,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,EAAE;IAGjC,KAAK,IAAI,UAAU;IAOnB,yBAAyB,IAAI,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC;IAOrD,oBAAoB,IAAI,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC;IAO9C,YAAY,IAAI,WAAW;IAO3B,SAAS,IAAI,OAAO;IAGpB,KAAK,CAAC,KAAK,CAAC,EAAE,UAAU,GAAG,UAAU;CAStC"}
|
@@ -0,0 +1,155 @@
|
|
1
|
+
export class HeadersImpl extends Headers {
|
2
|
+
constructor(init) {
|
3
|
+
super();
|
4
|
+
this._headers = init;
|
5
|
+
}
|
6
|
+
[Symbol.iterator]() {
|
7
|
+
return this.entries();
|
8
|
+
}
|
9
|
+
entries() {
|
10
|
+
return this._headers.entries();
|
11
|
+
}
|
12
|
+
keys() {
|
13
|
+
return this._headers.keys();
|
14
|
+
}
|
15
|
+
values() {
|
16
|
+
return this._headers.values();
|
17
|
+
}
|
18
|
+
append(key, value) {
|
19
|
+
const values = this._headers.get(key);
|
20
|
+
if (typeof value === "undefined") {
|
21
|
+
value = "";
|
22
|
+
}
|
23
|
+
if (Array.isArray(value)) {
|
24
|
+
this._headers.set(key, [values, ...value].filter((i) => i).join(", "));
|
25
|
+
}
|
26
|
+
else {
|
27
|
+
this._headers.set(key, [values, value].filter((i) => i).join(", "));
|
28
|
+
}
|
29
|
+
return this;
|
30
|
+
}
|
31
|
+
}
|
32
|
+
export class HttpHeader {
|
33
|
+
constructor() {
|
34
|
+
this._headers = new Map();
|
35
|
+
}
|
36
|
+
static from(headers) {
|
37
|
+
const h = new HttpHeader();
|
38
|
+
if (headers) {
|
39
|
+
if (Array.isArray(headers)) {
|
40
|
+
for (const [k, v] of headers) {
|
41
|
+
if (v) {
|
42
|
+
h.Add(k, v);
|
43
|
+
}
|
44
|
+
}
|
45
|
+
}
|
46
|
+
else if (headers instanceof Headers) {
|
47
|
+
for (const [k, v] of headers.entries()) {
|
48
|
+
if (v) {
|
49
|
+
h.Add(k, v.split(",").map((v) => v.trim()));
|
50
|
+
}
|
51
|
+
}
|
52
|
+
}
|
53
|
+
else {
|
54
|
+
for (const k in headers) {
|
55
|
+
const v = headers[k];
|
56
|
+
if (v) {
|
57
|
+
h.Add(k, v);
|
58
|
+
}
|
59
|
+
}
|
60
|
+
}
|
61
|
+
}
|
62
|
+
return h;
|
63
|
+
}
|
64
|
+
_asStringString() {
|
65
|
+
const ret = new Map();
|
66
|
+
for (const [key, values] of this._headers) {
|
67
|
+
ret.set(key, values.join(", "));
|
68
|
+
}
|
69
|
+
return ret;
|
70
|
+
}
|
71
|
+
_key(key) {
|
72
|
+
return key.toLowerCase();
|
73
|
+
}
|
74
|
+
Values(key) {
|
75
|
+
const values = this._headers.get(this._key(key));
|
76
|
+
return values || [];
|
77
|
+
}
|
78
|
+
Get(key) {
|
79
|
+
const values = this._headers.get(this._key(key));
|
80
|
+
if (values === undefined || values.length === 0) {
|
81
|
+
return undefined;
|
82
|
+
}
|
83
|
+
return values[0];
|
84
|
+
}
|
85
|
+
Set(key, valueOr) {
|
86
|
+
const value = Array.isArray(valueOr) ? valueOr : [valueOr];
|
87
|
+
this._headers.set(this._key(key), value);
|
88
|
+
return this;
|
89
|
+
}
|
90
|
+
Add(key, value) {
|
91
|
+
if (typeof value === "undefined") {
|
92
|
+
return this;
|
93
|
+
}
|
94
|
+
const vs = Array.isArray(value) ? value : [value];
|
95
|
+
const values = this._headers.get(this._key(key));
|
96
|
+
if (values === undefined) {
|
97
|
+
this._headers.set(this._key(key), vs);
|
98
|
+
}
|
99
|
+
else {
|
100
|
+
values.push(...vs);
|
101
|
+
}
|
102
|
+
return this;
|
103
|
+
}
|
104
|
+
Del(ey) {
|
105
|
+
this._headers.delete(this._key(ey));
|
106
|
+
return this;
|
107
|
+
}
|
108
|
+
Items() {
|
109
|
+
return Array.from(this._headers).filter(([_, vs]) => vs.length > 0);
|
110
|
+
}
|
111
|
+
SortItems() {
|
112
|
+
return this.Items().sort(([[a]], [[b]]) => a.localeCompare(b));
|
113
|
+
}
|
114
|
+
Clone() {
|
115
|
+
const clone = new HttpHeader();
|
116
|
+
for (const [key, values] of this._headers.entries()) {
|
117
|
+
clone._headers.set(key, values.slice());
|
118
|
+
}
|
119
|
+
return clone;
|
120
|
+
}
|
121
|
+
AsRecordStringStringArray() {
|
122
|
+
const obj = {};
|
123
|
+
for (const [key, values] of this._headers.entries()) {
|
124
|
+
obj[key] = [...values];
|
125
|
+
}
|
126
|
+
return obj;
|
127
|
+
}
|
128
|
+
AsRecordStringString() {
|
129
|
+
const obj = {};
|
130
|
+
for (const [key, values] of this._headers.entries()) {
|
131
|
+
obj[key] = values.join(", ");
|
132
|
+
}
|
133
|
+
return obj;
|
134
|
+
}
|
135
|
+
AsHeaderInit() {
|
136
|
+
const obj = {};
|
137
|
+
for (const [key, values] of this._headers.entries()) {
|
138
|
+
obj[key] = values[0];
|
139
|
+
}
|
140
|
+
return obj;
|
141
|
+
}
|
142
|
+
AsHeaders() {
|
143
|
+
return new HeadersImpl(this._asStringString());
|
144
|
+
}
|
145
|
+
Merge(other) {
|
146
|
+
const ret = this.Clone();
|
147
|
+
if (other) {
|
148
|
+
for (const [key, values] of other.Items()) {
|
149
|
+
ret.Add(key, values);
|
150
|
+
}
|
151
|
+
}
|
152
|
+
return ret;
|
153
|
+
}
|
154
|
+
}
|
155
|
+
//# sourceMappingURL=http_header.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"http_header.js","sourceRoot":"","sources":["../../src/http_header.ts"],"names":[],"mappings":"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"}
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"http_header.test.d.ts","sourceRoot":"","sources":["../../src/http_header.test.ts"],"names":[],"mappings":""}
|
@@ -0,0 +1,90 @@
|
|
1
|
+
import { HttpHeader } from "./http_header.js";
|
2
|
+
describe("HttpHeader", () => {
|
3
|
+
it("Add should join different case headings to case insensitive ", () => {
|
4
|
+
const h = HttpHeader.from({
|
5
|
+
"Content-Type": "application/json",
|
6
|
+
});
|
7
|
+
h.Add("content-Type", "application/xml");
|
8
|
+
expect(h.Get("Content-Type")).toEqual("application/json");
|
9
|
+
expect(h.Values("Content-Type")).toEqual(["application/json", "application/xml"]);
|
10
|
+
});
|
11
|
+
it("items should return all items", () => {
|
12
|
+
const h = new HttpHeader();
|
13
|
+
expect(h.Items()).toEqual([]);
|
14
|
+
h.Add("key", []);
|
15
|
+
expect(h.Items()).toEqual([]);
|
16
|
+
h.Add("key", "value");
|
17
|
+
expect(h.Items()).toEqual([["key", ["value"]]]);
|
18
|
+
});
|
19
|
+
it("Set and Get should be case insensitive", () => {
|
20
|
+
const h = HttpHeader.from({
|
21
|
+
"Content-Type": "application/json",
|
22
|
+
});
|
23
|
+
h.Set("content-Type", "application/xml");
|
24
|
+
expect(h.Values("Content-Type")).toEqual(["application/xml"]);
|
25
|
+
expect(h.Values("content-Type")).toEqual(["application/xml"]);
|
26
|
+
});
|
27
|
+
it("Get with empty values should return undefined and empty Items", () => {
|
28
|
+
const h = new HttpHeader();
|
29
|
+
h.Add("key", []);
|
30
|
+
expect(h.Get("key")).toBe(undefined);
|
31
|
+
expect(h.Values("key")).toEqual([]);
|
32
|
+
expect(h.Items()).toEqual([]);
|
33
|
+
});
|
34
|
+
it("from Array", () => {
|
35
|
+
const h = HttpHeader.from([
|
36
|
+
["Content-Type", "application/json"],
|
37
|
+
["Content-Type", "application/xml"],
|
38
|
+
["bla", "application/xml"],
|
39
|
+
["blub", ["bla", "blub"]],
|
40
|
+
]);
|
41
|
+
expect(h.SortItems()).toEqual([
|
42
|
+
["bla", ["application/xml"]],
|
43
|
+
["blub", ["bla", "blub"]],
|
44
|
+
["content-type", ["application/json", "application/xml"]],
|
45
|
+
]);
|
46
|
+
});
|
47
|
+
it("from Object", () => {
|
48
|
+
const h = HttpHeader.from({
|
49
|
+
"Content-Type": "application/json",
|
50
|
+
"content-Type": "application/xml",
|
51
|
+
bla: "application/xml",
|
52
|
+
blub: ["bla", "blub"],
|
53
|
+
});
|
54
|
+
expect(h.SortItems()).toEqual([
|
55
|
+
["bla", ["application/xml"]],
|
56
|
+
["blub", ["bla", "blub"]],
|
57
|
+
["content-type", ["application/json", "application/xml"]],
|
58
|
+
]);
|
59
|
+
});
|
60
|
+
it("from Headers", () => {
|
61
|
+
const header = new Headers();
|
62
|
+
header.append("Content-Type", "application/json");
|
63
|
+
header.append("content-Type", "application/xml");
|
64
|
+
header.append("bla", "application/xml");
|
65
|
+
header.append("blub", "bla");
|
66
|
+
header.append("bluB", "blub");
|
67
|
+
const h = HttpHeader.from(header);
|
68
|
+
expect(h.Items()).toEqual([
|
69
|
+
["bla", ["application/xml"]],
|
70
|
+
["blub", ["bla", "blub"]],
|
71
|
+
["content-type", ["application/json", "application/xml"]],
|
72
|
+
]);
|
73
|
+
});
|
74
|
+
it("AbstractHeaders", () => {
|
75
|
+
const ah = new HttpHeader().AsHeaders();
|
76
|
+
ah.append("a", "b");
|
77
|
+
expect(Array.from(ah.keys())).toEqual(["a"]);
|
78
|
+
expect(Array.from(ah.entries())).toEqual([["a", "b"]]);
|
79
|
+
ah.append("a", "c");
|
80
|
+
expect(Array.from(ah.keys())).toEqual(["a"]);
|
81
|
+
expect(Array.from(ah.entries())).toEqual([["a", "b, c"]]);
|
82
|
+
ah.append("a", "d, e");
|
83
|
+
expect(Array.from(ah.keys())).toEqual(["a"]);
|
84
|
+
expect(Array.from(ah.entries())).toEqual([["a", "b, c, d, e"]]);
|
85
|
+
ah.append("v", "w");
|
86
|
+
expect(Array.from(ah.keys())).toEqual(["a", "v"]);
|
87
|
+
expect(Array.from(ah.values())).toEqual(["b, c, d, e", "w"]);
|
88
|
+
});
|
89
|
+
});
|
90
|
+
//# sourceMappingURL=http_header.test.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"http_header.test.js","sourceRoot":"","sources":["../../src/http_header.test.ts"],"names":[],"mappings":"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"}
|
package/ts/index.d.ts
CHANGED
package/ts/index.d.ts.map
CHANGED
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,mBAAmB,CAAC;AAClC,cAAc,kBAAkB,CAAC;AACjC,cAAc,aAAa,CAAC;AAC5B,cAAc,sBAAsB,CAAC;AACrC,cAAc,cAAc,CAAC;AAC7B,cAAc,WAAW,CAAC;AAC1B,cAAc,4BAA4B,CAAC;AAC3C,cAAc,uBAAuB,CAAC;AACtC,cAAc,qBAAqB,CAAC;AACpC,cAAc,qBAAqB,CAAC;AACpC,cAAc,aAAa,CAAC;AAC5B,cAAc,aAAa,CAAC;AAC5B,cAAc,aAAa,CAAC;AAC5B,cAAc,aAAa,CAAC;AAC5B,cAAc,mBAAmB,CAAC;AAClC,cAAc,cAAc,CAAC;AAC7B,cAAc,UAAU,CAAC;AACzB,cAAc,aAAa,CAAC;AAC5B,cAAc,2BAA2B,CAAC;AAC1C,cAAc,eAAe,CAAC;AAC9B,cAAc,cAAc,CAAC;AAC7B,OAAO,KAAK,KAAK,MAAM,kBAAkB,CAAC"}
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,mBAAmB,CAAC;AAClC,cAAc,kBAAkB,CAAC;AACjC,cAAc,aAAa,CAAC;AAC5B,cAAc,sBAAsB,CAAC;AACrC,cAAc,cAAc,CAAC;AAC7B,cAAc,WAAW,CAAC;AAC1B,cAAc,4BAA4B,CAAC;AAC3C,cAAc,uBAAuB,CAAC;AACtC,cAAc,qBAAqB,CAAC;AACpC,cAAc,qBAAqB,CAAC;AACpC,cAAc,aAAa,CAAC;AAC5B,cAAc,aAAa,CAAC;AAC5B,cAAc,aAAa,CAAC;AAC5B,cAAc,aAAa,CAAC;AAC5B,cAAc,mBAAmB,CAAC;AAClC,cAAc,cAAc,CAAC;AAC7B,cAAc,UAAU,CAAC;AACzB,cAAc,aAAa,CAAC;AAC5B,cAAc,2BAA2B,CAAC;AAC1C,cAAc,eAAe,CAAC;AAC9B,cAAc,cAAc,CAAC;AAC7B,cAAc,kBAAkB,CAAC;AACjC,OAAO,KAAK,KAAK,MAAM,kBAAkB,CAAC"}
|
package/ts/index.js
CHANGED
package/ts/index.js.map
CHANGED
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,mBAAmB,CAAC;AAClC,cAAc,kBAAkB,CAAC;AACjC,cAAc,aAAa,CAAC;AAC5B,cAAc,sBAAsB,CAAC;AACrC,cAAc,cAAc,CAAC;AAC7B,cAAc,WAAW,CAAC;AAC1B,cAAc,4BAA4B,CAAC;AAC3C,cAAc,uBAAuB,CAAC;AACtC,cAAc,qBAAqB,CAAC;AACpC,cAAc,qBAAqB,CAAC;AACpC,cAAc,aAAa,CAAC;AAC5B,cAAc,aAAa,CAAC;AAC5B,cAAc,aAAa,CAAC;AAC5B,cAAc,aAAa,CAAC;AAC5B,cAAc,mBAAmB,CAAC;AAClC,cAAc,cAAc,CAAC;AAC7B,cAAc,UAAU,CAAC;AACzB,cAAc,aAAa,CAAC;AAC5B,cAAc,2BAA2B,CAAC;AAC1C,cAAc,eAAe,CAAC;AAC9B,cAAc,cAAc,CAAC;AAC7B,OAAO,KAAK,KAAK,MAAM,kBAAkB,CAAC"}
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,mBAAmB,CAAC;AAClC,cAAc,kBAAkB,CAAC;AACjC,cAAc,aAAa,CAAC;AAC5B,cAAc,sBAAsB,CAAC;AACrC,cAAc,cAAc,CAAC;AAC7B,cAAc,WAAW,CAAC;AAC1B,cAAc,4BAA4B,CAAC;AAC3C,cAAc,uBAAuB,CAAC;AACtC,cAAc,qBAAqB,CAAC;AACpC,cAAc,qBAAqB,CAAC;AACpC,cAAc,aAAa,CAAC;AAC5B,cAAc,aAAa,CAAC;AAC5B,cAAc,aAAa,CAAC;AAC5B,cAAc,aAAa,CAAC;AAC5B,cAAc,mBAAmB,CAAC;AAClC,cAAc,cAAc,CAAC;AAC7B,cAAc,UAAU,CAAC;AACzB,cAAc,aAAa,CAAC;AAC5B,cAAc,2BAA2B,CAAC;AAC1C,cAAc,eAAe,CAAC;AAC9B,cAAc,cAAc,CAAC;AAC7B,cAAc,kBAAkB,CAAC;AACjC,OAAO,KAAK,KAAK,MAAM,kBAAkB,CAAC"}
|
package/ts/log-level-impl.d.ts
CHANGED
@@ -1,11 +1,14 @@
|
|
1
1
|
import { LevelHandler, Level } from "./logger.js";
|
2
|
+
import { Option } from "./option.js";
|
2
3
|
export declare class LevelHandlerImpl implements LevelHandler {
|
3
4
|
readonly _globalLevels: Set<Level>;
|
4
5
|
readonly _modules: Map<string, Set<Level>>;
|
6
|
+
ignoreAttr: Option<RegExp>;
|
5
7
|
isStackExposed: boolean;
|
6
8
|
enableLevel(level: Level, ...modules: string[]): void;
|
7
9
|
disableLevel(level: Level, ...modules: string[]): void;
|
8
10
|
setExposeStack(enable?: boolean): void;
|
11
|
+
setIgnoreAttr(re?: RegExp): void;
|
9
12
|
forModules(level: Level, fnAction: (p: string) => void, ...modules: (string | string[])[]): void;
|
10
13
|
setDebug(...modules: (string | string[])[]): void;
|
11
14
|
isEnabled(ilevel: unknown, module: unknown): boolean;
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"log-level-impl.d.ts","sourceRoot":"","sources":["../../src/log-level-impl.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,KAAK,EAAE,MAAM,aAAa,CAAC;
|
1
|
+
{"version":3,"file":"log-level-impl.d.ts","sourceRoot":"","sources":["../../src/log-level-impl.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,KAAK,EAAE,MAAM,aAAa,CAAC;AAClD,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAErC,qBAAa,gBAAiB,YAAW,YAAY;IACnD,QAAQ,CAAC,aAAa,EAAE,GAAG,CAAC,KAAK,CAAC,CAAyD;IAC3F,QAAQ,CAAC,QAAQ,EAAE,GAAG,CAAC,MAAM,EAAE,GAAG,CAAC,KAAK,CAAC,CAAC,CAAiC;IAE3E,UAAU,EAAE,MAAM,CAAC,MAAM,CAAC,CAAqB;IAC/C,cAAc,UAAS;IACvB,WAAW,CAAC,KAAK,EAAE,KAAK,EAAE,GAAG,OAAO,EAAE,MAAM,EAAE,GAAG,IAAI;IAarD,YAAY,CAAC,KAAK,EAAE,KAAK,EAAE,GAAG,OAAO,EAAE,MAAM,EAAE,GAAG,IAAI;IActD,cAAc,CAAC,MAAM,CAAC,EAAE,OAAO,GAAG,IAAI;IAItC,aAAa,CAAC,EAAE,CAAC,EAAE,MAAM,GAAG,IAAI;IAIhC,UAAU,CAAC,KAAK,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC,CAAC,EAAE,MAAM,KAAK,IAAI,EAAE,GAAG,OAAO,EAAE,CAAC,MAAM,GAAG,MAAM,EAAE,CAAC,EAAE,GAAG,IAAI;IAchG,QAAQ,CAAC,GAAG,OAAO,EAAE,CAAC,MAAM,GAAG,MAAM,EAAE,CAAC,EAAE,GAAG,IAAI;IASjD,SAAS,CAAC,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,GAAG,OAAO;CAoBrD;AAID,wBAAgB,qBAAqB,IAAI,YAAY,CAEpD"}
|
package/ts/log-level-impl.js
CHANGED
@@ -1,8 +1,10 @@
|
|
1
1
|
import { Level } from "./logger.js";
|
2
|
+
import { Option } from "./option.js";
|
2
3
|
export class LevelHandlerImpl {
|
3
4
|
constructor() {
|
4
5
|
this._globalLevels = new Set([Level.INFO, Level.ERROR, Level.WARN]);
|
5
6
|
this._modules = new Map();
|
7
|
+
this.ignoreAttr = Option.Some(/^_/);
|
6
8
|
this.isStackExposed = false;
|
7
9
|
}
|
8
10
|
enableLevel(level, ...modules) {
|
@@ -26,6 +28,9 @@ export class LevelHandlerImpl {
|
|
26
28
|
setExposeStack(enable) {
|
27
29
|
this.isStackExposed = !!enable;
|
28
30
|
}
|
31
|
+
setIgnoreAttr(re) {
|
32
|
+
this.ignoreAttr = Option.From(re);
|
33
|
+
}
|
29
34
|
forModules(level, fnAction, ...modules) {
|
30
35
|
for (const m of modules.flat()) {
|
31
36
|
if (typeof m !== "string") {
|
package/ts/log-level-impl.js.map
CHANGED
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"log-level-impl.js","sourceRoot":"","sources":["../../src/log-level-impl.ts"],"names":[],"mappings":"AAAA,OAAO,EAAgB,KAAK,EAAE,MAAM,aAAa,CAAC;
|
1
|
+
{"version":3,"file":"log-level-impl.js","sourceRoot":"","sources":["../../src/log-level-impl.ts"],"names":[],"mappings":"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"}
|
package/ts/logger-impl.d.ts
CHANGED
@@ -30,7 +30,7 @@ export declare class LoggerImpl implements Logger {
|
|
30
30
|
readonly _attributes: LogSerializable;
|
31
31
|
readonly _withAttributes: LogSerializable;
|
32
32
|
readonly _logWriter: LogWriterStream;
|
33
|
-
readonly
|
33
|
+
readonly levelHandler: LevelHandler;
|
34
34
|
readonly _txtEnDe: TxtEnDecoder;
|
35
35
|
_formatter: LogFormatter;
|
36
36
|
constructor(params?: LoggerImplParams);
|
@@ -41,6 +41,7 @@ export declare class LoggerImpl implements Logger {
|
|
41
41
|
DisableLevel(level: Level, ...modules: string[]): Logger;
|
42
42
|
Module(key: string): Logger;
|
43
43
|
SetDebug(...modules: (string | string[])[]): Logger;
|
44
|
+
SetIgnoreAttribute(re?: RegExp): Logger;
|
44
45
|
SetFormatter(formatter: LogFormatter): Logger;
|
45
46
|
Timestamp(): Logger;
|
46
47
|
Warn(): Logger;
|