@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;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAMA,kBAAqB;
|
|
4
|
+
"mappings": "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",
|
|
5
5
|
"names": []
|
|
6
6
|
}
|
|
@@ -96,14 +96,14 @@ class Spake2p {
|
|
|
96
96
|
return this.computeSecretAndVerifiers(X, Y, Z.toRawBytes(false), V.toRawBytes(false));
|
|
97
97
|
}
|
|
98
98
|
async computeSecretAndVerifiers(X, Y, Z, V) {
|
|
99
|
-
const TT_HASH = this.computeTranscriptHash(X, Y, Z, V);
|
|
99
|
+
const TT_HASH = await this.computeTranscriptHash(X, Y, Z, V);
|
|
100
100
|
const Ka = TT_HASH.slice(0, 16);
|
|
101
101
|
const Ke = TT_HASH.slice(16, 32);
|
|
102
102
|
const KcAB = await import_Crypto.Crypto.hkdf(Ka, new Uint8Array(0), import_Bytes.Bytes.fromString("ConfirmationKeys"), 32);
|
|
103
103
|
const KcA = KcAB.slice(0, 16);
|
|
104
104
|
const KcB = KcAB.slice(16, 32);
|
|
105
|
-
const hAY = import_Crypto.Crypto.hmac(KcA, Y);
|
|
106
|
-
const hBX = import_Crypto.Crypto.hmac(KcB, X);
|
|
105
|
+
const hAY = await import_Crypto.Crypto.hmac(KcA, Y);
|
|
106
|
+
const hBX = await import_Crypto.Crypto.hmac(KcB, X);
|
|
107
107
|
return { Ke, hAY, hBX };
|
|
108
108
|
}
|
|
109
109
|
computeTranscriptHash(X, Y, Z, V) {
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../src/crypto/Spake2p.ts"],
|
|
4
|
-
"mappings": "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
|
|
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"}
|
|
@@ -18,9 +18,12 @@ var __copyProps = (to, from, except, desc) => {
|
|
|
18
18
|
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
19
19
|
var FormattedText_exports = {};
|
|
20
20
|
__export(FormattedText_exports, {
|
|
21
|
+
BlockKind: () => BlockKind,
|
|
22
|
+
Bullets: () => Bullets,
|
|
21
23
|
FormattedText: () => FormattedText,
|
|
22
24
|
camelize: () => import_String.camelize,
|
|
23
25
|
describeList: () => import_String.describeList,
|
|
26
|
+
looksLikeListItem: () => looksLikeListItem,
|
|
24
27
|
serialize: () => import_String.serialize
|
|
25
28
|
});
|
|
26
29
|
module.exports = __toCommonJS(FormattedText_exports);
|
|
@@ -30,107 +33,97 @@ var import_String = require("./String.js");
|
|
|
30
33
|
* Copyright 2022-2025 Matter.js Authors
|
|
31
34
|
* SPDX-License-Identifier: Apache-2.0
|
|
32
35
|
*/
|
|
33
|
-
const
|
|
36
|
+
const INDENT = " ";
|
|
34
37
|
function FormattedText(text, width = 120) {
|
|
35
38
|
const structure = detectStructure(text);
|
|
36
|
-
return
|
|
39
|
+
return formatBlock(structure, width);
|
|
37
40
|
}
|
|
38
|
-
var
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
41
|
+
var BlockKind = /* @__PURE__ */ ((BlockKind2) => {
|
|
42
|
+
BlockKind2["Simple"] = "simple";
|
|
43
|
+
BlockKind2["Bullet1"] = "\u2022";
|
|
44
|
+
BlockKind2["Bullet2"] = "\u25E6";
|
|
45
|
+
BlockKind2["Bullet3"] = "\u25AA";
|
|
46
|
+
BlockKind2["Bullet4"] = "\u25CB";
|
|
47
|
+
BlockKind2["Bullet5"] = "\u25CF";
|
|
48
|
+
BlockKind2["Bullet6"] = "\u2023";
|
|
49
|
+
BlockKind2["Bullet7"] = "\u2043";
|
|
50
|
+
BlockKind2["Bullet8"] = "\u25D8";
|
|
51
|
+
BlockKind2["Quote"] = ">";
|
|
52
|
+
BlockKind2["Number"] = "number";
|
|
53
|
+
BlockKind2["LowerAlpha"] = "alpha";
|
|
54
|
+
BlockKind2["UpperAlpha"] = "ALPHA";
|
|
55
|
+
BlockKind2["LowerRoman"] = "roman";
|
|
56
|
+
BlockKind2["UpperRoman"] = "ROMAN";
|
|
57
|
+
return BlockKind2;
|
|
58
|
+
})(BlockKind || {});
|
|
59
|
+
const Bullets = Object.entries(BlockKind).filter(([key]) => key.startsWith("Bullet")).map(([, value]) => value);
|
|
60
|
+
const enumTest = "(?:\\d+|[ivx]+|[a-z])\\.";
|
|
61
|
+
const listItemTest = new RegExp(`^(?:[${Bullets.join("")}]|${enumTest})\\s`, "i");
|
|
62
|
+
function looksLikeListItem(text) {
|
|
63
|
+
return !!listItemTest.exec(text);
|
|
64
|
+
}
|
|
65
|
+
const Empty = {
|
|
66
|
+
kind: "simple" /* Simple */,
|
|
67
|
+
indentWidth: 0,
|
|
68
|
+
entries: []
|
|
69
|
+
};
|
|
70
|
+
function detectBlock(text, breadcrumb) {
|
|
71
|
+
const match = text.match(/^\s*(\S+)/);
|
|
72
|
+
if (!match) {
|
|
73
|
+
return;
|
|
62
74
|
}
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
75
|
+
const [, marker] = match;
|
|
76
|
+
if (Bullets.includes(marker) || marker === ">" /* Quote */) {
|
|
77
|
+
enterBlock(marker);
|
|
78
|
+
return;
|
|
79
|
+
}
|
|
80
|
+
if (detectEnumeration(/^\d+\.$/, "1", "number" /* Number */)) return;
|
|
81
|
+
if (detectEnumeration(/^[ivx]+\.$/, "i", "roman" /* LowerRoman */)) return;
|
|
82
|
+
if (detectEnumeration(/^[IVX]+\.$/, "I", "ROMAN" /* UpperRoman */)) return;
|
|
83
|
+
if (detectEnumeration(/^[a-z]+\.$/, "a", "alpha" /* LowerAlpha */)) return;
|
|
84
|
+
if (detectEnumeration(/^[A-Z]+\.$/, "A", "ALPHA" /* UpperAlpha */)) return;
|
|
85
|
+
breadcrumb.length = 1;
|
|
86
|
+
function enterBlock(kind) {
|
|
87
|
+
const level = breadcrumb.findIndex((entry) => entry.kind === kind);
|
|
88
|
+
if (level !== -1) {
|
|
89
|
+
breadcrumb.length = level + 1;
|
|
66
90
|
return;
|
|
67
91
|
}
|
|
92
|
+
const block = {
|
|
93
|
+
kind,
|
|
94
|
+
indentWidth: (breadcrumb[breadcrumb.length - 1]?.indentWidth ?? 0) + kind === ">" /* Quote */ ? 0 : 2,
|
|
95
|
+
entries: []
|
|
96
|
+
};
|
|
97
|
+
breadcrumb[breadcrumb.length - 1].entries.push(block);
|
|
98
|
+
breadcrumb.push(block);
|
|
68
99
|
}
|
|
69
|
-
function detectEnumeration(test,
|
|
70
|
-
if (!
|
|
100
|
+
function detectEnumeration(test, startsWith, kind) {
|
|
101
|
+
if (!marker.match(test)) {
|
|
71
102
|
return false;
|
|
72
103
|
}
|
|
73
|
-
if (
|
|
74
|
-
|
|
75
|
-
|
|
104
|
+
if (!breadcrumb.find((block) => block.kind === kind)) {
|
|
105
|
+
if (marker !== `${startsWith}.`) {
|
|
106
|
+
return false;
|
|
107
|
+
}
|
|
76
108
|
}
|
|
77
|
-
|
|
109
|
+
enterBlock(kind);
|
|
110
|
+
return true;
|
|
78
111
|
}
|
|
79
|
-
if (detectEnumeration(/^\d+\./, "number" /* Number */, "1")) return;
|
|
80
|
-
if (detectEnumeration(/^[ivx]+\./, "roman" /* LowerRoman */, "i")) return;
|
|
81
|
-
if (detectEnumeration(/^[IVX]+\./, "ROMAN" /* UpperRoman */, "I")) return;
|
|
82
|
-
if (detectEnumeration(/^[a-z]+\./, "alpha" /* LowerAlpha */, "a")) return;
|
|
83
|
-
if (detectEnumeration(/^[A-Z]+\./, "ALPHA" /* UpperAlpha */, "A")) return;
|
|
84
|
-
listState.length = 0;
|
|
85
|
-
}
|
|
86
|
-
function extractPrefix(text) {
|
|
87
|
-
const match = text.match(/^(\S+)\s+($|\S.*$)/);
|
|
88
|
-
if (match) {
|
|
89
|
-
return { prefix: match[1], text: match[2] };
|
|
90
|
-
}
|
|
91
|
-
return { prefix: text, text: "" };
|
|
92
112
|
}
|
|
93
113
|
function detectStructure(text) {
|
|
94
|
-
|
|
95
|
-
|
|
114
|
+
const lines = text.split(/\n+/).map((line) => line.trimEnd());
|
|
115
|
+
if (!lines.some((p) => p)) {
|
|
116
|
+
return Empty;
|
|
96
117
|
}
|
|
97
|
-
const
|
|
98
|
-
|
|
99
|
-
|
|
118
|
+
const breadcrumb = [{ ...Empty, entries: [] }];
|
|
119
|
+
for (const line of lines) {
|
|
120
|
+
detectBlock(line, breadcrumb);
|
|
121
|
+
breadcrumb[breadcrumb.length - 1].entries.push(line.trim().replace(/\s+/g, " "));
|
|
100
122
|
}
|
|
101
|
-
|
|
102
|
-
let index = 0;
|
|
103
|
-
function processLevel() {
|
|
104
|
-
const level = listState.length;
|
|
105
|
-
const structure = {
|
|
106
|
-
prefixWidth: 0,
|
|
107
|
-
entries: []
|
|
108
|
-
};
|
|
109
|
-
while (index < paragraphs.length) {
|
|
110
|
-
detectList(paragraphs[index], listState);
|
|
111
|
-
if (listState.length < level) {
|
|
112
|
-
break;
|
|
113
|
-
}
|
|
114
|
-
if (listState.length > level) {
|
|
115
|
-
structure.entries.push(processLevel());
|
|
116
|
-
if (listState.length < level || index >= paragraphs.length) {
|
|
117
|
-
break;
|
|
118
|
-
}
|
|
119
|
-
}
|
|
120
|
-
structure.entries.push(paragraphs[index]);
|
|
121
|
-
if (level) {
|
|
122
|
-
const { prefix } = extractPrefix(paragraphs[index]);
|
|
123
|
-
if (prefix.length > structure.prefixWidth) {
|
|
124
|
-
structure.prefixWidth = prefix.length;
|
|
125
|
-
}
|
|
126
|
-
}
|
|
127
|
-
index++;
|
|
128
|
-
}
|
|
129
|
-
return structure;
|
|
130
|
-
}
|
|
131
|
-
return processLevel();
|
|
123
|
+
return breadcrumb[0];
|
|
132
124
|
}
|
|
133
|
-
function wrapParagraph(input, into, wrapWidth,
|
|
125
|
+
function wrapParagraph(input, into, wrapWidth, initialPrefix, wrapPrefix) {
|
|
126
|
+
const prefixWidth = visibleWidthOf(initialPrefix);
|
|
134
127
|
const segments = input.split(/\s+/);
|
|
135
128
|
if (!segments) {
|
|
136
129
|
return;
|
|
@@ -146,35 +139,23 @@ function wrapParagraph(input, into, wrapWidth, padding, prefixWidth) {
|
|
|
146
139
|
}
|
|
147
140
|
}
|
|
148
141
|
}
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
wrapPrefix = "".padStart(prefixWidth + 1, " ");
|
|
152
|
-
} else {
|
|
153
|
-
wrapPrefix = "";
|
|
154
|
-
}
|
|
155
|
-
const line = Array();
|
|
156
|
-
let length = 0;
|
|
142
|
+
const line = [initialPrefix];
|
|
143
|
+
let width = prefixWidth;
|
|
157
144
|
let pushedOne = false;
|
|
158
|
-
let needWrapPrefix = false;
|
|
159
145
|
for (const s of segments) {
|
|
160
|
-
const
|
|
161
|
-
if (
|
|
146
|
+
const segmentWidth = visibleWidthOf(s);
|
|
147
|
+
if (width && width + segmentWidth > wrapWidth) {
|
|
162
148
|
addLine();
|
|
163
|
-
line.length =
|
|
164
|
-
|
|
165
|
-
}
|
|
166
|
-
if (!line.length && padding) {
|
|
167
|
-
line.push("".padStart(padding, " "));
|
|
168
|
-
length += padding;
|
|
149
|
+
line.length = 0;
|
|
150
|
+
width = prefixWidth;
|
|
169
151
|
}
|
|
170
|
-
if (
|
|
171
|
-
needWrapPrefix = false;
|
|
152
|
+
if (!line.length) {
|
|
172
153
|
line.push(wrapPrefix);
|
|
173
|
-
|
|
154
|
+
width = prefixWidth;
|
|
174
155
|
}
|
|
175
156
|
line.push(s);
|
|
176
157
|
line.push(" ");
|
|
177
|
-
|
|
158
|
+
width += segmentWidth + 1;
|
|
178
159
|
}
|
|
179
160
|
line.length = line.length - 1;
|
|
180
161
|
if (line.length) {
|
|
@@ -190,21 +171,45 @@ function wrapParagraph(input, into, wrapWidth, padding, prefixWidth) {
|
|
|
190
171
|
into.push(line.join(""));
|
|
191
172
|
}
|
|
192
173
|
}
|
|
193
|
-
function
|
|
174
|
+
function separatePrefixFromContent(text) {
|
|
175
|
+
const match = text.match(/^(\S+\s)\s*(\S.*$)/);
|
|
176
|
+
if (match) {
|
|
177
|
+
return { prefix: match[1], text: match[2] };
|
|
178
|
+
}
|
|
179
|
+
return { prefix: "", text };
|
|
180
|
+
}
|
|
181
|
+
function formatBlock(block, width) {
|
|
194
182
|
const lines = Array();
|
|
195
|
-
function formatLevel(
|
|
196
|
-
for (const entry of
|
|
183
|
+
function formatLevel(block2, parentPrefix) {
|
|
184
|
+
for (const entry of block2.entries) {
|
|
197
185
|
if (typeof entry == "string") {
|
|
198
|
-
|
|
186
|
+
let prefix, text;
|
|
187
|
+
if (block2.kind === "simple" /* Simple */) {
|
|
188
|
+
prefix = "";
|
|
189
|
+
text = entry;
|
|
190
|
+
} else {
|
|
191
|
+
({ prefix, text } = separatePrefixFromContent(entry));
|
|
192
|
+
}
|
|
193
|
+
wrapParagraph(
|
|
194
|
+
text,
|
|
195
|
+
lines,
|
|
196
|
+
width,
|
|
197
|
+
parentPrefix + prefix,
|
|
198
|
+
parentPrefix + " ".repeat(visibleWidthOf(prefix))
|
|
199
|
+
);
|
|
199
200
|
} else {
|
|
200
|
-
|
|
201
|
+
let childPrefix = parentPrefix;
|
|
202
|
+
if (entry.kind !== ">" /* Quote */ || parentPrefix !== "") {
|
|
203
|
+
childPrefix += INDENT;
|
|
204
|
+
}
|
|
205
|
+
formatLevel(entry, childPrefix);
|
|
201
206
|
}
|
|
202
207
|
}
|
|
203
208
|
}
|
|
204
|
-
formatLevel(
|
|
209
|
+
formatLevel(block, "");
|
|
205
210
|
return lines;
|
|
206
211
|
}
|
|
207
|
-
function
|
|
212
|
+
function visibleWidthOf(text) {
|
|
208
213
|
let length = 0;
|
|
209
214
|
for (let i = 0; i < text.length; ) {
|
|
210
215
|
switch (text[i]) {
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../src/util/FormattedText.ts"],
|
|
4
|
-
"mappings": ";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAQA,oBAAkD;AARlD;AAAA;AAAA;AAAA;AAAA;AAMA,MAAM,
|
|
5
|
-
"names": ["
|
|
4
|
+
"mappings": "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",
|
|
5
|
+
"names": ["BlockKind", "block"]
|
|
6
6
|
}
|