@openclaw/lobster 2026.8.1 → 2026.8.33
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/node_modules/@clawdbot/lobster/node_modules/fast-uri/.github/workflows/ci.yml +1 -1
- package/node_modules/@clawdbot/lobster/node_modules/fast-uri/.github/workflows/lock-threads.yml +1 -1
- package/node_modules/@clawdbot/lobster/node_modules/fast-uri/SECURITY.md +6 -1
- package/node_modules/@clawdbot/lobster/node_modules/fast-uri/benchmark/benchmark.mjs +71 -0
- package/node_modules/@clawdbot/lobster/node_modules/fast-uri/index.js +223 -43
- package/node_modules/@clawdbot/lobster/node_modules/fast-uri/lib/schemes.js +384 -7
- package/node_modules/@clawdbot/lobster/node_modules/fast-uri/lib/utils.js +310 -89
- package/node_modules/@clawdbot/lobster/node_modules/fast-uri/package.json +1 -1
- package/node_modules/@clawdbot/lobster/node_modules/fast-uri/test/component-safe-serialization.test.js +163 -0
- package/node_modules/@clawdbot/lobster/node_modules/fast-uri/test/equal.test.js +43 -3
- package/node_modules/@clawdbot/lobster/node_modules/fast-uri/test/fixtures/uri-js-parse.json +24 -1
- package/node_modules/@clawdbot/lobster/node_modules/fast-uri/test/fixtures/uri-js-serialize.json +23 -1
- package/node_modules/@clawdbot/lobster/node_modules/fast-uri/test/ipv6-canonical.test.js +34 -0
- package/node_modules/@clawdbot/lobster/node_modules/fast-uri/test/ipv6-validation.test.js +154 -0
- package/node_modules/@clawdbot/lobster/node_modules/fast-uri/test/malformed-percent.test.js +77 -0
- package/node_modules/@clawdbot/lobster/node_modules/fast-uri/test/malformed-urn.test.js +61 -0
- package/node_modules/@clawdbot/lobster/node_modules/fast-uri/test/parse.test.js +145 -0
- package/node_modules/@clawdbot/lobster/node_modules/fast-uri/test/reserved-path-normalization.test.js +109 -0
- package/node_modules/@clawdbot/lobster/node_modules/fast-uri/test/scheme-validation.test.js +122 -0
- package/node_modules/@clawdbot/lobster/node_modules/fast-uri/test/security-normalization.test.js +101 -0
- package/node_modules/@clawdbot/lobster/node_modules/fast-uri/test/security-utf8-encoding.test.js +0 -0
- package/node_modules/@clawdbot/lobster/node_modules/fast-uri/test/security.test.js +75 -3
- package/node_modules/@clawdbot/lobster/node_modules/fast-uri/test/serialize.test.js +144 -0
- package/node_modules/@clawdbot/lobster/node_modules/fast-uri/test/uri-js-compatibility.test.js +0 -3
- package/node_modules/@clawdbot/lobster/node_modules/fast-uri/test/uri-js.test.js +3 -3
- package/node_modules/@clawdbot/lobster/node_modules/fast-uri/test/urn-full-input.test.js +29 -0
- package/node_modules/@clawdbot/lobster/node_modules/fast-uri/test/websocket-query-preservation.test.js +24 -0
- package/node_modules/@clawdbot/lobster/node_modules/fast-uri/types/index.d.ts +4 -0
- package/node_modules/@clawdbot/lobster/node_modules/fast-uri/types/index.tst.ts +16 -0
- package/node_modules/typebox/build/format/email.mjs +1 -1
- package/node_modules/typebox/build/format/idna/idn-hostname.mjs +19 -1
- package/node_modules/typebox/package.json +1 -1
- package/package.json +5 -5
|
@@ -13,3 +13,19 @@ const parsed2 = uri.parse('foo', {
|
|
|
13
13
|
})
|
|
14
14
|
|
|
15
15
|
expect(parsed2).type.toBe<URIComponent>()
|
|
16
|
+
|
|
17
|
+
const mailtoComponent: URIComponent = {
|
|
18
|
+
scheme: 'mailto',
|
|
19
|
+
to: ['user@example.org'],
|
|
20
|
+
subject: 'Hello',
|
|
21
|
+
body: 'Message',
|
|
22
|
+
headers: { cc: 'other@example.org' }
|
|
23
|
+
}
|
|
24
|
+
|
|
25
|
+
expect(uri.serialize(mailtoComponent, { unicodeSupport: true })).type.toBe<string>()
|
|
26
|
+
|
|
27
|
+
const parsedMailto = uri.parse('mailto:user@example.org')
|
|
28
|
+
expect(parsedMailto.to).type.toBe<string[] | undefined>()
|
|
29
|
+
expect(parsedMailto.subject).type.toBe<string | undefined>()
|
|
30
|
+
expect(parsedMailto.body).type.toBe<string | undefined>()
|
|
31
|
+
expect(parsedMailto.headers).type.toBe<{ [hfname: string]: string } | undefined>()
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
const Email = /^(?:[a-z0-9!#$%&'*+/=?^_`{|}~-]+(?:\.[a-z0-9!#$%&'*+/=?^_`{|}~-]+)*|"(?:[^"\\]
|
|
1
|
+
const Email = /^(?:[a-z0-9!#$%&'*+/=?^_`{|}~-]+(?:\.[a-z0-9!#$%&'*+/=?^_`{|}~-]+)*|"(?:[^"\\]|\\[\x20-\x7e])*")@(?:[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?(?:\.[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?)*|\[(?:IPv6:[a-f0-9:]+|(?:25[0-5]|2[0-4][0-9]|1[0-9]{2}|[1-9]?[0-9])(?:\.(?:25[0-5]|2[0-4][0-9]|1[0-9]{2}|[1-9]?[0-9])){3})\])$/i;
|
|
2
2
|
/**
|
|
3
3
|
* Returns true if the value is an Email
|
|
4
4
|
* @specification https://datatracker.ietf.org/doc/html/rfc5322
|
|
@@ -1,6 +1,9 @@
|
|
|
1
1
|
import * as FormatBidi from './format/bidi.mjs';
|
|
2
2
|
import * as LabelUnicode from './label/unicode.mjs';
|
|
3
3
|
import * as LabelPuny from './label/puny.mjs';
|
|
4
|
+
// ------------------------------------------------------------------
|
|
5
|
+
// IsLabel
|
|
6
|
+
// ------------------------------------------------------------------
|
|
4
7
|
function IsValidLabelLength(value) {
|
|
5
8
|
return value.length > 0 && value.length <= 63;
|
|
6
9
|
}
|
|
@@ -8,9 +11,24 @@ function IsLabel(value) {
|
|
|
8
11
|
return IsValidLabelLength(value) && (LabelPuny.IsPunyLabel(value) ||
|
|
9
12
|
LabelUnicode.IsUnicodeLabel(value));
|
|
10
13
|
}
|
|
14
|
+
// ------------------------------------------------------------------
|
|
15
|
+
// NormalizeHostname
|
|
16
|
+
//
|
|
17
|
+
// Normalizes a hostname for label validation. Normalizes for NFC
|
|
18
|
+
// such that equivalent codepoint sequences can be uniformly
|
|
19
|
+
// compared. It also removes codepoints that IDNA mapping ignores,
|
|
20
|
+
// and converts full stop variants to ASCII '.' so the hostname can
|
|
21
|
+
// be split into labels.
|
|
22
|
+
// ------------------------------------------------------------------
|
|
11
23
|
function NormalizeHostname(value) {
|
|
12
|
-
return value
|
|
24
|
+
return value
|
|
25
|
+
.normalize('NFC')
|
|
26
|
+
.replace(/[\u00ad\u034f\u180b-\u180d\u200b\ufe00-\ufe0f\u{e0100}-\u{e01ef}]/gu, '') // RE_IGNORED_MAPPING
|
|
27
|
+
.replace(/[\u002E\u3002\uFF0E\uFF61]/g, '.'); // RE_FULL_STOP_MAPPING
|
|
13
28
|
}
|
|
29
|
+
// ------------------------------------------------------------------
|
|
30
|
+
// IsIdnHostname
|
|
31
|
+
// ------------------------------------------------------------------
|
|
14
32
|
export function IsIdnHostname(value) {
|
|
15
33
|
if (value.length === 0 || value.includes(' '))
|
|
16
34
|
return false;
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@openclaw/lobster",
|
|
3
|
-
"version": "2026.8.
|
|
3
|
+
"version": "2026.8.33",
|
|
4
4
|
"description": "Lobster workflow tool plugin for typed pipelines and resumable approvals.",
|
|
5
5
|
"repository": {
|
|
6
6
|
"type": "git",
|
|
@@ -9,7 +9,7 @@
|
|
|
9
9
|
"type": "module",
|
|
10
10
|
"dependencies": {
|
|
11
11
|
"@clawdbot/lobster": "2026.6.11",
|
|
12
|
-
"typebox": "1.3.
|
|
12
|
+
"typebox": "1.3.17"
|
|
13
13
|
},
|
|
14
14
|
"openclaw": {
|
|
15
15
|
"extensions": [
|
|
@@ -21,10 +21,10 @@
|
|
|
21
21
|
"minHostVersion": ">=2026.4.25"
|
|
22
22
|
},
|
|
23
23
|
"compat": {
|
|
24
|
-
"pluginApi": ">=2026.8.
|
|
24
|
+
"pluginApi": ">=2026.8.33"
|
|
25
25
|
},
|
|
26
26
|
"build": {
|
|
27
|
-
"openclawVersion": "2026.8.
|
|
27
|
+
"openclawVersion": "2026.8.33"
|
|
28
28
|
},
|
|
29
29
|
"release": {
|
|
30
30
|
"publishToClawHub": true,
|
|
@@ -41,7 +41,7 @@
|
|
|
41
41
|
"SKILL.md"
|
|
42
42
|
],
|
|
43
43
|
"peerDependencies": {
|
|
44
|
-
"openclaw": ">=2026.8.
|
|
44
|
+
"openclaw": ">=2026.8.33"
|
|
45
45
|
},
|
|
46
46
|
"peerDependenciesMeta": {
|
|
47
47
|
"openclaw": {
|