@towns-protocol/dlog 0.0.191
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/LICENSE.txt +21 -0
- package/README.md +3 -0
- package/dist/binary.d.ts +11 -0
- package/dist/binary.d.ts.map +1 -0
- package/dist/binary.js +61 -0
- package/dist/binary.js.map +1 -0
- package/dist/check.d.ts +16 -0
- package/dist/check.d.ts.map +1 -0
- package/dist/check.js +30 -0
- package/dist/check.js.map +1 -0
- package/dist/dlog.d.ts +48 -0
- package/dist/dlog.d.ts.map +1 -0
- package/dist/dlog.js +205 -0
- package/dist/dlog.js.map +1 -0
- package/dist/index.d.ts +5 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +5 -0
- package/dist/index.js.map +1 -0
- package/dist/tests/binary.test.d.ts +5 -0
- package/dist/tests/binary.test.d.ts.map +1 -0
- package/dist/tests/binary.test.js +48 -0
- package/dist/tests/binary.test.js.map +1 -0
- package/dist/tests/dlog.test.d.ts +5 -0
- package/dist/tests/dlog.test.d.ts.map +1 -0
- package/dist/tests/dlog.test.js +182 -0
- package/dist/tests/dlog.test.js.map +1 -0
- package/dist/utils.d.ts +3 -0
- package/dist/utils.d.ts.map +1 -0
- package/dist/utils.js +11 -0
- package/dist/utils.js.map +1 -0
- package/package.json +45 -0
package/LICENSE.txt
ADDED
@@ -0,0 +1,21 @@
|
|
1
|
+
MIT License
|
2
|
+
|
3
|
+
Copyright (c) 2024 River Association
|
4
|
+
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
6
|
+
of this software and associated documentation files (the "Software"), to deal
|
7
|
+
in the Software without restriction, including without limitation the rights
|
8
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
9
|
+
copies of the Software, and to permit persons to whom the Software is
|
10
|
+
furnished to do so, subject to the following conditions:
|
11
|
+
|
12
|
+
The above copyright notice and this permission notice shall be included in all
|
13
|
+
copies or substantial portions of the Software.
|
14
|
+
|
15
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
16
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
17
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
18
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
19
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
20
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
21
|
+
SOFTWARE.
|
package/README.md
ADDED
package/dist/binary.d.ts
ADDED
@@ -0,0 +1,11 @@
|
|
1
|
+
export declare function bin_fromBase64(base64String: string): Uint8Array;
|
2
|
+
export declare function bin_toBase64(uint8Array: Uint8Array): string;
|
3
|
+
export declare function bin_fromHexString(hexString: string): Uint8Array;
|
4
|
+
export declare function bin_toHexString(uint8Array: Uint8Array): string;
|
5
|
+
export declare function bin_fromString(str: string): Uint8Array;
|
6
|
+
export declare function bin_toString(buf: Uint8Array): string;
|
7
|
+
export declare function shortenHexString(s: string): string;
|
8
|
+
export declare function isHexString(value: string): boolean;
|
9
|
+
export declare function bin_equal(a: Uint8Array | null | undefined, b: Uint8Array | null | undefined): boolean;
|
10
|
+
export declare function bigIntToBytes(value: bigint): Uint8Array;
|
11
|
+
//# sourceMappingURL=binary.d.ts.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"binary.d.ts","sourceRoot":"","sources":["../src/binary.ts"],"names":[],"mappings":"AAUA,wBAAgB,cAAc,CAAC,YAAY,EAAE,MAAM,GAAG,UAAU,CAE/D;AAED,wBAAgB,YAAY,CAAC,UAAU,EAAE,UAAU,GAAG,MAAM,CAE3D;AAED,wBAAgB,iBAAiB,CAAC,SAAS,EAAE,MAAM,GAAG,UAAU,CAE/D;AAED,wBAAgB,eAAe,CAAC,UAAU,EAAE,UAAU,GAAG,MAAM,CAE9D;AAED,wBAAgB,cAAc,CAAC,GAAG,EAAE,MAAM,GAAG,UAAU,CAEtD;AAED,wBAAgB,YAAY,CAAC,GAAG,EAAE,UAAU,GAAG,MAAM,CAEpD;AAED,wBAAgB,gBAAgB,CAAC,CAAC,EAAE,MAAM,GAAG,MAAM,CAMlD;AAED,wBAAgB,WAAW,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAKlD;AAED,wBAAgB,SAAS,CACrB,CAAC,EAAE,UAAU,GAAG,IAAI,GAAG,SAAS,EAChC,CAAC,EAAE,UAAU,GAAG,IAAI,GAAG,SAAS,GACjC,OAAO,CAUT;AAGD,wBAAgB,aAAa,CAAC,KAAK,EAAE,MAAM,GAAG,UAAU,CAevD"}
|
package/dist/binary.js
ADDED
@@ -0,0 +1,61 @@
|
|
1
|
+
// eslint-disable-next-line import/no-unresolved
|
2
|
+
import { base64Decode, base64Encode } from '@bufbuild/protobuf/wire';
|
3
|
+
import { bytesToHex, bytesToUtf8, equalsBytes, hexToBytes, utf8ToBytes, } from 'ethereum-cryptography/utils';
|
4
|
+
export function bin_fromBase64(base64String) {
|
5
|
+
return base64Decode(base64String);
|
6
|
+
}
|
7
|
+
export function bin_toBase64(uint8Array) {
|
8
|
+
return base64Encode(uint8Array);
|
9
|
+
}
|
10
|
+
export function bin_fromHexString(hexString) {
|
11
|
+
return hexToBytes(hexString);
|
12
|
+
}
|
13
|
+
export function bin_toHexString(uint8Array) {
|
14
|
+
return bytesToHex(uint8Array);
|
15
|
+
}
|
16
|
+
export function bin_fromString(str) {
|
17
|
+
return utf8ToBytes(str);
|
18
|
+
}
|
19
|
+
export function bin_toString(buf) {
|
20
|
+
return bytesToUtf8(buf);
|
21
|
+
}
|
22
|
+
export function shortenHexString(s) {
|
23
|
+
if (s.startsWith('0x')) {
|
24
|
+
return s.length > 12 ? s.slice(0, 6) + '..' + s.slice(-4) : s;
|
25
|
+
}
|
26
|
+
else {
|
27
|
+
return s.length > 10 ? s.slice(0, 4) + '..' + s.slice(-4) : s;
|
28
|
+
}
|
29
|
+
}
|
30
|
+
export function isHexString(value) {
|
31
|
+
if (value.length === 0 || (value.length & 1) !== 0) {
|
32
|
+
return false;
|
33
|
+
}
|
34
|
+
return /^(0x)?[0-9a-fA-F]+$/.test(value);
|
35
|
+
}
|
36
|
+
export function bin_equal(a, b) {
|
37
|
+
if ((a === undefined || a === null || a.length === 0) &&
|
38
|
+
(b === undefined || b === null || b.length === 0)) {
|
39
|
+
return true;
|
40
|
+
}
|
41
|
+
else if (a === undefined || a === null || b === undefined || b === null) {
|
42
|
+
return false;
|
43
|
+
}
|
44
|
+
return equalsBytes(a, b);
|
45
|
+
}
|
46
|
+
// Returns the absolute value of this BigInt as a big-endian byte array
|
47
|
+
export function bigIntToBytes(value) {
|
48
|
+
const abs = value < 0n ? -value : value;
|
49
|
+
// Calculate the byte length needed to represent the BigInt
|
50
|
+
const byteLength = Math.ceil(abs.toString(16).length / 2);
|
51
|
+
// Create a buffer of the required length
|
52
|
+
const buffer = new Uint8Array(byteLength);
|
53
|
+
// Fill the buffer with the big-endian representation of the BigInt
|
54
|
+
let temp = abs;
|
55
|
+
for (let i = byteLength - 1; i >= 0; i--) {
|
56
|
+
buffer[i] = Number(temp & 0xffn); // Extract last 8 bits
|
57
|
+
temp >>= 8n; // Shift right by 8 bits
|
58
|
+
}
|
59
|
+
return buffer;
|
60
|
+
}
|
61
|
+
//# sourceMappingURL=binary.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"binary.js","sourceRoot":"","sources":["../src/binary.ts"],"names":[],"mappings":"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"}
|
package/dist/check.d.ts
ADDED
@@ -0,0 +1,16 @@
|
|
1
|
+
import { Err } from '@towns-protocol/proto';
|
2
|
+
export declare class CodeException extends Error {
|
3
|
+
code: number;
|
4
|
+
data?: any;
|
5
|
+
constructor(message: string, code: number, data?: any);
|
6
|
+
}
|
7
|
+
export declare function throwWithCode(message?: string, code?: Err, data?: any): never;
|
8
|
+
/**
|
9
|
+
* If not value, throws JSON RPC error with numberic error code, which is transmitted to the client.
|
10
|
+
* @param value The value to check
|
11
|
+
* @param message Error message to use if value is not valid
|
12
|
+
* @param code JSON RPC error code to use if value is not valid
|
13
|
+
* @param data Optional data to include in the error
|
14
|
+
*/
|
15
|
+
export declare function check(value: boolean, message?: string, code?: Err, data?: any): asserts value;
|
16
|
+
//# sourceMappingURL=check.d.ts.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"check.d.ts","sourceRoot":"","sources":["../src/check.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,uBAAuB,CAAA;AAK3C,qBAAa,aAAc,SAAQ,KAAK;IACpC,IAAI,EAAE,MAAM,CAAA;IACZ,IAAI,CAAC,EAAE,GAAG,CAAA;gBACE,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,GAAG;CAKxD;AAED,wBAAgB,aAAa,CAAC,OAAO,CAAC,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,GAAG,EAAE,IAAI,CAAC,EAAE,GAAG,GAAG,KAAK,CAI7E;AAED;;;;;;GAMG;AACH,wBAAgB,KAAK,CAAC,KAAK,EAAE,OAAO,EAAE,OAAO,CAAC,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,GAAG,EAAE,IAAI,CAAC,EAAE,GAAG,GAAG,OAAO,CAAC,KAAK,CAI7F"}
|
package/dist/check.js
ADDED
@@ -0,0 +1,30 @@
|
|
1
|
+
import { Err } from '@towns-protocol/proto';
|
2
|
+
import { dlogError } from './dlog';
|
3
|
+
const log = dlogError('csb:error');
|
4
|
+
export class CodeException extends Error {
|
5
|
+
code;
|
6
|
+
data;
|
7
|
+
constructor(message, code, data) {
|
8
|
+
super(message);
|
9
|
+
this.code = code;
|
10
|
+
this.data = data;
|
11
|
+
}
|
12
|
+
}
|
13
|
+
export function throwWithCode(message, code, data) {
|
14
|
+
const e = new CodeException(message ?? 'Unknown', code ?? Err.ERR_UNSPECIFIED, data);
|
15
|
+
log('throwWithCode', e);
|
16
|
+
throw e;
|
17
|
+
}
|
18
|
+
/**
|
19
|
+
* If not value, throws JSON RPC error with numberic error code, which is transmitted to the client.
|
20
|
+
* @param value The value to check
|
21
|
+
* @param message Error message to use if value is not valid
|
22
|
+
* @param code JSON RPC error code to use if value is not valid
|
23
|
+
* @param data Optional data to include in the error
|
24
|
+
*/
|
25
|
+
export function check(value, message, code, data) {
|
26
|
+
if (!value) {
|
27
|
+
throwWithCode(message, code, data);
|
28
|
+
}
|
29
|
+
}
|
30
|
+
//# sourceMappingURL=check.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"check.js","sourceRoot":"","sources":["../src/check.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,uBAAuB,CAAA;AAC3C,OAAO,EAAE,SAAS,EAAE,MAAM,QAAQ,CAAA;AAElC,MAAM,GAAG,GAAG,SAAS,CAAC,WAAW,CAAC,CAAA;AAElC,MAAM,OAAO,aAAc,SAAQ,KAAK;IACpC,IAAI,CAAQ;IACZ,IAAI,CAAM;IACV,YAAY,OAAe,EAAE,IAAY,EAAE,IAAU;QACjD,KAAK,CAAC,OAAO,CAAC,CAAA;QACd,IAAI,CAAC,IAAI,GAAG,IAAI,CAAA;QAChB,IAAI,CAAC,IAAI,GAAG,IAAI,CAAA;IACpB,CAAC;CACJ;AAED,MAAM,UAAU,aAAa,CAAC,OAAgB,EAAE,IAAU,EAAE,IAAU;IAClE,MAAM,CAAC,GAAG,IAAI,aAAa,CAAC,OAAO,IAAI,SAAS,EAAE,IAAI,IAAI,GAAG,CAAC,eAAe,EAAE,IAAI,CAAC,CAAA;IACpF,GAAG,CAAC,eAAe,EAAE,CAAC,CAAC,CAAA;IACvB,MAAM,CAAC,CAAA;AACX,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,KAAK,CAAC,KAAc,EAAE,OAAgB,EAAE,IAAU,EAAE,IAAU;IAC1E,IAAI,CAAC,KAAK,EAAE,CAAC;QACT,aAAa,CAAC,OAAO,EAAE,IAAI,EAAE,IAAI,CAAC,CAAA;IACtC,CAAC;AACL,CAAC"}
|
package/dist/dlog.d.ts
ADDED
@@ -0,0 +1,48 @@
|
|
1
|
+
import { Debugger } from 'debug';
|
2
|
+
export declare const cloneAndFormat: (obj: unknown, opts?: {
|
3
|
+
shortenHex?: boolean;
|
4
|
+
}) => unknown;
|
5
|
+
export interface DLogger {
|
6
|
+
(...args: unknown[]): void;
|
7
|
+
enabled: boolean;
|
8
|
+
namespace: string;
|
9
|
+
extend: (namespace: string, delimiter?: string) => DLogger;
|
10
|
+
baseDebug: Debugger;
|
11
|
+
opts?: DLogOpts;
|
12
|
+
}
|
13
|
+
export interface DLogOpts {
|
14
|
+
defaultEnabled?: boolean;
|
15
|
+
allowJest?: boolean;
|
16
|
+
printStack?: boolean;
|
17
|
+
}
|
18
|
+
/**
|
19
|
+
* Create a new logger with namespace `ns`.
|
20
|
+
* It's based on the `debug` package logger with custom formatter:
|
21
|
+
* All aguments are formatted, hex strings and UInt8Arrays are printer as hex and shortened.
|
22
|
+
* No %-specifiers are supported.
|
23
|
+
*
|
24
|
+
* @param ns Namespace for the logger.
|
25
|
+
* @returns New logger with namespace `ns`.
|
26
|
+
*/
|
27
|
+
export declare const dlog: (ns: string, opts?: DLogOpts) => DLogger;
|
28
|
+
/**
|
29
|
+
* Same as dlog, but logger is bound to console.error so clicking on it expands log site callstack (in addition to printed error callstack).
|
30
|
+
* Also, logger is enabled by default, except if running in jest.
|
31
|
+
*
|
32
|
+
* @param ns Namespace for the logger.
|
33
|
+
* @returns New logger with namespace `ns`.
|
34
|
+
*/
|
35
|
+
export declare const dlogError: (ns: string) => DLogger;
|
36
|
+
export interface ExtendedLogger {
|
37
|
+
info: DLogger;
|
38
|
+
log: DLogger;
|
39
|
+
error: DLogger;
|
40
|
+
extend: (namespace: string) => ExtendedLogger;
|
41
|
+
}
|
42
|
+
/**
|
43
|
+
* Create complex logger with multiple levels
|
44
|
+
* @param ns Namespace for the logger.
|
45
|
+
* @returns New logger with log/info/error namespace `ns`.
|
46
|
+
*/
|
47
|
+
export declare const dlogger: (ns: string) => ExtendedLogger;
|
48
|
+
//# sourceMappingURL=dlog.d.ts.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"dlog.d.ts","sourceRoot":"","sources":["../src/dlog.ts"],"names":[],"mappings":"AACA,OAAc,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAA;AA+CvC,eAAO,MAAM,cAAc,GAAI,KAAK,OAAO,EAAE,OAAO;IAAE,UAAU,CAAC,EAAE,OAAO,CAAA;CAAE,KAAG,OAE9E,CAAA;AAqED,MAAM,WAAW,OAAO;IACpB,CAAC,GAAG,IAAI,EAAE,OAAO,EAAE,GAAG,IAAI,CAAA;IAE1B,OAAO,EAAE,OAAO,CAAA;IAChB,SAAS,EAAE,MAAM,CAAA;IACjB,MAAM,EAAE,CAAC,SAAS,EAAE,MAAM,EAAE,SAAS,CAAC,EAAE,MAAM,KAAK,OAAO,CAAA;IAC1D,SAAS,EAAE,QAAQ,CAAA;IACnB,IAAI,CAAC,EAAE,QAAQ,CAAA;CAClB;AAED,MAAM,WAAW,QAAQ;IAErB,cAAc,CAAC,EAAE,OAAO,CAAA;IAGxB,SAAS,CAAC,EAAE,OAAO,CAAA;IAGnB,UAAU,CAAC,EAAE,OAAO,CAAA;CACvB;AA+ED;;;;;;;;GAQG;AACH,eAAO,MAAM,IAAI,GAAI,IAAI,MAAM,EAAE,OAAO,QAAQ,KAAG,OAElD,CAAA;AAED;;;;;;GAMG;AACH,eAAO,MAAM,SAAS,GAAI,IAAI,MAAM,KAAG,OAGtC,CAAA;AAED,MAAM,WAAW,cAAc;IAC3B,IAAI,EAAE,OAAO,CAAA;IACb,GAAG,EAAE,OAAO,CAAA;IACZ,KAAK,EAAE,OAAO,CAAA;IACd,MAAM,EAAE,CAAC,SAAS,EAAE,MAAM,KAAK,cAAc,CAAA;CAChD;AAED;;;;GAIG;AACH,eAAO,MAAM,OAAO,GAAI,IAAI,MAAM,KAAG,cASpC,CAAA"}
|
package/dist/dlog.js
ADDED
@@ -0,0 +1,205 @@
|
|
1
|
+
import { bin_toHexString, isHexString, shortenHexString } from './binary';
|
2
|
+
import debug from 'debug';
|
3
|
+
import { isTestEnv } from './utils';
|
4
|
+
// Works as debug.enabled, but falls back on options if not explicitly set in env instead of returning false.
|
5
|
+
debug.enabled = (ns) => {
|
6
|
+
if (ns.length > 0 && ns[ns.length - 1] === '*') {
|
7
|
+
return true;
|
8
|
+
}
|
9
|
+
for (const s of debug.skips) {
|
10
|
+
if (s.test(ns)) {
|
11
|
+
return false;
|
12
|
+
}
|
13
|
+
}
|
14
|
+
for (const s of debug.names) {
|
15
|
+
if (s.test(ns)) {
|
16
|
+
return true;
|
17
|
+
}
|
18
|
+
}
|
19
|
+
const opts = allDlogs.get(ns)?.opts;
|
20
|
+
if (opts !== undefined) {
|
21
|
+
if (!opts.allowJest && isTestEnv()) {
|
22
|
+
return false;
|
23
|
+
}
|
24
|
+
else {
|
25
|
+
return opts.defaultEnabled ?? false;
|
26
|
+
}
|
27
|
+
}
|
28
|
+
return false;
|
29
|
+
};
|
30
|
+
// Set namespaces to empty string if not set so debug.enabled() is called and can retrieve defaultEnabled from options.
|
31
|
+
// eslint-disable-next-line @typescript-eslint/no-unsafe-member-access
|
32
|
+
if (debug.namespaces === undefined) {
|
33
|
+
// eslint-disable-next-line @typescript-eslint/no-unsafe-member-access
|
34
|
+
;
|
35
|
+
debug.namespaces = '';
|
36
|
+
}
|
37
|
+
const MAX_CALL_STACK_SZ = 18;
|
38
|
+
const hasOwnProperty = (obj, prop) => {
|
39
|
+
return Object.prototype.hasOwnProperty.call(obj, prop);
|
40
|
+
};
|
41
|
+
export const cloneAndFormat = (obj, opts) => {
|
42
|
+
return _cloneAndFormat(obj, 0, new WeakSet(), opts?.shortenHex === true);
|
43
|
+
};
|
44
|
+
const _cloneAndFormat = (obj, depth, seen, shorten) => {
|
45
|
+
if (depth > MAX_CALL_STACK_SZ) {
|
46
|
+
return 'MAX_CALL_STACK_SZ exceeded';
|
47
|
+
}
|
48
|
+
if (typeof obj === 'object' && obj !== null) {
|
49
|
+
if (seen.has(obj)) {
|
50
|
+
return '[circular reference]';
|
51
|
+
}
|
52
|
+
seen.add(obj);
|
53
|
+
}
|
54
|
+
if (typeof obj === 'string') {
|
55
|
+
return isHexString(obj) && shorten ? shortenHexString(obj) : obj;
|
56
|
+
}
|
57
|
+
if (obj instanceof Uint8Array) {
|
58
|
+
return shorten ? shortenHexString(bin_toHexString(obj)) : bin_toHexString(obj);
|
59
|
+
}
|
60
|
+
if (obj instanceof BigInt || typeof obj === 'bigint') {
|
61
|
+
return obj.toString();
|
62
|
+
}
|
63
|
+
if (Array.isArray(obj)) {
|
64
|
+
return obj.map((e) => _cloneAndFormat(e, depth + 1, seen, shorten));
|
65
|
+
}
|
66
|
+
if (typeof obj === 'object' && obj !== null) {
|
67
|
+
if (obj instanceof Error) {
|
68
|
+
return obj.stack || obj.message;
|
69
|
+
}
|
70
|
+
if (typeof obj[Symbol.iterator] === 'function') {
|
71
|
+
// Iterate over values of Map, Set, etc.
|
72
|
+
const newObj = [];
|
73
|
+
for (const e of obj) {
|
74
|
+
newObj.push(_cloneAndFormat(e, depth + 1, seen, shorten));
|
75
|
+
}
|
76
|
+
return newObj;
|
77
|
+
}
|
78
|
+
const newObj = {};
|
79
|
+
for (const key in obj) {
|
80
|
+
if (hasOwnProperty(obj, key)) {
|
81
|
+
let newKey = key;
|
82
|
+
if (typeof key === 'string' && isHexString(key) && shorten) {
|
83
|
+
newKey = shortenHexString(key);
|
84
|
+
}
|
85
|
+
if (key == 'emitter') {
|
86
|
+
newObj[newKey] = '[emitter]';
|
87
|
+
}
|
88
|
+
else {
|
89
|
+
newObj[newKey] = _cloneAndFormat(obj[key], depth + 1, seen, shorten);
|
90
|
+
}
|
91
|
+
}
|
92
|
+
}
|
93
|
+
return newObj;
|
94
|
+
}
|
95
|
+
return obj;
|
96
|
+
};
|
97
|
+
const allDlogs = new Map();
|
98
|
+
// github#722
|
99
|
+
const isSingleLineLogsMode = typeof process !== 'undefined' && process.env.SINGLE_LINE_LOGS === 'true';
|
100
|
+
const makeDlog = (d, opts) => {
|
101
|
+
if (opts?.printStack) {
|
102
|
+
d.log = console.error.bind(console);
|
103
|
+
}
|
104
|
+
const dlog = (...args) => {
|
105
|
+
if (!d.enabled || args.length === 0) {
|
106
|
+
return;
|
107
|
+
}
|
108
|
+
const fmt = [];
|
109
|
+
const newArgs = [];
|
110
|
+
const tailArgs = [];
|
111
|
+
for (let i = 0; i < args.length; i++) {
|
112
|
+
let c = args[i];
|
113
|
+
if (typeof c === 'string') {
|
114
|
+
fmt.push('%s ');
|
115
|
+
if (isHexString(c)) {
|
116
|
+
c = shortenHexString(c);
|
117
|
+
}
|
118
|
+
newArgs.push(c);
|
119
|
+
}
|
120
|
+
else if (typeof c === 'object' && c !== null) {
|
121
|
+
if (c instanceof Error) {
|
122
|
+
if (isSingleLineLogsMode) {
|
123
|
+
fmt.push('%o\n');
|
124
|
+
}
|
125
|
+
else {
|
126
|
+
fmt.push('%O\n');
|
127
|
+
}
|
128
|
+
tailArgs.push(c);
|
129
|
+
}
|
130
|
+
else {
|
131
|
+
if (isSingleLineLogsMode) {
|
132
|
+
fmt.push('%o\n');
|
133
|
+
}
|
134
|
+
else {
|
135
|
+
fmt.push('%O\n');
|
136
|
+
}
|
137
|
+
newArgs.push(cloneAndFormat(c, { shortenHex: true }));
|
138
|
+
}
|
139
|
+
}
|
140
|
+
else {
|
141
|
+
if (isSingleLineLogsMode) {
|
142
|
+
fmt.push('%o ');
|
143
|
+
}
|
144
|
+
else {
|
145
|
+
fmt.push('%O ');
|
146
|
+
}
|
147
|
+
newArgs.push(c);
|
148
|
+
}
|
149
|
+
}
|
150
|
+
d(fmt.join(''), ...newArgs, ...tailArgs);
|
151
|
+
};
|
152
|
+
dlog.baseDebug = d;
|
153
|
+
dlog.namespace = d.namespace;
|
154
|
+
dlog.opts = opts;
|
155
|
+
dlog.extend = (sub, delimiter) => {
|
156
|
+
return makeDlog(d.extend(sub, delimiter), opts);
|
157
|
+
};
|
158
|
+
Object.defineProperty(dlog, 'enabled', {
|
159
|
+
enumerable: true,
|
160
|
+
configurable: false,
|
161
|
+
get: () => d.enabled,
|
162
|
+
set: (v) => (d.enabled = v),
|
163
|
+
});
|
164
|
+
allDlogs.set(d.namespace, dlog);
|
165
|
+
return dlog;
|
166
|
+
};
|
167
|
+
/**
|
168
|
+
* Create a new logger with namespace `ns`.
|
169
|
+
* It's based on the `debug` package logger with custom formatter:
|
170
|
+
* All aguments are formatted, hex strings and UInt8Arrays are printer as hex and shortened.
|
171
|
+
* No %-specifiers are supported.
|
172
|
+
*
|
173
|
+
* @param ns Namespace for the logger.
|
174
|
+
* @returns New logger with namespace `ns`.
|
175
|
+
*/
|
176
|
+
export const dlog = (ns, opts) => {
|
177
|
+
return makeDlog(debug(ns), opts);
|
178
|
+
};
|
179
|
+
/**
|
180
|
+
* Same as dlog, but logger is bound to console.error so clicking on it expands log site callstack (in addition to printed error callstack).
|
181
|
+
* Also, logger is enabled by default, except if running in jest.
|
182
|
+
*
|
183
|
+
* @param ns Namespace for the logger.
|
184
|
+
* @returns New logger with namespace `ns`.
|
185
|
+
*/
|
186
|
+
export const dlogError = (ns) => {
|
187
|
+
const l = makeDlog(debug(ns), { defaultEnabled: true, printStack: true, allowJest: true });
|
188
|
+
return l;
|
189
|
+
};
|
190
|
+
/**
|
191
|
+
* Create complex logger with multiple levels
|
192
|
+
* @param ns Namespace for the logger.
|
193
|
+
* @returns New logger with log/info/error namespace `ns`.
|
194
|
+
*/
|
195
|
+
export const dlogger = (ns) => {
|
196
|
+
return {
|
197
|
+
log: makeDlog(debug(ns + ':log')),
|
198
|
+
info: makeDlog(debug(ns + ':info'), { defaultEnabled: true, allowJest: true }),
|
199
|
+
error: dlogError(ns + ':error'),
|
200
|
+
extend: (sub) => {
|
201
|
+
return dlogger(ns + ':' + sub);
|
202
|
+
},
|
203
|
+
};
|
204
|
+
};
|
205
|
+
//# sourceMappingURL=dlog.js.map
|
package/dist/dlog.js.map
ADDED
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"dlog.js","sourceRoot":"","sources":["../src/dlog.ts"],"names":[],"mappings":"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"}
|
package/dist/index.d.ts
ADDED
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,UAAU,CAAA;AACxB,cAAc,SAAS,CAAA;AACvB,cAAc,QAAQ,CAAA;AACtB,cAAc,SAAS,CAAA"}
|
package/dist/index.js
ADDED
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,UAAU,CAAA;AACxB,cAAc,SAAS,CAAA;AACvB,cAAc,QAAQ,CAAA;AACtB,cAAc,SAAS,CAAA"}
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"binary.test.d.ts","sourceRoot":"","sources":["../../src/tests/binary.test.ts"],"names":[],"mappings":"AAAA;;GAEG"}
|
@@ -0,0 +1,48 @@
|
|
1
|
+
/**
|
2
|
+
* @group main
|
3
|
+
*/
|
4
|
+
import { bin_fromBase64, bin_fromHexString, isHexString } from '../binary';
|
5
|
+
describe.concurrent('types', () => {
|
6
|
+
it('bin_fromHexString', () => {
|
7
|
+
const expected = new Uint8Array([1, 35, 69, 103, 137, 171, 205, 239]);
|
8
|
+
expect(bin_fromHexString('0123456789abcdef')).toEqual(expected);
|
9
|
+
expect(bin_fromHexString('0123456789ABCDEF')).toEqual(expected);
|
10
|
+
expect(bin_fromHexString('0x0123456789abcdef')).toEqual(expected);
|
11
|
+
expect(bin_fromHexString('')).toEqual(new Uint8Array([]));
|
12
|
+
expect(bin_fromHexString('0x')).toEqual(new Uint8Array([]));
|
13
|
+
expect(bin_fromHexString('00')).toEqual(new Uint8Array([0]));
|
14
|
+
expect(bin_fromHexString('01')).toEqual(new Uint8Array([1]));
|
15
|
+
expect(bin_fromHexString('0a')).toEqual(new Uint8Array([10]));
|
16
|
+
expect(bin_fromHexString('0000')).toEqual(new Uint8Array([0, 0]));
|
17
|
+
expect(bin_fromHexString('0001')).toEqual(new Uint8Array([0, 1]));
|
18
|
+
expect(() => bin_fromHexString('0')).toThrow();
|
19
|
+
expect(() => bin_fromHexString('0x0')).toThrow();
|
20
|
+
expect(() => bin_fromHexString('001')).toThrow();
|
21
|
+
expect(() => bin_fromHexString('11223')).toThrow();
|
22
|
+
});
|
23
|
+
it('bin_fromBase64String', () => {
|
24
|
+
const expected = new Uint8Array([1, 2, 3, 4, 5, 6, 7, 8, 9]);
|
25
|
+
const expected2 = new Uint8Array([1, 2, 3, 4, 5, 6, 7, 8, 9, 1, 2, 3, 4, 5, 6, 7, 8, 9]);
|
26
|
+
expect(bin_fromBase64('AQIDBAUGBwgJ')).toEqual(expected);
|
27
|
+
expect(bin_fromBase64('AQIDBAUGBwgJAQIDBAUGBwgJ')).toEqual(expected2);
|
28
|
+
expect(bin_fromBase64('')).toEqual(new Uint8Array([]));
|
29
|
+
expect(bin_fromBase64('AA==')).toEqual(new Uint8Array([0]));
|
30
|
+
});
|
31
|
+
it('isHexString', () => {
|
32
|
+
expect(isHexString('0123456789abcdef')).toBeTruthy();
|
33
|
+
expect(isHexString('0123456789ABCDEF')).toBeTruthy();
|
34
|
+
expect(isHexString('0x0123456789abcdef')).toBeTruthy();
|
35
|
+
expect(isHexString('00')).toBeTruthy();
|
36
|
+
expect(isHexString('01')).toBeTruthy();
|
37
|
+
expect(isHexString('0a')).toBeTruthy();
|
38
|
+
expect(isHexString('0000')).toBeTruthy();
|
39
|
+
expect(isHexString('0001')).toBeTruthy();
|
40
|
+
expect(isHexString('')).toBeFalsy();
|
41
|
+
expect(isHexString('0x')).toBeFalsy();
|
42
|
+
expect(isHexString('0')).toBeFalsy();
|
43
|
+
expect(isHexString('0x0')).toBeFalsy();
|
44
|
+
expect(isHexString('001')).toBeFalsy();
|
45
|
+
expect(isHexString('11223')).toBeFalsy();
|
46
|
+
});
|
47
|
+
});
|
48
|
+
//# sourceMappingURL=binary.test.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"binary.test.js","sourceRoot":"","sources":["../../src/tests/binary.test.ts"],"names":[],"mappings":"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"}
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"dlog.test.d.ts","sourceRoot":"","sources":["../../src/tests/dlog.test.ts"],"names":[],"mappings":"AAAA;;GAEG"}
|
@@ -0,0 +1,182 @@
|
|
1
|
+
/**
|
2
|
+
* @group main
|
3
|
+
*/
|
4
|
+
import { dlog, dlogError } from '../dlog';
|
5
|
+
import debug from 'debug';
|
6
|
+
import { bin_fromHexString } from '../binary';
|
7
|
+
describe.concurrent('dlogTest', () => {
|
8
|
+
it('basic', () => {
|
9
|
+
const longHex = bin_fromHexString('0102030405060708090a0b0c0d0e0f101112131415161718191a');
|
10
|
+
const obj = {
|
11
|
+
a: 1,
|
12
|
+
b: 'b',
|
13
|
+
c: {
|
14
|
+
d: 2,
|
15
|
+
e: 'e',
|
16
|
+
},
|
17
|
+
d: [1, 2, 3],
|
18
|
+
q: new Uint8Array([1, 2, 3]),
|
19
|
+
longHex,
|
20
|
+
nested: {
|
21
|
+
a: 1,
|
22
|
+
more: {
|
23
|
+
even_more: {
|
24
|
+
more_yet: {
|
25
|
+
z: 1000,
|
26
|
+
},
|
27
|
+
},
|
28
|
+
},
|
29
|
+
},
|
30
|
+
};
|
31
|
+
const log = dlog('test:dlog');
|
32
|
+
log(obj);
|
33
|
+
log('\n\n\n');
|
34
|
+
log('obj =', obj);
|
35
|
+
log('\n\n\n');
|
36
|
+
log('b', 'q', obj, obj, 'end');
|
37
|
+
log('\n\n\n');
|
38
|
+
log(obj, obj);
|
39
|
+
log('\n\n\n');
|
40
|
+
log('obj =', obj, 'obj =', obj);
|
41
|
+
log('\n\n\n');
|
42
|
+
log(longHex);
|
43
|
+
log('\n\n\n');
|
44
|
+
log('longHex =', longHex);
|
45
|
+
log('\n\n\n');
|
46
|
+
log('shortenedHexKey =', { '0x0102030405060708090a0b0c0d0e0f101112131415161718191a': true });
|
47
|
+
log('shortenedHexValue =', '0x0102030405060708090a0b0c0d0e0f101112131415161718191a');
|
48
|
+
log('shortenedHexValue =', {
|
49
|
+
key: '0x0102030405060708090a0b0c0d0e0f101112131415161718191a',
|
50
|
+
});
|
51
|
+
});
|
52
|
+
it('extend', () => {
|
53
|
+
const base_log = dlog('test:dlog');
|
54
|
+
const log = base_log.extend('extend');
|
55
|
+
log('extend');
|
56
|
+
log(22);
|
57
|
+
log('33 =', 33);
|
58
|
+
log('gonna print more', '44 =', 44);
|
59
|
+
});
|
60
|
+
it('enabled1', () => {
|
61
|
+
const log = dlog('test:dlog');
|
62
|
+
if (log.enabled) {
|
63
|
+
log('enabled', log.enabled);
|
64
|
+
log.enabled = false;
|
65
|
+
log('(should not print)', log.enabled);
|
66
|
+
log.enabled = true;
|
67
|
+
log('enabled', log.enabled);
|
68
|
+
}
|
69
|
+
});
|
70
|
+
it('circularReference', () => {
|
71
|
+
const log = dlog('test:dlog');
|
72
|
+
class A {
|
73
|
+
b;
|
74
|
+
constructor() {
|
75
|
+
this.b = new B(this);
|
76
|
+
}
|
77
|
+
}
|
78
|
+
class B {
|
79
|
+
a;
|
80
|
+
constructor(a) {
|
81
|
+
this.a = a;
|
82
|
+
}
|
83
|
+
}
|
84
|
+
const a = new A();
|
85
|
+
log('test circular:', { a });
|
86
|
+
});
|
87
|
+
it('numbers', () => {
|
88
|
+
const log = dlog('test:dlog');
|
89
|
+
log('test same number:', { a: 1, b: 1, c: 1, d: 2 });
|
90
|
+
});
|
91
|
+
it('error', () => {
|
92
|
+
const log = dlogError('test:dlog:error');
|
93
|
+
log('test same number:', { a: 1, b: 1, c: 1, d: 2 });
|
94
|
+
log(new Error('test error'));
|
95
|
+
function funcThatThrows() {
|
96
|
+
throw new Error('test error 2');
|
97
|
+
}
|
98
|
+
try {
|
99
|
+
funcThatThrows();
|
100
|
+
}
|
101
|
+
catch (e) {
|
102
|
+
log(e);
|
103
|
+
}
|
104
|
+
try {
|
105
|
+
funcThatThrows();
|
106
|
+
}
|
107
|
+
catch (e) {
|
108
|
+
log('test error 3', e, 123, 'more text');
|
109
|
+
}
|
110
|
+
});
|
111
|
+
it('set', () => {
|
112
|
+
const s = new Set([111, 222, { aaa: 333 }]);
|
113
|
+
dlog('test:dlog')(s);
|
114
|
+
const log = dlog('test:dlog');
|
115
|
+
log.enabled = true;
|
116
|
+
let output = '';
|
117
|
+
log.baseDebug.log = (...args) => {
|
118
|
+
for (const arg of args) {
|
119
|
+
output += `${arg}`;
|
120
|
+
}
|
121
|
+
};
|
122
|
+
log(s);
|
123
|
+
expect(output).toContain('111');
|
124
|
+
expect(output).toContain('222');
|
125
|
+
expect(output).toContain('333');
|
126
|
+
expect(output).toContain('aaa');
|
127
|
+
});
|
128
|
+
it('map', () => {
|
129
|
+
const s = new Map([
|
130
|
+
['aaa', 111],
|
131
|
+
['bbb', 222],
|
132
|
+
['ccc', { a: 333 }],
|
133
|
+
]);
|
134
|
+
dlog('test:dlog')(s);
|
135
|
+
const log = dlog('test:dlog');
|
136
|
+
log.enabled = true;
|
137
|
+
let output = '';
|
138
|
+
log.baseDebug.log = (...args) => {
|
139
|
+
for (const arg of args) {
|
140
|
+
output += `${arg}`;
|
141
|
+
}
|
142
|
+
};
|
143
|
+
log(s);
|
144
|
+
expect(output).toContain('111');
|
145
|
+
expect(output).toContain('aaa');
|
146
|
+
expect(output).toContain('222');
|
147
|
+
expect(output).toContain('bbb');
|
148
|
+
expect(output).toContain('333');
|
149
|
+
expect(output).toContain('ccc');
|
150
|
+
});
|
151
|
+
it('enabled2', () => {
|
152
|
+
const ns = 'uniqueLogName';
|
153
|
+
// Override
|
154
|
+
let log = dlog(ns);
|
155
|
+
expect(log.enabled).toBeFalsy();
|
156
|
+
log.enabled = true;
|
157
|
+
expect(log.enabled).toBeTruthy();
|
158
|
+
log.enabled = false;
|
159
|
+
expect(log.enabled).toBeFalsy();
|
160
|
+
// Default
|
161
|
+
log = dlog(ns, { defaultEnabled: true, allowJest: true });
|
162
|
+
expect(log.enabled).toBeTruthy();
|
163
|
+
log.enabled = false;
|
164
|
+
expect(log.enabled).toBeFalsy();
|
165
|
+
// Default under Jest
|
166
|
+
log = dlog(ns, { defaultEnabled: true });
|
167
|
+
expect(log.enabled).toBeFalsy();
|
168
|
+
log.enabled = true;
|
169
|
+
expect(log.enabled).toBeTruthy();
|
170
|
+
// Enabled explicitly by settings
|
171
|
+
debug.enable(ns);
|
172
|
+
log = dlog(ns);
|
173
|
+
expect(log.enabled).toBeTruthy();
|
174
|
+
// Disabled explicitly by settings
|
175
|
+
debug.enable('-' + ns);
|
176
|
+
expect(log.enabled).toBeFalsy();
|
177
|
+
// Disabled explicitly by settings, default ignored
|
178
|
+
log = dlog(ns, { defaultEnabled: true, allowJest: true });
|
179
|
+
expect(log.enabled).toBeFalsy();
|
180
|
+
});
|
181
|
+
});
|
182
|
+
//# sourceMappingURL=dlog.test.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"dlog.test.js","sourceRoot":"","sources":["../../src/tests/dlog.test.ts"],"names":[],"mappings":"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"}
|
package/dist/utils.d.ts
ADDED
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../src/utils.ts"],"names":[],"mappings":"AAEA,wBAAgB,SAAS,IAAI,OAAO,CAEnC;AAED,wBAAgB,SAAS,IAAI,OAAO,CAOnC"}
|
package/dist/utils.js
ADDED
@@ -0,0 +1,11 @@
|
|
1
|
+
import { isNode } from 'browser-or-node';
|
2
|
+
export function isNodeEnv() {
|
3
|
+
return isNode;
|
4
|
+
}
|
5
|
+
export function isTestEnv() {
|
6
|
+
return (isNode &&
|
7
|
+
(process.env.NODE_ENV === 'test' ||
|
8
|
+
process.env.JEST_WORKER_ID !== undefined ||
|
9
|
+
process.env.TS_JEST === '1'));
|
10
|
+
}
|
11
|
+
//# sourceMappingURL=utils.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../src/utils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAA;AAExC,MAAM,UAAU,SAAS;IACrB,OAAO,MAAM,CAAA;AACjB,CAAC;AAED,MAAM,UAAU,SAAS;IACrB,OAAO,CACH,MAAM;QACN,CAAC,OAAO,CAAC,GAAG,CAAC,QAAQ,KAAK,MAAM;YAC5B,OAAO,CAAC,GAAG,CAAC,cAAc,KAAK,SAAS;YACxC,OAAO,CAAC,GAAG,CAAC,OAAO,KAAK,GAAG,CAAC,CACnC,CAAA;AACL,CAAC"}
|
package/package.json
ADDED
@@ -0,0 +1,45 @@
|
|
1
|
+
{
|
2
|
+
"name": "@towns-protocol/dlog",
|
3
|
+
"version": "0.0.191",
|
4
|
+
"packageManager": "yarn@3.8.0",
|
5
|
+
"type": "module",
|
6
|
+
"main": "dist/index.js",
|
7
|
+
"types": "dist/index.d.ts",
|
8
|
+
"publishConfig": {
|
9
|
+
"access": "public"
|
10
|
+
},
|
11
|
+
"scripts": {
|
12
|
+
"build": "tsc",
|
13
|
+
"cb": "yarn clean && yarn build",
|
14
|
+
"clean": "rm -rf dist",
|
15
|
+
"lint": "yarn eslint --format unix ./src",
|
16
|
+
"lint:fix": "yarn lint --fix",
|
17
|
+
"test": "vitest run",
|
18
|
+
"test:watch": "vitest --watch",
|
19
|
+
"test:ci": "yarn test",
|
20
|
+
"test:debug": "DEBUG=test yarn test",
|
21
|
+
"watch": "tsc --watch"
|
22
|
+
},
|
23
|
+
"dependencies": {
|
24
|
+
"@bufbuild/protobuf": "^2.2.2",
|
25
|
+
"@towns-protocol/proto": "^0.0.191",
|
26
|
+
"browser-or-node": "^3.0.0",
|
27
|
+
"debug": "^4.3.4",
|
28
|
+
"ethereum-cryptography": "^1.2.0"
|
29
|
+
},
|
30
|
+
"devDependencies": {
|
31
|
+
"@types/debug": "^4.1.8",
|
32
|
+
"@typescript-eslint/eslint-plugin": "^8.29.0",
|
33
|
+
"@typescript-eslint/parser": "^8.29.0",
|
34
|
+
"eslint": "^8.57.0",
|
35
|
+
"eslint-import-resolver-typescript": "^3.5.5",
|
36
|
+
"eslint-plugin-import": "^2.27.5",
|
37
|
+
"ts-node": "^10.9.1",
|
38
|
+
"typescript": "^5.8.2",
|
39
|
+
"vitest": "3.0.5"
|
40
|
+
},
|
41
|
+
"files": [
|
42
|
+
"/dist"
|
43
|
+
],
|
44
|
+
"gitHead": "cdd08f6e1b007e061eda9e6051c658d5fc909a79"
|
45
|
+
}
|