oceanbus 0.2.8 → 0.3.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.
- package/README.md +1 -1
- package/dist/agent/identity.d.ts.map +1 -1
- package/dist/agent/identity.js +13 -1
- package/dist/agent/identity.js.map +1 -1
- package/dist/client/errors.d.ts +4 -2
- package/dist/client/errors.d.ts.map +1 -1
- package/dist/client/errors.js +8 -3
- package/dist/client/errors.js.map +1 -1
- package/dist/client/http-client.d.ts.map +1 -1
- package/dist/client/http-client.js +9 -3
- package/dist/client/http-client.js.map +1 -1
- package/dist/crypto/pow.d.ts +12 -4
- package/dist/crypto/pow.d.ts.map +1 -1
- package/dist/crypto/pow.js +57 -9
- package/dist/crypto/pow.js.map +1 -1
- package/dist/messaging/send.js +1 -1
- package/dist/messaging/send.js.map +1 -1
- package/dist/types/api.d.ts +2 -1
- package/dist/types/api.d.ts.map +1 -1
- package/dist/types/api.js +3 -1
- package/dist/types/api.js.map +1 -1
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -116,7 +116,7 @@ Organized by what you need — not by module structure.
|
|
|
116
116
|
| You want to... | Use this | Details |
|
|
117
117
|
|---------------|----------|---------|
|
|
118
118
|
| **Get a global identity** | `ob.register()` → `ob.getOpenId()` | Permanent address on the OceanBus network. No domain needed. |
|
|
119
|
-
| **Send messages** | `ob.send(openid, text)` |
|
|
119
|
+
| **Send messages** | `ob.send(openid, text)` | 128k-char limit. End-to-end encrypted (XChaCha20-Poly1305). |
|
|
120
120
|
| **Receive messages in real-time** | `ob.startListening(callback)` | Messages arrive within seconds. No refresh needed. |
|
|
121
121
|
| **Publish yourself** | `ob.publish({ tags, description })` | One line. Appears in Yellow Pages. Auto-heartbeat. |
|
|
122
122
|
| **Find services** | `ob.l1.yellowPages.discover(tags)` | Discover agents by tag. "Which agents do food delivery?" |
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"identity.d.ts","sourceRoot":"","sources":["../../src/agent/identity.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAC;AACnD,OAAO,KAAK,EAAE,gBAAgB,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;
|
|
1
|
+
{"version":3,"file":"identity.d.ts","sourceRoot":"","sources":["../../src/agent/identity.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAC;AACnD,OAAO,KAAK,EAAE,gBAAgB,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAQ/E,qBAAa,oBAAoB;IAC/B,OAAO,CAAC,IAAI,CAAa;IACzB,OAAO,CAAC,MAAM,CAAgB;IAC9B,OAAO,CAAC,OAAO,CAAgB;IAC/B,OAAO,CAAC,SAAS,CAA6C;IAC9D,OAAO,CAAC,WAAW,CAAuB;gBAE9B,IAAI,EAAE,UAAU,EAAE,MAAM,CAAC,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM;IAM/D,SAAS,IAAI,MAAM,GAAG,IAAI;IAI1B,UAAU,IAAI,MAAM,GAAG,IAAI;IAI3B,eAAe,IAAI,MAAM,GAAG,IAAI;IAIhC,gBAAgB,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,GAAG,IAAI;IAMlD,QAAQ,IAAI,OAAO,CAAC,gBAAgB,CAAC;IAwBrC,MAAM,IAAI,OAAO,CAAC,UAAU,CAAC;IAO7B,SAAS,IAAI,OAAO,CAAC,MAAM,CAAC;IAM5B,gBAAgB,IAAI,OAAO,CAAC,UAAU,CAAC;IAQ7C,OAAO,IAAI,UAAU;IAWrB,SAAS,CAAC,KAAK,EAAE,UAAU,GAAG,IAAI;IAOlC,aAAa,CAAC,GAAG,EAAE,OAAO,gBAAgB,EAAE,UAAU,GAAG,IAAI;IAI7D,OAAO,CAAC,UAAU;CAKnB"}
|
package/dist/agent/identity.js
CHANGED
|
@@ -2,6 +2,7 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.AgentIdentityManager = void 0;
|
|
4
4
|
const errors_1 = require("../client/errors");
|
|
5
|
+
const pow_1 = require("../crypto/pow");
|
|
5
6
|
class AgentIdentityManager {
|
|
6
7
|
http;
|
|
7
8
|
apiKey;
|
|
@@ -29,8 +30,19 @@ class AgentIdentityManager {
|
|
|
29
30
|
this.openidCache = null; // invalidate openid cache
|
|
30
31
|
}
|
|
31
32
|
async register() {
|
|
32
|
-
|
|
33
|
+
// First attempt: server may respond with 401 + POW challenge
|
|
34
|
+
let res = await this.http.post('/agents/register', {});
|
|
35
|
+
// POW challenge: HTTP 401 with data.challenge.nonce
|
|
36
|
+
const challengeData = res.data?.challenge;
|
|
37
|
+
if (challengeData?.nonce) {
|
|
38
|
+
const { nonce } = challengeData;
|
|
39
|
+
const { solution } = (0, pow_1.computeHashcash)(nonce);
|
|
40
|
+
res = await this.http.post('/agents/register', { challenge: nonce, solution });
|
|
41
|
+
}
|
|
33
42
|
const data = res.data;
|
|
43
|
+
if (!data.agent_id || !data.api_key) {
|
|
44
|
+
throw new errors_1.OceanBusError('Registration failed: no agent_id or api_key in response');
|
|
45
|
+
}
|
|
34
46
|
this.agentId = data.agent_id;
|
|
35
47
|
this.apiKey = data.api_key;
|
|
36
48
|
this.openidCache = null;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"identity.js","sourceRoot":"","sources":["../../src/agent/identity.ts"],"names":[],"mappings":";;;AAEA,6CAAiD;
|
|
1
|
+
{"version":3,"file":"identity.js","sourceRoot":"","sources":["../../src/agent/identity.ts"],"names":[],"mappings":"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"}
|
package/dist/client/errors.d.ts
CHANGED
|
@@ -1,9 +1,11 @@
|
|
|
1
1
|
export declare class ApiError extends Error {
|
|
2
2
|
code: number;
|
|
3
3
|
httpStatus: number;
|
|
4
|
-
|
|
5
|
-
|
|
4
|
+
retryAfterSeconds: number | null;
|
|
5
|
+
constructor(code: number, msg: string, httpStatus?: number, retryAfterSeconds?: number | null);
|
|
6
|
+
static fromResponse(code: number, msg: string, httpStatus?: number, retryAfterSeconds?: number | null): ApiError;
|
|
6
7
|
isAuthError(): boolean;
|
|
8
|
+
isRateLimited(): boolean;
|
|
7
9
|
isBusinessError(): boolean;
|
|
8
10
|
}
|
|
9
11
|
export declare class NetworkError extends Error {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../../src/client/errors.ts"],"names":[],"mappings":"AAEA,qBAAa,QAAS,SAAQ,KAAK;IACjC,IAAI,EAAE,MAAM,CAAC;IACb,UAAU,EAAE,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../../src/client/errors.ts"],"names":[],"mappings":"AAEA,qBAAa,QAAS,SAAQ,KAAK;IACjC,IAAI,EAAE,MAAM,CAAC;IACb,UAAU,EAAE,MAAM,CAAC;IACnB,iBAAiB,EAAE,MAAM,GAAG,IAAI,CAAC;gBAErB,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,UAAU,GAAE,MAAY,EAAE,iBAAiB,GAAE,MAAM,GAAG,IAAW;IAQxG,MAAM,CAAC,YAAY,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,UAAU,GAAE,MAAY,EAAE,iBAAiB,GAAE,MAAM,GAAG,IAAW,GAAG,QAAQ;IAK3H,WAAW,IAAI,OAAO;IAItB,aAAa,IAAI,OAAO;IAIxB,eAAe,IAAI,OAAO;CAG3B;AAED,qBAAa,YAAa,SAAQ,KAAK;IACrC,aAAa,EAAE,KAAK,CAAC;gBAET,OAAO,EAAE,MAAM,EAAE,aAAa,EAAE,KAAK;CAKlD;AAED,qBAAa,aAAc,SAAQ,KAAK;gBAC1B,OAAO,EAAE,MAAM;CAI5B"}
|
package/dist/client/errors.js
CHANGED
|
@@ -5,19 +5,24 @@ const api_1 = require("../types/api");
|
|
|
5
5
|
class ApiError extends Error {
|
|
6
6
|
code;
|
|
7
7
|
httpStatus;
|
|
8
|
-
|
|
8
|
+
retryAfterSeconds;
|
|
9
|
+
constructor(code, msg, httpStatus = 200, retryAfterSeconds = null) {
|
|
9
10
|
super(msg);
|
|
10
11
|
this.name = 'ApiError';
|
|
11
12
|
this.code = code;
|
|
12
13
|
this.httpStatus = httpStatus;
|
|
14
|
+
this.retryAfterSeconds = retryAfterSeconds;
|
|
13
15
|
}
|
|
14
|
-
static fromResponse(code, msg, httpStatus = 200) {
|
|
16
|
+
static fromResponse(code, msg, httpStatus = 200, retryAfterSeconds = null) {
|
|
15
17
|
const message = api_1.ErrorMessages[code] || msg || 'unknown error';
|
|
16
|
-
return new ApiError(code, message, httpStatus);
|
|
18
|
+
return new ApiError(code, message, httpStatus, retryAfterSeconds);
|
|
17
19
|
}
|
|
18
20
|
isAuthError() {
|
|
19
21
|
return this.httpStatus === 401;
|
|
20
22
|
}
|
|
23
|
+
isRateLimited() {
|
|
24
|
+
return this.code === 1007;
|
|
25
|
+
}
|
|
21
26
|
isBusinessError() {
|
|
22
27
|
return this.httpStatus === 200 && this.code !== api_1.ErrorCode.SUCCESS;
|
|
23
28
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"errors.js","sourceRoot":"","sources":["../../src/client/errors.ts"],"names":[],"mappings":";;;AAAA,sCAAwD;AAExD,MAAa,QAAS,SAAQ,KAAK;IACjC,IAAI,CAAS;IACb,UAAU,CAAS;
|
|
1
|
+
{"version":3,"file":"errors.js","sourceRoot":"","sources":["../../src/client/errors.ts"],"names":[],"mappings":";;;AAAA,sCAAwD;AAExD,MAAa,QAAS,SAAQ,KAAK;IACjC,IAAI,CAAS;IACb,UAAU,CAAS;IACnB,iBAAiB,CAAgB;IAEjC,YAAY,IAAY,EAAE,GAAW,EAAE,aAAqB,GAAG,EAAE,oBAAmC,IAAI;QACtG,KAAK,CAAC,GAAG,CAAC,CAAC;QACX,IAAI,CAAC,IAAI,GAAG,UAAU,CAAC;QACvB,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QACjB,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC;QAC7B,IAAI,CAAC,iBAAiB,GAAG,iBAAiB,CAAC;IAC7C,CAAC;IAED,MAAM,CAAC,YAAY,CAAC,IAAY,EAAE,GAAW,EAAE,aAAqB,GAAG,EAAE,oBAAmC,IAAI;QAC9G,MAAM,OAAO,GAAG,mBAAa,CAAC,IAAI,CAAC,IAAI,GAAG,IAAI,eAAe,CAAC;QAC9D,OAAO,IAAI,QAAQ,CAAC,IAAI,EAAE,OAAO,EAAE,UAAU,EAAE,iBAAiB,CAAC,CAAC;IACpE,CAAC;IAED,WAAW;QACT,OAAO,IAAI,CAAC,UAAU,KAAK,GAAG,CAAC;IACjC,CAAC;IAED,aAAa;QACX,OAAO,IAAI,CAAC,IAAI,KAAK,IAAI,CAAC;IAC5B,CAAC;IAED,eAAe;QACb,OAAO,IAAI,CAAC,UAAU,KAAK,GAAG,IAAI,IAAI,CAAC,IAAI,KAAK,eAAS,CAAC,OAAO,CAAC;IACpE,CAAC;CACF;AA7BD,4BA6BC;AAED,MAAa,YAAa,SAAQ,KAAK;IACrC,aAAa,CAAQ;IAErB,YAAY,OAAe,EAAE,aAAoB;QAC/C,KAAK,CAAC,OAAO,CAAC,CAAC;QACf,IAAI,CAAC,IAAI,GAAG,cAAc,CAAC;QAC3B,IAAI,CAAC,aAAa,GAAG,aAAa,CAAC;IACrC,CAAC;CACF;AARD,oCAQC;AAED,MAAa,aAAc,SAAQ,KAAK;IACtC,YAAY,OAAe;QACzB,KAAK,CAAC,OAAO,CAAC,CAAC;QACf,IAAI,CAAC,IAAI,GAAG,eAAe,CAAC;IAC9B,CAAC;CACF;AALD,sCAKC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"http-client.d.ts","sourceRoot":"","sources":["../../src/client/http-client.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAChD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAElD,OAAO,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;AAEtC,KAAK,UAAU,GAAG,KAAK,GAAG,MAAM,GAAG,KAAK,GAAG,QAAQ,GAAG,OAAO,CAAC;AAE9D,MAAM,WAAW,cAAc;IAC7B,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAAC,CAAC;CACrD;AAED,qBAAa,UAAU;IACrB,OAAO,CAAC,OAAO,CAAS;IACxB,OAAO,CAAC,OAAO,CAAS;IACxB,WAAW,EAAE,WAAW,CAAC;gBAEb,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,UAAU;IAM/C,OAAO,CAAC,GAAG;IAIX,OAAO,CAAC,GAAG;IA2BL,OAAO,CAAC,CAAC,GAAG,OAAO,EACvB,MAAM,EAAE,UAAU,EAClB,IAAI,EAAE,MAAM,EACZ,IAAI,CAAC,EAAE,OAAO,EACd,IAAI,GAAE,cAAmB,GACxB,OAAO,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"http-client.d.ts","sourceRoot":"","sources":["../../src/client/http-client.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAChD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAElD,OAAO,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;AAEtC,KAAK,UAAU,GAAG,KAAK,GAAG,MAAM,GAAG,KAAK,GAAG,QAAQ,GAAG,OAAO,CAAC;AAE9D,MAAM,WAAW,cAAc;IAC7B,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAAC,CAAC;CACrD;AAED,qBAAa,UAAU;IACrB,OAAO,CAAC,OAAO,CAAS;IACxB,OAAO,CAAC,OAAO,CAAS;IACxB,WAAW,EAAE,WAAW,CAAC;gBAEb,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,UAAU;IAM/C,OAAO,CAAC,GAAG;IAIX,OAAO,CAAC,GAAG;IA2BL,OAAO,CAAC,CAAC,GAAG,OAAO,EACvB,MAAM,EAAE,UAAU,EAClB,IAAI,EAAE,MAAM,EACZ,IAAI,CAAC,EAAE,OAAO,EACd,IAAI,GAAE,cAAmB,GACxB,OAAO,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC;IA4CpB,GAAG,CAAC,CAAC,GAAG,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,GAAE,cAAmB,GAAG,OAAO,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC;IAIlF,IAAI,CAAC,CAAC,GAAG,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,OAAO,EAAE,IAAI,GAAE,cAAmB,GAAG,OAAO,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC;IAInG,GAAG,CAAC,CAAC,GAAG,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,OAAO,EAAE,IAAI,GAAE,cAAmB,GAAG,OAAO,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC;IAIlG,GAAG,CAAC,CAAC,GAAG,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,GAAE,cAAmB,GAAG,OAAO,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC;CAGzF"}
|
|
@@ -96,9 +96,14 @@ class HttpClient {
|
|
|
96
96
|
const e = err;
|
|
97
97
|
throw new errors_1.NetworkError(`HTTP request failed: ${e.message}`, e);
|
|
98
98
|
}
|
|
99
|
-
// HTTP 401 =
|
|
99
|
+
// HTTP 401 with challenge data = POW required (registration flow)
|
|
100
|
+
// Return raw response so caller can extract nonce and compute solution
|
|
100
101
|
if (res.status === 401) {
|
|
101
|
-
|
|
102
|
+
const bodyData = res.body;
|
|
103
|
+
if (bodyData?.data?.challenge) {
|
|
104
|
+
return bodyData;
|
|
105
|
+
}
|
|
106
|
+
throw errors_1.ApiError.fromResponse(bodyData?.code ?? -1, bodyData?.msg ?? 'unauthorized', 401);
|
|
102
107
|
}
|
|
103
108
|
// Parse body as ApiResponse envelope
|
|
104
109
|
const bodyData = res.body;
|
|
@@ -107,7 +112,8 @@ class HttpClient {
|
|
|
107
112
|
}
|
|
108
113
|
// Business error (non-zero code)
|
|
109
114
|
if (bodyData.code !== 0) {
|
|
110
|
-
|
|
115
|
+
const retryAfter = res.status === 429 ? parseInt(res.headers['retry-after'], 10) || null : null;
|
|
116
|
+
throw errors_1.ApiError.fromResponse(bodyData.code, bodyData.msg, res.status, retryAfter);
|
|
111
117
|
}
|
|
112
118
|
return bodyData;
|
|
113
119
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"http-client.js","sourceRoot":"","sources":["../../src/client/http-client.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"http-client.js","sourceRoot":"","sources":["../../src/client/http-client.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,oDAAsC;AAGtC,qCAAkD;AAClD,mCAAsC;AAStC,MAAa,UAAU;IACb,OAAO,CAAS;IAChB,OAAO,CAAS;IACxB,WAAW,CAAc;IAEzB,YAAY,OAAe,EAAE,MAAkB;QAC7C,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;QAC3C,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC;QAC9B,IAAI,CAAC,WAAW,GAAG,IAAI,mBAAW,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;IACnD,CAAC;IAEO,GAAG,CAAC,IAAY;QACtB,OAAO,GAAG,IAAI,CAAC,OAAO,GAAG,IAAI,EAAE,CAAC;IAClC,CAAC;IAEO,GAAG,CAAC,MAAkB,EAAE,IAAY,EAAE,OAAuB,EAAE;QACrE,2DAA2D;QAC3D,IAAI,CAA4B,CAAC;QACjC,QAAQ,MAAM,EAAE,CAAC;YACf,KAAK,KAAK;gBAAK,CAAC,GAAI,OAA+C,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC;gBAAC,MAAM;YAC/F,KAAK,MAAM;gBAAI,CAAC,GAAI,OAA+C,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC;gBAAC,MAAM;YAChG,KAAK,KAAK;gBAAK,CAAC,GAAI,OAA+C,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC;gBAAC,MAAM;YAC/F,KAAK,QAAQ;gBAAE,CAAC,GAAI,OAA+C,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC;gBAAC,MAAM;YAClG,KAAK,OAAO;gBAAG,CAAC,GAAI,OAA+C,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC;gBAAC,MAAM;YACjG,OAAO,CAAC,CAAC,MAAM,IAAI,KAAK,CAAC,4BAA4B,MAAM,EAAE,CAAC,CAAC;QACjE,CAAC;QAED,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,EAAE,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,CAAC;QAE3C,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;YAChB,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,eAAe,EAAE,UAAU,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC;QACtD,CAAC;QAED,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC;YACf,KAAK,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC;gBAChD,IAAI,CAAC,KAAK,SAAS;oBAAE,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;YAC/C,CAAC;QACH,CAAC;QAED,OAAO,CAAC,CAAC;IACX,CAAC;IAED,KAAK,CAAC,OAAO,CACX,MAAkB,EAClB,IAAY,EACZ,IAAc,EACd,OAAuB,EAAE;QAEzB,MAAM,SAAS,GAAG,KAAK,IAA6B,EAAE;YACpD,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,MAAM,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;YAErC,IAAI,IAAI,KAAK,SAAS,IAAI,IAAI,KAAK,IAAI,EAAE,CAAC;gBACxC,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,IAAuB,CAAC,CAAC;YACtC,CAAC;YAED,IAAI,GAAqB,CAAC;YAC1B,IAAI,CAAC;gBACH,GAAG,GAAG,MAAM,CAAC,CAAC;YAChB,CAAC;YAAC,OAAO,GAAY,EAAE,CAAC;gBACtB,MAAM,CAAC,GAAG,GAAkC,CAAC;gBAC7C,MAAM,IAAI,qBAAY,CAAC,wBAAwB,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,CAAC;YACjE,CAAC;YAED,kEAAkE;YAClE,uEAAuE;YACvE,IAAI,GAAG,CAAC,MAAM,KAAK,GAAG,EAAE,CAAC;gBACvB,MAAM,QAAQ,GAAG,GAAG,CAAC,IAAI,CAAC;gBAC1B,IAAI,QAAQ,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC;oBAC9B,OAAO,QAA0B,CAAC;gBACpC,CAAC;gBACD,MAAM,iBAAQ,CAAC,YAAY,CAAC,QAAQ,EAAE,IAAI,IAAI,CAAC,CAAC,EAAE,QAAQ,EAAE,GAAG,IAAI,cAAc,EAAE,GAAG,CAAC,CAAC;YAC1F,CAAC;YAED,qCAAqC;YACrC,MAAM,QAAQ,GAAG,GAAG,CAAC,IAAI,CAAC;YAC1B,IAAI,CAAC,QAAQ,IAAI,OAAO,QAAQ,CAAC,IAAI,KAAK,WAAW,EAAE,CAAC;gBACtD,MAAM,IAAI,qBAAY,CAAC,sCAAsC,EAAE,IAAI,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YACtG,CAAC;YAED,iCAAiC;YACjC,IAAI,QAAQ,CAAC,IAAI,KAAK,CAAC,EAAE,CAAC;gBACxB,MAAM,UAAU,GAAG,GAAG,CAAC,MAAM,KAAK,GAAG,CAAC,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,OAAO,CAAC,aAAa,CAAW,EAAE,EAAE,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC;gBAC1G,MAAM,iBAAQ,CAAC,YAAY,CAAC,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAC,GAAG,EAAE,GAAG,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC;YACnF,CAAC;YAED,OAAO,QAA0B,CAAC;QACpC,CAAC,CAAC;QAEF,OAAO,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;IAC7C,CAAC;IAED,KAAK,CAAC,GAAG,CAAc,IAAY,EAAE,OAAuB,EAAE;QAC5D,OAAO,IAAI,CAAC,OAAO,CAAI,KAAK,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,CAAC,CAAC;IACvD,CAAC;IAED,KAAK,CAAC,IAAI,CAAc,IAAY,EAAE,IAAc,EAAE,OAAuB,EAAE;QAC7E,OAAO,IAAI,CAAC,OAAO,CAAI,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;IACnD,CAAC;IAED,KAAK,CAAC,GAAG,CAAc,IAAY,EAAE,IAAc,EAAE,OAAuB,EAAE;QAC5E,OAAO,IAAI,CAAC,OAAO,CAAI,KAAK,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;IAClD,CAAC;IAED,KAAK,CAAC,GAAG,CAAc,IAAY,EAAE,OAAuB,EAAE;QAC5D,OAAO,IAAI,CAAC,OAAO,CAAI,QAAQ,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,CAAC,CAAC;IAC1D,CAAC;CACF;AA1GD,gCA0GC"}
|
package/dist/crypto/pow.d.ts
CHANGED
|
@@ -1,5 +1,13 @@
|
|
|
1
|
-
/**
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
1
|
+
/**
|
|
2
|
+
* Compute Hashcash-style Proof of Work.
|
|
3
|
+
* Finds a solution such that SHA256(challenge + solution) starts with `difficulty` zeros.
|
|
4
|
+
*/
|
|
5
|
+
export declare function computeHashcash(challenge: string, difficulty?: number): {
|
|
6
|
+
solution: string;
|
|
7
|
+
hash: string;
|
|
8
|
+
};
|
|
9
|
+
/**
|
|
10
|
+
* Verify a Hashcash solution.
|
|
11
|
+
*/
|
|
12
|
+
export declare function verifyHashcash(challenge: string, solution: string, difficulty?: number): boolean;
|
|
5
13
|
//# sourceMappingURL=pow.d.ts.map
|
package/dist/crypto/pow.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pow.d.ts","sourceRoot":"","sources":["../../src/crypto/pow.ts"],"names":[],"mappings":"AAIA
|
|
1
|
+
{"version":3,"file":"pow.d.ts","sourceRoot":"","sources":["../../src/crypto/pow.ts"],"names":[],"mappings":"AAIA;;;GAGG;AACH,wBAAgB,eAAe,CAAC,SAAS,EAAE,MAAM,EAAE,UAAU,GAAE,MAA2B,GAAG;IAAE,QAAQ,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,CAU9H;AAED;;GAEG;AACH,wBAAgB,cAAc,CAAC,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,UAAU,GAAE,MAA2B,GAAG,OAAO,CAIpH"}
|
package/dist/crypto/pow.js
CHANGED
|
@@ -1,16 +1,64 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
+
}) : function(o, v) {
|
|
16
|
+
o["default"] = v;
|
|
17
|
+
});
|
|
18
|
+
var __importStar = (this && this.__importStar) || (function () {
|
|
19
|
+
var ownKeys = function(o) {
|
|
20
|
+
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
21
|
+
var ar = [];
|
|
22
|
+
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
23
|
+
return ar;
|
|
24
|
+
};
|
|
25
|
+
return ownKeys(o);
|
|
26
|
+
};
|
|
27
|
+
return function (mod) {
|
|
28
|
+
if (mod && mod.__esModule) return mod;
|
|
29
|
+
var result = {};
|
|
30
|
+
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
31
|
+
__setModuleDefault(result, mod);
|
|
32
|
+
return result;
|
|
33
|
+
};
|
|
34
|
+
})();
|
|
5
35
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
36
|
exports.computeHashcash = computeHashcash;
|
|
7
37
|
exports.verifyHashcash = verifyHashcash;
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
38
|
+
const crypto = __importStar(require("crypto"));
|
|
39
|
+
const DEFAULT_DIFFICULTY = 5; // 5 leading zeros: '00000...'
|
|
40
|
+
/**
|
|
41
|
+
* Compute Hashcash-style Proof of Work.
|
|
42
|
+
* Finds a solution such that SHA256(challenge + solution) starts with `difficulty` zeros.
|
|
43
|
+
*/
|
|
44
|
+
function computeHashcash(challenge, difficulty = DEFAULT_DIFFICULTY) {
|
|
45
|
+
const prefix = '0'.repeat(difficulty);
|
|
46
|
+
let solution = 0;
|
|
47
|
+
let hash = '';
|
|
48
|
+
while (true) {
|
|
49
|
+
hash = crypto.createHash('sha256').update(challenge + solution).digest('hex');
|
|
50
|
+
if (hash.startsWith(prefix))
|
|
51
|
+
break;
|
|
52
|
+
solution++;
|
|
53
|
+
}
|
|
54
|
+
return { solution: String(solution), hash };
|
|
11
55
|
}
|
|
12
|
-
/**
|
|
13
|
-
|
|
14
|
-
|
|
56
|
+
/**
|
|
57
|
+
* Verify a Hashcash solution.
|
|
58
|
+
*/
|
|
59
|
+
function verifyHashcash(challenge, solution, difficulty = DEFAULT_DIFFICULTY) {
|
|
60
|
+
const prefix = '0'.repeat(difficulty);
|
|
61
|
+
const hash = crypto.createHash('sha256').update(challenge + solution).digest('hex');
|
|
62
|
+
return hash.startsWith(prefix);
|
|
15
63
|
}
|
|
16
64
|
//# sourceMappingURL=pow.js.map
|
package/dist/crypto/pow.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pow.js","sourceRoot":"","sources":["../../src/crypto/pow.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"pow.js","sourceRoot":"","sources":["../../src/crypto/pow.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAQA,0CAUC;AAKD,wCAIC;AA3BD,+CAAiC;AAEjC,MAAM,kBAAkB,GAAG,CAAC,CAAC,CAAC,8BAA8B;AAE5D;;;GAGG;AACH,SAAgB,eAAe,CAAC,SAAiB,EAAE,aAAqB,kBAAkB;IACxF,MAAM,MAAM,GAAG,GAAG,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;IACtC,IAAI,QAAQ,GAAG,CAAC,CAAC;IACjB,IAAI,IAAI,GAAG,EAAE,CAAC;IACd,OAAO,IAAI,EAAE,CAAC;QACZ,IAAI,GAAG,MAAM,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,SAAS,GAAG,QAAQ,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QAC9E,IAAI,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC;YAAE,MAAM;QACnC,QAAQ,EAAE,CAAC;IACb,CAAC;IACD,OAAO,EAAE,QAAQ,EAAE,MAAM,CAAC,QAAQ,CAAC,EAAE,IAAI,EAAE,CAAC;AAC9C,CAAC;AAED;;GAEG;AACH,SAAgB,cAAc,CAAC,SAAiB,EAAE,QAAgB,EAAE,aAAqB,kBAAkB;IACzG,MAAM,MAAM,GAAG,GAAG,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;IACtC,MAAM,IAAI,GAAG,MAAM,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,SAAS,GAAG,QAAQ,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;IACpF,OAAO,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC;AACjC,CAAC"}
|
package/dist/messaging/send.js
CHANGED
|
@@ -4,7 +4,7 @@ exports.MessagingService = void 0;
|
|
|
4
4
|
const api_1 = require("../types/api");
|
|
5
5
|
const errors_1 = require("../client/errors");
|
|
6
6
|
const idgen_1 = require("./idgen");
|
|
7
|
-
const MAX_CONTENT_LENGTH =
|
|
7
|
+
const MAX_CONTENT_LENGTH = 128000;
|
|
8
8
|
class MessagingService {
|
|
9
9
|
http;
|
|
10
10
|
getApiKey;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"send.js","sourceRoot":"","sources":["../../src/messaging/send.ts"],"names":[],"mappings":";;;AAEA,sCAAyC;AACzC,6CAA2D;AAC3D,mCAA8C;AAE9C,MAAM,kBAAkB,GAAG,
|
|
1
|
+
{"version":3,"file":"send.js","sourceRoot":"","sources":["../../src/messaging/send.ts"],"names":[],"mappings":";;;AAEA,sCAAyC;AACzC,6CAA2D;AAC3D,mCAA8C;AAE9C,MAAM,kBAAkB,GAAG,MAAM,CAAC;AAElC,MAAa,gBAAgB;IACnB,IAAI,CAAa;IACjB,SAAS,CAAsB;IAEvC,YAAY,IAAgB,EAAE,SAA8B;QAC1D,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QACjB,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;IAC7B,CAAC;IAED,KAAK,CAAC,IAAI,CAAC,QAAgB,EAAE,OAAe,EAAE,WAAoB;QAChE,IAAI,CAAC,QAAQ,IAAI,QAAQ,CAAC,IAAI,EAAE,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC9C,MAAM,IAAI,sBAAa,CAAC,4BAA4B,CAAC,CAAC;QACxD,CAAC;QAED,MAAM,MAAM,GAAG,IAAI,CAAC,SAAS,EAAE,CAAC;QAChC,IAAI,CAAC,MAAM;YAAE,MAAM,IAAI,sBAAa,CAAC,mBAAmB,CAAC,CAAC;QAE1D,0BAA0B;QAC1B,IAAI,OAAO,CAAC,MAAM,GAAG,kBAAkB,EAAE,CAAC;YACxC,MAAM,IAAI,sBAAa,CAAC,mBAAmB,kBAAkB,qBAAqB,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC;QACvG,CAAC;QAED,MAAM,OAAO,GAAgB;YAC3B,SAAS,EAAE,QAAQ;YACnB,aAAa,EAAE,WAAW,IAAI,IAAA,2BAAmB,GAAE;YACnD,OAAO;SACR,CAAC;QAEF,IAAI,CAAC;YACH,MAAM,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,OAAO,EAAE,EAAE,MAAM,EAAE,CAAC,CAAC;QACzD,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,IAAI,GAAG,YAAY,iBAAQ,EAAE,CAAC;gBAC5B,IAAI,GAAG,CAAC,IAAI,KAAK,eAAS,CAAC,iBAAiB,EAAE,CAAC;oBAC7C,MAAM,IAAI,sBAAa,CAAC,oDAAoD,CAAC,CAAC;gBAChF,CAAC;gBACD,IAAI,GAAG,CAAC,IAAI,KAAK,eAAS,CAAC,cAAc,EAAE,CAAC;oBAC1C,MAAM,IAAI,sBAAa,CAAC,0BAA0B,CAAC,CAAC;gBACtD,CAAC;gBACD,IAAI,GAAG,CAAC,IAAI,KAAK,eAAS,CAAC,gBAAgB,EAAE,CAAC;oBAC5C,MAAM,IAAI,sBAAa,CAAC,yBAAyB,kBAAkB,SAAS,CAAC,CAAC;gBAChF,CAAC;YACH,CAAC;YACD,MAAM,GAAG,CAAC;QACZ,CAAC;IACH,CAAC;IAED,KAAK,CAAC,QAAQ,CAAC,QAAgB,EAAE,IAAY,EAAE,WAAoB;QACjE,MAAM,OAAO,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;QACrC,OAAO,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,OAAO,EAAE,WAAW,CAAC,CAAC;IACnD,CAAC;CACF;AAlDD,4CAkDC"}
|
package/dist/types/api.d.ts
CHANGED
|
@@ -11,7 +11,8 @@ export declare enum ErrorCode {
|
|
|
11
11
|
CONTENT_TOO_LONG = 1004,
|
|
12
12
|
INSUFFICIENT_PERMISSION = 1005,
|
|
13
13
|
INVALID_OPENID_REVERSE = 1006,
|
|
14
|
-
BLOCKED_RECIPIENT = 2001
|
|
14
|
+
BLOCKED_RECIPIENT = 2001,
|
|
15
|
+
RATE_LIMITED = 1007
|
|
15
16
|
}
|
|
16
17
|
export declare const ErrorMessages: Record<number, string>;
|
|
17
18
|
//# sourceMappingURL=api.d.ts.map
|
package/dist/types/api.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"api.d.ts","sourceRoot":"","sources":["../../src/types/api.ts"],"names":[],"mappings":"AAGA,MAAM,WAAW,WAAW,CAAC,CAAC,GAAG,OAAO;IACtC,IAAI,EAAE,MAAM,CAAC;IACb,GAAG,EAAE,MAAM,CAAC;IACZ,IAAI,EAAE,CAAC,CAAC;CACT;AAED,oBAAY,SAAS;IACnB,OAAO,IAAI;IACX,aAAa,OAAO;IACpB,cAAc,OAAO;IACrB,qBAAqB,OAAO;IAC5B,gBAAgB,OAAO;IACvB,uBAAuB,OAAO;IAC9B,sBAAsB,OAAO;IAC7B,iBAAiB,OAAO;
|
|
1
|
+
{"version":3,"file":"api.d.ts","sourceRoot":"","sources":["../../src/types/api.ts"],"names":[],"mappings":"AAGA,MAAM,WAAW,WAAW,CAAC,CAAC,GAAG,OAAO;IACtC,IAAI,EAAE,MAAM,CAAC;IACb,GAAG,EAAE,MAAM,CAAC;IACZ,IAAI,EAAE,CAAC,CAAC;CACT;AAED,oBAAY,SAAS;IACnB,OAAO,IAAI;IACX,aAAa,OAAO;IACpB,cAAc,OAAO;IACrB,qBAAqB,OAAO;IAC5B,gBAAgB,OAAO;IACvB,uBAAuB,OAAO;IAC9B,sBAAsB,OAAO;IAC7B,iBAAiB,OAAO;IACxB,YAAY,OAAO;CACpB;AAED,eAAO,MAAM,aAAa,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAUhD,CAAC"}
|
package/dist/types/api.js
CHANGED
|
@@ -13,15 +13,17 @@ var ErrorCode;
|
|
|
13
13
|
ErrorCode[ErrorCode["INSUFFICIENT_PERMISSION"] = 1005] = "INSUFFICIENT_PERMISSION";
|
|
14
14
|
ErrorCode[ErrorCode["INVALID_OPENID_REVERSE"] = 1006] = "INVALID_OPENID_REVERSE";
|
|
15
15
|
ErrorCode[ErrorCode["BLOCKED_RECIPIENT"] = 2001] = "BLOCKED_RECIPIENT";
|
|
16
|
+
ErrorCode[ErrorCode["RATE_LIMITED"] = 1007] = "RATE_LIMITED";
|
|
16
17
|
})(ErrorCode || (exports.ErrorCode = ErrorCode = {}));
|
|
17
18
|
exports.ErrorMessages = {
|
|
18
19
|
[ErrorCode.SUCCESS]: 'success',
|
|
19
20
|
[ErrorCode.MISSING_FIELD]: 'missing required field',
|
|
20
21
|
[ErrorCode.INVALID_OPENID]: 'invalid to_openid',
|
|
21
22
|
[ErrorCode.INVALID_CLIENT_MSG_ID]: 'invalid client_msg_id format',
|
|
22
|
-
[ErrorCode.CONTENT_TOO_LONG]: 'content exceeds
|
|
23
|
+
[ErrorCode.CONTENT_TOO_LONG]: 'content exceeds 128k character limit',
|
|
23
24
|
[ErrorCode.INSUFFICIENT_PERMISSION]: 'insufficient permission',
|
|
24
25
|
[ErrorCode.INVALID_OPENID_REVERSE]: 'invalid openid for reverse lookup',
|
|
25
26
|
[ErrorCode.BLOCKED_RECIPIENT]: 'target blocked, message intercepted',
|
|
27
|
+
[ErrorCode.RATE_LIMITED]: 'rate limited, check Retry-After header',
|
|
26
28
|
};
|
|
27
29
|
//# sourceMappingURL=api.js.map
|
package/dist/types/api.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"api.js","sourceRoot":"","sources":["../../src/types/api.ts"],"names":[],"mappings":";AAAA,iCAAiC;AACjC,kEAAkE;;;AAQlE,IAAY,
|
|
1
|
+
{"version":3,"file":"api.js","sourceRoot":"","sources":["../../src/types/api.ts"],"names":[],"mappings":";AAAA,iCAAiC;AACjC,kEAAkE;;;AAQlE,IAAY,SAUX;AAVD,WAAY,SAAS;IACnB,+CAAW,CAAA;IACX,8DAAoB,CAAA;IACpB,gEAAqB,CAAA;IACrB,8EAA4B,CAAA;IAC5B,oEAAuB,CAAA;IACvB,kFAA8B,CAAA;IAC9B,gFAA6B,CAAA;IAC7B,sEAAwB,CAAA;IACxB,4DAAmB,CAAA;AACrB,CAAC,EAVW,SAAS,yBAAT,SAAS,QAUpB;AAEY,QAAA,aAAa,GAA2B;IACnD,CAAC,SAAS,CAAC,OAAO,CAAC,EAAE,SAAS;IAC9B,CAAC,SAAS,CAAC,aAAa,CAAC,EAAE,wBAAwB;IACnD,CAAC,SAAS,CAAC,cAAc,CAAC,EAAE,mBAAmB;IAC/C,CAAC,SAAS,CAAC,qBAAqB,CAAC,EAAE,8BAA8B;IACjE,CAAC,SAAS,CAAC,gBAAgB,CAAC,EAAE,sCAAsC;IACpE,CAAC,SAAS,CAAC,uBAAuB,CAAC,EAAE,yBAAyB;IAC9D,CAAC,SAAS,CAAC,sBAAsB,CAAC,EAAE,mCAAmC;IACvE,CAAC,SAAS,CAAC,iBAAiB,CAAC,EAAE,qCAAqC;IACpE,CAAC,SAAS,CAAC,YAAY,CAAC,EAAE,wCAAwC;CACnE,CAAC"}
|