@matter/general 0.13.1-alpha.0-20250506-f9ad9c3d8 → 0.13.1-alpha.0-20250509-28e1567e1
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/dist/cjs/crypto/Crypto.d.ts +25 -24
- package/dist/cjs/crypto/Crypto.d.ts.map +1 -1
- package/dist/cjs/crypto/Crypto.js.map +1 -1
- package/dist/cjs/crypto/Spake2p.js +3 -3
- package/dist/cjs/crypto/Spake2p.js.map +1 -1
- package/dist/cjs/transaction/Transaction.d.ts +19 -19
- package/dist/cjs/util/FormattedText.d.ts +24 -1
- package/dist/cjs/util/FormattedText.d.ts.map +1 -1
- package/dist/cjs/util/FormattedText.js +118 -113
- package/dist/cjs/util/FormattedText.js.map +2 -2
- package/dist/esm/crypto/Crypto.d.ts +25 -24
- package/dist/esm/crypto/Crypto.d.ts.map +1 -1
- package/dist/esm/crypto/Crypto.js.map +1 -1
- package/dist/esm/crypto/Spake2p.js +3 -3
- package/dist/esm/crypto/Spake2p.js.map +1 -1
- package/dist/esm/transaction/Transaction.d.ts +19 -19
- package/dist/esm/util/FormattedText.d.ts +24 -1
- package/dist/esm/util/FormattedText.d.ts.map +1 -1
- package/dist/esm/util/FormattedText.js +118 -113
- package/dist/esm/util/FormattedText.js.map +2 -2
- package/package.json +2 -2
- package/src/crypto/Crypto.ts +27 -31
- package/src/crypto/Spake2p.ts +3 -3
- package/src/util/FormattedText.ts +137 -124
|
@@ -3,6 +3,7 @@
|
|
|
3
3
|
* Copyright 2022-2025 Matter.js Authors
|
|
4
4
|
* SPDX-License-Identifier: Apache-2.0
|
|
5
5
|
*/
|
|
6
|
+
import { MaybePromise } from "#util/Promises.js";
|
|
6
7
|
import * as mod from "@noble/curves/abstract/modular";
|
|
7
8
|
import * as utils from "@noble/curves/abstract/utils";
|
|
8
9
|
import { MatterError } from "../MatterError.js";
|
|
@@ -83,37 +84,37 @@ export declare abstract class Crypto {
|
|
|
83
84
|
static readonly getRandomUInt32: () => number;
|
|
84
85
|
static readonly getRandomBigUInt64: () => bigint;
|
|
85
86
|
static readonly getRandomBigInt: (size: number, maxValue?: bigint) => bigint;
|
|
86
|
-
abstract ecdhGeneratePublicKey(): {
|
|
87
|
+
abstract ecdhGeneratePublicKey(): MaybePromise<{
|
|
87
88
|
publicKey: Uint8Array;
|
|
88
89
|
ecdh: any;
|
|
89
|
-
}
|
|
90
|
-
static readonly ecdhGeneratePublicKey: () => {
|
|
90
|
+
}>;
|
|
91
|
+
static readonly ecdhGeneratePublicKey: () => MaybePromise<{
|
|
91
92
|
publicKey: Uint8Array;
|
|
92
93
|
ecdh: any;
|
|
93
|
-
}
|
|
94
|
-
abstract ecdhGeneratePublicKeyAndSecret(peerPublicKey: Uint8Array): {
|
|
94
|
+
}>;
|
|
95
|
+
abstract ecdhGeneratePublicKeyAndSecret(peerPublicKey: Uint8Array): MaybePromise<{
|
|
95
96
|
publicKey: Uint8Array;
|
|
96
97
|
sharedSecret: Uint8Array;
|
|
97
|
-
}
|
|
98
|
-
static readonly ecdhGeneratePublicKeyAndSecret: (peerPublicKey: Uint8Array) => {
|
|
98
|
+
}>;
|
|
99
|
+
static readonly ecdhGeneratePublicKeyAndSecret: (peerPublicKey: Uint8Array) => MaybePromise<{
|
|
99
100
|
publicKey: Uint8Array;
|
|
100
101
|
sharedSecret: Uint8Array;
|
|
101
|
-
}
|
|
102
|
-
abstract ecdhGenerateSecret(peerPublicKey: Uint8Array, ecdh: any): Uint8Array
|
|
103
|
-
static readonly ecdhGenerateSecret: (peerPublicKey: Uint8Array, ecdh: any) => Uint8Array
|
|
104
|
-
abstract hash(data: Uint8Array | Uint8Array[]): Uint8Array
|
|
105
|
-
static readonly hash: (data: Uint8Array | Uint8Array[]) => Uint8Array
|
|
106
|
-
abstract pbkdf2(secret: Uint8Array, salt: Uint8Array, iteration: number, keyLength: number):
|
|
107
|
-
static readonly pbkdf2: (secret: Uint8Array, salt: Uint8Array, iteration: number, keyLength: number) =>
|
|
108
|
-
abstract hkdf(secret: Uint8Array, salt: Uint8Array, info: Uint8Array, length?: number):
|
|
109
|
-
static readonly hkdf: (secret: Uint8Array, salt: Uint8Array, info: Uint8Array, length?: number) =>
|
|
110
|
-
abstract hmac(key: Uint8Array, data: Uint8Array): Uint8Array
|
|
111
|
-
static readonly hmac: (key: Uint8Array, data: Uint8Array) => Uint8Array
|
|
112
|
-
abstract sign(privateKey: JsonWebKey, data: Uint8Array | Uint8Array[], dsaEncoding?: CryptoDsaEncoding): Uint8Array
|
|
113
|
-
static readonly sign: (privateKey: JsonWebKey, data: Uint8Array | Uint8Array[], dsaEncoding?: CryptoDsaEncoding) => Uint8Array
|
|
114
|
-
abstract verify(publicKey: JsonWebKey, data: Uint8Array, signature: Uint8Array, dsaEncoding?: CryptoDsaEncoding): void
|
|
115
|
-
static readonly verify: (publicKey: JsonWebKey, data: Uint8Array, signature: Uint8Array, dsaEncoding?: CryptoDsaEncoding) => void
|
|
116
|
-
abstract createKeyPair(): PrivateKey
|
|
117
|
-
static readonly createKeyPair: () => PrivateKey
|
|
102
|
+
}>;
|
|
103
|
+
abstract ecdhGenerateSecret(peerPublicKey: Uint8Array, ecdh: any): MaybePromise<Uint8Array>;
|
|
104
|
+
static readonly ecdhGenerateSecret: (peerPublicKey: Uint8Array, ecdh: any) => MaybePromise<Uint8Array<ArrayBufferLike>>;
|
|
105
|
+
abstract hash(data: Uint8Array | Uint8Array[]): MaybePromise<Uint8Array>;
|
|
106
|
+
static readonly hash: (data: Uint8Array | Uint8Array[]) => MaybePromise<Uint8Array<ArrayBufferLike>>;
|
|
107
|
+
abstract pbkdf2(secret: Uint8Array, salt: Uint8Array, iteration: number, keyLength: number): MaybePromise<Uint8Array>;
|
|
108
|
+
static readonly pbkdf2: (secret: Uint8Array, salt: Uint8Array, iteration: number, keyLength: number) => MaybePromise<Uint8Array<ArrayBufferLike>>;
|
|
109
|
+
abstract hkdf(secret: Uint8Array, salt: Uint8Array, info: Uint8Array, length?: number): MaybePromise<Uint8Array>;
|
|
110
|
+
static readonly hkdf: (secret: Uint8Array, salt: Uint8Array, info: Uint8Array, length?: number) => MaybePromise<Uint8Array<ArrayBufferLike>>;
|
|
111
|
+
abstract hmac(key: Uint8Array, data: Uint8Array): MaybePromise<Uint8Array>;
|
|
112
|
+
static readonly hmac: (key: Uint8Array, data: Uint8Array) => MaybePromise<Uint8Array<ArrayBufferLike>>;
|
|
113
|
+
abstract sign(privateKey: JsonWebKey, data: Uint8Array | Uint8Array[], dsaEncoding?: CryptoDsaEncoding): MaybePromise<Uint8Array>;
|
|
114
|
+
static readonly sign: (privateKey: JsonWebKey, data: Uint8Array | Uint8Array[], dsaEncoding?: CryptoDsaEncoding) => MaybePromise<Uint8Array<ArrayBufferLike>>;
|
|
115
|
+
abstract verify(publicKey: JsonWebKey, data: Uint8Array, signature: Uint8Array, dsaEncoding?: CryptoDsaEncoding): MaybePromise<void>;
|
|
116
|
+
static readonly verify: (publicKey: JsonWebKey, data: Uint8Array, signature: Uint8Array, dsaEncoding?: CryptoDsaEncoding) => MaybePromise<void>;
|
|
117
|
+
abstract createKeyPair(): MaybePromise<PrivateKey>;
|
|
118
|
+
static readonly createKeyPair: () => MaybePromise<PrivateKey>;
|
|
118
119
|
}
|
|
119
120
|
//# sourceMappingURL=Crypto.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Crypto.d.ts","sourceRoot":"","sources":["../../../src/crypto/Crypto.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,OAAO,KAAK,GAAG,MAAM,gCAAgC,CAAC;AACtD,OAAO,KAAK,KAAK,MAAM,8BAA8B,CAAC;AAEtD,OAAO,EAAE,WAAW,EAAmB,MAAM,mBAAmB,CAAC;AAGjE,OAAO,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC;AAEtC,eAAO,MAAM,EAAE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
|
1
|
+
{"version":3,"file":"Crypto.d.ts","sourceRoot":"","sources":["../../../src/crypto/Crypto.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../src/crypto/Crypto.ts"],
|
|
4
|
-
"mappings": "AAAA;AAAA;AAAA;AAAA;AAAA;AAMA,SAAS,YAAY;
|
|
4
|
+
"mappings": "AAAA;AAAA;AAAA;AAAA;AAAA;AAMA,SAAS,YAAY;AAErB,YAAY,SAAS;AACrB,YAAY,WAAW;AACvB,SAAS,YAAY;AACrB,SAAS,aAAa,uBAAuB;AAC7C,SAAS,cAAc;AACvB,SAAS,kBAAkB;AAGpB,MAAM,KAAK;AAAA,EACd;AAAA,EACA,GAAG;AAAA,EACH,GAAG;AACP;AAEO,MAAM,uBAAuB;AAC7B,MAAM,2BAA2B;AACjC,MAAM,wBAAwB;AAC9B,MAAM,kBAAkB;AACxB,MAAM,sBAAsB;AAC5B,MAAM,yBAAyB;AAC/B,MAAM,8BAA8B;AAGpC,MAAM,0BAA0B,YAAY;AAAC;AAE7C,MAAe,OAAO;AAAA,EACzB,OAAO;AAAA,EAGP,OAAgB,UAAU,CAAC,KAAiB,MAAkB,OAAmB,QAC7E,OAAO,IAAI,EAAE,QAAQ,KAAK,MAAM,OAAO,GAAG;AAAA,EAG9C,OAAgB,UAAU,CAAC,KAAiB,MAAkB,OAAmB,QAC7E,OAAO,IAAI,EAAE,QAAQ,KAAK,MAAM,OAAO,GAAG;AAAA,EAG9C,OAAgB,gBAAgB,CAAC,WAA+B,OAAO,IAAI,EAAE,cAAc,MAAM;AAAA,EAEjG,OAAgB,YAAY,MAAkB,OAAO,IAAI,EAAE,cAAc,oBAAoB;AAAA,EAE7F,OAAgB,kBAAkB,MAC9B,IAAI,WAAW,OAAO,IAAI,EAAE,cAAc,CAAC,GAAG,OAAO,MAAM,EAAE,WAAW;AAAA,EAE5E,OAAgB,kBAAkB,MAC9B,IAAI,WAAW,OAAO,IAAI,EAAE,cAAc,CAAC,GAAG,OAAO,MAAM,EAAE,WAAW;AAAA,EAE5E,OAAgB,qBAAqB,MACjC,IAAI,WAAW,OAAO,IAAI,EAAE,cAAc,CAAC,GAAG,OAAO,MAAM,EAAE,WAAW;AAAA,EAE5E,OAAgB,kBAAkB,CAAC,MAAc,aAA8B;AAC3E,UAAM,EAAE,gBAAgB,IAAI;AAC5B,QAAI,aAAa,QAAW;AACxB,aAAO,gBAAgB,OAAO,cAAc,IAAI,CAAC;AAAA,IACrD;AACA,WAAO,MAAM;AACT,YAAM,SAAS,gBAAgB,OAAO,cAAc,IAAI,CAAC;AACzD,UAAI,SAAS,SAAU,QAAO;AAAA,IAClC;AAAA,EACJ;AAAA,EAGA,OAAgB,wBAAwB,MAAM,OAAO,IAAI,EAAE,sBAAsB;AAAA,EAMjF,OAAgB,iCAAiC,CAAC,kBAC9C,OAAO,IAAI,EAAE,+BAA+B,aAAa;AAAA,EAG7D,OAAgB,qBAAqB,CAAC,eAA2B,SAC7D,OAAO,IAAI,EAAE,mBAAmB,eAAe,IAAI;AAAA,EAGvD,OAAgB,OAAO,CAAC,SAAoC,OAAO,IAAI,EAAE,KAAK,IAAI;AAAA,EAQlF,OAAgB,SAAS,CAAC,QAAoB,MAAkB,WAAmB,cAC/E,OAAO,IAAI,EAAE,OAAO,QAAQ,MAAM,WAAW,SAAS;AAAA,EAG1D,OAAgB,OAAO,CAAC,QAAoB,MAAkB,MAAkB,WAC5E,OAAO,IAAI,EAAE,KAAK,QAAQ,MAAM,MAAM,MAAM;AAAA,EAGhD,OAAgB,OAAO,CAAC,KAAiB,SAAqB,OAAO,IAAI,EAAE,KAAK,KAAK,IAAI;AAAA,EAOzF,OAAgB,OAAO,CAAC,YAAwB,MAAiC,gBAC7E,OAAO,IAAI,EAAE,KAAK,YAAY,MAAM,WAAW;AAAA,EAQnD,OAAgB,SAAS,CACrB,WACA,MACA,WACA,gBACC,OAAO,IAAI,EAAE,OAAO,WAAW,MAAM,WAAW,WAAW;AAAA,EAGhE,OAAgB,gBAAgB,MAAM,OAAO,IAAI,EAAE,cAAc;AACrE;AAEA,KAAK,KAAK,MAAM;AACZ,SAAO,MAAM,MAAM;AACf,UAAM,IAAI,gBAAgB,wBAAwB;AAAA,EACtD;AAGA,MAAI,OAAO,gBAAgB,aAAa;AACpC,gBAAY,cAAc,MAAM;AAAA,EACpC;AACJ,CAAC;",
|
|
5
5
|
"names": []
|
|
6
6
|
}
|
|
@@ -73,14 +73,14 @@ class Spake2p {
|
|
|
73
73
|
return this.computeSecretAndVerifiers(X, Y, Z.toRawBytes(false), V.toRawBytes(false));
|
|
74
74
|
}
|
|
75
75
|
async computeSecretAndVerifiers(X, Y, Z, V) {
|
|
76
|
-
const TT_HASH = this.computeTranscriptHash(X, Y, Z, V);
|
|
76
|
+
const TT_HASH = await this.computeTranscriptHash(X, Y, Z, V);
|
|
77
77
|
const Ka = TT_HASH.slice(0, 16);
|
|
78
78
|
const Ke = TT_HASH.slice(16, 32);
|
|
79
79
|
const KcAB = await Crypto.hkdf(Ka, new Uint8Array(0), Bytes.fromString("ConfirmationKeys"), 32);
|
|
80
80
|
const KcA = KcAB.slice(0, 16);
|
|
81
81
|
const KcB = KcAB.slice(16, 32);
|
|
82
|
-
const hAY = Crypto.hmac(KcA, Y);
|
|
83
|
-
const hBX = Crypto.hmac(KcB, X);
|
|
82
|
+
const hAY = await Crypto.hmac(KcA, Y);
|
|
83
|
+
const hBX = await Crypto.hmac(KcB, X);
|
|
84
84
|
return { Ke, hAY, hBX };
|
|
85
85
|
}
|
|
86
86
|
computeTranscriptHash(X, Y, Z, V) {
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../src/crypto/Spake2p.ts"],
|
|
4
|
-
"mappings": "AAAA;AAAA;AAAA;AAAA;AAAA;AAMA,SAAS,qBAAqB;AAC9B,SAAS,OAAO,cAAc;AAC9B,SAAS,kBAAkB;AAC3B,SAAS,QAAQ,UAAU;AAC3B,SAAS,+BAA+B;AAExC,MAAM;AAAA,EACF,MAAM,EAAE,iBAAiB,OAAO,WAAW;AAAA,EAC3C;AAAA,EACA;AAAA,EACA;AACJ,IAAI;AAGJ,MAAM,IAAI,gBAAgB,QAAQ,oEAAoE;AACtG,MAAM,IAAI,gBAAgB,QAAQ,oEAAoE;AAEtG,MAAM,sBAAsB,0BAA0B;AAO/C,MAAM,QAAQ;AAAA,EAqBjB,YACqB,SACA,QACA,IACnB;AAHmB;AACA;AACA;AAAA,EAClB;AAAA,EAxBH,aAAa,YAAY,EAAE,YAAY,KAAK,GAAoB,KAAa;AACzE,UAAM,YAAY,IAAI,WAAW,OAAO,MAAM;AAC9C,cAAU,YAAY,GAAG;AACzB,UAAM,KAAK,MAAM,OAAO,OAAO,UAAU,YAAY,GAAG,MAAM,YAAY,sBAAsB,CAAC;AACjG,UAAM,KAAK,IAAI,gBAAgB,GAAG,MAAM,GAAG,EAAE,CAAC,GAAG,WAAW,CAAC;AAC7D,UAAM,KAAK,IAAI,gBAAgB,GAAG,MAAM,IAAI,EAAE,CAAC,GAAG,WAAW,CAAC;AAC9D,WAAO,EAAE,IAAI,GAAG;AAAA,EACpB;AAAA,EAEA,aAAa,WAAW,iBAAkC,KAAa;AACnE,UAAM,EAAE,IAAI,GAAG,IAAI,MAAM,KAAK,YAAY,iBAAiB,GAAG;AAC9D,UAAM,IAAI,gBAAgB,KAAK,SAAS,EAAE,EAAE,WAAW,KAAK;AAC5D,WAAO,EAAE,IAAI,EAAE;AAAA,EACnB;AAAA,EAEA,OAAO,OAAO,SAAqB,IAAY;AAC3C,UAAM,SAAS,OAAO,gBAAgB,IAAI,WAAW,GAAG,KAAK;AAC7D,WAAO,IAAI,QAAQ,SAAS,QAAQ,EAAE;AAAA,EAC1C;AAAA,EAQA,WAAuB;AACnB,UAAM,IAAI,gBAAgB,KAAK,SAAS,KAAK,MAAM,EAAE,IAAI,EAAE,SAAS,KAAK,EAAE,CAAC;AAC5E,WAAO,EAAE,WAAW,KAAK;AAAA,EAC7B;AAAA,EAEA,WAAuB;AACnB,UAAM,IAAI,gBAAgB,KAAK,SAAS,KAAK,MAAM,EAAE,IAAI,EAAE,SAAS,KAAK,EAAE,CAAC;AAC5E,WAAO,EAAE,WAAW,KAAK;AAAA,EAC7B;AAAA,EAEA,MAAM,+BAA+B,IAAY,GAAe,GAAe;AAC3E,UAAM,SAAS,gBAAgB,QAAQ,CAAC;AACxC,QAAI;AACA,aAAO,eAAe;AAAA,IAC1B,SAAS,OAAO;AACZ,YAAM,IAAI,cAAc,0BAA2B,MAAc,OAAO,EAAE;AAAA,IAC9E;AACA,UAAM,OAAO,OAAO,IAAI,EAAE,SAAS,KAAK,EAAE,EAAE,OAAO,CAAC;AACpD,UAAM,IAAI,KAAK,SAAS,KAAK,MAAM;AACnC,UAAM,IAAI,KAAK,SAAS,EAAE;AAC1B,WAAO,KAAK,0BAA0B,GAAG,GAAG,EAAE,WAAW,KAAK,GAAG,EAAE,WAAW,KAAK,CAAC;AAAA,EACxF;AAAA,EAEA,MAAM,+BAA+B,GAAe,GAAe,GAAe;AAC9E,UAAM,SAAS,gBAAgB,QAAQ,CAAC;AACxC,UAAM,SAAS,gBAAgB,QAAQ,CAAC;AACxC,QAAI;AACA,aAAO,eAAe;AAAA,IAC1B,SAAS,OAAO;AACZ,YAAM,IAAI,cAAc,0BAA2B,MAAc,OAAO,EAAE;AAAA,IAC9E;AACA,UAAM,IAAI,OAAO,IAAI,EAAE,SAAS,KAAK,EAAE,EAAE,OAAO,CAAC,EAAE,SAAS,KAAK,MAAM;AACvE,UAAM,IAAI,OAAO,SAAS,KAAK,MAAM;AACrC,WAAO,KAAK,0BAA0B,GAAG,GAAG,EAAE,WAAW,KAAK,GAAG,EAAE,WAAW,KAAK,CAAC;AAAA,EACxF;AAAA,EAEA,MAAc,0BAA0B,GAAe,GAAe,GAAe,GAAe;AAChG,UAAM,UAAU,KAAK,sBAAsB,GAAG,GAAG,GAAG,CAAC;
|
|
4
|
+
"mappings": "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",
|
|
5
5
|
"names": []
|
|
6
6
|
}
|
|
@@ -144,16 +144,16 @@ export declare const Transaction: {
|
|
|
144
144
|
*/
|
|
145
145
|
act<T>(via: string, actor: (transaction: Transaction) => MaybePromise<T>): MaybePromise<T>;
|
|
146
146
|
ReadOnly: {
|
|
147
|
-
"__#
|
|
148
|
-
"__#
|
|
149
|
-
"__#
|
|
150
|
-
"__#
|
|
151
|
-
"__#
|
|
152
|
-
"__#
|
|
153
|
-
"__#
|
|
154
|
-
"__#
|
|
155
|
-
"__#
|
|
156
|
-
"__#
|
|
147
|
+
"__#15442@#participants": Set<Participant>;
|
|
148
|
+
"__#15442@#roles": Map<{}, Participant>;
|
|
149
|
+
"__#15442@#resources": Set<Resource>;
|
|
150
|
+
"__#15442@#status": Status;
|
|
151
|
+
"__#15442@#waitingOn"?: Iterable<Transaction>;
|
|
152
|
+
"__#15442@#via": string;
|
|
153
|
+
"__#15442@#shared"?: import("../index.js").Observable<[]>;
|
|
154
|
+
"__#15442@#closed"?: import("../index.js").Observable<[]>;
|
|
155
|
+
"__#15442@#isAsync": boolean;
|
|
156
|
+
"__#15442@#reportingLocks": boolean;
|
|
157
157
|
close(): void;
|
|
158
158
|
readonly via: string;
|
|
159
159
|
readonly status: Status;
|
|
@@ -175,15 +175,15 @@ export declare const Transaction: {
|
|
|
175
175
|
waitFor(others: Set<Transaction>): Promise<void>;
|
|
176
176
|
toString(): string;
|
|
177
177
|
treatAsSlow(): void;
|
|
178
|
-
"__#
|
|
179
|
-
"__#
|
|
180
|
-
"__#
|
|
181
|
-
"__#
|
|
182
|
-
"__#
|
|
183
|
-
"__#
|
|
184
|
-
"__#
|
|
185
|
-
"__#
|
|
186
|
-
"__#
|
|
178
|
+
"__#15442@#finalize"(status: Status, why: string, finalizer: () => MaybePromise): Promise<void> | undefined;
|
|
179
|
+
"__#15442@#executePreCommit"(): MaybePromise<void>;
|
|
180
|
+
"__#15442@#executeCommit"(): MaybePromise;
|
|
181
|
+
"__#15442@#executeCommit1"(): MaybePromise;
|
|
182
|
+
"__#15442@#executeCommit2"(): Promise<void> | undefined;
|
|
183
|
+
"__#15442@#executePostCommit"(participants: Participant[]): MaybePromise;
|
|
184
|
+
"__#15442@#executeRollback"(): Promise<void> | undefined;
|
|
185
|
+
"__#15442@#locksChanged"(resources: Set<Resource>, how?: string): void;
|
|
186
|
+
"__#15442@#assertAvailable"(): void;
|
|
187
187
|
};
|
|
188
188
|
Status: typeof Status;
|
|
189
189
|
Resource: typeof Resource;
|
|
@@ -8,7 +8,30 @@ export { camelize, describeList, serialize } from "./String.js";
|
|
|
8
8
|
* Performs word wrap. Input is assumed to be a series of paragraphs separated by a newline. Output is an array of
|
|
9
9
|
* formatted lines.
|
|
10
10
|
*
|
|
11
|
-
* Contains specialized support for lists, ESDoc directives
|
|
11
|
+
* Contains specialized support for lists, ESDoc directives and ANSI escape codes.
|
|
12
12
|
*/
|
|
13
13
|
export declare function FormattedText(text: string, width?: number): string[];
|
|
14
|
+
/**
|
|
15
|
+
* Types of things we consider "blocks". Most blocks are lists but we also support markdown-style quotes prefixed with
|
|
16
|
+
* ">".
|
|
17
|
+
*/
|
|
18
|
+
export declare enum BlockKind {
|
|
19
|
+
Simple = "simple",
|
|
20
|
+
Bullet1 = "\u2022",
|
|
21
|
+
Bullet2 = "\u25E6",
|
|
22
|
+
Bullet3 = "\u25AA",
|
|
23
|
+
Bullet4 = "\u25CB",
|
|
24
|
+
Bullet5 = "\u25CF",
|
|
25
|
+
Bullet6 = "\u2023",
|
|
26
|
+
Bullet7 = "\u2043",
|
|
27
|
+
Bullet8 = "\u25D8",
|
|
28
|
+
Quote = ">",
|
|
29
|
+
Number = "number",
|
|
30
|
+
LowerAlpha = "alpha",
|
|
31
|
+
UpperAlpha = "ALPHA",
|
|
32
|
+
LowerRoman = "roman",
|
|
33
|
+
UpperRoman = "ROMAN"
|
|
34
|
+
}
|
|
35
|
+
export declare const Bullets: BlockKind[];
|
|
36
|
+
export declare function looksLikeListItem(text: string): boolean;
|
|
14
37
|
//# sourceMappingURL=FormattedText.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"FormattedText.d.ts","sourceRoot":"","sources":["../../../src/util/FormattedText.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAIH,OAAO,EAAE,QAAQ,EAAE,YAAY,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAEhE;;;;;GAKG;AACH,wBAAgB,aAAa,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,SAAM,YAGtD"}
|
|
1
|
+
{"version":3,"file":"FormattedText.d.ts","sourceRoot":"","sources":["../../../src/util/FormattedText.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAIH,OAAO,EAAE,QAAQ,EAAE,YAAY,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAEhE;;;;;GAKG;AACH,wBAAgB,aAAa,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,SAAM,YAGtD;AAED;;;GAGG;AACH,oBAAY,SAAS;IACjB,MAAM,WAAW;IACjB,OAAO,WAAM;IACb,OAAO,WAAM;IACb,OAAO,WAAM;IACb,OAAO,WAAM;IACb,OAAO,WAAM;IACb,OAAO,WAAM;IACb,OAAO,WAAM;IACb,OAAO,WAAM;IACb,KAAK,MAAM;IACX,MAAM,WAAW;IACjB,UAAU,UAAU;IACpB,UAAU,UAAU;IACpB,UAAU,UAAU;IACpB,UAAU,UAAU;CACvB;AAED,eAAO,MAAM,OAAO,aAEU,CAAC;AAK/B,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,MAAM,WAE7C"}
|
|
@@ -3,108 +3,98 @@
|
|
|
3
3
|
* Copyright 2022-2025 Matter.js Authors
|
|
4
4
|
* SPDX-License-Identifier: Apache-2.0
|
|
5
5
|
*/
|
|
6
|
-
const
|
|
6
|
+
const INDENT = " ";
|
|
7
7
|
import { camelize, describeList, serialize } from "./String.js";
|
|
8
8
|
function FormattedText(text, width = 120) {
|
|
9
9
|
const structure = detectStructure(text);
|
|
10
|
-
return
|
|
10
|
+
return formatBlock(structure, width);
|
|
11
11
|
}
|
|
12
|
-
var
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
12
|
+
var BlockKind = /* @__PURE__ */ ((BlockKind2) => {
|
|
13
|
+
BlockKind2["Simple"] = "simple";
|
|
14
|
+
BlockKind2["Bullet1"] = "\u2022";
|
|
15
|
+
BlockKind2["Bullet2"] = "\u25E6";
|
|
16
|
+
BlockKind2["Bullet3"] = "\u25AA";
|
|
17
|
+
BlockKind2["Bullet4"] = "\u25CB";
|
|
18
|
+
BlockKind2["Bullet5"] = "\u25CF";
|
|
19
|
+
BlockKind2["Bullet6"] = "\u2023";
|
|
20
|
+
BlockKind2["Bullet7"] = "\u2043";
|
|
21
|
+
BlockKind2["Bullet8"] = "\u25D8";
|
|
22
|
+
BlockKind2["Quote"] = ">";
|
|
23
|
+
BlockKind2["Number"] = "number";
|
|
24
|
+
BlockKind2["LowerAlpha"] = "alpha";
|
|
25
|
+
BlockKind2["UpperAlpha"] = "ALPHA";
|
|
26
|
+
BlockKind2["LowerRoman"] = "roman";
|
|
27
|
+
BlockKind2["UpperRoman"] = "ROMAN";
|
|
28
|
+
return BlockKind2;
|
|
29
|
+
})(BlockKind || {});
|
|
30
|
+
const Bullets = Object.entries(BlockKind).filter(([key]) => key.startsWith("Bullet")).map(([, value]) => value);
|
|
31
|
+
const enumTest = "(?:\\d+|[ivx]+|[a-z])\\.";
|
|
32
|
+
const listItemTest = new RegExp(`^(?:[${Bullets.join("")}]|${enumTest})\\s`, "i");
|
|
33
|
+
function looksLikeListItem(text) {
|
|
34
|
+
return !!listItemTest.exec(text);
|
|
35
|
+
}
|
|
36
|
+
const Empty = {
|
|
37
|
+
kind: "simple" /* Simple */,
|
|
38
|
+
indentWidth: 0,
|
|
39
|
+
entries: []
|
|
40
|
+
};
|
|
41
|
+
function detectBlock(text, breadcrumb) {
|
|
42
|
+
const match = text.match(/^\s*(\S+)/);
|
|
43
|
+
if (!match) {
|
|
44
|
+
return;
|
|
36
45
|
}
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
46
|
+
const [, marker] = match;
|
|
47
|
+
if (Bullets.includes(marker) || marker === ">" /* Quote */) {
|
|
48
|
+
enterBlock(marker);
|
|
49
|
+
return;
|
|
50
|
+
}
|
|
51
|
+
if (detectEnumeration(/^\d+\.$/, "1", "number" /* Number */)) return;
|
|
52
|
+
if (detectEnumeration(/^[ivx]+\.$/, "i", "roman" /* LowerRoman */)) return;
|
|
53
|
+
if (detectEnumeration(/^[IVX]+\.$/, "I", "ROMAN" /* UpperRoman */)) return;
|
|
54
|
+
if (detectEnumeration(/^[a-z]+\.$/, "a", "alpha" /* LowerAlpha */)) return;
|
|
55
|
+
if (detectEnumeration(/^[A-Z]+\.$/, "A", "ALPHA" /* UpperAlpha */)) return;
|
|
56
|
+
breadcrumb.length = 1;
|
|
57
|
+
function enterBlock(kind) {
|
|
58
|
+
const level = breadcrumb.findIndex((entry) => entry.kind === kind);
|
|
59
|
+
if (level !== -1) {
|
|
60
|
+
breadcrumb.length = level + 1;
|
|
40
61
|
return;
|
|
41
62
|
}
|
|
63
|
+
const block = {
|
|
64
|
+
kind,
|
|
65
|
+
indentWidth: (breadcrumb[breadcrumb.length - 1]?.indentWidth ?? 0) + kind === ">" /* Quote */ ? 0 : 2,
|
|
66
|
+
entries: []
|
|
67
|
+
};
|
|
68
|
+
breadcrumb[breadcrumb.length - 1].entries.push(block);
|
|
69
|
+
breadcrumb.push(block);
|
|
42
70
|
}
|
|
43
|
-
function detectEnumeration(test,
|
|
44
|
-
if (!
|
|
71
|
+
function detectEnumeration(test, startsWith, kind) {
|
|
72
|
+
if (!marker.match(test)) {
|
|
45
73
|
return false;
|
|
46
74
|
}
|
|
47
|
-
if (
|
|
48
|
-
|
|
49
|
-
|
|
75
|
+
if (!breadcrumb.find((block) => block.kind === kind)) {
|
|
76
|
+
if (marker !== `${startsWith}.`) {
|
|
77
|
+
return false;
|
|
78
|
+
}
|
|
50
79
|
}
|
|
51
|
-
|
|
80
|
+
enterBlock(kind);
|
|
81
|
+
return true;
|
|
52
82
|
}
|
|
53
|
-
if (detectEnumeration(/^\d+\./, "number" /* Number */, "1")) return;
|
|
54
|
-
if (detectEnumeration(/^[ivx]+\./, "roman" /* LowerRoman */, "i")) return;
|
|
55
|
-
if (detectEnumeration(/^[IVX]+\./, "ROMAN" /* UpperRoman */, "I")) return;
|
|
56
|
-
if (detectEnumeration(/^[a-z]+\./, "alpha" /* LowerAlpha */, "a")) return;
|
|
57
|
-
if (detectEnumeration(/^[A-Z]+\./, "ALPHA" /* UpperAlpha */, "A")) return;
|
|
58
|
-
listState.length = 0;
|
|
59
|
-
}
|
|
60
|
-
function extractPrefix(text) {
|
|
61
|
-
const match = text.match(/^(\S+)\s+($|\S.*$)/);
|
|
62
|
-
if (match) {
|
|
63
|
-
return { prefix: match[1], text: match[2] };
|
|
64
|
-
}
|
|
65
|
-
return { prefix: text, text: "" };
|
|
66
83
|
}
|
|
67
84
|
function detectStructure(text) {
|
|
68
|
-
|
|
69
|
-
|
|
85
|
+
const lines = text.split(/\n+/).map((line) => line.trimEnd());
|
|
86
|
+
if (!lines.some((p) => p)) {
|
|
87
|
+
return Empty;
|
|
70
88
|
}
|
|
71
|
-
const
|
|
72
|
-
|
|
73
|
-
|
|
89
|
+
const breadcrumb = [{ ...Empty, entries: [] }];
|
|
90
|
+
for (const line of lines) {
|
|
91
|
+
detectBlock(line, breadcrumb);
|
|
92
|
+
breadcrumb[breadcrumb.length - 1].entries.push(line.trim().replace(/\s+/g, " "));
|
|
74
93
|
}
|
|
75
|
-
|
|
76
|
-
let index = 0;
|
|
77
|
-
function processLevel() {
|
|
78
|
-
const level = listState.length;
|
|
79
|
-
const structure = {
|
|
80
|
-
prefixWidth: 0,
|
|
81
|
-
entries: []
|
|
82
|
-
};
|
|
83
|
-
while (index < paragraphs.length) {
|
|
84
|
-
detectList(paragraphs[index], listState);
|
|
85
|
-
if (listState.length < level) {
|
|
86
|
-
break;
|
|
87
|
-
}
|
|
88
|
-
if (listState.length > level) {
|
|
89
|
-
structure.entries.push(processLevel());
|
|
90
|
-
if (listState.length < level || index >= paragraphs.length) {
|
|
91
|
-
break;
|
|
92
|
-
}
|
|
93
|
-
}
|
|
94
|
-
structure.entries.push(paragraphs[index]);
|
|
95
|
-
if (level) {
|
|
96
|
-
const { prefix } = extractPrefix(paragraphs[index]);
|
|
97
|
-
if (prefix.length > structure.prefixWidth) {
|
|
98
|
-
structure.prefixWidth = prefix.length;
|
|
99
|
-
}
|
|
100
|
-
}
|
|
101
|
-
index++;
|
|
102
|
-
}
|
|
103
|
-
return structure;
|
|
104
|
-
}
|
|
105
|
-
return processLevel();
|
|
94
|
+
return breadcrumb[0];
|
|
106
95
|
}
|
|
107
|
-
function wrapParagraph(input, into, wrapWidth,
|
|
96
|
+
function wrapParagraph(input, into, wrapWidth, initialPrefix, wrapPrefix) {
|
|
97
|
+
const prefixWidth = visibleWidthOf(initialPrefix);
|
|
108
98
|
const segments = input.split(/\s+/);
|
|
109
99
|
if (!segments) {
|
|
110
100
|
return;
|
|
@@ -120,35 +110,23 @@ function wrapParagraph(input, into, wrapWidth, padding, prefixWidth) {
|
|
|
120
110
|
}
|
|
121
111
|
}
|
|
122
112
|
}
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
wrapPrefix = "".padStart(prefixWidth + 1, " ");
|
|
126
|
-
} else {
|
|
127
|
-
wrapPrefix = "";
|
|
128
|
-
}
|
|
129
|
-
const line = Array();
|
|
130
|
-
let length = 0;
|
|
113
|
+
const line = [initialPrefix];
|
|
114
|
+
let width = prefixWidth;
|
|
131
115
|
let pushedOne = false;
|
|
132
|
-
let needWrapPrefix = false;
|
|
133
116
|
for (const s of segments) {
|
|
134
|
-
const
|
|
135
|
-
if (
|
|
117
|
+
const segmentWidth = visibleWidthOf(s);
|
|
118
|
+
if (width && width + segmentWidth > wrapWidth) {
|
|
136
119
|
addLine();
|
|
137
|
-
line.length =
|
|
138
|
-
|
|
139
|
-
}
|
|
140
|
-
if (!line.length && padding) {
|
|
141
|
-
line.push("".padStart(padding, " "));
|
|
142
|
-
length += padding;
|
|
120
|
+
line.length = 0;
|
|
121
|
+
width = prefixWidth;
|
|
143
122
|
}
|
|
144
|
-
if (
|
|
145
|
-
needWrapPrefix = false;
|
|
123
|
+
if (!line.length) {
|
|
146
124
|
line.push(wrapPrefix);
|
|
147
|
-
|
|
125
|
+
width = prefixWidth;
|
|
148
126
|
}
|
|
149
127
|
line.push(s);
|
|
150
128
|
line.push(" ");
|
|
151
|
-
|
|
129
|
+
width += segmentWidth + 1;
|
|
152
130
|
}
|
|
153
131
|
line.length = line.length - 1;
|
|
154
132
|
if (line.length) {
|
|
@@ -164,21 +142,45 @@ function wrapParagraph(input, into, wrapWidth, padding, prefixWidth) {
|
|
|
164
142
|
into.push(line.join(""));
|
|
165
143
|
}
|
|
166
144
|
}
|
|
167
|
-
function
|
|
145
|
+
function separatePrefixFromContent(text) {
|
|
146
|
+
const match = text.match(/^(\S+\s)\s*(\S.*$)/);
|
|
147
|
+
if (match) {
|
|
148
|
+
return { prefix: match[1], text: match[2] };
|
|
149
|
+
}
|
|
150
|
+
return { prefix: "", text };
|
|
151
|
+
}
|
|
152
|
+
function formatBlock(block, width) {
|
|
168
153
|
const lines = Array();
|
|
169
|
-
function formatLevel(
|
|
170
|
-
for (const entry of
|
|
154
|
+
function formatLevel(block2, parentPrefix) {
|
|
155
|
+
for (const entry of block2.entries) {
|
|
171
156
|
if (typeof entry == "string") {
|
|
172
|
-
|
|
157
|
+
let prefix, text;
|
|
158
|
+
if (block2.kind === "simple" /* Simple */) {
|
|
159
|
+
prefix = "";
|
|
160
|
+
text = entry;
|
|
161
|
+
} else {
|
|
162
|
+
({ prefix, text } = separatePrefixFromContent(entry));
|
|
163
|
+
}
|
|
164
|
+
wrapParagraph(
|
|
165
|
+
text,
|
|
166
|
+
lines,
|
|
167
|
+
width,
|
|
168
|
+
parentPrefix + prefix,
|
|
169
|
+
parentPrefix + " ".repeat(visibleWidthOf(prefix))
|
|
170
|
+
);
|
|
173
171
|
} else {
|
|
174
|
-
|
|
172
|
+
let childPrefix = parentPrefix;
|
|
173
|
+
if (entry.kind !== ">" /* Quote */ || parentPrefix !== "") {
|
|
174
|
+
childPrefix += INDENT;
|
|
175
|
+
}
|
|
176
|
+
formatLevel(entry, childPrefix);
|
|
175
177
|
}
|
|
176
178
|
}
|
|
177
179
|
}
|
|
178
|
-
formatLevel(
|
|
180
|
+
formatLevel(block, "");
|
|
179
181
|
return lines;
|
|
180
182
|
}
|
|
181
|
-
function
|
|
183
|
+
function visibleWidthOf(text) {
|
|
182
184
|
let length = 0;
|
|
183
185
|
for (let i = 0; i < text.length; ) {
|
|
184
186
|
switch (text[i]) {
|
|
@@ -215,9 +217,12 @@ function visibleLengthOf(text) {
|
|
|
215
217
|
return length;
|
|
216
218
|
}
|
|
217
219
|
export {
|
|
220
|
+
BlockKind,
|
|
221
|
+
Bullets,
|
|
218
222
|
FormattedText,
|
|
219
223
|
camelize,
|
|
220
224
|
describeList,
|
|
225
|
+
looksLikeListItem,
|
|
221
226
|
serialize
|
|
222
227
|
};
|
|
223
228
|
//# sourceMappingURL=FormattedText.js.map
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../src/util/FormattedText.ts"],
|
|
4
|
-
"mappings": "AAAA;AAAA;AAAA;AAAA;AAAA;AAMA,MAAM,
|
|
5
|
-
"names": ["
|
|
4
|
+
"mappings": "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",
|
|
5
|
+
"names": ["BlockKind", "block"]
|
|
6
6
|
}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@matter/general",
|
|
3
|
-
"version": "0.13.1-alpha.0-
|
|
3
|
+
"version": "0.13.1-alpha.0-20250509-28e1567e1",
|
|
4
4
|
"description": "Non-Matter support for Matter.js",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"iot",
|
|
@@ -36,7 +36,7 @@
|
|
|
36
36
|
"@noble/curves": "^1.8.2"
|
|
37
37
|
},
|
|
38
38
|
"devDependencies": {
|
|
39
|
-
"@matter/testing": "0.13.1-alpha.0-
|
|
39
|
+
"@matter/testing": "0.13.1-alpha.0-20250509-28e1567e1"
|
|
40
40
|
},
|
|
41
41
|
"files": [
|
|
42
42
|
"dist/**/*",
|