@openclaw/matrix 2026.5.27 → 2026.5.28-beta.2
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/api.js +4 -4
- package/dist/{approval-handler.runtime-D2nZfRw6.js → approval-handler.runtime-pR4jcWts.js} +7 -37
- package/dist/{approval-ids-DzBw_AG3.js → approval-ids-BsGUOwIc.js} +1 -1
- package/dist/{approval-reaction-auth-BvK3dXMH.js → approval-reaction-auth-CstZA90i.js} +2 -2
- package/dist/{channel-BLuA_9If.js → channel-EfS9AcXo.js} +15 -15
- package/dist/channel-plugin-api.js +1 -1
- package/dist/{channel.runtime-CCAsyp75.js → channel.runtime-BSL4fCB_.js} +7 -7
- package/dist/{cli-Bo50M7l4.js → cli-CYLqmzNw.js} +15 -14
- package/dist/{cli-metadata-CqUHNx_0.js → cli-metadata-TxtMWnLo.js} +1 -1
- package/dist/cli-metadata.js +1 -1
- package/dist/{client-QO7vDxm0.js → client-D6nL0ymL.js} +2 -2
- package/dist/{client-BgsOzckO.js → client-DxQ7tWJq.js} +2 -2
- package/dist/{client-bootstrap-DK9i3KZ5.js → client-bootstrap-BtddaQGi.js} +1 -1
- package/dist/{config-schema-DuSRVdwT.js → config-schema-CRsTmqKY.js} +1 -1
- package/dist/contract-api.js +3 -3
- package/dist/{create-client-hdBEoEIm.js → create-client-D5Ie4y1a.js} +2 -2
- package/dist/{crypto-runtime-BcQzS9DV.js → crypto-runtime-CpQeK8kh.js} +4 -4
- package/dist/{deps-CAdiytPJ.js → deps-BVWGd2XS.js} +12 -2
- package/dist/{directory-live-2-Vb6nss.js → directory-live-kLKfwyDt.js} +2 -2
- package/dist/{doctor-qLh9PyE4.js → doctor-CENc9ks0.js} +1 -1
- package/dist/{draft-stream-BBVqdEbn.js → draft-stream-D7KMDYlS.js} +1 -1
- package/dist/index.js +1 -1
- package/dist/{legacy-crypto-inspector-BRdo-WqV.js → legacy-crypto-inspector-tJOj25VL.js} +1 -1
- package/dist/{logging-BR-gcAjp.js → logging-BD9Wmviv.js} +2 -9
- package/dist/{matrix-migration.runtime-BhJb4ZII.js → matrix-migration.runtime-CZOep_JX.js} +1 -1
- package/dist/{media-text-C6q1S0AJ.js → media-text-ybU6tiB2.js} +1 -1
- package/dist/{messages-D-VxmWkC.js → messages-CHjewhaA.js} +5 -5
- package/dist/{monitor-DO1yiHWm.js → monitor-DjfcOAje.js} +25 -26
- package/dist/plugin-entry.handlers.runtime.js +1 -1
- package/dist/probe.runtime-BjFSknLp.js +3 -0
- package/dist/{profile-update-B_LpeC8E.js → profile-update-B4HzVfDS.js} +2 -2
- package/dist/{reaction-events-BefH3-Gu.js → reaction-events-gK5X5uu5.js} +1 -1
- package/dist/recovery-key-store-B3-wYrMU.js +294 -0
- package/dist/{resolve-targets-BPhBqXyj.js → resolve-targets-DaTQqtPq.js} +1 -1
- package/dist/{resolver.runtime-BOS3foyc.js → resolver.runtime-Dj10Iq3r.js} +1 -1
- package/dist/{runtime-api-B-jlPE4A.js → runtime-api-CsF7Kokd.js} +2 -2
- package/dist/runtime-api.js +1 -1
- package/dist/runtime-heavy-api.js +1 -1
- package/dist/{sdk-BKBZkPKt.js → sdk-DTo3Hzko.js} +14 -304
- package/dist/{send-DivaFHb1.js → send-DX-aOjPW.js} +1 -1
- package/dist/{setup-bootstrap-ClcP-tDQ.js → setup-bootstrap-D9XeWu6O.js} +2 -2
- package/dist/{setup-core-s8s_Qudu.js → setup-core-BU4BO6DB.js} +7 -2
- package/dist/setup-plugin-api.js +3 -3
- package/dist/{setup-surface-BOt10HNf.js → setup-surface-BIFSsw6q.js} +5 -5
- package/dist/{shared-3K27tl8e.js → shared-CZ622gSf.js} +113 -5
- package/dist/{thread-bindings-CLjJrThw.js → thread-bindings-DjC1mhh_.js} +1 -1
- package/dist/{tool-actions.runtime-Vky1krcK.js → tool-actions.runtime-D4A9O27R.js} +20 -21
- package/dist/{verification-Dar6QON4.js → verification-CUSz9cFP.js} +1 -1
- package/node_modules/linkify-it/build/index.cjs.js +99 -94
- package/node_modules/linkify-it/index.mjs +99 -94
- package/node_modules/linkify-it/package.json +11 -1
- package/node_modules/markdown-it/README.md +13 -17
- package/node_modules/markdown-it/dist/index.cjs.js +111 -31
- package/node_modules/markdown-it/dist/markdown-it.js +117 -31
- package/node_modules/markdown-it/dist/markdown-it.min.js +2 -2
- package/node_modules/markdown-it/lib/common/utils.mjs +30 -1
- package/node_modules/markdown-it/lib/index.mjs +1 -1
- package/node_modules/markdown-it/lib/rules_block/heading.mjs +2 -2
- package/node_modules/markdown-it/lib/rules_block/html_block.mjs +12 -1
- package/node_modules/markdown-it/lib/rules_block/lheading.mjs +4 -1
- package/node_modules/markdown-it/lib/rules_block/paragraph.mjs +3 -1
- package/node_modules/markdown-it/lib/rules_core/smartquotes.mjs +37 -21
- package/node_modules/markdown-it/lib/rules_inline/entity.mjs +2 -2
- package/node_modules/markdown-it/lib/rules_inline/state_inline.mjs +37 -6
- package/node_modules/markdown-it/package.json +14 -3
- package/node_modules/matrix-js-sdk/CHANGELOG.md +7 -0
- package/node_modules/matrix-js-sdk/package.json +1 -1
- package/npm-shrinkwrap.json +35 -15
- package/package.json +6 -6
- package/dist/probe.runtime-9S17Q3Mo.js +0 -3
- package/dist/startup-abort-Bs0Up_Qx.js +0 -109
- package/dist/test-api.js +0 -4
|
@@ -179,6 +179,10 @@ function isPunctChar (ch) {
|
|
|
179
179
|
return ucmicro.P.test(ch) || ucmicro.S.test(ch)
|
|
180
180
|
}
|
|
181
181
|
|
|
182
|
+
function isPunctCharCode (code) {
|
|
183
|
+
return isPunctChar(fromCodePoint(code))
|
|
184
|
+
}
|
|
185
|
+
|
|
182
186
|
// Markdown ASCII punctuation characters.
|
|
183
187
|
//
|
|
184
188
|
// !, ", #, $, %, &, ', (, ), *, +, ,, -, ., /, :, ;, <, =, >, ?, @, [, \, ], ^, _, `, {, |, }, or ~
|
|
@@ -240,6 +244,7 @@ function normalizeReference (str) {
|
|
|
240
244
|
// (remove this when node v10 is no longer supported).
|
|
241
245
|
//
|
|
242
246
|
if ('ẞ'.toLowerCase() === 'Ṿ') {
|
|
247
|
+
/* c8 ignore next 2 */
|
|
243
248
|
str = str.replace(/ẞ/g, 'ß')
|
|
244
249
|
}
|
|
245
250
|
|
|
@@ -278,6 +283,28 @@ function normalizeReference (str) {
|
|
|
278
283
|
return str.toLowerCase().toUpperCase()
|
|
279
284
|
}
|
|
280
285
|
|
|
286
|
+
function isAsciiTrimmable (c) {
|
|
287
|
+
return c === 0x20 || c === 0x09 || c === 0x0a || c === 0x0d
|
|
288
|
+
}
|
|
289
|
+
|
|
290
|
+
// "Light" .trim() for blocks (headers, paragraphs), where unicode spaces
|
|
291
|
+
// should be preserved.
|
|
292
|
+
function asciiTrim (str) {
|
|
293
|
+
let start = 0
|
|
294
|
+
for (; start < str.length; start++) {
|
|
295
|
+
if (!isAsciiTrimmable(str.charCodeAt(start))) {
|
|
296
|
+
break
|
|
297
|
+
}
|
|
298
|
+
}
|
|
299
|
+
let end = str.length - 1
|
|
300
|
+
for (; end >= start; end--) {
|
|
301
|
+
if (!isAsciiTrimmable(str.charCodeAt(end))) {
|
|
302
|
+
break
|
|
303
|
+
}
|
|
304
|
+
}
|
|
305
|
+
return str.slice(start, end + 1)
|
|
306
|
+
}
|
|
307
|
+
|
|
281
308
|
// Re-export libraries commonly used in both markdown-it and its plugins,
|
|
282
309
|
// so plugins won't have to depend on them explicitly, which reduces their
|
|
283
310
|
// bundled size (e.g. a browser build).
|
|
@@ -299,6 +326,8 @@ export {
|
|
|
299
326
|
isWhiteSpace,
|
|
300
327
|
isMdAsciiPunct,
|
|
301
328
|
isPunctChar,
|
|
329
|
+
isPunctCharCode,
|
|
302
330
|
escapeRE,
|
|
303
|
-
normalizeReference
|
|
331
|
+
normalizeReference,
|
|
332
|
+
asciiTrim
|
|
304
333
|
}
|
|
@@ -352,7 +352,7 @@ function MarkdownIt (presetName, options) {
|
|
|
352
352
|
* ```javascript
|
|
353
353
|
* var md = require('markdown-it')()
|
|
354
354
|
* .set({ html: true, breaks: true })
|
|
355
|
-
* .set({ typographer
|
|
355
|
+
* .set({ typographer: true });
|
|
356
356
|
* ```
|
|
357
357
|
*
|
|
358
358
|
* __Note:__ To achieve the best possible performance, don't modify a
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
// heading (#, ##, ...)
|
|
2
2
|
|
|
3
|
-
import { isSpace } from '../common/utils.mjs'
|
|
3
|
+
import { isSpace, asciiTrim } from '../common/utils.mjs'
|
|
4
4
|
|
|
5
5
|
export default function heading (state, startLine, endLine, silent) {
|
|
6
6
|
let pos = state.bMarks[startLine] + state.tShift[startLine]
|
|
@@ -40,7 +40,7 @@ export default function heading (state, startLine, endLine, silent) {
|
|
|
40
40
|
token_o.map = [startLine, state.line]
|
|
41
41
|
|
|
42
42
|
const token_i = state.push('inline', '', 0)
|
|
43
|
-
token_i.content = state.src.slice(pos, max)
|
|
43
|
+
token_i.content = asciiTrim(state.src.slice(pos, max))
|
|
44
44
|
token_i.map = [startLine, state.line]
|
|
45
45
|
token_i.children = []
|
|
46
46
|
|
|
@@ -42,11 +42,22 @@ export default function html_block (state, startLine, endLine, silent) {
|
|
|
42
42
|
|
|
43
43
|
let nextLine = startLine + 1
|
|
44
44
|
|
|
45
|
+
// Block types 6 and 7 (the only ones whose end condition is a blank line)
|
|
46
|
+
// have `/^$/` as their closing regexp. For all other types (1-5, e.g.
|
|
47
|
+
// `<!--` comments), a blank line is regular content and must not terminate
|
|
48
|
+
// the block - it ends only when its closing sequence is found.
|
|
49
|
+
const endsOnBlankLine = HTML_SEQUENCES[i][1].test('')
|
|
50
|
+
|
|
45
51
|
// If we are here - we detected HTML block.
|
|
46
52
|
// Let's roll down till block end.
|
|
47
53
|
if (!HTML_SEQUENCES[i][1].test(lineText)) {
|
|
48
54
|
for (; nextLine < endLine; nextLine++) {
|
|
49
|
-
if (state.sCount[nextLine] < state.blkIndent) {
|
|
55
|
+
if (state.sCount[nextLine] < state.blkIndent) {
|
|
56
|
+
// An outdented blank line shouldn't end a block that doesn't end on a
|
|
57
|
+
// blank line (e.g. a `<!--` comment inside a list item). Such blocks
|
|
58
|
+
// must continue until their closing sequence regardless of indent.
|
|
59
|
+
if (endsOnBlankLine || !state.isEmpty(nextLine)) { break }
|
|
60
|
+
}
|
|
50
61
|
|
|
51
62
|
pos = state.bMarks[nextLine] + state.tShift[nextLine]
|
|
52
63
|
max = state.eMarks[nextLine]
|
|
@@ -1,5 +1,7 @@
|
|
|
1
1
|
// lheading (---, ===)
|
|
2
2
|
|
|
3
|
+
import { asciiTrim } from '../common/utils.mjs'
|
|
4
|
+
|
|
3
5
|
export default function lheading (state, startLine, endLine/*, silent */) {
|
|
4
6
|
const terminatorRules = state.md.block.ruler.getRules('paragraph')
|
|
5
7
|
|
|
@@ -57,10 +59,11 @@ export default function lheading (state, startLine, endLine/*, silent */) {
|
|
|
57
59
|
|
|
58
60
|
if (!level) {
|
|
59
61
|
// Didn't find valid underline
|
|
62
|
+
state.parentType = oldParentType
|
|
60
63
|
return false
|
|
61
64
|
}
|
|
62
65
|
|
|
63
|
-
const content = state.getLines(startLine, nextLine, state.blkIndent, false)
|
|
66
|
+
const content = asciiTrim(state.getLines(startLine, nextLine, state.blkIndent, false))
|
|
64
67
|
|
|
65
68
|
state.line = nextLine + 1
|
|
66
69
|
|
|
@@ -1,5 +1,7 @@
|
|
|
1
1
|
// Paragraph
|
|
2
2
|
|
|
3
|
+
import { asciiTrim } from '../common/utils.mjs'
|
|
4
|
+
|
|
3
5
|
export default function paragraph (state, startLine, endLine) {
|
|
4
6
|
const terminatorRules = state.md.block.ruler.getRules('paragraph')
|
|
5
7
|
const oldParentType = state.parentType
|
|
@@ -26,7 +28,7 @@ export default function paragraph (state, startLine, endLine) {
|
|
|
26
28
|
if (terminate) { break }
|
|
27
29
|
}
|
|
28
30
|
|
|
29
|
-
const content = state.getLines(startLine, nextLine, state.blkIndent, false)
|
|
31
|
+
const content = asciiTrim(state.getLines(startLine, nextLine, state.blkIndent, false))
|
|
30
32
|
|
|
31
33
|
state.line = nextLine
|
|
32
34
|
|
|
@@ -1,20 +1,42 @@
|
|
|
1
1
|
// Convert straight quotation marks to typographic ones
|
|
2
2
|
//
|
|
3
3
|
|
|
4
|
-
import { isWhiteSpace,
|
|
4
|
+
import { isWhiteSpace, isPunctCharCode, isMdAsciiPunct } from '../common/utils.mjs'
|
|
5
5
|
|
|
6
6
|
const QUOTE_TEST_RE = /['"]/
|
|
7
7
|
const QUOTE_RE = /['"]/g
|
|
8
8
|
const APOSTROPHE = '\u2019' /* ’ */
|
|
9
9
|
|
|
10
|
-
function
|
|
11
|
-
|
|
10
|
+
function addReplacement (replacements, tokenIdx, pos, ch) {
|
|
11
|
+
if (!replacements[tokenIdx]) {
|
|
12
|
+
replacements[tokenIdx] = []
|
|
13
|
+
}
|
|
14
|
+
|
|
15
|
+
replacements[tokenIdx].push({ pos, ch })
|
|
16
|
+
}
|
|
17
|
+
|
|
18
|
+
function applyReplacements (str, replacements) {
|
|
19
|
+
let result = ''
|
|
20
|
+
let lastPos = 0
|
|
21
|
+
|
|
22
|
+
replacements.sort((a, b) => a.pos - b.pos)
|
|
23
|
+
|
|
24
|
+
for (let i = 0; i < replacements.length; i++) {
|
|
25
|
+
const replacement = replacements[i]
|
|
26
|
+
|
|
27
|
+
result += str.slice(lastPos, replacement.pos) + replacement.ch
|
|
28
|
+
lastPos = replacement.pos + 1
|
|
29
|
+
}
|
|
30
|
+
|
|
31
|
+
return result + str.slice(lastPos)
|
|
12
32
|
}
|
|
13
33
|
|
|
14
34
|
function process_inlines (tokens, state) {
|
|
15
35
|
let j
|
|
16
36
|
|
|
17
37
|
const stack = []
|
|
38
|
+
// token index -> list of replacements in the original token content
|
|
39
|
+
const replacements = {}
|
|
18
40
|
|
|
19
41
|
for (let i = 0; i < tokens.length; i++) {
|
|
20
42
|
const token = tokens[i]
|
|
@@ -28,9 +50,9 @@ function process_inlines (tokens, state) {
|
|
|
28
50
|
|
|
29
51
|
if (token.type !== 'text') { continue }
|
|
30
52
|
|
|
31
|
-
|
|
53
|
+
const text = token.content
|
|
32
54
|
let pos = 0
|
|
33
|
-
|
|
55
|
+
const max = text.length
|
|
34
56
|
|
|
35
57
|
/* eslint no-labels:0,block-scoped-var:0 */
|
|
36
58
|
OUTER:
|
|
@@ -78,8 +100,8 @@ function process_inlines (tokens, state) {
|
|
|
78
100
|
}
|
|
79
101
|
}
|
|
80
102
|
|
|
81
|
-
const isLastPunctChar = isMdAsciiPunct(lastChar) ||
|
|
82
|
-
const isNextPunctChar = isMdAsciiPunct(nextChar) ||
|
|
103
|
+
const isLastPunctChar = isMdAsciiPunct(lastChar) || isPunctCharCode(lastChar)
|
|
104
|
+
const isNextPunctChar = isMdAsciiPunct(nextChar) || isPunctCharCode(nextChar)
|
|
83
105
|
|
|
84
106
|
const isLastWhiteSpace = isWhiteSpace(lastChar)
|
|
85
107
|
const isNextWhiteSpace = isWhiteSpace(nextChar)
|
|
@@ -122,7 +144,7 @@ function process_inlines (tokens, state) {
|
|
|
122
144
|
if (!canOpen && !canClose) {
|
|
123
145
|
// middle of word
|
|
124
146
|
if (isSingle) {
|
|
125
|
-
|
|
147
|
+
addReplacement(replacements, i, t.index, APOSTROPHE)
|
|
126
148
|
}
|
|
127
149
|
continue
|
|
128
150
|
}
|
|
@@ -145,18 +167,8 @@ function process_inlines (tokens, state) {
|
|
|
145
167
|
closeQuote = state.md.options.quotes[1]
|
|
146
168
|
}
|
|
147
169
|
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
// could mess up indices when quote length != 1
|
|
151
|
-
token.content = replaceAt(token.content, t.index, closeQuote)
|
|
152
|
-
tokens[item.token].content = replaceAt(
|
|
153
|
-
tokens[item.token].content, item.pos, openQuote)
|
|
154
|
-
|
|
155
|
-
pos += closeQuote.length - 1
|
|
156
|
-
if (item.token === i) { pos += openQuote.length - 1 }
|
|
157
|
-
|
|
158
|
-
text = token.content
|
|
159
|
-
max = text.length
|
|
170
|
+
addReplacement(replacements, i, t.index, closeQuote)
|
|
171
|
+
addReplacement(replacements, item.token, item.pos, openQuote)
|
|
160
172
|
|
|
161
173
|
stack.length = j
|
|
162
174
|
continue OUTER
|
|
@@ -172,10 +184,14 @@ function process_inlines (tokens, state) {
|
|
|
172
184
|
level: thisLevel
|
|
173
185
|
})
|
|
174
186
|
} else if (canClose && isSingle) {
|
|
175
|
-
|
|
187
|
+
addReplacement(replacements, i, t.index, APOSTROPHE)
|
|
176
188
|
}
|
|
177
189
|
}
|
|
178
190
|
}
|
|
191
|
+
|
|
192
|
+
Object.keys(replacements).forEach(function (tokenIdx) {
|
|
193
|
+
tokens[tokenIdx].content = applyReplacements(tokens[tokenIdx].content, replacements[tokenIdx])
|
|
194
|
+
})
|
|
179
195
|
}
|
|
180
196
|
|
|
181
197
|
export default function smartquotes (state) {
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
// Process html entity - {, ¯, ", ...
|
|
2
2
|
|
|
3
|
-
import {
|
|
3
|
+
import { decodeHTMLStrict } from 'entities'
|
|
4
4
|
import { isValidEntityCode, fromCodePoint } from '../common/utils.mjs'
|
|
5
5
|
|
|
6
6
|
const DIGITAL_RE = /^&#((?:x[a-f0-9]{1,6}|[0-9]{1,7}));/i
|
|
@@ -33,7 +33,7 @@ export default function entity (state, silent) {
|
|
|
33
33
|
} else {
|
|
34
34
|
const match = state.src.slice(pos).match(NAMED_RE)
|
|
35
35
|
if (match) {
|
|
36
|
-
const decoded =
|
|
36
|
+
const decoded = decodeHTMLStrict(match[0])
|
|
37
37
|
if (decoded !== match[0]) {
|
|
38
38
|
if (!silent) {
|
|
39
39
|
const token = state.push('text_special', '', 0)
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
// Inline parser state
|
|
2
2
|
|
|
3
3
|
import Token from '../token.mjs'
|
|
4
|
-
import { isWhiteSpace,
|
|
4
|
+
import { isWhiteSpace, isPunctCharCode, isMdAsciiPunct } from '../common/utils.mjs'
|
|
5
5
|
|
|
6
6
|
function StateInline (src, md, env, outTokens) {
|
|
7
7
|
this.src = src
|
|
@@ -89,8 +89,30 @@ StateInline.prototype.scanDelims = function (start, canSplitWord) {
|
|
|
89
89
|
const max = this.posMax
|
|
90
90
|
const marker = this.src.charCodeAt(start)
|
|
91
91
|
|
|
92
|
-
//
|
|
93
|
-
|
|
92
|
+
// Astral characters below are combined manually, because .codePointAt()
|
|
93
|
+
// does not guarantee numeric type output. And we don't wish JIT cache issues.
|
|
94
|
+
// The broken surrogate pairs are evaluated as U+FFFD to prevent possible
|
|
95
|
+
// crashes.
|
|
96
|
+
|
|
97
|
+
let lastChar
|
|
98
|
+
if (start === 0) {
|
|
99
|
+
// treat beginning of the line as a whitespace
|
|
100
|
+
lastChar = 0x20
|
|
101
|
+
} else if (start === 1) {
|
|
102
|
+
lastChar = this.src.charCodeAt(0)
|
|
103
|
+
if ((lastChar & 0xF800) === 0xD800) { lastChar = 0xFFFD }
|
|
104
|
+
} else {
|
|
105
|
+
lastChar = this.src.charCodeAt(start - 1)
|
|
106
|
+
if ((lastChar & 0xFC00) === 0xDC00) {
|
|
107
|
+
// low surrogate => add high one, replace broken pair with U+FFFD
|
|
108
|
+
const highSurr = this.src.charCodeAt(start - 2)
|
|
109
|
+
lastChar = (highSurr & 0xFC00) === 0xD800
|
|
110
|
+
? 0x10000 + ((highSurr - 0xD800) << 10) + (lastChar - 0xDC00)
|
|
111
|
+
: 0xFFFD
|
|
112
|
+
} else if ((lastChar & 0xFC00) === 0xD800) {
|
|
113
|
+
lastChar = 0xFFFD
|
|
114
|
+
}
|
|
115
|
+
}
|
|
94
116
|
|
|
95
117
|
let pos = start
|
|
96
118
|
while (pos < max && this.src.charCodeAt(pos) === marker) { pos++ }
|
|
@@ -98,10 +120,19 @@ StateInline.prototype.scanDelims = function (start, canSplitWord) {
|
|
|
98
120
|
const count = pos - start
|
|
99
121
|
|
|
100
122
|
// treat end of the line as a whitespace
|
|
101
|
-
|
|
123
|
+
let nextChar = pos < max ? this.src.charCodeAt(pos) : 0x20
|
|
124
|
+
if ((nextChar & 0xFC00) === 0xD800) {
|
|
125
|
+
// high surrogate => add low one, replace broken pair with U+FFFD
|
|
126
|
+
const lowSurr = this.src.charCodeAt(pos + 1)
|
|
127
|
+
nextChar = (lowSurr & 0xFC00) === 0xDC00
|
|
128
|
+
? 0x10000 + ((nextChar - 0xD800) << 10) + (lowSurr - 0xDC00)
|
|
129
|
+
: 0xFFFD
|
|
130
|
+
} else if ((nextChar & 0xFC00) === 0xDC00) {
|
|
131
|
+
nextChar = 0xFFFD
|
|
132
|
+
}
|
|
102
133
|
|
|
103
|
-
const isLastPunctChar = isMdAsciiPunct(lastChar) ||
|
|
104
|
-
const isNextPunctChar = isMdAsciiPunct(nextChar) ||
|
|
134
|
+
const isLastPunctChar = isMdAsciiPunct(lastChar) || isPunctCharCode(lastChar)
|
|
135
|
+
const isNextPunctChar = isMdAsciiPunct(nextChar) || isPunctCharCode(nextChar)
|
|
105
136
|
|
|
106
137
|
const isLastWhiteSpace = isWhiteSpace(lastChar)
|
|
107
138
|
const isNextWhiteSpace = isWhiteSpace(nextChar)
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "markdown-it",
|
|
3
|
-
"version": "14.
|
|
3
|
+
"version": "14.2.0",
|
|
4
4
|
"description": "Markdown-it - modern pluggable markdown parser.",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"markdown",
|
|
@@ -11,6 +11,16 @@
|
|
|
11
11
|
],
|
|
12
12
|
"repository": "markdown-it/markdown-it",
|
|
13
13
|
"license": "MIT",
|
|
14
|
+
"funding": [
|
|
15
|
+
{
|
|
16
|
+
"type": "github",
|
|
17
|
+
"url": "https://github.com/sponsors/puzrin"
|
|
18
|
+
},
|
|
19
|
+
{
|
|
20
|
+
"type": "github",
|
|
21
|
+
"url": "https://github.com/sponsors/markdown-it"
|
|
22
|
+
}
|
|
23
|
+
],
|
|
14
24
|
"main": "dist/index.cjs.js",
|
|
15
25
|
"module": "index.mjs",
|
|
16
26
|
"exports": {
|
|
@@ -28,7 +38,7 @@
|
|
|
28
38
|
},
|
|
29
39
|
"scripts": {
|
|
30
40
|
"lint": "eslint .",
|
|
31
|
-
"test": "npm run lint && CJS_ONLY=1 npm run build && c8 --exclude dist --exclude test -r text -r html -r lcov mocha && node support/specsplit.mjs",
|
|
41
|
+
"test": "npm run lint && cross-env CJS_ONLY=1 npm run build && c8 --exclude dist --exclude test -r text -r html -r lcov mocha && node support/specsplit.mjs",
|
|
32
42
|
"doc": "node support/build_doc.mjs",
|
|
33
43
|
"gh-doc": "npm run doc && gh-pages -d apidoc -f",
|
|
34
44
|
"demo": "npm run lint && node support/build_demo.mjs",
|
|
@@ -47,7 +57,7 @@
|
|
|
47
57
|
"dependencies": {
|
|
48
58
|
"argparse": "^2.0.1",
|
|
49
59
|
"entities": "^4.4.0",
|
|
50
|
-
"linkify-it": "^5.0.
|
|
60
|
+
"linkify-it": "^5.0.1",
|
|
51
61
|
"mdurl": "^2.0.0",
|
|
52
62
|
"punycode.js": "^2.3.1",
|
|
53
63
|
"uc.micro": "^2.1.0"
|
|
@@ -61,6 +71,7 @@
|
|
|
61
71
|
"benchmark": "~2.1.0",
|
|
62
72
|
"c8": "^8.0.1",
|
|
63
73
|
"chai": "^4.2.0",
|
|
74
|
+
"cross-env": "^7.0.3",
|
|
64
75
|
"eslint": "^8.4.1",
|
|
65
76
|
"eslint-config-standard": "^17.1.0",
|
|
66
77
|
"express": "^4.14.0",
|
|
@@ -1,3 +1,10 @@
|
|
|
1
|
+
Changes in [41.6.0](https://github.com/matrix-org/matrix-js-sdk/releases/tag/v41.6.0) (2026-05-26)
|
|
2
|
+
==================================================================================================
|
|
3
|
+
## 🐛 Bug Fixes
|
|
4
|
+
|
|
5
|
+
* Throw sane error on completeLoginOnNewDevice IdP rejection ([#5321](https://github.com/matrix-org/matrix-js-sdk/pull/5321)). Contributed by @t3chguy.
|
|
6
|
+
|
|
7
|
+
|
|
1
8
|
Changes in [41.5.0](https://github.com/matrix-org/matrix-js-sdk/releases/tag/v41.5.0) (2026-05-12)
|
|
2
9
|
==================================================================================================
|
|
3
10
|
## ✨ Features
|
package/npm-shrinkwrap.json
CHANGED
|
@@ -1,24 +1,24 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@openclaw/matrix",
|
|
3
|
-
"version": "2026.5.
|
|
3
|
+
"version": "2026.5.28-beta.2",
|
|
4
4
|
"lockfileVersion": 3,
|
|
5
5
|
"requires": true,
|
|
6
6
|
"packages": {
|
|
7
7
|
"": {
|
|
8
8
|
"name": "@openclaw/matrix",
|
|
9
|
-
"version": "2026.5.
|
|
9
|
+
"version": "2026.5.28-beta.2",
|
|
10
10
|
"dependencies": {
|
|
11
11
|
"@matrix-org/matrix-sdk-crypto-nodejs": "0.4.0",
|
|
12
12
|
"@matrix-org/matrix-sdk-crypto-wasm": "18.3.0",
|
|
13
13
|
"fake-indexeddb": "6.2.5",
|
|
14
|
-
"markdown-it": "14.
|
|
15
|
-
"matrix-js-sdk": "41.6.0
|
|
14
|
+
"markdown-it": "14.2.0",
|
|
15
|
+
"matrix-js-sdk": "41.6.0",
|
|
16
16
|
"music-metadata": "11.12.3",
|
|
17
17
|
"typebox": "1.1.38",
|
|
18
18
|
"zod": "4.4.3"
|
|
19
19
|
},
|
|
20
20
|
"peerDependencies": {
|
|
21
|
-
"openclaw": ">=2026.5.
|
|
21
|
+
"openclaw": ">=2026.5.28-beta.2"
|
|
22
22
|
},
|
|
23
23
|
"peerDependenciesMeta": {
|
|
24
24
|
"openclaw": {
|
|
@@ -262,9 +262,19 @@
|
|
|
262
262
|
}
|
|
263
263
|
},
|
|
264
264
|
"node_modules/linkify-it": {
|
|
265
|
-
"version": "5.0.
|
|
266
|
-
"resolved": "https://registry.npmjs.org/linkify-it/-/linkify-it-5.0.
|
|
267
|
-
"integrity": "sha512-
|
|
265
|
+
"version": "5.0.1",
|
|
266
|
+
"resolved": "https://registry.npmjs.org/linkify-it/-/linkify-it-5.0.1.tgz",
|
|
267
|
+
"integrity": "sha512-wVoTjP4Q6R0NW5hiZkVJaFZPWgtXfoGF+6LucL3/FtiNjmcHhYjEr5f1Kqjirc1nBW07J/ZuRFumqr2oqccEWg==",
|
|
268
|
+
"funding": [
|
|
269
|
+
{
|
|
270
|
+
"type": "github",
|
|
271
|
+
"url": "https://github.com/sponsors/puzrin"
|
|
272
|
+
},
|
|
273
|
+
{
|
|
274
|
+
"type": "github",
|
|
275
|
+
"url": "https://github.com/sponsors/markdown-it"
|
|
276
|
+
}
|
|
277
|
+
],
|
|
268
278
|
"license": "MIT",
|
|
269
279
|
"dependencies": {
|
|
270
280
|
"uc.micro": "^2.0.0"
|
|
@@ -284,14 +294,24 @@
|
|
|
284
294
|
}
|
|
285
295
|
},
|
|
286
296
|
"node_modules/markdown-it": {
|
|
287
|
-
"version": "14.
|
|
288
|
-
"resolved": "https://registry.npmjs.org/markdown-it/-/markdown-it-14.
|
|
289
|
-
"integrity": "sha512-
|
|
297
|
+
"version": "14.2.0",
|
|
298
|
+
"resolved": "https://registry.npmjs.org/markdown-it/-/markdown-it-14.2.0.tgz",
|
|
299
|
+
"integrity": "sha512-1TGiQiJVRQ3NPmZH6sx5Cfnmg6GQm9jvC1ch4TK511NjSJvjzKLzn5pPfZRNZkRPZP0HqCioSndqH8v2nRaWVQ==",
|
|
300
|
+
"funding": [
|
|
301
|
+
{
|
|
302
|
+
"type": "github",
|
|
303
|
+
"url": "https://github.com/sponsors/puzrin"
|
|
304
|
+
},
|
|
305
|
+
{
|
|
306
|
+
"type": "github",
|
|
307
|
+
"url": "https://github.com/sponsors/markdown-it"
|
|
308
|
+
}
|
|
309
|
+
],
|
|
290
310
|
"license": "MIT",
|
|
291
311
|
"dependencies": {
|
|
292
312
|
"argparse": "^2.0.1",
|
|
293
313
|
"entities": "^4.4.0",
|
|
294
|
-
"linkify-it": "^5.0.
|
|
314
|
+
"linkify-it": "^5.0.1",
|
|
295
315
|
"mdurl": "^2.0.0",
|
|
296
316
|
"punycode.js": "^2.3.1",
|
|
297
317
|
"uc.micro": "^2.1.0"
|
|
@@ -307,9 +327,9 @@
|
|
|
307
327
|
"license": "Apache-2.0"
|
|
308
328
|
},
|
|
309
329
|
"node_modules/matrix-js-sdk": {
|
|
310
|
-
"version": "41.6.0
|
|
311
|
-
"resolved": "https://registry.npmjs.org/matrix-js-sdk/-/matrix-js-sdk-41.6.0
|
|
312
|
-
"integrity": "sha512-
|
|
330
|
+
"version": "41.6.0",
|
|
331
|
+
"resolved": "https://registry.npmjs.org/matrix-js-sdk/-/matrix-js-sdk-41.6.0.tgz",
|
|
332
|
+
"integrity": "sha512-FOEQBE9i3I+yRymMzKdDO5ptonawqrbtwxSqlkkpqaiFRnsA5zplaPZozdukt+IjBTuE2KceFY+bjFXiNi/+Eg==",
|
|
313
333
|
"license": "Apache-2.0",
|
|
314
334
|
"dependencies": {
|
|
315
335
|
"@babel/runtime": "^7.12.5",
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@openclaw/matrix",
|
|
3
|
-
"version": "2026.5.
|
|
3
|
+
"version": "2026.5.28-beta.2",
|
|
4
4
|
"description": "OpenClaw Matrix channel plugin for rooms and direct messages.",
|
|
5
5
|
"repository": {
|
|
6
6
|
"type": "git",
|
|
@@ -11,14 +11,14 @@
|
|
|
11
11
|
"@matrix-org/matrix-sdk-crypto-nodejs": "0.4.0",
|
|
12
12
|
"@matrix-org/matrix-sdk-crypto-wasm": "18.3.0",
|
|
13
13
|
"fake-indexeddb": "6.2.5",
|
|
14
|
-
"markdown-it": "14.
|
|
15
|
-
"matrix-js-sdk": "41.6.0
|
|
14
|
+
"markdown-it": "14.2.0",
|
|
15
|
+
"matrix-js-sdk": "41.6.0",
|
|
16
16
|
"music-metadata": "11.12.3",
|
|
17
17
|
"typebox": "1.1.38",
|
|
18
18
|
"zod": "4.4.3"
|
|
19
19
|
},
|
|
20
20
|
"peerDependencies": {
|
|
21
|
-
"openclaw": ">=2026.5.
|
|
21
|
+
"openclaw": ">=2026.5.28-beta.2"
|
|
22
22
|
},
|
|
23
23
|
"peerDependenciesMeta": {
|
|
24
24
|
"openclaw": {
|
|
@@ -84,10 +84,10 @@
|
|
|
84
84
|
"allowInvalidConfigRecovery": true
|
|
85
85
|
},
|
|
86
86
|
"compat": {
|
|
87
|
-
"pluginApi": ">=2026.5.
|
|
87
|
+
"pluginApi": ">=2026.5.28-beta.2"
|
|
88
88
|
},
|
|
89
89
|
"build": {
|
|
90
|
-
"openclawVersion": "2026.5.
|
|
90
|
+
"openclawVersion": "2026.5.28-beta.2"
|
|
91
91
|
},
|
|
92
92
|
"release": {
|
|
93
93
|
"publishToClawHub": true,
|
|
@@ -1,109 +0,0 @@
|
|
|
1
|
-
import { t as getMatrixRuntime } from "./runtime-6S3DNFNv.js";
|
|
2
|
-
import { format } from "node:util";
|
|
3
|
-
import { redactSensitiveText } from "openclaw/plugin-sdk/logging-core";
|
|
4
|
-
//#region extensions/matrix/src/matrix/sdk/logger.ts
|
|
5
|
-
function noop() {}
|
|
6
|
-
let forceConsoleLogging = false;
|
|
7
|
-
function setMatrixConsoleLogging(enabled) {
|
|
8
|
-
forceConsoleLogging = enabled;
|
|
9
|
-
}
|
|
10
|
-
function resolveRuntimeLogger(module) {
|
|
11
|
-
if (forceConsoleLogging) return null;
|
|
12
|
-
try {
|
|
13
|
-
return getMatrixRuntime().logging.getChildLogger({ module: `matrix:${module}` });
|
|
14
|
-
} catch {
|
|
15
|
-
return null;
|
|
16
|
-
}
|
|
17
|
-
}
|
|
18
|
-
function formatMessage(module, messageOrObject) {
|
|
19
|
-
if (messageOrObject.length === 0) return `[${module}]`;
|
|
20
|
-
return redactSensitiveText(`[${module}] ${format(...messageOrObject)}`);
|
|
21
|
-
}
|
|
22
|
-
var ConsoleLogger = class {
|
|
23
|
-
emit(level, module, ...messageOrObject) {
|
|
24
|
-
const runtimeLogger = resolveRuntimeLogger(module);
|
|
25
|
-
const message = formatMessage(module, messageOrObject);
|
|
26
|
-
if (runtimeLogger) {
|
|
27
|
-
if (level === "debug") {
|
|
28
|
-
runtimeLogger.debug?.(message);
|
|
29
|
-
return;
|
|
30
|
-
}
|
|
31
|
-
runtimeLogger[level](message);
|
|
32
|
-
return;
|
|
33
|
-
}
|
|
34
|
-
if (level === "debug") {
|
|
35
|
-
console.debug(message);
|
|
36
|
-
return;
|
|
37
|
-
}
|
|
38
|
-
console[level](message);
|
|
39
|
-
}
|
|
40
|
-
trace(module, ...messageOrObject) {
|
|
41
|
-
this.emit("debug", module, ...messageOrObject);
|
|
42
|
-
}
|
|
43
|
-
debug(module, ...messageOrObject) {
|
|
44
|
-
this.emit("debug", module, ...messageOrObject);
|
|
45
|
-
}
|
|
46
|
-
info(module, ...messageOrObject) {
|
|
47
|
-
this.emit("info", module, ...messageOrObject);
|
|
48
|
-
}
|
|
49
|
-
warn(module, ...messageOrObject) {
|
|
50
|
-
this.emit("warn", module, ...messageOrObject);
|
|
51
|
-
}
|
|
52
|
-
error(module, ...messageOrObject) {
|
|
53
|
-
this.emit("error", module, ...messageOrObject);
|
|
54
|
-
}
|
|
55
|
-
};
|
|
56
|
-
let activeLogger = new ConsoleLogger();
|
|
57
|
-
const LogService = {
|
|
58
|
-
setLogger(logger) {
|
|
59
|
-
activeLogger = logger;
|
|
60
|
-
},
|
|
61
|
-
trace(module, ...messageOrObject) {
|
|
62
|
-
activeLogger.trace(module, ...messageOrObject);
|
|
63
|
-
},
|
|
64
|
-
debug(module, ...messageOrObject) {
|
|
65
|
-
activeLogger.debug(module, ...messageOrObject);
|
|
66
|
-
},
|
|
67
|
-
info(module, ...messageOrObject) {
|
|
68
|
-
activeLogger.info(module, ...messageOrObject);
|
|
69
|
-
},
|
|
70
|
-
warn(module, ...messageOrObject) {
|
|
71
|
-
activeLogger.warn(module, ...messageOrObject);
|
|
72
|
-
},
|
|
73
|
-
error(module, ...messageOrObject) {
|
|
74
|
-
activeLogger.error(module, ...messageOrObject);
|
|
75
|
-
}
|
|
76
|
-
};
|
|
77
|
-
//#endregion
|
|
78
|
-
//#region extensions/matrix/src/matrix/startup-abort.ts
|
|
79
|
-
function createMatrixStartupAbortError() {
|
|
80
|
-
const error = /* @__PURE__ */ new Error("Matrix startup aborted");
|
|
81
|
-
error.name = "AbortError";
|
|
82
|
-
return error;
|
|
83
|
-
}
|
|
84
|
-
function throwIfMatrixStartupAborted(abortSignal) {
|
|
85
|
-
if (abortSignal?.aborted === true) throw createMatrixStartupAbortError();
|
|
86
|
-
}
|
|
87
|
-
function isMatrixStartupAbortError(error) {
|
|
88
|
-
return error instanceof Error && error.name === "AbortError";
|
|
89
|
-
}
|
|
90
|
-
async function awaitMatrixStartupWithAbort(promise, abortSignal) {
|
|
91
|
-
if (!abortSignal) return await promise;
|
|
92
|
-
if (abortSignal.aborted) throw createMatrixStartupAbortError();
|
|
93
|
-
return await new Promise((resolve, reject) => {
|
|
94
|
-
const onAbort = () => {
|
|
95
|
-
abortSignal.removeEventListener("abort", onAbort);
|
|
96
|
-
reject(createMatrixStartupAbortError());
|
|
97
|
-
};
|
|
98
|
-
abortSignal.addEventListener("abort", onAbort, { once: true });
|
|
99
|
-
promise.then((value) => {
|
|
100
|
-
abortSignal.removeEventListener("abort", onAbort);
|
|
101
|
-
resolve(value);
|
|
102
|
-
}, (error) => {
|
|
103
|
-
abortSignal.removeEventListener("abort", onAbort);
|
|
104
|
-
reject(error);
|
|
105
|
-
});
|
|
106
|
-
});
|
|
107
|
-
}
|
|
108
|
-
//#endregion
|
|
109
|
-
export { ConsoleLogger as a, setMatrixConsoleLogging as c, throwIfMatrixStartupAborted as i, createMatrixStartupAbortError as n, LogService as o, isMatrixStartupAbortError as r, noop as s, awaitMatrixStartupWithAbort as t };
|
package/dist/test-api.js
DELETED