@did-btcr2/common 4.0.1 → 7.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 (77) hide show
  1. package/dist/cjs/canonicalization.js +95 -197
  2. package/dist/cjs/canonicalization.js.map +1 -1
  3. package/dist/cjs/errors.js +5 -8
  4. package/dist/cjs/errors.js.map +1 -1
  5. package/dist/cjs/index.js +0 -4
  6. package/dist/cjs/index.js.map +1 -1
  7. package/dist/cjs/json-patch.js +1 -1
  8. package/dist/cjs/json-patch.js.map +1 -1
  9. package/dist/cjs/types.js.map +1 -1
  10. package/dist/cjs/utils/date.js +3 -4
  11. package/dist/cjs/utils/date.js.map +1 -1
  12. package/dist/cjs/utils/json.js +2 -9
  13. package/dist/cjs/utils/json.js.map +1 -1
  14. package/dist/esm/canonicalization.js +95 -197
  15. package/dist/esm/canonicalization.js.map +1 -1
  16. package/dist/esm/errors.js +5 -8
  17. package/dist/esm/errors.js.map +1 -1
  18. package/dist/esm/index.js +0 -4
  19. package/dist/esm/index.js.map +1 -1
  20. package/dist/esm/json-patch.js +1 -1
  21. package/dist/esm/json-patch.js.map +1 -1
  22. package/dist/esm/types.js.map +1 -1
  23. package/dist/esm/utils/date.js +3 -4
  24. package/dist/esm/utils/date.js.map +1 -1
  25. package/dist/esm/utils/json.js +2 -9
  26. package/dist/esm/utils/json.js.map +1 -1
  27. package/dist/types/canonicalization.d.ts +46 -118
  28. package/dist/types/canonicalization.d.ts.map +1 -1
  29. package/dist/types/errors.d.ts +8 -7
  30. package/dist/types/errors.d.ts.map +1 -1
  31. package/dist/types/index.d.ts +1 -4
  32. package/dist/types/index.d.ts.map +1 -1
  33. package/dist/types/json-patch.d.ts +11 -1
  34. package/dist/types/json-patch.d.ts.map +1 -1
  35. package/dist/types/types.d.ts +8 -28
  36. package/dist/types/types.d.ts.map +1 -1
  37. package/dist/types/utils/date.d.ts +4 -4
  38. package/dist/types/utils/date.d.ts.map +1 -1
  39. package/dist/types/utils/json.d.ts +2 -16
  40. package/dist/types/utils/json.d.ts.map +1 -1
  41. package/dist/types/utils/string.d.ts +1 -0
  42. package/package.json +11 -5
  43. package/src/canonicalization.ts +100 -216
  44. package/src/errors.ts +8 -16
  45. package/src/index.ts +0 -4
  46. package/src/json-patch.ts +12 -2
  47. package/src/types.ts +7 -30
  48. package/src/utils/date.ts +3 -4
  49. package/src/utils/json.ts +3 -10
  50. package/dist/cjs/constants.js +0 -119
  51. package/dist/cjs/constants.js.map +0 -1
  52. package/dist/cjs/interfaces.js +0 -2
  53. package/dist/cjs/interfaces.js.map +0 -1
  54. package/dist/cjs/logger.js +0 -155
  55. package/dist/cjs/logger.js.map +0 -1
  56. package/dist/cjs/utils/set.js +0 -23
  57. package/dist/cjs/utils/set.js.map +0 -1
  58. package/dist/esm/constants.js +0 -119
  59. package/dist/esm/constants.js.map +0 -1
  60. package/dist/esm/interfaces.js +0 -2
  61. package/dist/esm/interfaces.js.map +0 -1
  62. package/dist/esm/logger.js +0 -155
  63. package/dist/esm/logger.js.map +0 -1
  64. package/dist/esm/utils/set.js +0 -23
  65. package/dist/esm/utils/set.js.map +0 -1
  66. package/dist/types/constants.d.ts +0 -97
  67. package/dist/types/constants.d.ts.map +0 -1
  68. package/dist/types/interfaces.d.ts +0 -11
  69. package/dist/types/interfaces.d.ts.map +0 -1
  70. package/dist/types/logger.d.ts +0 -64
  71. package/dist/types/logger.d.ts.map +0 -1
  72. package/dist/types/utils/set.d.ts +0 -14
  73. package/dist/types/utils/set.d.ts.map +0 -1
  74. package/src/constants.ts +0 -127
  75. package/src/interfaces.ts +0 -11
  76. package/src/logger.ts +0 -173
  77. package/src/utils/set.ts +0 -23
@@ -1,119 +0,0 @@
1
- import { sha256 } from '@noble/hashes/sha2';
2
- import { bytesToHex } from '@noble/hashes/utils';
3
- export const OP_RETURN = 0x6a;
4
- export const OP_PUSH32 = 0x20;
5
- export const VALID_HRP = ['k', 'x'];
6
- export const MULTIBASE_URI_PREFIX = 'urn:mb:';
7
- export const INITIAL_BLOCK_REWARD = 50;
8
- export const HALVING_INTERVAL = 150;
9
- export const COINBASE_MATURITY_DELAY = 100;
10
- export const DEFAULT_POLAR_CONFIG = {
11
- username: 'polaruser',
12
- password: 'polarpass',
13
- host: 'http://127.0.0.1:18443',
14
- allowDefaultWallet: true,
15
- version: '28.1.0'
16
- };
17
- export const DEFAULT_REST_CONFIG = { host: 'http://localhost:3000' };
18
- export const DEFAULT_RPC_CONFIG = DEFAULT_POLAR_CONFIG;
19
- export const DEFAULT_BLOCK_CONFIRMATIONS = 7;
20
- /**
21
- * Load a default RPC config, allowing environment overrides to avoid hard-coding credentials/hosts in bundles.
22
- * @returns {typeof DEFAULT_POLAR_CONFIG} The RPC config.
23
- */
24
- export function getDefaultRpcConfig() {
25
- return {
26
- ...DEFAULT_POLAR_CONFIG,
27
- host: process.env.BTCR2_RPC_HOST ?? DEFAULT_POLAR_CONFIG.host,
28
- username: process.env.BTCR2_RPC_USER ?? DEFAULT_POLAR_CONFIG.username,
29
- password: process.env.BTCR2_RPC_PASS ?? DEFAULT_POLAR_CONFIG.password,
30
- };
31
- }
32
- // Fixed public key header bytes per the Data Integrity BIP340 Cryptosuite spec: [0xe7, 0x01] / [231, 1]
33
- export const BIP340_PUBLIC_KEY_MULTIBASE_PREFIX = new Uint8Array([0xe7, 0x01]);
34
- // Hash of the BIP-340 Multikey prefix
35
- export const BIP340_PUBLIC_KEY_MULTIBASE_PREFIX_HASH = bytesToHex(sha256(BIP340_PUBLIC_KEY_MULTIBASE_PREFIX));
36
- // Fixed secret key header bytes per the Data Integrity BIP340 Cryptosuite spec: [0x81, 0x26] / [129, 38]
37
- export const BIP340_SECRET_KEY_MULTIBASE_PREFIX = new Uint8Array([0x81, 0x26]);
38
- // Hash of the BIP-340 Multikey prefix
39
- export const BIP340_SECRET_KEY_MULTIBASE_PREFIX_HASH = bytesToHex(sha256(BIP340_SECRET_KEY_MULTIBASE_PREFIX));
40
- // curve's field size
41
- export const B256 = 2n ** 256n;
42
- // curve's field prime
43
- export const P = B256 - 0x1000003d1n;
44
- // curve (group) order
45
- export const N = B256 - 0x14551231950b75fc4402da1732fc9bebfn;
46
- // base point x
47
- export const Gx = 0x79be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798n;
48
- // base point y
49
- export const Gy = 0x483ada7726a3c4655da4fbfc0e1108a8fd17b448a68554199c47d08ffb10d4b8n;
50
- // curve parameters
51
- export const a = 0n;
52
- export const b = 7n;
53
- export const p = P;
54
- export const n = N;
55
- export const CURVE = {
56
- p,
57
- n,
58
- a,
59
- b,
60
- Gx,
61
- Gy
62
- };
63
- export const W3C_DID_V1 = 'https://www.w3.org/ns/did/v1';
64
- export const W3C_DID_V1_1 = 'https://www.w3.org/TR/did-1.1';
65
- export const W3C_DATA_INTEGRITY_V1 = 'https://w3id.org/security/data-integrity/v1';
66
- export const W3C_DATA_INTEGRITY_V2 = 'https://w3id.org/security/data-integrity/v2';
67
- export const W3C_SECURITY_V2 = 'https://w3id.org/security/v2';
68
- export const BTCR2_METHOD_CONTEXT = 'https://btcr2.dev/context/v1';
69
- export const W3C_ZCAP_V1 = 'https://w3id.org/zcap/v1';
70
- export const W3C_JSONLD_PATCH_V1 = 'https://w3id.org/json-ld-patch/v1';
71
- export const W3C_MULTIKEY_V1 = 'https://w3id.org/security/multikey/v1';
72
- export const W3C_DID_RESOLUTION_V1 = 'https://w3id.org/did-resolution/v1';
73
- export const CONTEXT_URL_MAP = {
74
- w3c: {
75
- did: {
76
- v1: W3C_DID_V1,
77
- v1_1: W3C_DID_V1_1,
78
- },
79
- didresolution: {
80
- v1: W3C_DID_RESOLUTION_V1,
81
- },
82
- security: {
83
- v2: W3C_SECURITY_V2,
84
- },
85
- dataintegrity: {
86
- v1: W3C_DATA_INTEGRITY_V1,
87
- v2: W3C_DATA_INTEGRITY_V2,
88
- },
89
- zcap: {
90
- v1: W3C_ZCAP_V1,
91
- },
92
- jsonldpatch: {
93
- v1: W3C_JSONLD_PATCH_V1,
94
- },
95
- multikey: {
96
- v1: W3C_MULTIKEY_V1,
97
- },
98
- },
99
- btcr2: {
100
- method: {
101
- v1: BTCR2_METHOD_CONTEXT
102
- },
103
- },
104
- };
105
- export const BTCR2_DID_DOCUMENT_CONTEXT = [
106
- CONTEXT_URL_MAP.w3c.did.v1_1,
107
- CONTEXT_URL_MAP.btcr2.method.v1,
108
- ];
109
- export const BTCR2_MULTIKEY_CONTEXT = [
110
- CONTEXT_URL_MAP.w3c.did.v1,
111
- CONTEXT_URL_MAP.w3c.multikey.v1
112
- ];
113
- export const BTCR2_DID_UPDATE_PAYLOAD_CONTEXT = [
114
- CONTEXT_URL_MAP.btcr2.method.v1,
115
- CONTEXT_URL_MAP.w3c.security.v2,
116
- CONTEXT_URL_MAP.w3c.zcap.v1,
117
- CONTEXT_URL_MAP.w3c.jsonldpatch.v1,
118
- ];
119
- //# sourceMappingURL=constants.js.map
@@ -1 +0,0 @@
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,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"}
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=interfaces.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"interfaces.js","sourceRoot":"","sources":["../../src/interfaces.ts"],"names":[],"mappings":""}
@@ -1,155 +0,0 @@
1
- import chalk from 'chalk';
2
- export var Env;
3
- (function (Env) {
4
- Env["Development"] = "development";
5
- Env["Production"] = "production";
6
- Env["Test"] = "test";
7
- })(Env || (Env = {}));
8
- export const NODE_ENV = process.env.NODE_ENV || Env.Development;
9
- /**
10
- * Mapping of log levels to colors for cleaner, more flexible logging.
11
- */
12
- const LOG_LEVELS = {
13
- development: ['debug', 'info', 'log', 'warn', 'security'],
14
- test: ['log', 'info', 'error'],
15
- production: ['error'],
16
- };
17
- /**
18
- * Colors associated with each log level.
19
- */
20
- const LEVEL_STYLES = {
21
- debug: chalk.green,
22
- error: chalk.red,
23
- info: chalk.blue,
24
- log: chalk.gray,
25
- warn: chalk.yellow,
26
- security: chalk.magenta,
27
- };
28
- /**
29
- * Defines the method mapping for console methods.
30
- */
31
- // eslint-disable-next-line no-undef
32
- const LEVEL_METHODS = {
33
- debug: 'debug',
34
- error: 'error',
35
- info: 'info',
36
- log: 'log',
37
- warn: 'warn',
38
- security: 'warn',
39
- };
40
- /**
41
- * A flexible, feature-rich logger with:
42
- * - Environment-based filtering
43
- * - Namespacing
44
- * - File/line tracing
45
- * - Timestamps
46
- * - Colorized output
47
- * @class Logger
48
- * @type {Logger}
49
- */
50
- export class Logger {
51
- levels;
52
- namespace;
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));
67
- }
68
- /**
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}
74
- */
75
- _log(level, message, ...args) {
76
- if (!this.levels.includes(level))
77
- return;
78
- const color = LEVEL_STYLES[level];
79
- const method = LEVEL_METHODS[level];
80
- const timestamp = new Date().toISOString();
81
- const namespace = this.namespace ? `[${this.namespace}]` : '';
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);
85
- }
86
- debug(message, ...args) {
87
- this._log('debug', message, ...args);
88
- return this;
89
- }
90
- error(message, ...args) {
91
- this._log('error', message, ...args);
92
- return this;
93
- }
94
- info(message, ...args) {
95
- this._log('info', message, ...args);
96
- return this;
97
- }
98
- warn(message, ...args) {
99
- this._log('warn', message, ...args);
100
- return this;
101
- }
102
- security(message, ...args) {
103
- this._log('security', message, ...args);
104
- return this;
105
- }
106
- log(message, ...args) {
107
- this._log('log', message, ...args);
108
- return this;
109
- }
110
- newline() {
111
- console.log();
112
- return this;
113
- }
114
- /**
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}
120
- */
121
- static debug(message, ...args) {
122
- Logger.instance().debug(message, ...args);
123
- }
124
- static error(message, ...args) {
125
- Logger.instance().error(message, ...args);
126
- }
127
- static info(message, ...args) {
128
- Logger.instance().info(message, ...args);
129
- }
130
- static warn(message, ...args) {
131
- Logger.instance().warn(message, ...args);
132
- }
133
- static security(message, ...args) {
134
- Logger.instance().security(message, ...args);
135
- }
136
- static log(message, ...args) {
137
- Logger.instance().log(message, ...args);
138
- }
139
- static 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;
153
- }
154
- }
155
- //# sourceMappingURL=logger.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"logger.js","sourceRoot":"","sources":["../../src/logger.ts"],"names":[],"mappings":"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"}
@@ -1,23 +0,0 @@
1
- /**
2
- * Utility class for set operations.
3
- * @name SetUtils
4
- * @class SetUtils
5
- */
6
- export class SetUtils {
7
- /**
8
- * Compute the set difference without mutating the inputs.
9
- * @param {Set<T>} left - The left set.
10
- * @param {Set<T>} right - The right set.
11
- * @returns {Set<T>} A new set containing elements in `left` that are not in `right`.
12
- */
13
- static difference(left, right) {
14
- const result = new Set();
15
- for (const value of left) {
16
- if (!right.has(value)) {
17
- result.add(value);
18
- }
19
- }
20
- return result;
21
- }
22
- }
23
- //# sourceMappingURL=set.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"set.js","sourceRoot":"","sources":["../../../src/utils/set.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,MAAM,OAAO,QAAQ;IACnB;;;;;OAKG;IACH,MAAM,CAAC,UAAU,CAAI,IAAY,EAAE,KAAa;QAC9C,MAAM,MAAM,GAAG,IAAI,GAAG,EAAK,CAAC;QAC5B,KAAK,MAAM,KAAK,IAAI,IAAI,EAAE,CAAC;YACzB,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC;gBACtB,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;YACpB,CAAC;QACH,CAAC;QACD,OAAO,MAAM,CAAC;IAChB,CAAC;CAEF"}
@@ -1,119 +0,0 @@
1
- import { sha256 } from '@noble/hashes/sha2';
2
- import { bytesToHex } from '@noble/hashes/utils';
3
- export const OP_RETURN = 0x6a;
4
- export const OP_PUSH32 = 0x20;
5
- export const VALID_HRP = ['k', 'x'];
6
- export const MULTIBASE_URI_PREFIX = 'urn:mb:';
7
- export const INITIAL_BLOCK_REWARD = 50;
8
- export const HALVING_INTERVAL = 150;
9
- export const COINBASE_MATURITY_DELAY = 100;
10
- export const DEFAULT_POLAR_CONFIG = {
11
- username: 'polaruser',
12
- password: 'polarpass',
13
- host: 'http://127.0.0.1:18443',
14
- allowDefaultWallet: true,
15
- version: '28.1.0'
16
- };
17
- export const DEFAULT_REST_CONFIG = { host: 'http://localhost:3000' };
18
- export const DEFAULT_RPC_CONFIG = DEFAULT_POLAR_CONFIG;
19
- export const DEFAULT_BLOCK_CONFIRMATIONS = 7;
20
- /**
21
- * Load a default RPC config, allowing environment overrides to avoid hard-coding credentials/hosts in bundles.
22
- * @returns {typeof DEFAULT_POLAR_CONFIG} The RPC config.
23
- */
24
- export function getDefaultRpcConfig() {
25
- return {
26
- ...DEFAULT_POLAR_CONFIG,
27
- host: process.env.BTCR2_RPC_HOST ?? DEFAULT_POLAR_CONFIG.host,
28
- username: process.env.BTCR2_RPC_USER ?? DEFAULT_POLAR_CONFIG.username,
29
- password: process.env.BTCR2_RPC_PASS ?? DEFAULT_POLAR_CONFIG.password,
30
- };
31
- }
32
- // Fixed public key header bytes per the Data Integrity BIP340 Cryptosuite spec: [0xe7, 0x01] / [231, 1]
33
- export const BIP340_PUBLIC_KEY_MULTIBASE_PREFIX = new Uint8Array([0xe7, 0x01]);
34
- // Hash of the BIP-340 Multikey prefix
35
- export const BIP340_PUBLIC_KEY_MULTIBASE_PREFIX_HASH = bytesToHex(sha256(BIP340_PUBLIC_KEY_MULTIBASE_PREFIX));
36
- // Fixed secret key header bytes per the Data Integrity BIP340 Cryptosuite spec: [0x81, 0x26] / [129, 38]
37
- export const BIP340_SECRET_KEY_MULTIBASE_PREFIX = new Uint8Array([0x81, 0x26]);
38
- // Hash of the BIP-340 Multikey prefix
39
- export const BIP340_SECRET_KEY_MULTIBASE_PREFIX_HASH = bytesToHex(sha256(BIP340_SECRET_KEY_MULTIBASE_PREFIX));
40
- // curve's field size
41
- export const B256 = 2n ** 256n;
42
- // curve's field prime
43
- export const P = B256 - 0x1000003d1n;
44
- // curve (group) order
45
- export const N = B256 - 0x14551231950b75fc4402da1732fc9bebfn;
46
- // base point x
47
- export const Gx = 0x79be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798n;
48
- // base point y
49
- export const Gy = 0x483ada7726a3c4655da4fbfc0e1108a8fd17b448a68554199c47d08ffb10d4b8n;
50
- // curve parameters
51
- export const a = 0n;
52
- export const b = 7n;
53
- export const p = P;
54
- export const n = N;
55
- export const CURVE = {
56
- p,
57
- n,
58
- a,
59
- b,
60
- Gx,
61
- Gy
62
- };
63
- export const W3C_DID_V1 = 'https://www.w3.org/ns/did/v1';
64
- export const W3C_DID_V1_1 = 'https://www.w3.org/TR/did-1.1';
65
- export const W3C_DATA_INTEGRITY_V1 = 'https://w3id.org/security/data-integrity/v1';
66
- export const W3C_DATA_INTEGRITY_V2 = 'https://w3id.org/security/data-integrity/v2';
67
- export const W3C_SECURITY_V2 = 'https://w3id.org/security/v2';
68
- export const BTCR2_METHOD_CONTEXT = 'https://btcr2.dev/context/v1';
69
- export const W3C_ZCAP_V1 = 'https://w3id.org/zcap/v1';
70
- export const W3C_JSONLD_PATCH_V1 = 'https://w3id.org/json-ld-patch/v1';
71
- export const W3C_MULTIKEY_V1 = 'https://w3id.org/security/multikey/v1';
72
- export const W3C_DID_RESOLUTION_V1 = 'https://w3id.org/did-resolution/v1';
73
- export const CONTEXT_URL_MAP = {
74
- w3c: {
75
- did: {
76
- v1: W3C_DID_V1,
77
- v1_1: W3C_DID_V1_1,
78
- },
79
- didresolution: {
80
- v1: W3C_DID_RESOLUTION_V1,
81
- },
82
- security: {
83
- v2: W3C_SECURITY_V2,
84
- },
85
- dataintegrity: {
86
- v1: W3C_DATA_INTEGRITY_V1,
87
- v2: W3C_DATA_INTEGRITY_V2,
88
- },
89
- zcap: {
90
- v1: W3C_ZCAP_V1,
91
- },
92
- jsonldpatch: {
93
- v1: W3C_JSONLD_PATCH_V1,
94
- },
95
- multikey: {
96
- v1: W3C_MULTIKEY_V1,
97
- },
98
- },
99
- btcr2: {
100
- method: {
101
- v1: BTCR2_METHOD_CONTEXT
102
- },
103
- },
104
- };
105
- export const BTCR2_DID_DOCUMENT_CONTEXT = [
106
- CONTEXT_URL_MAP.w3c.did.v1_1,
107
- CONTEXT_URL_MAP.btcr2.method.v1,
108
- ];
109
- export const BTCR2_MULTIKEY_CONTEXT = [
110
- CONTEXT_URL_MAP.w3c.did.v1,
111
- CONTEXT_URL_MAP.w3c.multikey.v1
112
- ];
113
- export const BTCR2_DID_UPDATE_PAYLOAD_CONTEXT = [
114
- CONTEXT_URL_MAP.btcr2.method.v1,
115
- CONTEXT_URL_MAP.w3c.security.v2,
116
- CONTEXT_URL_MAP.w3c.zcap.v1,
117
- CONTEXT_URL_MAP.w3c.jsonldpatch.v1,
118
- ];
119
- //# sourceMappingURL=constants.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"constants.js","sourceRoot":"","sources":["../../src/constants.ts"],"names":[],"mappings":"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"}
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=interfaces.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"interfaces.js","sourceRoot":"","sources":["../../src/interfaces.ts"],"names":[],"mappings":""}
@@ -1,155 +0,0 @@
1
- import chalk from 'chalk';
2
- export var Env;
3
- (function (Env) {
4
- Env["Development"] = "development";
5
- Env["Production"] = "production";
6
- Env["Test"] = "test";
7
- })(Env || (Env = {}));
8
- export const NODE_ENV = process.env.NODE_ENV || Env.Development;
9
- /**
10
- * Mapping of log levels to colors for cleaner, more flexible logging.
11
- */
12
- const LOG_LEVELS = {
13
- development: ['debug', 'info', 'log', 'warn', 'security'],
14
- test: ['log', 'info', 'error'],
15
- production: ['error'],
16
- };
17
- /**
18
- * Colors associated with each log level.
19
- */
20
- const LEVEL_STYLES = {
21
- debug: chalk.green,
22
- error: chalk.red,
23
- info: chalk.blue,
24
- log: chalk.gray,
25
- warn: chalk.yellow,
26
- security: chalk.magenta,
27
- };
28
- /**
29
- * Defines the method mapping for console methods.
30
- */
31
- // eslint-disable-next-line no-undef
32
- const LEVEL_METHODS = {
33
- debug: 'debug',
34
- error: 'error',
35
- info: 'info',
36
- log: 'log',
37
- warn: 'warn',
38
- security: 'warn',
39
- };
40
- /**
41
- * A flexible, feature-rich logger with:
42
- * - Environment-based filtering
43
- * - Namespacing
44
- * - File/line tracing
45
- * - Timestamps
46
- * - Colorized output
47
- * @class Logger
48
- * @type {Logger}
49
- */
50
- export class Logger {
51
- levels;
52
- namespace;
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));
67
- }
68
- /**
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}
74
- */
75
- _log(level, message, ...args) {
76
- if (!this.levels.includes(level))
77
- return;
78
- const color = LEVEL_STYLES[level];
79
- const method = LEVEL_METHODS[level];
80
- const timestamp = new Date().toISOString();
81
- const namespace = this.namespace ? `[${this.namespace}]` : '';
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);
85
- }
86
- debug(message, ...args) {
87
- this._log('debug', message, ...args);
88
- return this;
89
- }
90
- error(message, ...args) {
91
- this._log('error', message, ...args);
92
- return this;
93
- }
94
- info(message, ...args) {
95
- this._log('info', message, ...args);
96
- return this;
97
- }
98
- warn(message, ...args) {
99
- this._log('warn', message, ...args);
100
- return this;
101
- }
102
- security(message, ...args) {
103
- this._log('security', message, ...args);
104
- return this;
105
- }
106
- log(message, ...args) {
107
- this._log('log', message, ...args);
108
- return this;
109
- }
110
- newline() {
111
- console.log();
112
- return this;
113
- }
114
- /**
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}
120
- */
121
- static debug(message, ...args) {
122
- Logger.instance().debug(message, ...args);
123
- }
124
- static error(message, ...args) {
125
- Logger.instance().error(message, ...args);
126
- }
127
- static info(message, ...args) {
128
- Logger.instance().info(message, ...args);
129
- }
130
- static warn(message, ...args) {
131
- Logger.instance().warn(message, ...args);
132
- }
133
- static security(message, ...args) {
134
- Logger.instance().security(message, ...args);
135
- }
136
- static log(message, ...args) {
137
- Logger.instance().log(message, ...args);
138
- }
139
- static 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;
153
- }
154
- }
155
- //# sourceMappingURL=logger.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"logger.js","sourceRoot":"","sources":["../../src/logger.ts"],"names":[],"mappings":"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"}
@@ -1,23 +0,0 @@
1
- /**
2
- * Utility class for set operations.
3
- * @name SetUtils
4
- * @class SetUtils
5
- */
6
- export class SetUtils {
7
- /**
8
- * Compute the set difference without mutating the inputs.
9
- * @param {Set<T>} left - The left set.
10
- * @param {Set<T>} right - The right set.
11
- * @returns {Set<T>} A new set containing elements in `left` that are not in `right`.
12
- */
13
- static difference(left, right) {
14
- const result = new Set();
15
- for (const value of left) {
16
- if (!right.has(value)) {
17
- result.add(value);
18
- }
19
- }
20
- return result;
21
- }
22
- }
23
- //# sourceMappingURL=set.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"set.js","sourceRoot":"","sources":["../../../src/utils/set.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,MAAM,OAAO,QAAQ;IACnB;;;;;OAKG;IACH,MAAM,CAAC,UAAU,CAAI,IAAY,EAAE,KAAa;QAC9C,MAAM,MAAM,GAAG,IAAI,GAAG,EAAK,CAAC;QAC5B,KAAK,MAAM,KAAK,IAAI,IAAI,EAAE,CAAC;YACzB,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC;gBACtB,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;YACpB,CAAC;QACH,CAAC;QACD,OAAO,MAAM,CAAC;IAChB,CAAC;CAEF"}