@adviser/cement 0.0.0-jsr-t1
Sign up to get free protection for your applications and to get access to all the features.
- package/LICENSE +201 -0
- package/README.md +39 -0
- package/base-sys-abstraction-BkEiLHl0.d.ts +193 -0
- package/base-sys-abstraction-Qj7pkY1N.d.cts +193 -0
- package/chunk-7KFVMTOS.js +311 -0
- package/chunk-7KFVMTOS.js.map +1 -0
- package/chunk-GES3MUGV.js +92 -0
- package/chunk-GES3MUGV.js.map +1 -0
- package/chunk-Q65HLCNL.js +601 -0
- package/chunk-Q65HLCNL.js.map +1 -0
- package/chunk-WMMUXBDX.js +87 -0
- package/chunk-WMMUXBDX.js.map +1 -0
- package/index-Q3phXzYr.d.cts +75 -0
- package/index-tIGZMHTc.d.ts +75 -0
- package/index.cjs +2593 -0
- package/index.cjs.map +1 -0
- package/index.d.cts +532 -0
- package/index.d.ts +532 -0
- package/index.js +1533 -0
- package/index.js.map +1 -0
- package/node/index.cjs +924 -0
- package/node/index.cjs.map +1 -0
- package/node/index.d.cts +65 -0
- package/node/index.d.ts +65 -0
- package/node/index.js +398 -0
- package/node/index.js.map +1 -0
- package/package.json +81 -0
- package/src/base-sys-abstraction.test.ts +95 -0
- package/src/base-sys-abstraction.ts +242 -0
- package/src/bin2text.test.ts +59 -0
- package/src/bin2text.ts +47 -0
- package/src/crypto.test.ts +15 -0
- package/src/crypto.ts +125 -0
- package/src/file-service.ts +24 -0
- package/src/future.test.ts +32 -0
- package/src/future.ts +27 -0
- package/src/index.ts +22 -0
- package/src/jsr.json +20 -0
- package/src/log-level-impl.ts +87 -0
- package/src/log-writer-impl.ts +58 -0
- package/src/logger-impl.ts +498 -0
- package/src/logger.test.ts +1132 -0
- package/src/logger.ts +208 -0
- package/src/node/deno-file-service.ts +92 -0
- package/src/node/deno-sys-abstraction.ts +133 -0
- package/src/node/index.ts +4 -0
- package/src/node/mock-file-service.ts +45 -0
- package/src/node/node-file-service.ts +91 -0
- package/src/node/node-sys-abstraction.ts +121 -0
- package/src/option.ts +60 -0
- package/src/resolve-once.test.ts +321 -0
- package/src/resolve-once.ts +179 -0
- package/src/result.test.ts +102 -0
- package/src/result.ts +165 -0
- package/src/runtime.ts +36 -0
- package/src/sys-abstraction.ts +53 -0
- package/src/sys-env.test.ts +53 -0
- package/src/sys-env.ts +216 -0
- package/src/test/log-write-stream.ts +95 -0
- package/src/test/mock-logger.ts +40 -0
- package/src/time.ts +20 -0
- package/src/tracer.test.ts +314 -0
- package/src/tracer.ts +222 -0
- package/src/txt-en-decoder.ts +21 -0
- package/src/uri.test.ts +155 -0
- package/src/uri.ts +421 -0
- package/src/utils/console-write-stream.ts +72 -0
- package/src/utils/fanout-write-stream.ts +32 -0
- package/src/utils/index.ts +6 -0
- package/src/utils/rebuffer.ts +75 -0
- package/src/utils/stream-map.ts +67 -0
- package/src/utils/stream2string.ts +47 -0
- package/src/utils/string2stream.ts +14 -0
- package/src/version.ts +3 -0
- package/src/web/index.ts +1 -0
- package/src/web/web-sys-abstraction.ts +80 -0
- package/ts/LICENSE +201 -0
- package/ts/README.md +39 -0
- package/ts/base-sys-abstraction.d.ts +84 -0
- package/ts/base-sys-abstraction.d.ts.map +1 -0
- package/ts/base-sys-abstraction.js +178 -0
- package/ts/base-sys-abstraction.js.map +1 -0
- package/ts/base-sys-abstraction.test.d.ts +2 -0
- package/ts/base-sys-abstraction.test.d.ts.map +1 -0
- package/ts/base-sys-abstraction.test.js +82 -0
- package/ts/base-sys-abstraction.test.js.map +1 -0
- package/ts/bin2text.d.ts +3 -0
- package/ts/bin2text.d.ts.map +1 -0
- package/ts/bin2text.js +43 -0
- package/ts/bin2text.js.map +1 -0
- package/ts/bin2text.test.d.ts +2 -0
- package/ts/bin2text.test.d.ts.map +1 -0
- package/ts/bin2text.test.js +51 -0
- package/ts/bin2text.test.js.map +1 -0
- package/ts/crypto.d.ts +76 -0
- package/ts/crypto.d.ts.map +1 -0
- package/ts/crypto.js +22 -0
- package/ts/crypto.js.map +1 -0
- package/ts/crypto.test.d.ts +2 -0
- package/ts/crypto.test.d.ts.map +1 -0
- package/ts/crypto.test.js +14 -0
- package/ts/crypto.test.js.map +1 -0
- package/ts/file-service.d.ts +17 -0
- package/ts/file-service.d.ts.map +1 -0
- package/ts/file-service.js +2 -0
- package/ts/file-service.js.map +1 -0
- package/ts/future.d.ts +8 -0
- package/ts/future.d.ts.map +1 -0
- package/ts/future.js +38 -0
- package/ts/future.js.map +1 -0
- package/ts/future.test.d.ts +2 -0
- package/ts/future.test.d.ts.map +1 -0
- package/ts/future.test.js +28 -0
- package/ts/future.test.js.map +1 -0
- package/ts/index.d.ts +23 -0
- package/ts/index.d.ts.map +1 -0
- package/ts/index.js +23 -0
- package/ts/index.js.map +1 -0
- package/ts/log-level-impl.d.ts +14 -0
- package/ts/log-level-impl.d.ts.map +1 -0
- package/ts/log-level-impl.js +72 -0
- package/ts/log-level-impl.js.map +1 -0
- package/ts/log-writer-impl.d.ts +10 -0
- package/ts/log-writer-impl.d.ts.map +1 -0
- package/ts/log-writer-impl.js +45 -0
- package/ts/log-writer-impl.js.map +1 -0
- package/ts/logger-impl.d.ts +71 -0
- package/ts/logger-impl.d.ts.map +1 -0
- package/ts/logger-impl.js +412 -0
- package/ts/logger-impl.js.map +1 -0
- package/ts/logger.d.ts +84 -0
- package/ts/logger.d.ts.map +1 -0
- package/ts/logger.js +114 -0
- package/ts/logger.js.map +1 -0
- package/ts/logger.test.d.ts +2 -0
- package/ts/logger.test.d.ts.map +1 -0
- package/ts/logger.test.js +1023 -0
- package/ts/logger.test.js.map +1 -0
- package/ts/node/deno-file-service.d.ts +17 -0
- package/ts/node/deno-file-service.d.ts.map +1 -0
- package/ts/node/deno-file-service.js +65 -0
- package/ts/node/deno-file-service.js.map +1 -0
- package/ts/node/deno-sys-abstraction.d.ts +22 -0
- package/ts/node/deno-sys-abstraction.d.ts.map +1 -0
- package/ts/node/deno-sys-abstraction.js +101 -0
- package/ts/node/deno-sys-abstraction.js.map +1 -0
- package/ts/node/index.d.ts +5 -0
- package/ts/node/index.d.ts.map +1 -0
- package/ts/node/index.js +5 -0
- package/ts/node/index.js.map +1 -0
- package/ts/node/mock-file-service.d.ts +11 -0
- package/ts/node/mock-file-service.d.ts.map +1 -0
- package/ts/node/mock-file-service.js +34 -0
- package/ts/node/mock-file-service.js.map +1 -0
- package/ts/node/mock-file-service.test.d.ts +2 -0
- package/ts/node/mock-file-service.test.d.ts.map +1 -0
- package/ts/node/mock-file-service.test.js +31 -0
- package/ts/node/mock-file-service.test.js.map +1 -0
- package/ts/node/node-file-service.d.ts +16 -0
- package/ts/node/node-file-service.d.ts.map +1 -0
- package/ts/node/node-file-service.js +71 -0
- package/ts/node/node-file-service.js.map +1 -0
- package/ts/node/node-sys-abstraction.d.ts +22 -0
- package/ts/node/node-sys-abstraction.d.ts.map +1 -0
- package/ts/node/node-sys-abstraction.js +99 -0
- package/ts/node/node-sys-abstraction.js.map +1 -0
- package/ts/node/node-sys-abstraction.test.d.ts +2 -0
- package/ts/node/node-sys-abstraction.test.d.ts.map +1 -0
- package/ts/node/node-sys-abstraction.test.js +87 -0
- package/ts/node/node-sys-abstraction.test.js.map +1 -0
- package/ts/option.d.ts +25 -0
- package/ts/option.d.ts.map +1 -0
- package/ts/option.js +47 -0
- package/ts/option.js.map +1 -0
- package/ts/resolve-once.d.ts +46 -0
- package/ts/resolve-once.d.ts.map +1 -0
- package/ts/resolve-once.js +152 -0
- package/ts/resolve-once.js.map +1 -0
- package/ts/resolve-once.test.d.ts +2 -0
- package/ts/resolve-once.test.d.ts.map +1 -0
- package/ts/resolve-once.test.js +283 -0
- package/ts/resolve-once.test.js.map +1 -0
- package/ts/result.d.ts +34 -0
- package/ts/result.d.ts.map +1 -0
- package/ts/result.js +85 -0
- package/ts/result.js.map +1 -0
- package/ts/result.test.d.ts +2 -0
- package/ts/result.test.d.ts.map +1 -0
- package/ts/result.test.js +79 -0
- package/ts/result.test.js.map +1 -0
- package/ts/runtime.d.ts +8 -0
- package/ts/runtime.d.ts.map +1 -0
- package/ts/runtime.js +26 -0
- package/ts/runtime.js.map +1 -0
- package/ts/sys-abstraction.d.ts +36 -0
- package/ts/sys-abstraction.d.ts.map +1 -0
- package/ts/sys-abstraction.js +31 -0
- package/ts/sys-abstraction.js.map +1 -0
- package/ts/sys-env.d.ts +48 -0
- package/ts/sys-env.d.ts.map +1 -0
- package/ts/sys-env.js +176 -0
- package/ts/sys-env.js.map +1 -0
- package/ts/sys-env.test.d.ts +2 -0
- package/ts/sys-env.test.d.ts.map +1 -0
- package/ts/sys-env.test.js +51 -0
- package/ts/sys-env.test.js.map +1 -0
- package/ts/test/log-write-stream.d.ts +27 -0
- package/ts/test/log-write-stream.d.ts.map +1 -0
- package/ts/test/log-write-stream.js +74 -0
- package/ts/test/log-write-stream.js.map +1 -0
- package/ts/test/mock-logger.d.ts +14 -0
- package/ts/test/mock-logger.d.ts.map +1 -0
- package/ts/test/mock-logger.js +29 -0
- package/ts/test/mock-logger.js.map +1 -0
- package/ts/test/mock-logger.test.d.ts +2 -0
- package/ts/test/mock-logger.test.d.ts.map +1 -0
- package/ts/test/mock-logger.test.js +63 -0
- package/ts/test/mock-logger.test.js.map +1 -0
- package/ts/test/test-exit-handler.d.ts +2 -0
- package/ts/test/test-exit-handler.d.ts.map +1 -0
- package/ts/test/test-exit-handler.js +57 -0
- package/ts/test/test-exit-handler.js.map +1 -0
- package/ts/time.d.ts +13 -0
- package/ts/time.d.ts.map +1 -0
- package/ts/time.js +14 -0
- package/ts/time.js.map +1 -0
- package/ts/tracer.d.ts +59 -0
- package/ts/tracer.d.ts.map +1 -0
- package/ts/tracer.js +148 -0
- package/ts/tracer.js.map +1 -0
- package/ts/tracer.test.d.ts +2 -0
- package/ts/tracer.test.d.ts.map +1 -0
- package/ts/tracer.test.js +311 -0
- package/ts/tracer.test.js.map +1 -0
- package/ts/txt-en-decoder.d.ts +10 -0
- package/ts/txt-en-decoder.d.ts.map +1 -0
- package/ts/txt-en-decoder.js +15 -0
- package/ts/txt-en-decoder.js.map +1 -0
- package/ts/uri.d.ts +67 -0
- package/ts/uri.d.ts.map +1 -0
- package/ts/uri.js +283 -0
- package/ts/uri.js.map +1 -0
- package/ts/uri.test.d.ts +2 -0
- package/ts/uri.test.d.ts.map +1 -0
- package/ts/uri.test.js +119 -0
- package/ts/uri.test.js.map +1 -0
- package/ts/utils/console-write-stream.d.ts +21 -0
- package/ts/utils/console-write-stream.d.ts.map +1 -0
- package/ts/utils/console-write-stream.js +62 -0
- package/ts/utils/console-write-stream.js.map +1 -0
- package/ts/utils/fanout-write-stream.d.ts +12 -0
- package/ts/utils/fanout-write-stream.d.ts.map +1 -0
- package/ts/utils/fanout-write-stream.js +24 -0
- package/ts/utils/fanout-write-stream.js.map +1 -0
- package/ts/utils/index.d.ts +7 -0
- package/ts/utils/index.d.ts.map +1 -0
- package/ts/utils/index.js +7 -0
- package/ts/utils/index.js.map +1 -0
- package/ts/utils/rebuffer.d.ts +3 -0
- package/ts/utils/rebuffer.d.ts.map +1 -0
- package/ts/utils/rebuffer.js +60 -0
- package/ts/utils/rebuffer.js.map +1 -0
- package/ts/utils/rebuffer.test.d.ts +2 -0
- package/ts/utils/rebuffer.test.d.ts.map +1 -0
- package/ts/utils/rebuffer.test.js +77 -0
- package/ts/utils/rebuffer.test.js.map +1 -0
- package/ts/utils/stream-map.d.ts +9 -0
- package/ts/utils/stream-map.d.ts.map +1 -0
- package/ts/utils/stream-map.js +62 -0
- package/ts/utils/stream-map.js.map +1 -0
- package/ts/utils/stream-map.test.d.ts +2 -0
- package/ts/utils/stream-map.test.d.ts.map +1 -0
- package/ts/utils/stream-map.test.js +87 -0
- package/ts/utils/stream-map.test.js.map +1 -0
- package/ts/utils/stream-test-helper.d.ts +17 -0
- package/ts/utils/stream-test-helper.d.ts.map +1 -0
- package/ts/utils/stream-test-helper.js +37 -0
- package/ts/utils/stream-test-helper.js.map +1 -0
- package/ts/utils/stream2string.d.ts +3 -0
- package/ts/utils/stream2string.d.ts.map +1 -0
- package/ts/utils/stream2string.js +48 -0
- package/ts/utils/stream2string.js.map +1 -0
- package/ts/utils/stream2string.test.d.ts +2 -0
- package/ts/utils/stream2string.test.d.ts.map +1 -0
- package/ts/utils/stream2string.test.js +29 -0
- package/ts/utils/stream2string.test.js.map +1 -0
- package/ts/utils/string2stream.d.ts +4 -0
- package/ts/utils/string2stream.d.ts.map +1 -0
- package/ts/utils/string2stream.js +13 -0
- package/ts/utils/string2stream.js.map +1 -0
- package/ts/utils/string2stream.test.d.ts +2 -0
- package/ts/utils/string2stream.test.d.ts.map +1 -0
- package/ts/utils/string2stream.test.js +6 -0
- package/ts/utils/string2stream.test.js.map +1 -0
- package/ts/version.d.ts +2 -0
- package/ts/version.d.ts.map +1 -0
- package/ts/version.js +4 -0
- package/ts/version.js.map +1 -0
- package/ts/web/index.d.ts +2 -0
- package/ts/web/index.d.ts.map +1 -0
- package/ts/web/index.js +2 -0
- package/ts/web/index.js.map +1 -0
- package/ts/web/web-sys-abstraction.d.ts +4 -0
- package/ts/web/web-sys-abstraction.d.ts.map +1 -0
- package/ts/web/web-sys-abstraction.js +64 -0
- package/ts/web/web-sys-abstraction.js.map +1 -0
- package/txt-en-decoder-CZYJUju2.d.cts +11 -0
- package/txt-en-decoder-CZYJUju2.d.ts +11 -0
- package/utils/index.cjs +341 -0
- package/utils/index.cjs.map +1 -0
- package/utils/index.d.cts +2 -0
- package/utils/index.d.ts +2 -0
- package/utils/index.js +32 -0
- package/utils/index.js.map +1 -0
- package/web/index.cjs +593 -0
- package/web/index.cjs.map +1 -0
- package/web/index.d.cts +6 -0
- package/web/index.d.ts +6 -0
- package/web/index.js +9 -0
- package/web/index.js.map +1 -0
package/ts/uri.d.ts
ADDED
@@ -0,0 +1,67 @@
|
|
1
|
+
import { Result } from "./result.js";
|
2
|
+
type NullOrUndef = null | undefined;
|
3
|
+
export declare function isURL(value: unknown): value is URL;
|
4
|
+
export declare class MutableURL extends URL {
|
5
|
+
private readonly _sysURL;
|
6
|
+
private _protocol;
|
7
|
+
private _pathname;
|
8
|
+
private _hasHostpart;
|
9
|
+
readonly hash: string;
|
10
|
+
constructor(urlStr: string);
|
11
|
+
clone(): MutableURL;
|
12
|
+
get host(): string;
|
13
|
+
get port(): string;
|
14
|
+
set port(p: string);
|
15
|
+
get hostname(): string;
|
16
|
+
set hostname(h: string);
|
17
|
+
set pathname(p: string);
|
18
|
+
get pathname(): string;
|
19
|
+
get protocol(): string;
|
20
|
+
set protocol(p: string);
|
21
|
+
get searchParams(): URLSearchParams;
|
22
|
+
toString(): string;
|
23
|
+
}
|
24
|
+
export declare class BuildURI {
|
25
|
+
_url: MutableURL;
|
26
|
+
private constructor();
|
27
|
+
static is(value: unknown): value is BuildURI;
|
28
|
+
static from(strURLUri?: CoerceURI, defaultProtocol?: string): BuildURI;
|
29
|
+
port(p: string): BuildURI;
|
30
|
+
hostname(h: string): BuildURI;
|
31
|
+
protocol(p: string): BuildURI;
|
32
|
+
pathname(p: string): BuildURI;
|
33
|
+
delParam(key: string): BuildURI;
|
34
|
+
defParam(key: string, str: string): BuildURI;
|
35
|
+
setParam(key: string, str: string): BuildURI;
|
36
|
+
hasParam(key: string): boolean;
|
37
|
+
getParam(key: string): string | undefined;
|
38
|
+
toString(): string;
|
39
|
+
toJSON(): string;
|
40
|
+
URI(): URI;
|
41
|
+
}
|
42
|
+
export type CoerceURI = string | URI | MutableURL | URL | BuildURI | NullOrUndef;
|
43
|
+
export declare const protocols: Set<string>;
|
44
|
+
export declare class URI {
|
45
|
+
static protocolHasHostpart(protocol: string): () => void;
|
46
|
+
static merge(into: CoerceURI, from: CoerceURI, defaultProtocol?: string): URI;
|
47
|
+
static is(value: unknown): value is URI;
|
48
|
+
static from(strURLUri?: CoerceURI, defaultProtocol?: string): URI;
|
49
|
+
static fromResult(strURLUri?: CoerceURI, defaultProtocol?: string): Result<URI>;
|
50
|
+
readonly _url: MutableURL;
|
51
|
+
private constructor();
|
52
|
+
build(): BuildURI;
|
53
|
+
get hostname(): string;
|
54
|
+
get port(): string;
|
55
|
+
get host(): string;
|
56
|
+
get protocol(): string;
|
57
|
+
get pathname(): string;
|
58
|
+
get getParams(): Iterable<[string, string]>;
|
59
|
+
hasParam(key: string): boolean;
|
60
|
+
getParam(key: string): string | undefined;
|
61
|
+
clone(): URI;
|
62
|
+
asURL(): URL;
|
63
|
+
toString(): string;
|
64
|
+
toJSON(): string;
|
65
|
+
}
|
66
|
+
export {};
|
67
|
+
//# sourceMappingURL=uri.d.ts.map
|
package/ts/uri.d.ts.map
ADDED
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"uri.d.ts","sourceRoot":"","sources":["../../src/uri.ts"],"names":[],"mappings":"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"}
|
package/ts/uri.js
ADDED
@@ -0,0 +1,283 @@
|
|
1
|
+
import { exception2Result } from "./result.js";
|
2
|
+
function falsy2undef(value) {
|
3
|
+
return value === undefined || value === null ? undefined : value;
|
4
|
+
}
|
5
|
+
function ensureURLWithDefaultProto(url, defaultProtocol) {
|
6
|
+
if (!url) {
|
7
|
+
return new MutableURL(`${defaultProtocol}//`);
|
8
|
+
}
|
9
|
+
if (typeof url === "string") {
|
10
|
+
try {
|
11
|
+
return new MutableURL(url);
|
12
|
+
}
|
13
|
+
catch (e) {
|
14
|
+
return new MutableURL(`${defaultProtocol}//${url}`);
|
15
|
+
}
|
16
|
+
}
|
17
|
+
else {
|
18
|
+
return new MutableURL(url.toString());
|
19
|
+
}
|
20
|
+
}
|
21
|
+
export function isURL(value) {
|
22
|
+
return (value instanceof URL ||
|
23
|
+
(!!value &&
|
24
|
+
typeof value.searchParams === "object" &&
|
25
|
+
typeof value.searchParams.sort === "function" &&
|
26
|
+
typeof value.hash === "string"));
|
27
|
+
}
|
28
|
+
export class MutableURL extends URL {
|
29
|
+
constructor(urlStr) {
|
30
|
+
super("defect://does.not.exist");
|
31
|
+
const partedURL = urlStr.split(":");
|
32
|
+
this._hasHostpart = protocols.has(partedURL[0]);
|
33
|
+
let hostPartUrl = ["http", ...partedURL.slice(1)].join(":");
|
34
|
+
if (!this._hasHostpart) {
|
35
|
+
const pathname = hostPartUrl.replace(/http:\/\/[/]*/, "").replace(/[#?].*$/, "");
|
36
|
+
hostPartUrl = hostPartUrl.replace(/http:\/\//, `http://localhost/${pathname}`);
|
37
|
+
}
|
38
|
+
try {
|
39
|
+
this._sysURL = new URL(hostPartUrl);
|
40
|
+
}
|
41
|
+
catch (ie) {
|
42
|
+
const e = ie;
|
43
|
+
e.message = `${e.message} for URL: ${urlStr}`;
|
44
|
+
throw e;
|
45
|
+
}
|
46
|
+
this._protocol = `${partedURL[0]}:`;
|
47
|
+
if (this._hasHostpart) {
|
48
|
+
this._pathname = this._sysURL.pathname;
|
49
|
+
}
|
50
|
+
else {
|
51
|
+
this._pathname = urlStr.replace(new RegExp(`^${this._protocol}//`), "").replace(/[#?].*$/, "");
|
52
|
+
}
|
53
|
+
this.hash = this._sysURL.hash;
|
54
|
+
}
|
55
|
+
clone() {
|
56
|
+
return new MutableURL(this.toString());
|
57
|
+
}
|
58
|
+
get host() {
|
59
|
+
if (!this._hasHostpart) {
|
60
|
+
throw new Error(`you can use hostname only if protocol is ${this.toString()} ${JSON.stringify(Array.from(protocols.keys()))}`);
|
61
|
+
}
|
62
|
+
return this._sysURL.host;
|
63
|
+
}
|
64
|
+
get port() {
|
65
|
+
if (!this._hasHostpart) {
|
66
|
+
throw new Error(`you can use hostname only if protocol is ${JSON.stringify(Array.from(protocols.keys()))}`);
|
67
|
+
}
|
68
|
+
return this._sysURL.port;
|
69
|
+
}
|
70
|
+
set port(p) {
|
71
|
+
if (!this._hasHostpart) {
|
72
|
+
throw new Error(`you can use port only if protocol is ${JSON.stringify(Array.from(protocols.keys()))}`);
|
73
|
+
}
|
74
|
+
this._sysURL.port = p;
|
75
|
+
}
|
76
|
+
get hostname() {
|
77
|
+
if (!this._hasHostpart) {
|
78
|
+
throw new Error(`you can use hostname only if protocol is ${JSON.stringify(Array.from(protocols.keys()))}`);
|
79
|
+
}
|
80
|
+
return this._sysURL.hostname;
|
81
|
+
}
|
82
|
+
set hostname(h) {
|
83
|
+
if (!this._hasHostpart) {
|
84
|
+
throw new Error(`you can use hostname only if protocol is ${JSON.stringify(Array.from(protocols.keys()))}`);
|
85
|
+
}
|
86
|
+
this._sysURL.hostname = h;
|
87
|
+
}
|
88
|
+
set pathname(p) {
|
89
|
+
this._pathname = p;
|
90
|
+
}
|
91
|
+
get pathname() {
|
92
|
+
return this._pathname;
|
93
|
+
}
|
94
|
+
get protocol() {
|
95
|
+
return this._protocol;
|
96
|
+
}
|
97
|
+
set protocol(p) {
|
98
|
+
if (!p.endsWith(":")) {
|
99
|
+
p = `${p}:`;
|
100
|
+
}
|
101
|
+
this._protocol = p;
|
102
|
+
}
|
103
|
+
get searchParams() {
|
104
|
+
return this._sysURL.searchParams;
|
105
|
+
}
|
106
|
+
toString() {
|
107
|
+
let search = "";
|
108
|
+
if (this._sysURL.searchParams.size) {
|
109
|
+
for (const [key, value] of Array.from(this._sysURL.searchParams.entries()).sort((a, b) => a[0].localeCompare(b[0]))) {
|
110
|
+
search += `${!search.length ? "?" : "&"}${key}=${encodeURIComponent(value)}`;
|
111
|
+
}
|
112
|
+
}
|
113
|
+
let hostpart = "";
|
114
|
+
if (this._hasHostpart) {
|
115
|
+
hostpart = this._sysURL.hostname;
|
116
|
+
if (this._sysURL.port) {
|
117
|
+
hostpart += `:${this._sysURL.port}`;
|
118
|
+
}
|
119
|
+
if (!this._pathname.startsWith("/")) {
|
120
|
+
hostpart += "/";
|
121
|
+
}
|
122
|
+
}
|
123
|
+
return `${this._protocol}//${hostpart}${this._pathname}${search}`;
|
124
|
+
}
|
125
|
+
}
|
126
|
+
function from(fac, strURLUri, defaultProtocol) {
|
127
|
+
switch (typeof falsy2undef(strURLUri)) {
|
128
|
+
case "undefined":
|
129
|
+
return fac(new MutableURL(`${defaultProtocol}///`));
|
130
|
+
case "string":
|
131
|
+
return fac(ensureURLWithDefaultProto(strURLUri, defaultProtocol));
|
132
|
+
case "object":
|
133
|
+
if (BuildURI.is(strURLUri)) {
|
134
|
+
return fac(new MutableURL(strURLUri._url.toString()));
|
135
|
+
}
|
136
|
+
else if (URI.is(strURLUri)) {
|
137
|
+
return fac(new MutableURL(strURLUri._url.toString()));
|
138
|
+
}
|
139
|
+
else if (isURL(strURLUri)) {
|
140
|
+
return fac(new MutableURL(strURLUri.toString()));
|
141
|
+
}
|
142
|
+
throw new Error(`unknown object type: ${strURLUri}`);
|
143
|
+
default:
|
144
|
+
throw new Error(`Invalid argument: ${typeof strURLUri}`);
|
145
|
+
}
|
146
|
+
}
|
147
|
+
export class BuildURI {
|
148
|
+
constructor(url) {
|
149
|
+
this._url = url;
|
150
|
+
}
|
151
|
+
static is(value) {
|
152
|
+
return (value instanceof BuildURI ||
|
153
|
+
(!!value && typeof value.delParam === "function" && typeof value.setParam === "function"));
|
154
|
+
}
|
155
|
+
static from(strURLUri, defaultProtocol = "file:") {
|
156
|
+
return from((url) => new BuildURI(url), strURLUri, defaultProtocol);
|
157
|
+
}
|
158
|
+
port(p) {
|
159
|
+
this._url.port = p;
|
160
|
+
return this;
|
161
|
+
}
|
162
|
+
hostname(h) {
|
163
|
+
this._url.hostname = h;
|
164
|
+
return this;
|
165
|
+
}
|
166
|
+
protocol(p) {
|
167
|
+
this._url.protocol = p;
|
168
|
+
return this;
|
169
|
+
}
|
170
|
+
pathname(p) {
|
171
|
+
this._url.pathname = p;
|
172
|
+
return this;
|
173
|
+
}
|
174
|
+
delParam(key) {
|
175
|
+
this._url.searchParams.delete(key);
|
176
|
+
return this;
|
177
|
+
}
|
178
|
+
defParam(key, str) {
|
179
|
+
if (!this._url.searchParams.has(key)) {
|
180
|
+
this._url.searchParams.set(key, str);
|
181
|
+
}
|
182
|
+
return this;
|
183
|
+
}
|
184
|
+
setParam(key, str) {
|
185
|
+
this._url.searchParams.set(key, str);
|
186
|
+
return this;
|
187
|
+
}
|
188
|
+
hasParam(key) {
|
189
|
+
return this._url.searchParams.has(key);
|
190
|
+
}
|
191
|
+
getParam(key) {
|
192
|
+
return falsy2undef(this._url.searchParams.get(key));
|
193
|
+
}
|
194
|
+
toString() {
|
195
|
+
this._url.searchParams.sort();
|
196
|
+
return this._url.toString();
|
197
|
+
}
|
198
|
+
toJSON() {
|
199
|
+
return this.toString();
|
200
|
+
}
|
201
|
+
URI() {
|
202
|
+
return URI.from(this._url);
|
203
|
+
}
|
204
|
+
}
|
205
|
+
export const protocols = new Set(["http", "https", "ws", "wss"]);
|
206
|
+
export class URI {
|
207
|
+
static protocolHasHostpart(protocol) {
|
208
|
+
protocol = protocol.replace(/:$/, "");
|
209
|
+
protocols.add(protocol);
|
210
|
+
return () => {
|
211
|
+
protocols.delete(protocol);
|
212
|
+
};
|
213
|
+
}
|
214
|
+
static merge(into, from, defaultProtocol = "file:") {
|
215
|
+
const intoUrl = BuildURI.from(into, defaultProtocol);
|
216
|
+
const fromUrl = URI.from(from, defaultProtocol);
|
217
|
+
intoUrl.protocol(fromUrl.protocol);
|
218
|
+
const fPath = fromUrl.pathname;
|
219
|
+
if (!(fPath.length === 0 || fPath === "/" || fPath === "./")) {
|
220
|
+
intoUrl.pathname(fromUrl.pathname);
|
221
|
+
}
|
222
|
+
for (const [key, value] of fromUrl.getParams) {
|
223
|
+
intoUrl.setParam(key, value);
|
224
|
+
}
|
225
|
+
return intoUrl.URI();
|
226
|
+
}
|
227
|
+
static is(value) {
|
228
|
+
return (value instanceof URI ||
|
229
|
+
(!!value &&
|
230
|
+
typeof value.asURL === "function" &&
|
231
|
+
typeof value.getParam === "function" &&
|
232
|
+
typeof value.hasParam === "function"));
|
233
|
+
}
|
234
|
+
static from(strURLUri, defaultProtocol = "file:") {
|
235
|
+
return from((url) => new URI(url), strURLUri, defaultProtocol);
|
236
|
+
}
|
237
|
+
static fromResult(strURLUri, defaultProtocol = "file:") {
|
238
|
+
return exception2Result(() => from((url) => new URI(url), strURLUri, defaultProtocol));
|
239
|
+
}
|
240
|
+
constructor(url) {
|
241
|
+
this._url = url.clone();
|
242
|
+
}
|
243
|
+
build() {
|
244
|
+
return BuildURI.from(this._url);
|
245
|
+
}
|
246
|
+
get hostname() {
|
247
|
+
return this._url.hostname;
|
248
|
+
}
|
249
|
+
get port() {
|
250
|
+
return this._url.port;
|
251
|
+
}
|
252
|
+
get host() {
|
253
|
+
return this._url.host;
|
254
|
+
}
|
255
|
+
get protocol() {
|
256
|
+
return this._url.protocol;
|
257
|
+
}
|
258
|
+
get pathname() {
|
259
|
+
return this._url.pathname;
|
260
|
+
}
|
261
|
+
get getParams() {
|
262
|
+
return this._url.searchParams.entries();
|
263
|
+
}
|
264
|
+
hasParam(key) {
|
265
|
+
return this._url.searchParams.has(key);
|
266
|
+
}
|
267
|
+
getParam(key) {
|
268
|
+
return falsy2undef(this._url.searchParams.get(key));
|
269
|
+
}
|
270
|
+
clone() {
|
271
|
+
return new URI(this._url);
|
272
|
+
}
|
273
|
+
asURL() {
|
274
|
+
return this._url.clone();
|
275
|
+
}
|
276
|
+
toString() {
|
277
|
+
return this._url.toString();
|
278
|
+
}
|
279
|
+
toJSON() {
|
280
|
+
return this.toString();
|
281
|
+
}
|
282
|
+
}
|
283
|
+
//# sourceMappingURL=uri.js.map
|
package/ts/uri.js.map
ADDED
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"uri.js","sourceRoot":"","sources":["../../src/uri.ts"],"names":[],"mappings":"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"}
|
package/ts/uri.test.d.ts
ADDED
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"uri.test.d.ts","sourceRoot":"","sources":["../../src/uri.test.ts"],"names":[],"mappings":""}
|
package/ts/uri.test.js
ADDED
@@ -0,0 +1,119 @@
|
|
1
|
+
import { BuildURI, MutableURL, URI } from "@adviser/cement";
|
2
|
+
describe("BuildURI", () => {
|
3
|
+
let uri;
|
4
|
+
beforeEach(() => {
|
5
|
+
uri = BuildURI.from(new MutableURL("http://example.com"));
|
6
|
+
uri.hostname("example");
|
7
|
+
uri.setParam("key", "value");
|
8
|
+
});
|
9
|
+
it("toString", () => {
|
10
|
+
expect(uri.toString()).toBe("http://example/?key=value");
|
11
|
+
});
|
12
|
+
it("build", () => {
|
13
|
+
expect(uri.URI().toString()).toBe("http://example/?key=value");
|
14
|
+
});
|
15
|
+
it("defParam", () => {
|
16
|
+
uri.defParam("key", "value2");
|
17
|
+
uri.defParam("key2", "value2");
|
18
|
+
expect(uri.toString()).toBe("http://example/?key=value&key2=value2");
|
19
|
+
});
|
20
|
+
it("searchParams sorted in toString", () => {
|
21
|
+
uri.setParam("z", "value");
|
22
|
+
uri.setParam("a", "value");
|
23
|
+
uri.setParam("m", "value");
|
24
|
+
expect(uri.toString()).toBe("http://example/?a=value&key=value&m=value&z=value");
|
25
|
+
});
|
26
|
+
});
|
27
|
+
describe("URI", () => {
|
28
|
+
it("from str with default", () => {
|
29
|
+
const uri = URI.from("/example/wurst");
|
30
|
+
expect(uri.toString()).toBe("file:///example/wurst");
|
31
|
+
});
|
32
|
+
it("from URL str", () => {
|
33
|
+
expect(URI.from("bla://example/com?key=value").toString()).toBe("bla://example/com?key=value");
|
34
|
+
});
|
35
|
+
it("from URL", () => {
|
36
|
+
expect(URI.from(new MutableURL("blix://example.com?key=value")).toString()).toBe("blix://example.com?key=value");
|
37
|
+
});
|
38
|
+
it("from URI", () => {
|
39
|
+
expect(URI.from(URI.from("blix://example.com?key=value")).toString()).toBe("blix://example.com?key=value");
|
40
|
+
});
|
41
|
+
it("from undef", () => {
|
42
|
+
expect(URI.from(null).toString()).toBe("file:///");
|
43
|
+
});
|
44
|
+
it("build", () => {
|
45
|
+
expect(URI.from("blix://example.com?key=value").build().toString()).toBe("blix://example.com?key=value");
|
46
|
+
});
|
47
|
+
it("clone", () => {
|
48
|
+
expect(URI.from("blix://example.com?key=value").clone().toString()).toBe("blix://example.com?key=value");
|
49
|
+
});
|
50
|
+
it("asURL", () => {
|
51
|
+
expect(URI.from("blix://example.com?key=value").asURL().toString()).toBe("blix://example.com?key=value");
|
52
|
+
});
|
53
|
+
it("toString", () => {
|
54
|
+
expect(URI.from("blix://example.com?key=value").toString()).toBe("blix://example.com?key=value");
|
55
|
+
});
|
56
|
+
it("searchParams sorted in toString", () => {
|
57
|
+
expect(URI.from("blix://example.com?z=value&a=value&m=value").toString()).toBe("blix://example.com?a=value&m=value&z=value");
|
58
|
+
});
|
59
|
+
it("searchParams sorted in asURL", () => {
|
60
|
+
expect(URI.from("blix://example.com?z=value&a=value&m=value").asURL().toString()).toBe("blix://example.com?a=value&m=value&z=value");
|
61
|
+
});
|
62
|
+
it("merge", () => {
|
63
|
+
expect(URI.merge("blix://example.com?key=value&into=4", "murk://bla/com?key=from&z=value").toString()).toBe("murk://bla/com?into=4&key=from&z=value");
|
64
|
+
});
|
65
|
+
it("merge empty", () => {
|
66
|
+
expect(URI.merge("blix://example/com?key=value&into=4", "murk://?key=from&z=value").toString()).toBe("murk://example/com?into=4&key=from&z=value");
|
67
|
+
});
|
68
|
+
it("firefox file relative into", () => {
|
69
|
+
expect(URI.from("file://./dist/tests/key.bag").toString()).toBe("file://./dist/tests/key.bag");
|
70
|
+
});
|
71
|
+
it("from empty", () => {
|
72
|
+
expect(URI.merge(`file://./dist/tests/key.bag`, "").toString()).toBe("file://./dist/tests/key.bag");
|
73
|
+
});
|
74
|
+
it("merge thing about", () => {
|
75
|
+
const result = URI.merge("./dist/what?byKey=4444", "murk://bla.com?key=from&z=value");
|
76
|
+
expect(result.toString()).toBe("murk://bla.com?byKey=4444&key=from&z=value");
|
77
|
+
});
|
78
|
+
it("isURI real", () => {
|
79
|
+
expect(URI.is(URI.from())).toBe(true);
|
80
|
+
});
|
81
|
+
it("isURI fake", () => {
|
82
|
+
expect(URI.is({
|
83
|
+
asURL: () => new URL("http://example.com"),
|
84
|
+
hasParam: () => false,
|
85
|
+
getParam: () => "",
|
86
|
+
})).toBe(true);
|
87
|
+
});
|
88
|
+
it("safari has a different pathname behavior", () => {
|
89
|
+
const uri = URI.from("indexdb://fp/?name=test&store=meta");
|
90
|
+
expect(uri.pathname).toBe("fp/");
|
91
|
+
});
|
92
|
+
it("passing URL to fetch", async () => {
|
93
|
+
const uri = URI.from("https://jsonplaceholder.typicode.com/todos/1");
|
94
|
+
const res = await fetch(uri.asURL());
|
95
|
+
expect(res.status).toBeGreaterThan(199);
|
96
|
+
});
|
97
|
+
it("MutableURL is instance of URL", () => {
|
98
|
+
expect(new MutableURL("http://example.com") instanceof URL).toBe(true);
|
99
|
+
});
|
100
|
+
it("file url", () => {
|
101
|
+
const uri = URI.from("file://fp?storagekey=zTvTPEPQRWij8rfb3FrFqBm");
|
102
|
+
expect(uri.pathname).toBe("fp");
|
103
|
+
});
|
104
|
+
it("unregistered protocol with hostPart", () => {
|
105
|
+
const withoutHostpart = URI.from("indexdb://fp:bla/test/?name=test&store=meta");
|
106
|
+
expect(() => withoutHostpart.hostname).toThrowError('you can use hostname only if protocol is ["http","https","ws","wss"]');
|
107
|
+
});
|
108
|
+
it("register protocol with hostPart", () => {
|
109
|
+
const unreg = URI.protocolHasHostpart("indexdb:");
|
110
|
+
const withHostpart = URI.from("indexdb://fp1:88/test/wurst?name=test&store=meta");
|
111
|
+
expect(withHostpart.host).toBe("fp1:88");
|
112
|
+
expect(withHostpart.pathname).toBe("/test/wurst");
|
113
|
+
const withHostpartNoPath = URI.from("indexdb://fp2:88?name=test&store=meta");
|
114
|
+
expect(withHostpartNoPath.host).toBe("fp2:88");
|
115
|
+
expect(withHostpartNoPath.pathname).toBe("/");
|
116
|
+
unreg();
|
117
|
+
});
|
118
|
+
});
|
119
|
+
//# sourceMappingURL=uri.test.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"uri.test.js","sourceRoot":"","sources":["../../src/uri.test.ts"],"names":[],"mappings":"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"}
|
@@ -0,0 +1,21 @@
|
|
1
|
+
export declare class ConsoleWriterStreamDefaultWriter implements WritableStreamDefaultWriter<Uint8Array> {
|
2
|
+
private stream;
|
3
|
+
readonly desiredSize: number | null;
|
4
|
+
readonly decoder: TextDecoder;
|
5
|
+
closed: Promise<undefined>;
|
6
|
+
ready: Promise<undefined>;
|
7
|
+
readonly _stream: ConsoleWriterStream;
|
8
|
+
constructor(stream: ConsoleWriterStream);
|
9
|
+
abort(reason?: any): Promise<void>;
|
10
|
+
close(): Promise<void>;
|
11
|
+
releaseLock(): void;
|
12
|
+
write(chunk?: Uint8Array | undefined): Promise<void>;
|
13
|
+
}
|
14
|
+
export declare class ConsoleWriterStream implements WritableStream<Uint8Array> {
|
15
|
+
locked: boolean;
|
16
|
+
_writer?: WritableStreamDefaultWriter<Uint8Array>;
|
17
|
+
abort(reason?: any): Promise<void>;
|
18
|
+
close(): Promise<void>;
|
19
|
+
getWriter(): WritableStreamDefaultWriter<Uint8Array>;
|
20
|
+
}
|
21
|
+
//# sourceMappingURL=console-write-stream.d.ts.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"console-write-stream.d.ts","sourceRoot":"","sources":["../../../src/utils/console-write-stream.ts"],"names":[],"mappings":"AAAA,qBAAa,gCAAiC,YAAW,2BAA2B,CAAC,UAAU,CAAC;IAQlF,OAAO,CAAC,MAAM;IAP1B,QAAQ,CAAC,WAAW,EAAE,MAAM,GAAG,IAAI,CAAQ;IAC3C,QAAQ,CAAC,OAAO,EAAE,WAAW,CAAqB;IAElD,MAAM,EAAE,OAAO,CAAC,SAAS,CAAC,CAAC;IAC3B,KAAK,EAAE,OAAO,CAAC,SAAS,CAAC,CAAC;IAC1B,QAAQ,CAAC,OAAO,EAAE,mBAAmB,CAAC;gBAElB,MAAM,EAAE,mBAAmB;IAM/C,KAAK,CAAC,MAAM,CAAC,EAAE,GAAG,GAAG,OAAO,CAAC,IAAI,CAAC;IAG5B,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAG5B,WAAW,IAAI,IAAI;IAKb,KAAK,CAAC,KAAK,CAAC,EAAE,UAAU,GAAG,SAAS,GAAG,OAAO,CAAC,IAAI,CAAC;CAwB3D;AAED,qBAAa,mBAAoB,YAAW,cAAc,CAAC,UAAU,CAAC;IACpE,MAAM,UAAS;IACf,OAAO,CAAC,EAAE,2BAA2B,CAAC,UAAU,CAAC,CAAC;IAElD,KAAK,CAAC,MAAM,CAAC,EAAE,GAAG,GAAG,OAAO,CAAC,IAAI,CAAC;IAG5B,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAG5B,SAAS,IAAI,2BAA2B,CAAC,UAAU,CAAC;CAUrD"}
|
@@ -0,0 +1,62 @@
|
|
1
|
+
export class ConsoleWriterStreamDefaultWriter {
|
2
|
+
constructor(stream) {
|
3
|
+
this.stream = stream;
|
4
|
+
this.desiredSize = null;
|
5
|
+
this.decoder = new TextDecoder();
|
6
|
+
this._stream = stream;
|
7
|
+
this.ready = Promise.resolve(undefined);
|
8
|
+
this.closed = Promise.resolve(undefined);
|
9
|
+
}
|
10
|
+
abort(reason) {
|
11
|
+
throw new Error("Method not implemented.");
|
12
|
+
}
|
13
|
+
async close() {
|
14
|
+
}
|
15
|
+
releaseLock() {
|
16
|
+
this._stream.locked = false;
|
17
|
+
this.ready = Promise.resolve(undefined);
|
18
|
+
this.closed = Promise.resolve(undefined);
|
19
|
+
}
|
20
|
+
async write(chunk) {
|
21
|
+
const str = this.decoder.decode(chunk).trimEnd();
|
22
|
+
let output = "log";
|
23
|
+
try {
|
24
|
+
const decode = JSON.parse(str);
|
25
|
+
output = decode.level;
|
26
|
+
}
|
27
|
+
catch (e) {
|
28
|
+
}
|
29
|
+
switch (output) {
|
30
|
+
case "error":
|
31
|
+
console.error(str);
|
32
|
+
break;
|
33
|
+
case "warn":
|
34
|
+
console.warn(str);
|
35
|
+
break;
|
36
|
+
default:
|
37
|
+
console.log(str);
|
38
|
+
}
|
39
|
+
}
|
40
|
+
}
|
41
|
+
export class ConsoleWriterStream {
|
42
|
+
constructor() {
|
43
|
+
this.locked = false;
|
44
|
+
}
|
45
|
+
abort(reason) {
|
46
|
+
throw new Error("Method not implemented.");
|
47
|
+
}
|
48
|
+
async close() {
|
49
|
+
return;
|
50
|
+
}
|
51
|
+
getWriter() {
|
52
|
+
if (this.locked) {
|
53
|
+
throw new Error("Stream is locked");
|
54
|
+
}
|
55
|
+
this.locked = true;
|
56
|
+
if (!this._writer) {
|
57
|
+
this._writer = new ConsoleWriterStreamDefaultWriter(this);
|
58
|
+
}
|
59
|
+
return this._writer;
|
60
|
+
}
|
61
|
+
}
|
62
|
+
//# sourceMappingURL=console-write-stream.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"console-write-stream.js","sourceRoot":"","sources":["../../../src/utils/console-write-stream.ts"],"names":[],"mappings":"AAAA,MAAM,OAAO,gCAAgC;IAQ3C,YAAoB,MAA2B;QAA3B,WAAM,GAAN,MAAM,CAAqB;QAPtC,gBAAW,GAAkB,IAAI,CAAC;QAClC,YAAO,GAAgB,IAAI,WAAW,EAAE,CAAC;QAOhD,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC;QACtB,IAAI,CAAC,KAAK,GAAG,OAAO,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;QACxC,IAAI,CAAC,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;IAC3C,CAAC;IAED,KAAK,CAAC,MAAY;QAChB,MAAM,IAAI,KAAK,CAAC,yBAAyB,CAAC,CAAC;IAC7C,CAAC;IACD,KAAK,CAAC,KAAK;IAEX,CAAC;IACD,WAAW;QACT,IAAI,CAAC,OAAO,CAAC,MAAM,GAAG,KAAK,CAAC;QAC5B,IAAI,CAAC,KAAK,GAAG,OAAO,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;QACxC,IAAI,CAAC,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;IAC3C,CAAC;IACD,KAAK,CAAC,KAAK,CAAC,KAA8B;QACxC,MAAM,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,OAAO,EAAE,CAAC;QACjD,IAAI,MAAM,GAAG,KAAK,CAAC;QACnB,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;YAC/B,MAAM,GAAG,MAAM,CAAC,KAAK,CAAC;QAExB,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;QAEb,CAAC;QACD,QAAQ,MAAM,EAAE,CAAC;YACf,KAAK,OAAO;gBAEV,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;gBACnB,MAAM;YACR,KAAK,MAAM;gBAET,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;gBAClB,MAAM;YACR;gBAEE,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QACrB,CAAC;IACH,CAAC;CACF;AAED,MAAM,OAAO,mBAAmB;IAAhC;QACE,WAAM,GAAG,KAAK,CAAC;IAmBjB,CAAC;IAhBC,KAAK,CAAC,MAAY;QAChB,MAAM,IAAI,KAAK,CAAC,yBAAyB,CAAC,CAAC;IAC7C,CAAC;IACD,KAAK,CAAC,KAAK;QACT,OAAO;IACT,CAAC;IACD,SAAS;QACP,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;YAChB,MAAM,IAAI,KAAK,CAAC,kBAAkB,CAAC,CAAC;QACtC,CAAC;QACD,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC;QACnB,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC;YAClB,IAAI,CAAC,OAAO,GAAG,IAAI,gCAAgC,CAAC,IAAI,CAAC,CAAC;QAC5D,CAAC;QACD,OAAO,IAAI,CAAC,OAAO,CAAC;IACtB,CAAC;CACF"}
|
@@ -0,0 +1,12 @@
|
|
1
|
+
export declare class FanoutWriteStream implements WritableStreamDefaultWriter<Uint8Array> {
|
2
|
+
readonly _writers: WritableStreamDefaultWriter<Uint8Array>[];
|
3
|
+
readonly ready: Promise<undefined>;
|
4
|
+
readonly closed: Promise<undefined>;
|
5
|
+
readonly desiredSize: number | null;
|
6
|
+
constructor(writers: WritableStreamDefaultWriter<Uint8Array>[]);
|
7
|
+
abort(reason?: any): Promise<void>;
|
8
|
+
close(): Promise<void>;
|
9
|
+
releaseLock(): void;
|
10
|
+
write(chunk?: Uint8Array | undefined): Promise<void>;
|
11
|
+
}
|
12
|
+
//# sourceMappingURL=fanout-write-stream.d.ts.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"fanout-write-stream.d.ts","sourceRoot":"","sources":["../../../src/utils/fanout-write-stream.ts"],"names":[],"mappings":"AAAA,qBAAa,iBAAkB,YAAW,2BAA2B,CAAC,UAAU,CAAC;IAC/E,QAAQ,CAAC,QAAQ,EAAE,2BAA2B,CAAC,UAAU,CAAC,EAAE,CAAC;IAC7D,QAAQ,CAAC,KAAK,EAAE,OAAO,CAAC,SAAS,CAAC,CAAC;IACnC,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAC,SAAS,CAAC,CAAC;IACpC,QAAQ,CAAC,WAAW,EAAE,MAAM,GAAG,IAAI,CAAQ;gBAC/B,OAAO,EAAE,2BAA2B,CAAC,UAAU,CAAC,EAAE;IAO9D,KAAK,CAAC,MAAM,CAAC,EAAE,GAAG,GAAG,OAAO,CAAC,IAAI,CAAC;IAKlC,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAKtB,WAAW,IAAI,IAAI;IAInB,KAAK,CAAC,KAAK,CAAC,EAAE,UAAU,GAAG,SAAS,GAAG,OAAO,CAAC,IAAI,CAAC;CAKrD"}
|
@@ -0,0 +1,24 @@
|
|
1
|
+
export class FanoutWriteStream {
|
2
|
+
constructor(writers) {
|
3
|
+
this.desiredSize = null;
|
4
|
+
this._writers = writers;
|
5
|
+
this.ready = Promise.all(this._writers.map((w) => w.ready)).then(() => undefined);
|
6
|
+
this.closed = Promise.all(this._writers.map((w) => w.closed)).then(() => undefined);
|
7
|
+
}
|
8
|
+
abort(reason) {
|
9
|
+
return Promise.all(this._writers.map((w) => w.abort(reason))).then(() => {
|
10
|
+
});
|
11
|
+
}
|
12
|
+
close() {
|
13
|
+
return Promise.all(this._writers.map((w) => w.close())).then(() => {
|
14
|
+
});
|
15
|
+
}
|
16
|
+
releaseLock() {
|
17
|
+
this._writers.map((w) => w.releaseLock());
|
18
|
+
}
|
19
|
+
write(chunk) {
|
20
|
+
return Promise.all(this._writers.map((w) => w.write(chunk))).then(() => {
|
21
|
+
});
|
22
|
+
}
|
23
|
+
}
|
24
|
+
//# sourceMappingURL=fanout-write-stream.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"fanout-write-stream.js","sourceRoot":"","sources":["../../../src/utils/fanout-write-stream.ts"],"names":[],"mappings":"AAAA,MAAM,OAAO,iBAAiB;IAK5B,YAAY,OAAkD;QADrD,gBAAW,GAAkB,IAAI,CAAC;QAEzC,IAAI,CAAC,QAAQ,GAAG,OAAO,CAAC;QACxB,IAAI,CAAC,KAAK,GAAG,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,SAAS,CAAC,CAAC;QAClF,IAAI,CAAC,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,SAAS,CAAC,CAAC;IACtF,CAAC;IAGD,KAAK,CAAC,MAAY;QAChB,OAAO,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE;QAExE,CAAC,CAAC,CAAC;IACL,CAAC;IACD,KAAK;QACH,OAAO,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE;QAElE,CAAC,CAAC,CAAC;IACL,CAAC;IACD,WAAW;QACT,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC,CAAC;IAC5C,CAAC;IAED,KAAK,CAAC,KAA8B;QAClC,OAAO,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE;QAEvE,CAAC,CAAC,CAAC;IACL,CAAC;CACF"}
|