@did-btcr2/common 2.2.2 → 3.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (85) hide show
  1. package/dist/cjs/canonicalization.js +66 -54
  2. package/dist/cjs/canonicalization.js.map +1 -1
  3. package/dist/cjs/constants.js +17 -11
  4. package/dist/cjs/constants.js.map +1 -1
  5. package/dist/cjs/index.js +5 -3
  6. package/dist/cjs/index.js.map +1 -1
  7. package/dist/cjs/json-patch.js +98 -0
  8. package/dist/cjs/json-patch.js.map +1 -0
  9. package/dist/cjs/logger.js +46 -12
  10. package/dist/cjs/logger.js.map +1 -1
  11. package/dist/cjs/utils/date.js +32 -0
  12. package/dist/cjs/utils/date.js.map +1 -0
  13. package/dist/cjs/utils/json.js +280 -0
  14. package/dist/cjs/utils/json.js.map +1 -0
  15. package/dist/cjs/utils/set.js +23 -0
  16. package/dist/cjs/utils/set.js.map +1 -0
  17. package/dist/cjs/utils/string.js +55 -0
  18. package/dist/cjs/utils/string.js.map +1 -0
  19. package/dist/esm/canonicalization.js +66 -54
  20. package/dist/esm/canonicalization.js.map +1 -1
  21. package/dist/esm/constants.js +17 -11
  22. package/dist/esm/constants.js.map +1 -1
  23. package/dist/esm/index.js +5 -3
  24. package/dist/esm/index.js.map +1 -1
  25. package/dist/esm/json-patch.js +98 -0
  26. package/dist/esm/json-patch.js.map +1 -0
  27. package/dist/esm/logger.js +46 -12
  28. package/dist/esm/logger.js.map +1 -1
  29. package/dist/esm/utils/date.js +32 -0
  30. package/dist/esm/utils/date.js.map +1 -0
  31. package/dist/esm/utils/json.js +280 -0
  32. package/dist/esm/utils/json.js.map +1 -0
  33. package/dist/esm/utils/set.js +23 -0
  34. package/dist/esm/utils/set.js.map +1 -0
  35. package/dist/esm/utils/string.js +55 -0
  36. package/dist/esm/utils/string.js.map +1 -0
  37. package/dist/types/canonicalization.d.ts +38 -29
  38. package/dist/types/canonicalization.d.ts.map +1 -1
  39. package/dist/types/constants.d.ts +6 -8
  40. package/dist/types/constants.d.ts.map +1 -1
  41. package/dist/types/index.d.ts +5 -3
  42. package/dist/types/index.d.ts.map +1 -1
  43. package/dist/types/interfaces.d.ts +2 -2
  44. package/dist/types/interfaces.d.ts.map +1 -1
  45. package/dist/types/json-patch.d.ts +47 -0
  46. package/dist/types/json-patch.d.ts.map +1 -0
  47. package/dist/types/logger.d.ts +31 -8
  48. package/dist/types/logger.d.ts.map +1 -1
  49. package/dist/types/types.d.ts +11 -4
  50. package/dist/types/types.d.ts.map +1 -1
  51. package/dist/types/utils/date.d.ts +19 -0
  52. package/dist/types/utils/date.d.ts.map +1 -0
  53. package/dist/types/utils/json.d.ts +89 -0
  54. package/dist/types/utils/json.d.ts.map +1 -0
  55. package/dist/types/utils/set.d.ts +14 -0
  56. package/dist/types/utils/set.d.ts.map +1 -0
  57. package/dist/types/utils/string.d.ts +39 -0
  58. package/dist/types/utils/string.d.ts.map +1 -0
  59. package/package.json +3 -4
  60. package/src/canonicalization.ts +75 -58
  61. package/src/constants.ts +19 -12
  62. package/src/index.ts +5 -5
  63. package/src/interfaces.ts +2 -2
  64. package/src/json-patch.ts +103 -0
  65. package/src/logger.ts +59 -27
  66. package/src/types.ts +11 -6
  67. package/src/utils/date.ts +32 -0
  68. package/src/utils/json.ts +315 -0
  69. package/src/utils/set.ts +23 -0
  70. package/src/utils/string.ts +59 -0
  71. package/dist/cjs/exts.js +0 -189
  72. package/dist/cjs/exts.js.map +0 -1
  73. package/dist/cjs/patch.js +0 -163
  74. package/dist/cjs/patch.js.map +0 -1
  75. package/dist/esm/exts.js +0 -189
  76. package/dist/esm/exts.js.map +0 -1
  77. package/dist/esm/patch.js +0 -163
  78. package/dist/esm/patch.js.map +0 -1
  79. package/dist/types/exts.d.ts +0 -90
  80. package/dist/types/exts.d.ts.map +0 -1
  81. package/dist/types/patch.d.ts +0 -63
  82. package/dist/types/patch.d.ts.map +0 -1
  83. package/src/exts.ts +0 -310
  84. package/src/patch.ts +0 -181
  85. package/src/rdf-canonize.d.ts +0 -6
@@ -1,4 +1,5 @@
1
1
  import { sha256 } from '@noble/hashes/sha2';
2
+ import { bytesToHex } from '@noble/hashes/utils';
2
3
  export const ID_PLACEHOLDER_VALUE = 'did:btcr2:xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx';
3
4
  export const OP_RETURN = 0x6a;
4
5
  export const OP_PUSH32 = 0x20;
@@ -7,31 +8,36 @@ export const MULTIBASE_URI_PREFIX = 'urn:mb:';
7
8
  export const INITIAL_BLOCK_REWARD = 50;
8
9
  export const HALVING_INTERVAL = 150;
9
10
  export const COINBASE_MATURITY_DELAY = 100;
10
- export const POLAR_BOB_CLIENT_CONFIG = {
11
+ export const DEFAULT_POLAR_CONFIG = {
11
12
  username: 'polaruser',
12
13
  password: 'polarpass',
13
14
  host: 'http://127.0.0.1:18443',
14
15
  allowDefaultWallet: true,
15
16
  version: '28.1.0'
16
17
  };
17
- export const POLAR_ALICE_CLIENT_CONFIG = {
18
- username: 'polaruser',
19
- password: 'polarpass',
20
- host: 'http://127.0.0.1:18444',
21
- allowDefaultWallet: true,
22
- version: '28.1.0'
23
- };
24
18
  export const DEFAULT_REST_CONFIG = { host: 'http://localhost:3000' };
25
- export const DEFAULT_RPC_CONFIG = POLAR_BOB_CLIENT_CONFIG;
19
+ export const DEFAULT_RPC_CONFIG = DEFAULT_POLAR_CONFIG;
26
20
  export const DEFAULT_BLOCK_CONFIRMATIONS = 7;
21
+ /**
22
+ * Load a default RPC config, allowing environment overrides to avoid hard-coding credentials/hosts in bundles.
23
+ * @returns {typeof DEFAULT_POLAR_CONFIG} The RPC config.
24
+ */
25
+ export function getDefaultRpcConfig() {
26
+ return {
27
+ ...DEFAULT_POLAR_CONFIG,
28
+ host: process.env.BTCR2_RPC_HOST ?? DEFAULT_POLAR_CONFIG.host,
29
+ username: process.env.BTCR2_RPC_USER ?? DEFAULT_POLAR_CONFIG.username,
30
+ password: process.env.BTCR2_RPC_PASS ?? DEFAULT_POLAR_CONFIG.password,
31
+ };
32
+ }
27
33
  // Fixed public key header bytes per the Data Integrity BIP340 Cryptosuite spec: [0xe7, 0x01] / [231, 1]
28
34
  export const BIP340_PUBLIC_KEY_MULTIBASE_PREFIX = new Uint8Array([0xe7, 0x01]);
29
35
  // Hash of the BIP-340 Multikey prefix
30
- export const BIP340_PUBLIC_KEY_MULTIBASE_PREFIX_HASH = Buffer.from(sha256(BIP340_PUBLIC_KEY_MULTIBASE_PREFIX)).toString('hex');
36
+ export const BIP340_PUBLIC_KEY_MULTIBASE_PREFIX_HASH = bytesToHex(sha256(BIP340_PUBLIC_KEY_MULTIBASE_PREFIX));
31
37
  // Fixed secret key header bytes per the Data Integrity BIP340 Cryptosuite spec: [0x81, 0x26] / [129, 38]
32
38
  export const BIP340_SECRET_KEY_MULTIBASE_PREFIX = new Uint8Array([0x81, 0x26]);
33
39
  // Hash of the BIP-340 Multikey prefix
34
- export const BIP340_SECRET_KEY_MULTIBASE_PREFIX_HASH = Buffer.from(sha256(BIP340_SECRET_KEY_MULTIBASE_PREFIX)).toString('hex');
40
+ export const BIP340_SECRET_KEY_MULTIBASE_PREFIX_HASH = bytesToHex(sha256(BIP340_SECRET_KEY_MULTIBASE_PREFIX));
35
41
  // curve's field size
36
42
  export const B256 = 2n ** 256n;
37
43
  // curve's field prime
@@ -1 +1 @@
1
- {"version":3,"file":"constants.js","sourceRoot":"","sources":["../../src/constants.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"constants.js","sourceRoot":"","sources":["../../src/constants.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAC;AAC5C,OAAO,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AAGjD,MAAM,CAAC,MAAM,oBAAoB,GAAG,wEAAwE,CAAC;AAC7G,MAAM,CAAC,MAAM,SAAS,GAAG,IAAI,CAAC;AAC9B,MAAM,CAAC,MAAM,SAAS,GAAG,IAAI,CAAC;AAC9B,MAAM,CAAC,MAAM,SAAS,GAAG,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;AACpC,MAAM,CAAC,MAAM,oBAAoB,GAAG,SAAS,CAAC;AAC9C,MAAM,CAAC,MAAM,oBAAoB,GAAG,EAAE,CAAC;AACvC,MAAM,CAAC,MAAM,gBAAgB,GAAG,GAAG,CAAC;AACpC,MAAM,CAAC,MAAM,uBAAuB,GAAG,GAAG,CAAC;AAC3C,MAAM,CAAC,MAAM,oBAAoB,GAAG;IAClC,QAAQ,EAAa,WAAW;IAChC,QAAQ,EAAa,WAAW;IAChC,IAAI,EAAiB,wBAAwB;IAC7C,kBAAkB,EAAG,IAAI;IACzB,OAAO,EAAc,QAAQ;CAC9B,CAAC;AACF,MAAM,CAAC,MAAM,mBAAmB,GAAG,EAAE,IAAI,EAAE,uBAAuB,EAAE,CAAC;AACrE,MAAM,CAAC,MAAM,kBAAkB,GAAG,oBAAoB,CAAC;AACvD,MAAM,CAAC,MAAM,2BAA2B,GAAG,CAAC,CAAC;AAE7C;;;GAGG;AACH,MAAM,UAAU,mBAAmB;IACjC,OAAO;QACL,GAAG,oBAAoB;QACvB,IAAI,EAAO,OAAO,CAAC,GAAG,CAAC,cAAc,IAAI,oBAAoB,CAAC,IAAI;QAClE,QAAQ,EAAG,OAAO,CAAC,GAAG,CAAC,cAAc,IAAI,oBAAoB,CAAC,QAAQ;QACtE,QAAQ,EAAG,OAAO,CAAC,GAAG,CAAC,cAAc,IAAI,oBAAoB,CAAC,QAAQ;KACvE,CAAC;AACJ,CAAC;AAED,wGAAwG;AACxG,MAAM,CAAC,MAAM,kCAAkC,GAAU,IAAI,UAAU,CAAC,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC;AACtF,sCAAsC;AACtC,MAAM,CAAC,MAAM,uCAAuC,GAAY,UAAU,CAAC,MAAM,CAAC,kCAAkC,CAAC,CAAC,CAAC;AACvH,yGAAyG;AACzG,MAAM,CAAC,MAAM,kCAAkC,GAAU,IAAI,UAAU,CAAC,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC;AACtF,sCAAsC;AACtC,MAAM,CAAC,MAAM,uCAAuC,GAAY,UAAU,CAAC,MAAM,CAAC,kCAAkC,CAAC,CAAC,CAAC;AACvH,qBAAqB;AACrB,MAAM,CAAC,MAAM,IAAI,GAAG,EAAE,IAAI,IAAI,CAAC;AAC/B,sBAAsB;AACtB,MAAM,CAAC,MAAM,CAAC,GAAG,IAAI,GAAG,YAAY,CAAC;AACrC,sBAAsB;AACtB,MAAM,CAAC,MAAM,CAAC,GAAG,IAAI,GAAG,oCAAoC,CAAC;AAC7D,eAAe;AACf,MAAM,CAAC,MAAM,EAAE,GAAG,mEAAmE,CAAC;AACtF,eAAe;AACf,MAAM,CAAC,MAAM,EAAE,GAAG,mEAAmE,CAAC;AACtF,mBAAmB;AACnB,MAAM,CAAC,MAAM,CAAC,GAAG,EAAE,CAAC;AACpB,MAAM,CAAC,MAAM,CAAC,GAAG,EAAE,CAAC;AACpB,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;AACnB,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;AACnB,MAAM,CAAC,MAAM,KAAK,GAAG;IACnB,CAAC;IACD,CAAC;IACD,CAAC;IACD,CAAC;IACD,EAAE;IACF,EAAE;CACH,CAAC;AAEF,MAAM,CAAC,MAAM,UAAU,GAAG,8BAA8B,CAAC;AACzD,MAAM,CAAC,MAAM,YAAY,GAAI,+BAA+B,CAAC;AAC7D,MAAM,CAAC,MAAM,qBAAqB,GAAG,6CAA6C,CAAC;AACnF,MAAM,CAAC,MAAM,qBAAqB,GAAG,6CAA6C,CAAC;AACnF,MAAM,CAAC,MAAM,eAAe,GAAG,8BAA8B,CAAC;AAC9D,MAAM,CAAC,MAAM,oBAAoB,GAAG,8BAA8B,CAAC;AACnE,MAAM,CAAC,MAAM,WAAW,GAAG,0BAA0B,CAAC;AACtD,MAAM,CAAC,MAAM,mBAAmB,GAAG,mCAAmC,CAAC;AACvE,MAAM,CAAC,MAAM,eAAe,GAAG,uCAAuC,CAAC;AACvE,MAAM,CAAC,MAAM,qBAAqB,GAAG,oCAAoC,CAAC;AAC1E,MAAM,CAAC,MAAM,eAAe,GAAG;IAC7B,GAAG,EAAG;QACJ,GAAG,EAAa;YACd,EAAE,EAAK,UAAU;YACjB,IAAI,EAAG,YAAY;SACpB;QACD,aAAa,EAAG;YACd,EAAE,EAAG,qBAAqB;SAC3B;QACD,QAAQ,EAAG;YACT,EAAE,EAAG,eAAe;SACrB;QACD,aAAa,EAAG;YACd,EAAE,EAAG,qBAAqB;YAC1B,EAAE,EAAG,qBAAqB;SAC3B;QACD,IAAI,EAAY;YACd,EAAE,EAAG,WAAW;SACjB;QACD,WAAW,EAAK;YACd,EAAE,EAAG,mBAAmB;SACzB;QACD,QAAQ,EAAQ;YACd,EAAE,EAAG,eAAe;SACrB;KACF;IACD,KAAK,EAAG;QACN,MAAM,EAAG;YACP,EAAE,EAAG,oBAAoB;SAC1B;KACF;CAEF,CAAC;AAEF,MAAM,CAAC,MAAM,0BAA0B,GAAG;IACxC,eAAe,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI;IAC5B,eAAe,CAAC,KAAK,CAAC,MAAM,CAAC,EAAE;CAChC,CAAC;AAEF,MAAM,CAAC,MAAM,sBAAsB,GAAG;IACpC,eAAe,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE;IAC1B,eAAe,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE;CAChC,CAAC;AAEF,MAAM,CAAC,MAAM,gCAAgC,GAAG;IAC9C,eAAe,CAAC,KAAK,CAAC,MAAM,CAAC,EAAE;IAC/B,eAAe,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE;IAC/B,eAAe,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE;IAC3B,eAAe,CAAC,GAAG,CAAC,WAAW,CAAC,EAAE;CACnC,CAAC"}
package/dist/esm/index.js CHANGED
@@ -1,10 +1,12 @@
1
- import './exts.js';
2
1
  export * from './canonicalization.js';
3
2
  export * from './constants.js';
4
3
  export * from './errors.js';
5
4
  export * from './interfaces.js';
5
+ export * from './json-patch.js';
6
6
  export * from './logger.js';
7
- export * from './patch.js';
8
7
  export * from './types.js';
9
- export * from './exts.js';
8
+ export * from './utils/date.js';
9
+ export * from './utils/json.js';
10
+ export * from './utils/set.js';
11
+ export * from './utils/string.js';
10
12
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,WAAW,CAAC;AAEnB,cAAc,uBAAuB,CAAC;AACtC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,aAAa,CAAC;AAC5B,cAAc,iBAAiB,CAAC;AAChC,cAAc,aAAa,CAAC;AAC5B,cAAc,YAAY,CAAC;AAC3B,cAAc,YAAY,CAAC;AAE3B,cAAc,WAAW,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,uBAAuB,CAAC;AACtC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,aAAa,CAAC;AAC5B,cAAc,iBAAiB,CAAC;AAChC,cAAc,iBAAiB,CAAC;AAChC,cAAc,aAAa,CAAC;AAC5B,cAAc,YAAY,CAAC;AAC3B,cAAc,iBAAiB,CAAC;AAChC,cAAc,iBAAiB,CAAC;AAChC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,mBAAmB,CAAC"}
@@ -0,0 +1,98 @@
1
+ import jsonPatch from 'fast-json-patch';
2
+ import { MethodError } from './errors.js';
3
+ const { applyPatch, compare, deepClone } = jsonPatch;
4
+ /**
5
+ * Thin wrapper around fast-json-patch to keep a stable API within this package.
6
+ * @class JSONPatch
7
+ * @type {JSONPatch}
8
+ */
9
+ export class JSONPatch {
10
+ /**
11
+ * Applies a JSON Patch to a source document and returns the patched document.
12
+ * Does not mutate the input document.
13
+ * @param {JSONObject} sourceDocument - The source JSON document to apply the patch to.
14
+ * @param {PatchOperation[]} operations - The JSON Patch operations to apply.
15
+ * @returns {JSONObject} The patched JSON document.
16
+ */
17
+ static apply(sourceDocument, operations, options = {}) {
18
+ const mutate = options.mutate ?? false;
19
+ const cloneFn = options.clone ?? deepClone;
20
+ const docClone = mutate ? sourceDocument : cloneFn(sourceDocument);
21
+ const validationError = this.validateOperations(operations);
22
+ if (validationError) {
23
+ throw new MethodError('Invalid JSON Patch operations', 'JSON_PATCH_APPLY_ERROR', { error: validationError });
24
+ }
25
+ try {
26
+ const result = applyPatch(docClone, operations, true, mutate);
27
+ if (result.newDocument === undefined) {
28
+ throw new MethodError('JSON Patch application failed', 'JSON_PATCH_APPLY_ERROR', { result });
29
+ }
30
+ return result.newDocument;
31
+ }
32
+ catch (error) {
33
+ throw new MethodError('JSON Patch application failed', 'JSON_PATCH_APPLY_ERROR', { error });
34
+ }
35
+ }
36
+ /**
37
+ * Compute a JSON Patch diff from source => target.
38
+ * @param {JSONObject} sourceDocument - The source JSON document.
39
+ * @param {JSONObject} targetDocument - The target JSON document.
40
+ * @param {string} [path] - An optional base path to prefix to each operation.
41
+ * @returns {PatchOperation[]} The computed JSON Patch operations.
42
+ */
43
+ static diff(sourceDocument, targetDocument, path = '') {
44
+ const ops = compare(sourceDocument ?? {}, targetDocument ?? {});
45
+ if (!path)
46
+ return ops;
47
+ const prefix = path.endsWith('/') ? path.slice(0, -1) : path;
48
+ return ops.map(op => ({
49
+ ...op,
50
+ path: this.joinPointer(prefix, op.path)
51
+ }));
52
+ }
53
+ /**
54
+ * Join a base pointer prefix with an operation path ensuring correct escaping.
55
+ * @param {string} prefix - The base pointer prefix.
56
+ * @param {string} opPath - The operation path.
57
+ * @returns {string} The joined pointer.
58
+ */
59
+ static joinPointer(prefix, opPath) {
60
+ if (!prefix)
61
+ return opPath;
62
+ const normalizedPrefix = prefix.startsWith('/') ? prefix : `/${prefix}`;
63
+ return `${this.escapeSegmentPath(normalizedPrefix)}${opPath}`;
64
+ }
65
+ /**
66
+ * Escape a JSON Pointer segment according to RFC 6901.
67
+ * @param {string} pointer - The JSON Pointer to escape.
68
+ * @returns {string} The escaped JSON Pointer.
69
+ */
70
+ static escapeSegmentPath(pointer) {
71
+ return pointer
72
+ .split('/')
73
+ .map((segment, idx) => idx === 0 ? segment : segment.replace(/~/g, '~0').replace(/\//g, '~1'))
74
+ .join('/');
75
+ }
76
+ /**
77
+ * Validate JSON Patch operations.
78
+ * @param {PatchOperation[]} operations - The operations to validate.
79
+ * @returns {Error | null} An Error if validation fails, otherwise null.
80
+ */
81
+ static validateOperations(operations) {
82
+ if (!Array.isArray(operations))
83
+ return new Error('Operations must be an array');
84
+ for (const op of operations) {
85
+ if (!op || typeof op !== 'object')
86
+ return new Error('Operation must be an object');
87
+ if (typeof op.op !== 'string')
88
+ return new Error('Operation.op must be a string');
89
+ if (typeof op.path !== 'string')
90
+ return new Error('Operation.path must be a string');
91
+ if ((op.op === 'move' || op.op === 'copy') && typeof op.from !== 'string') {
92
+ return new Error(`Operation.from must be a string for op=${op.op}`);
93
+ }
94
+ }
95
+ return null;
96
+ }
97
+ }
98
+ //# sourceMappingURL=json-patch.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"json-patch.js","sourceRoot":"","sources":["../../src/json-patch.ts"],"names":[],"mappings":"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"}
@@ -44,16 +44,33 @@ const LEVEL_METHODS = {
44
44
  * - File/line tracing
45
45
  * - Timestamps
46
46
  * - Colorized output
47
+ * @class Logger
48
+ * @type {Logger}
47
49
  */
48
50
  export class Logger {
49
51
  levels;
50
52
  namespace;
51
- constructor(namespace) {
52
- this.levels = LOG_LEVELS[NODE_ENV] || [];
53
- this.namespace = namespace ?? 'did-btcr2-js';
53
+ useColors;
54
+ static shared;
55
+ /**
56
+ * Creates a new Logger instance.
57
+ * @param {string} namespace - Optional namespace for log messages.
58
+ * @param {Object} options - Configuration options.
59
+ * @param {Level[]} options.levels - Log levels to enable.
60
+ * @param {boolean} options.useColors - Whether to use colored output.
61
+ */
62
+ constructor(namespace, options = {}) {
63
+ this.levels = options.levels || LOG_LEVELS[NODE_ENV] || [];
64
+ this.namespace = namespace || 'did-btcr2-js';
65
+ const envForce = process.env.LOG_COLORS;
66
+ this.useColors = options.useColors || (envForce ? envForce !== '0' && envForce.toLowerCase() !== 'false' : Boolean(process.stdout.isTTY));
54
67
  }
55
68
  /**
56
69
  * Logs a message with the specified level.
70
+ * @param {Level} level - The log level.
71
+ * @param {unknown} message - The message to log.
72
+ * @param {...unknown[]} args - Additional arguments to log.
73
+ * @returns {void}
57
74
  */
58
75
  _log(level, message, ...args) {
59
76
  if (!this.levels.includes(level))
@@ -62,9 +79,10 @@ export class Logger {
62
79
  const method = LEVEL_METHODS[level];
63
80
  const timestamp = new Date().toISOString();
64
81
  const namespace = this.namespace ? `[${this.namespace}]` : '';
65
- console[method](`${chalk.gray(timestamp)} ${namespace} ${color(level)}: ${chalk.white(message)}`, ...args);
82
+ const render = this.useColors ? color : (v) => v;
83
+ const renderGray = this.useColors ? chalk.gray : (v) => v;
84
+ console[method](`${renderGray(timestamp)} ${namespace} ${render(level)}: ${message}`, ...args);
66
85
  }
67
- // 🔹 Instance-based logging methods
68
86
  debug(message, ...args) {
69
87
  this._log('debug', message, ...args);
70
88
  return this;
@@ -95,27 +113,43 @@ export class Logger {
95
113
  }
96
114
  /**
97
115
  * Static methods for convenience (auto-instantiate).
116
+ * These use a shared singleton instance.
117
+ * @param {unknown} message - The message to log.
118
+ * @param {...unknown[]} args - Additional arguments to log.
119
+ * @returns {void}
98
120
  */
99
121
  static debug(message, ...args) {
100
- new Logger().debug(message, ...args);
122
+ Logger.instance().debug(message, ...args);
101
123
  }
102
124
  static error(message, ...args) {
103
- new Logger().error(message, ...args);
125
+ Logger.instance().error(message, ...args);
104
126
  }
105
127
  static info(message, ...args) {
106
- new Logger().info(message, ...args);
128
+ Logger.instance().info(message, ...args);
107
129
  }
108
130
  static warn(message, ...args) {
109
- new Logger().warn(message, ...args);
131
+ Logger.instance().warn(message, ...args);
110
132
  }
111
133
  static security(message, ...args) {
112
- new Logger().security(message, ...args);
134
+ Logger.instance().security(message, ...args);
113
135
  }
114
136
  static log(message, ...args) {
115
- new Logger().log(message, ...args);
137
+ Logger.instance().log(message, ...args);
116
138
  }
117
139
  static newline() {
118
- new Logger().newline();
140
+ Logger.instance().newline();
141
+ }
142
+ static instance(levels, useColors) {
143
+ if (!Logger.shared) {
144
+ Logger.shared = new Logger(undefined, { levels, useColors });
145
+ }
146
+ else {
147
+ if (levels)
148
+ Logger.shared.levels = levels;
149
+ if (useColors !== undefined)
150
+ Logger.shared.useColors = useColors;
151
+ }
152
+ return Logger.shared;
119
153
  }
120
154
  }
121
155
  //# sourceMappingURL=logger.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"logger.js","sourceRoot":"","sources":["../../src/logger.ts"],"names":[],"mappings":"AAAA,OAAO,KAAwB,MAAM,OAAO,CAAC;AAE7C,MAAM,CAAN,IAAY,GAIX;AAJD,WAAY,GAAG;IACb,kCAA2B,CAAA;IAC3B,gCAAyB,CAAA;IACzB,oBAAa,CAAA;AACf,CAAC,EAJW,GAAG,KAAH,GAAG,QAId;AAID,MAAM,CAAC,MAAM,QAAQ,GAAI,OAAO,CAAC,GAAG,CAAC,QAAgB,IAAI,GAAG,CAAC,WAAW,CAAC;AAEzE;;GAEG;AACH,MAAM,UAAU,GAAyB;IACvC,WAAW,EAAG,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,UAAU,CAAC;IAC1D,IAAI,EAAU,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,CAAC;IACtC,UAAU,EAAI,CAAC,OAAO,CAAC;CACxB,CAAC;AAEF;;GAEG;AACH,MAAM,YAAY,GAAiC;IACjD,KAAK,EAAM,KAAK,CAAC,KAAK;IACtB,KAAK,EAAM,KAAK,CAAC,GAAG;IACpB,IAAI,EAAO,KAAK,CAAC,IAAI;IACrB,GAAG,EAAQ,KAAK,CAAC,IAAI;IACrB,IAAI,EAAO,KAAK,CAAC,MAAM;IACvB,QAAQ,EAAG,KAAK,CAAC,OAAO;CACzB,CAAC;AAEF;;GAEG;AACH,oCAAoC;AACpC,MAAM,aAAa,GAAiC;IAClD,KAAK,EAAM,OAAO;IAClB,KAAK,EAAM,OAAO;IAClB,IAAI,EAAO,MAAM;IACjB,GAAG,EAAQ,KAAK;IAChB,IAAI,EAAO,MAAM;IACjB,QAAQ,EAAG,MAAM;CAClB,CAAC;AAEF;;;;;;;GAOG;AACH,MAAM,OAAO,MAAM;IACT,MAAM,CAAU;IAChB,SAAS,CAAU;IAE3B,YAAY,SAAkB;QAC5B,IAAI,CAAC,MAAM,GAAG,UAAU,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC;QACzC,IAAI,CAAC,SAAS,GAAG,SAAS,IAAI,cAAc,CAAC;IAC/C,CAAC;IAED;;OAEG;IACK,IAAI,CAAC,KAAY,EAAE,OAAiB,EAAE,GAAG,IAAe;QAC9D,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC;YAAE,OAAO;QAEzC,MAAM,KAAK,GAAG,YAAY,CAAC,KAAK,CAAC,CAAC;QAClC,MAAM,MAAM,GAAG,aAAa,CAAC,KAAK,CAAC,CAAC;QAEpC,MAAM,SAAS,GAAG,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;QAC3C,MAAM,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,SAAS,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC;QAE7D,OAAO,CAAC,MAAM,CAA8B,CAC3C,GAAG,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,SAAS,IAAI,KAAK,CAAC,KAAK,CAAC,KAAK,KAAK,CAAC,KAAK,CAAC,OAAO,CAAC,EAAE,EAChF,GAAG,IAAI,CACR,CAAC;IACJ,CAAC;IAED,oCAAoC;IAC7B,KAAK,CAAC,OAAiB,EAAE,GAAG,IAAe;QAChD,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,OAAO,EAAE,GAAG,IAAI,CAAC,CAAC;QAAC,OAAO,IAAI,CAAC;IACpD,CAAC;IAEM,KAAK,CAAC,OAAiB,EAAE,GAAG,IAAe;QAChD,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,OAAO,EAAE,GAAG,IAAI,CAAC,CAAC;QAAC,OAAO,IAAI,CAAC;IACpD,CAAC;IAEM,IAAI,CAAC,OAAiB,EAAE,GAAG,IAAe;QAC/C,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,OAAO,EAAE,GAAG,IAAI,CAAC,CAAC;QAAC,OAAO,IAAI,CAAC;IACnD,CAAC;IAEM,IAAI,CAAC,OAAiB,EAAE,GAAG,IAAe;QAC/C,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,OAAO,EAAE,GAAG,IAAI,CAAC,CAAC;QAAC,OAAO,IAAI,CAAC;IACnD,CAAC;IAEM,QAAQ,CAAC,OAAiB,EAAE,GAAG,IAAe;QACnD,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,OAAO,EAAE,GAAG,IAAI,CAAC,CAAC;QAAC,OAAO,IAAI,CAAC;IACvD,CAAC;IAEM,GAAG,CAAC,OAAiB,EAAE,GAAG,IAAe;QAC9C,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,OAAO,EAAE,GAAG,IAAI,CAAC,CAAC;QAAC,OAAO,IAAI,CAAC;IAClD,CAAC;IAEM,OAAO;QACZ,OAAO,CAAC,GAAG,EAAE,CAAC;QAAC,OAAO,IAAI,CAAC;IAC7B,CAAC;IAED;;OAEG;IACI,MAAM,CAAC,KAAK,CAAC,OAAiB,EAAE,GAAG,IAAe;QACvD,IAAI,MAAM,EAAE,CAAC,KAAK,CAAC,OAAO,EAAE,GAAG,IAAI,CAAC,CAAC;IACvC,CAAC;IAEM,MAAM,CAAC,KAAK,CAAC,OAAiB,EAAE,GAAG,IAAe;QACvD,IAAI,MAAM,EAAE,CAAC,KAAK,CAAC,OAAO,EAAE,GAAG,IAAI,CAAC,CAAC;IACvC,CAAC;IAEM,MAAM,CAAC,IAAI,CAAC,OAAiB,EAAE,GAAG,IAAe;QACtD,IAAI,MAAM,EAAE,CAAC,IAAI,CAAC,OAAO,EAAE,GAAG,IAAI,CAAC,CAAC;IACtC,CAAC;IAEM,MAAM,CAAC,IAAI,CAAC,OAAiB,EAAE,GAAG,IAAe;QACtD,IAAI,MAAM,EAAE,CAAC,IAAI,CAAC,OAAO,EAAE,GAAG,IAAI,CAAC,CAAC;IACtC,CAAC;IAEM,MAAM,CAAC,QAAQ,CAAC,OAAiB,EAAE,GAAG,IAAe;QAC1D,IAAI,MAAM,EAAE,CAAC,QAAQ,CAAC,OAAO,EAAE,GAAG,IAAI,CAAC,CAAC;IAC1C,CAAC;IAEM,MAAM,CAAC,GAAG,CAAC,OAAiB,EAAE,GAAG,IAAe;QACrD,IAAI,MAAM,EAAE,CAAC,GAAG,CAAC,OAAO,EAAE,GAAG,IAAI,CAAC,CAAC;IACrC,CAAC;IAEM,MAAM,CAAC,OAAO;QACnB,IAAI,MAAM,EAAE,CAAC,OAAO,EAAE,CAAC;IACzB,CAAC;CACF"}
1
+ {"version":3,"file":"logger.js","sourceRoot":"","sources":["../../src/logger.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,32 @@
1
+ /**
2
+ * Utility class for date-related operations.
3
+ * @name DateUtils
4
+ * @class DateUtils
5
+ */
6
+ export class DateUtils {
7
+ /**
8
+ * Render an ISO 8601 UTC timestamp without fractional seconds.
9
+ * @param {Date} [date=new Date()] - The date to format.
10
+ * @returns {string} The formatted date string.
11
+ */
12
+ static getUTCDateTime(date = new Date()) {
13
+ const time = date.getTime();
14
+ if (Number.isNaN(time)) {
15
+ throw new Error(`Invalid date: ${date}`);
16
+ }
17
+ return date.toISOString().replace(/\.\d{3}Z$/, 'Z');
18
+ }
19
+ /**
20
+ * Unix timestamp in seconds (integer).
21
+ * @param {Date} [date=new Date()] - The date to convert.
22
+ * @returns {number} The Unix timestamp in seconds.
23
+ */
24
+ static toUnixSeconds(date = new Date()) {
25
+ const time = date.getTime();
26
+ if (Number.isNaN(time)) {
27
+ throw new Error(`Invalid date: ${date}`);
28
+ }
29
+ return Math.floor(date.getTime() / 1000);
30
+ }
31
+ }
32
+ //# sourceMappingURL=date.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"date.js","sourceRoot":"","sources":["../../../src/utils/date.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,MAAM,OAAO,SAAS;IACpB;;;;OAIG;IACH,MAAM,CAAC,cAAc,CAAC,OAAa,IAAI,IAAI,EAAE;QAC3C,MAAM,IAAI,GAAG,IAAI,CAAC,OAAO,EAAE,CAAC;QAC5B,IAAI,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC;YACvB,MAAM,IAAI,KAAK,CAAC,iBAAiB,IAAI,EAAE,CAAC,CAAC;QAC3C,CAAC;QACD,OAAO,IAAI,CAAC,WAAW,EAAE,CAAC,OAAO,CAAC,WAAW,EAAE,GAAG,CAAC,CAAC;IACtD,CAAC;IAED;;;;OAIG;IACH,MAAM,CAAC,aAAa,CAAC,OAAa,IAAI,IAAI,EAAE;QAC1C,MAAM,IAAI,GAAG,IAAI,CAAC,OAAO,EAAE,CAAC;QAC5B,IAAI,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC;YACvB,MAAM,IAAI,KAAK,CAAC,iBAAiB,IAAI,EAAE,CAAC,CAAC;QAC3C,CAAC;QACD,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,EAAE,GAAG,IAAI,CAAC,CAAC;IAC3C,CAAC;CACF"}
@@ -0,0 +1,280 @@
1
+ /**
2
+ * Utilities for working with JSON data.
3
+ * @name JSONUtils
4
+ * @class JSONUtils
5
+ */
6
+ export class JSONUtils {
7
+ /**
8
+ * Check if a value is a JSON object (not an array, not null, and has Object prototype).
9
+ * @param {unknown} value - The value to check.
10
+ * @returns {boolean} True if the value is a JSON object.
11
+ */
12
+ static isObject(value) {
13
+ if (value === null || typeof value !== 'object')
14
+ return false;
15
+ if (Array.isArray(value))
16
+ return false;
17
+ const proto = Object.getPrototypeOf(value);
18
+ return proto === Object.prototype || proto === null;
19
+ }
20
+ /**
21
+ * Check if a value is a parsable JSON string.
22
+ * @param {unknown} value - The value to check.
23
+ * @returns {boolean} True if the value is a parsable JSON string.
24
+ */
25
+ static isParsable(value) {
26
+ if (typeof value !== 'string')
27
+ return false;
28
+ try {
29
+ JSON.parse(value);
30
+ return true;
31
+ }
32
+ catch {
33
+ return false;
34
+ }
35
+ }
36
+ /**
37
+ * Check if a value is an unprototyped object (i.e., Object.create(null)).
38
+ * @param {unknown} value - The value to check.
39
+ * @returns {boolean} True if the value is an unprototyped object.
40
+ */
41
+ static isUnprototyped(value) {
42
+ if (value === null || typeof value !== 'object')
43
+ return false;
44
+ return Object.getPrototypeOf(value) === null;
45
+ }
46
+ /**
47
+ * Normalize a JSON value by stripping prototypes from all objects within it.
48
+ * @param {T} value - The JSON value to normalize.
49
+ * @returns {Prototyped} The normalized JSON value.
50
+ */
51
+ static normalize(value) {
52
+ return this.cloneInternal(value, { stripPrototypes: true });
53
+ }
54
+ /**
55
+ * Shallow copy of a JSON object.
56
+ * @param {T extends JSONObject} value - The JSON object to copy.
57
+ * @returns {T} The copied JSON object.
58
+ */
59
+ static copy(value) {
60
+ return { ...value };
61
+ }
62
+ /**
63
+ * Deep clone a JSON value.
64
+ * @param {T} value - The JSON value to clone.
65
+ * @returns {T} The cloned JSON value.
66
+ */
67
+ static clone(value) {
68
+ if (typeof structuredClone === 'function') {
69
+ return structuredClone(value);
70
+ }
71
+ return this.cloneInternal(value);
72
+ }
73
+ /**
74
+ * Deep clone a JSON value, replacing strings that match a pattern.
75
+ * @param {T} value - The JSON value to clone.
76
+ * @param {RegExp} pattern - The regex pattern to match strings.
77
+ * @param {string} replacement - The replacement string.
78
+ * @returns {T} The cloned JSON value with replacements.
79
+ */
80
+ static cloneReplace(value, pattern, replacement) {
81
+ return this.cloneInternal(value, {
82
+ transform: (candidate) => typeof candidate === 'string'
83
+ ? candidate.replace(pattern, replacement)
84
+ : candidate
85
+ });
86
+ }
87
+ /**
88
+ * Deep equality check between two values.
89
+ * @param {unknown} a - The first value to compare.
90
+ * @param {unknown} b - The second value to compare.
91
+ * @param {WeakMap<object, object>} seen - A WeakMap to track seen object pairs for circular reference detection.
92
+ * @returns {boolean} True if the values are deeply equal.
93
+ */
94
+ static deepEqual(a, b, seen = new WeakMap(), depth = 0) {
95
+ if (depth > 1024) {
96
+ throw new Error('Maximum comparison depth exceeded');
97
+ }
98
+ if (Object.is(a, b))
99
+ return true;
100
+ if (typeof a !== typeof b)
101
+ return false;
102
+ if (a === null || b === null)
103
+ return false;
104
+ if (typeof a !== 'object')
105
+ return false;
106
+ if (seen.get(a) === b)
107
+ return true;
108
+ seen.set(a, b);
109
+ if (ArrayBuffer.isView(a) && ArrayBuffer.isView(b)) {
110
+ const viewA = new Uint8Array(a.buffer, a.byteOffset, a.byteLength);
111
+ const viewB = new Uint8Array(b.buffer, b.byteOffset, b.byteLength);
112
+ if (viewA.byteLength !== viewB.byteLength)
113
+ return false;
114
+ for (let i = 0; i < viewA.byteLength; i++) {
115
+ if (viewA[i] !== viewB[i])
116
+ return false;
117
+ }
118
+ return true;
119
+ }
120
+ if (a instanceof Date && b instanceof Date) {
121
+ return a.getTime() === b.getTime();
122
+ }
123
+ if (a instanceof Set && b instanceof Set) {
124
+ if (a.size !== b.size)
125
+ return false;
126
+ for (const itemA of a) {
127
+ let matched = false;
128
+ for (const itemB of b) {
129
+ if (this.deepEqual(itemA, itemB, seen, depth + 1)) {
130
+ matched = true;
131
+ break;
132
+ }
133
+ }
134
+ if (!matched)
135
+ return false;
136
+ }
137
+ return true;
138
+ }
139
+ if (a instanceof Map && b instanceof Map) {
140
+ if (a.size !== b.size)
141
+ return false;
142
+ for (const [keyA, valueA] of a) {
143
+ let matched = false;
144
+ if (b.has(keyA)) {
145
+ matched = this.deepEqual(valueA, b.get(keyA), seen, depth + 1);
146
+ }
147
+ else {
148
+ for (const [keyB, valueB] of b) {
149
+ if (this.deepEqual(keyA, keyB, seen, depth + 1)
150
+ && this.deepEqual(valueA, valueB, seen, depth + 1)) {
151
+ matched = true;
152
+ break;
153
+ }
154
+ }
155
+ }
156
+ if (!matched)
157
+ return false;
158
+ }
159
+ return true;
160
+ }
161
+ if (Array.isArray(a) && Array.isArray(b)) {
162
+ if (a.length !== b.length)
163
+ return false;
164
+ for (let i = 0; i < a.length; i++) {
165
+ if (!this.deepEqual(a[i], b[i], seen, depth + 1))
166
+ return false;
167
+ }
168
+ return true;
169
+ }
170
+ const keysA = Object.keys(a);
171
+ const keysB = Object.keys(b);
172
+ if (keysA.length !== keysB.length)
173
+ return false;
174
+ for (const key of keysA) {
175
+ if (!Object.prototype.hasOwnProperty.call(b, key))
176
+ return false;
177
+ if (!this.deepEqual(a[key], b[key], seen, depth + 1))
178
+ return false;
179
+ }
180
+ return true;
181
+ }
182
+ /**
183
+ * Delete specified keys from a JSON value.
184
+ * @param {T} value - The JSON value to process.
185
+ * @param {Array<string | number | symbol>} keys - The keys to delete.
186
+ * @returns {T} The JSON value with specified keys deleted.
187
+ */
188
+ static deleteKeys(value, keys) {
189
+ const keySet = new Set(keys.map(key => typeof key === 'number' ? key.toString() : key));
190
+ const walk = (candidate) => {
191
+ if (Array.isArray(candidate)) {
192
+ return candidate.map(item => walk(item));
193
+ }
194
+ if (candidate && typeof candidate === 'object') {
195
+ const result = Array.isArray(candidate) ? [] : {};
196
+ for (const key of Object.keys(candidate)) {
197
+ if (keySet.has(key))
198
+ continue;
199
+ result[key] = walk(candidate[key]);
200
+ }
201
+ return result;
202
+ }
203
+ return candidate;
204
+ };
205
+ return walk(value);
206
+ }
207
+ /**
208
+ * Sanitize a JSON value by removing undefined values from objects and arrays.
209
+ * @param {T} value - The JSON value to sanitize.
210
+ * @returns {T} The sanitized JSON value.
211
+ */
212
+ static sanitize(value) {
213
+ const walk = (candidate) => {
214
+ if (Array.isArray(candidate)) {
215
+ return candidate.map(item => walk(item));
216
+ }
217
+ if (candidate && typeof candidate === 'object') {
218
+ const result = {};
219
+ for (const [key, val] of Object.entries(candidate)) {
220
+ const sanitized = walk(val);
221
+ if (sanitized !== undefined) {
222
+ result[key] = sanitized;
223
+ }
224
+ }
225
+ return result;
226
+ }
227
+ return candidate;
228
+ };
229
+ return walk(value);
230
+ }
231
+ /**
232
+ * Internal function to clone JSON values with options.
233
+ * @param {T} value - The value to clone.
234
+ * @param {CloneOptions} options - The cloning options.
235
+ * @param {WeakMap<object, any>} seen - A WeakMap to track seen objects for circular reference detection.
236
+ * @returns {any} The cloned value.
237
+ */
238
+ static cloneInternal(value, options = {}, seen = new WeakMap(), depth = 0) {
239
+ if (depth > 1024) {
240
+ throw new Error('Maximum clone depth exceeded');
241
+ }
242
+ const transformed = options.transform ? options.transform(value) : value;
243
+ if (transformed !== value)
244
+ return transformed;
245
+ if (typeof value !== 'object' || value === null) {
246
+ return transformed;
247
+ }
248
+ if (seen.has(value)) {
249
+ throw new Error('Cannot clone circular structure');
250
+ }
251
+ // Handle arrays and typed arrays
252
+ if (Array.isArray(value)) {
253
+ const clone = [];
254
+ seen.set(value, clone);
255
+ for (const item of value) {
256
+ clone.push(this.cloneInternal(item, options, seen, depth + 1));
257
+ }
258
+ return clone;
259
+ }
260
+ // Handle ArrayBuffer views (typed arrays, DataView)
261
+ if (ArrayBuffer.isView(value)) {
262
+ if (value instanceof DataView) {
263
+ return new DataView(value.buffer.slice(value.byteOffset, value.byteOffset + value.byteLength));
264
+ }
265
+ if (typeof value.slice === 'function') {
266
+ return value.slice();
267
+ }
268
+ }
269
+ if (value instanceof Date) {
270
+ return new Date(value.getTime());
271
+ }
272
+ const result = options.stripPrototypes ? {} : Object.create(Object.getPrototypeOf(value));
273
+ seen.set(value, result);
274
+ for (const key of Object.keys(value)) {
275
+ result[key] = this.cloneInternal(value[key], options, seen, depth + 1);
276
+ }
277
+ return result;
278
+ }
279
+ }
280
+ //# sourceMappingURL=json.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"json.js","sourceRoot":"","sources":["../../../src/utils/json.ts"],"names":[],"mappings":"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"}