oceanbus 0.1.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/LICENSE +21 -0
- package/README.md +171 -0
- package/bin/oceanbus.js +28 -0
- package/dist/agent/identity.d.ts +23 -0
- package/dist/agent/identity.d.ts.map +1 -0
- package/dist/agent/identity.js +84 -0
- package/dist/agent/identity.js.map +1 -0
- package/dist/agent/index.d.ts +4 -0
- package/dist/agent/index.d.ts.map +1 -0
- package/dist/agent/index.js +11 -0
- package/dist/agent/index.js.map +1 -0
- package/dist/agent/keys.d.ts +11 -0
- package/dist/agent/keys.d.ts.map +1 -0
- package/dist/agent/keys.js +50 -0
- package/dist/agent/keys.js.map +1 -0
- package/dist/agent/store.d.ts +23 -0
- package/dist/agent/store.d.ts.map +1 -0
- package/dist/agent/store.js +89 -0
- package/dist/agent/store.js.map +1 -0
- package/dist/cli/commands/block.d.ts +3 -0
- package/dist/cli/commands/block.d.ts.map +1 -0
- package/dist/cli/commands/block.js +25 -0
- package/dist/cli/commands/block.js.map +1 -0
- package/dist/cli/commands/key-new.d.ts +3 -0
- package/dist/cli/commands/key-new.d.ts.map +1 -0
- package/dist/cli/commands/key-new.js +21 -0
- package/dist/cli/commands/key-new.js.map +1 -0
- package/dist/cli/commands/key-revoke.d.ts +3 -0
- package/dist/cli/commands/key-revoke.d.ts.map +1 -0
- package/dist/cli/commands/key-revoke.js +25 -0
- package/dist/cli/commands/key-revoke.js.map +1 -0
- package/dist/cli/commands/keygen.d.ts +3 -0
- package/dist/cli/commands/keygen.d.ts.map +1 -0
- package/dist/cli/commands/keygen.js +20 -0
- package/dist/cli/commands/keygen.js.map +1 -0
- package/dist/cli/commands/listen.d.ts +3 -0
- package/dist/cli/commands/listen.d.ts.map +1 -0
- package/dist/cli/commands/listen.js +45 -0
- package/dist/cli/commands/listen.js.map +1 -0
- package/dist/cli/commands/openid.d.ts +3 -0
- package/dist/cli/commands/openid.d.ts.map +1 -0
- package/dist/cli/commands/openid.js +20 -0
- package/dist/cli/commands/openid.js.map +1 -0
- package/dist/cli/commands/register.d.ts +3 -0
- package/dist/cli/commands/register.d.ts.map +1 -0
- package/dist/cli/commands/register.js +21 -0
- package/dist/cli/commands/register.js.map +1 -0
- package/dist/cli/commands/send.d.ts +3 -0
- package/dist/cli/commands/send.d.ts.map +1 -0
- package/dist/cli/commands/send.js +61 -0
- package/dist/cli/commands/send.js.map +1 -0
- package/dist/cli/commands/whoami.d.ts +3 -0
- package/dist/cli/commands/whoami.d.ts.map +1 -0
- package/dist/cli/commands/whoami.js +20 -0
- package/dist/cli/commands/whoami.js.map +1 -0
- package/dist/cli/index.d.ts +2 -0
- package/dist/cli/index.d.ts.map +1 -0
- package/dist/cli/index.js +37 -0
- package/dist/cli/index.js.map +1 -0
- package/dist/cli/program.d.ts +1 -0
- package/dist/cli/program.d.ts.map +1 -0
- package/dist/cli/program.js +4 -0
- package/dist/cli/program.js.map +1 -0
- package/dist/client/errors.d.ts +16 -0
- package/dist/client/errors.d.ts.map +1 -0
- package/dist/client/errors.js +42 -0
- package/dist/client/errors.js.map +1 -0
- package/dist/client/http-client.d.ts +23 -0
- package/dist/client/http-client.d.ts.map +1 -0
- package/dist/client/http-client.js +130 -0
- package/dist/client/http-client.js.map +1 -0
- package/dist/client/index.d.ts +5 -0
- package/dist/client/index.d.ts.map +1 -0
- package/dist/client/index.js +12 -0
- package/dist/client/index.js.map +1 -0
- package/dist/client/retry.d.ts +14 -0
- package/dist/client/retry.d.ts.map +1 -0
- package/dist/client/retry.js +53 -0
- package/dist/client/retry.js.map +1 -0
- package/dist/config/defaults.d.ts +3 -0
- package/dist/config/defaults.d.ts.map +1 -0
- package/dist/config/defaults.js +39 -0
- package/dist/config/defaults.js.map +1 -0
- package/dist/config/index.d.ts +3 -0
- package/dist/config/index.d.ts.map +1 -0
- package/dist/config/index.js +9 -0
- package/dist/config/index.js.map +1 -0
- package/dist/config/loader.d.ts +4 -0
- package/dist/config/loader.d.ts.map +1 -0
- package/dist/config/loader.js +106 -0
- package/dist/config/loader.js.map +1 -0
- package/dist/crypto/canonical-json.d.ts +2 -0
- package/dist/crypto/canonical-json.d.ts.map +1 -0
- package/dist/crypto/canonical-json.js +39 -0
- package/dist/crypto/canonical-json.js.map +1 -0
- package/dist/crypto/ed25519.d.ts +12 -0
- package/dist/crypto/ed25519.d.ts.map +1 -0
- package/dist/crypto/ed25519.js +101 -0
- package/dist/crypto/ed25519.js.map +1 -0
- package/dist/crypto/index.d.ts +4 -0
- package/dist/crypto/index.d.ts.map +1 -0
- package/dist/crypto/index.js +17 -0
- package/dist/crypto/index.js.map +1 -0
- package/dist/crypto/pow.d.ts +5 -0
- package/dist/crypto/pow.d.ts.map +1 -0
- package/dist/crypto/pow.js +16 -0
- package/dist/crypto/pow.js.map +1 -0
- package/dist/index.d.ts +89 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +269 -0
- package/dist/index.js.map +1 -0
- package/dist/interceptors/chain.d.ts +33 -0
- package/dist/interceptors/chain.d.ts.map +1 -0
- package/dist/interceptors/chain.js +32 -0
- package/dist/interceptors/chain.js.map +1 -0
- package/dist/interceptors/index.d.ts +5 -0
- package/dist/interceptors/index.d.ts.map +1 -0
- package/dist/interceptors/index.js +10 -0
- package/dist/interceptors/index.js.map +1 -0
- package/dist/interceptors/llm.d.ts +13 -0
- package/dist/interceptors/llm.d.ts.map +1 -0
- package/dist/interceptors/llm.js +21 -0
- package/dist/interceptors/llm.js.map +1 -0
- package/dist/l1/base-client.d.ts +17 -0
- package/dist/l1/base-client.d.ts.map +1 -0
- package/dist/l1/base-client.js +40 -0
- package/dist/l1/base-client.js.map +1 -0
- package/dist/l1/ca.d.ts +16 -0
- package/dist/l1/ca.d.ts.map +1 -0
- package/dist/l1/ca.js +92 -0
- package/dist/l1/ca.js.map +1 -0
- package/dist/l1/dispatcher.d.ts +15 -0
- package/dist/l1/dispatcher.d.ts.map +1 -0
- package/dist/l1/dispatcher.js +68 -0
- package/dist/l1/dispatcher.js.map +1 -0
- package/dist/l1/index.d.ts +7 -0
- package/dist/l1/index.d.ts.map +1 -0
- package/dist/l1/index.js +14 -0
- package/dist/l1/index.js.map +1 -0
- package/dist/l1/reputation.d.ts +14 -0
- package/dist/l1/reputation.d.ts.map +1 -0
- package/dist/l1/reputation.js +48 -0
- package/dist/l1/reputation.js.map +1 -0
- package/dist/l1/yellow-pages.d.ts +16 -0
- package/dist/l1/yellow-pages.d.ts.map +1 -0
- package/dist/l1/yellow-pages.js +71 -0
- package/dist/l1/yellow-pages.js.map +1 -0
- package/dist/mailbox/cursor.d.ts +11 -0
- package/dist/mailbox/cursor.d.ts.map +1 -0
- package/dist/mailbox/cursor.js +79 -0
- package/dist/mailbox/cursor.js.map +1 -0
- package/dist/mailbox/index.d.ts +5 -0
- package/dist/mailbox/index.d.ts.map +1 -0
- package/dist/mailbox/index.js +10 -0
- package/dist/mailbox/index.js.map +1 -0
- package/dist/mailbox/poller.d.ts +18 -0
- package/dist/mailbox/poller.d.ts.map +1 -0
- package/dist/mailbox/poller.js +64 -0
- package/dist/mailbox/poller.js.map +1 -0
- package/dist/mailbox/sync.d.ts +13 -0
- package/dist/mailbox/sync.d.ts.map +1 -0
- package/dist/mailbox/sync.js +60 -0
- package/dist/mailbox/sync.js.map +1 -0
- package/dist/messaging/blocklist.d.ts +17 -0
- package/dist/messaging/blocklist.d.ts.map +1 -0
- package/dist/messaging/blocklist.js +110 -0
- package/dist/messaging/blocklist.js.map +1 -0
- package/dist/messaging/idgen.d.ts +3 -0
- package/dist/messaging/idgen.d.ts.map +1 -0
- package/dist/messaging/idgen.js +45 -0
- package/dist/messaging/idgen.js.map +1 -0
- package/dist/messaging/index.d.ts +4 -0
- package/dist/messaging/index.d.ts.map +1 -0
- package/dist/messaging/index.js +11 -0
- package/dist/messaging/index.js.map +1 -0
- package/dist/messaging/send.d.ts +9 -0
- package/dist/messaging/send.d.ts.map +1 -0
- package/dist/messaging/send.js +55 -0
- package/dist/messaging/send.js.map +1 -0
- package/dist/quota/index.d.ts +2 -0
- package/dist/quota/index.d.ts.map +1 -0
- package/dist/quota/index.js +6 -0
- package/dist/quota/index.js.map +1 -0
- package/dist/quota/manager.d.ts +25 -0
- package/dist/quota/manager.d.ts.map +1 -0
- package/dist/quota/manager.js +118 -0
- package/dist/quota/manager.js.map +1 -0
- package/dist/types/agent.d.ts +19 -0
- package/dist/types/agent.d.ts.map +1 -0
- package/dist/types/agent.js +3 -0
- package/dist/types/agent.js.map +1 -0
- package/dist/types/api.d.ts +17 -0
- package/dist/types/api.d.ts.map +1 -0
- package/dist/types/api.js +27 -0
- package/dist/types/api.js.map +1 -0
- package/dist/types/config.d.ts +57 -0
- package/dist/types/config.d.ts.map +1 -0
- package/dist/types/config.js +3 -0
- package/dist/types/config.js.map +1 -0
- package/dist/types/crypto.d.ts +39 -0
- package/dist/types/crypto.d.ts.map +1 -0
- package/dist/types/crypto.js +3 -0
- package/dist/types/crypto.js.map +1 -0
- package/dist/types/index.d.ts +7 -0
- package/dist/types/index.d.ts.map +1 -0
- package/dist/types/index.js +23 -0
- package/dist/types/index.js.map +1 -0
- package/dist/types/l1.d.ts +129 -0
- package/dist/types/l1.d.ts.map +1 -0
- package/dist/types/l1.js +5 -0
- package/dist/types/l1.js.map +1 -0
- package/dist/types/messaging.d.ts +30 -0
- package/dist/types/messaging.d.ts.map +1 -0
- package/dist/types/messaging.js +3 -0
- package/dist/types/messaging.js.map +1 -0
- package/package.json +52 -0
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.L1Dispatcher = void 0;
|
|
4
|
+
const poller_1 = require("../mailbox/poller");
|
|
5
|
+
class L1Dispatcher {
|
|
6
|
+
mailbox;
|
|
7
|
+
engine = null;
|
|
8
|
+
pending = new Map();
|
|
9
|
+
requestTimeoutMs;
|
|
10
|
+
pollIntervalMs;
|
|
11
|
+
constructor(mailbox, requestTimeoutMs = 30000, pollIntervalMs = 1000) {
|
|
12
|
+
this.mailbox = mailbox;
|
|
13
|
+
this.requestTimeoutMs = requestTimeoutMs;
|
|
14
|
+
this.pollIntervalMs = pollIntervalMs;
|
|
15
|
+
}
|
|
16
|
+
dispatch(msg) {
|
|
17
|
+
try {
|
|
18
|
+
const parsed = JSON.parse(msg.content);
|
|
19
|
+
if (parsed.request_id && this.pending.has(parsed.request_id)) {
|
|
20
|
+
const pending = this.pending.get(parsed.request_id);
|
|
21
|
+
clearTimeout(pending.timeout);
|
|
22
|
+
this.pending.delete(parsed.request_id);
|
|
23
|
+
pending.resolve(parsed);
|
|
24
|
+
if (this.pending.size === 0 && this.engine) {
|
|
25
|
+
this.engine.stop();
|
|
26
|
+
this.engine = null;
|
|
27
|
+
}
|
|
28
|
+
}
|
|
29
|
+
}
|
|
30
|
+
catch {
|
|
31
|
+
// Not JSON — not an L1 response, ignore
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
register(requestId, timeoutMs) {
|
|
35
|
+
const ms = timeoutMs ?? this.requestTimeoutMs;
|
|
36
|
+
return new Promise((resolve, reject) => {
|
|
37
|
+
const timeout = setTimeout(() => {
|
|
38
|
+
this.pending.delete(requestId);
|
|
39
|
+
reject(new Error(`L1 request timed out after ${ms}ms: ${requestId}`));
|
|
40
|
+
if (this.pending.size === 0 && this.engine) {
|
|
41
|
+
this.engine.stop();
|
|
42
|
+
this.engine = null;
|
|
43
|
+
}
|
|
44
|
+
}, ms);
|
|
45
|
+
this.pending.set(requestId, { resolve, reject, timeout });
|
|
46
|
+
if (!this.engine || !this.engine.isRunning()) {
|
|
47
|
+
this.engine = new poller_1.AutoPollEngine(this.mailbox, (msg) => this.dispatch(msg), (err) => { }, this.pollIntervalMs);
|
|
48
|
+
this.engine.start();
|
|
49
|
+
}
|
|
50
|
+
});
|
|
51
|
+
}
|
|
52
|
+
get pendingCount() {
|
|
53
|
+
return this.pending.size;
|
|
54
|
+
}
|
|
55
|
+
destroy() {
|
|
56
|
+
for (const [id, pending] of this.pending) {
|
|
57
|
+
clearTimeout(pending.timeout);
|
|
58
|
+
pending.reject(new Error('L1 dispatcher destroyed'));
|
|
59
|
+
}
|
|
60
|
+
this.pending.clear();
|
|
61
|
+
if (this.engine) {
|
|
62
|
+
this.engine.stop();
|
|
63
|
+
this.engine = null;
|
|
64
|
+
}
|
|
65
|
+
}
|
|
66
|
+
}
|
|
67
|
+
exports.L1Dispatcher = L1Dispatcher;
|
|
68
|
+
//# sourceMappingURL=dispatcher.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"dispatcher.js","sourceRoot":"","sources":["../../src/l1/dispatcher.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
export { L1Client } from './base-client';
|
|
2
|
+
export type { L1Transport } from './base-client';
|
|
3
|
+
export { L1Dispatcher } from './dispatcher';
|
|
4
|
+
export { YellowPagesClient } from './yellow-pages';
|
|
5
|
+
export { CAClient } from './ca';
|
|
6
|
+
export { ReputationClient } from './reputation';
|
|
7
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/l1/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AACzC,YAAY,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AACjD,OAAO,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAC5C,OAAO,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAC;AACnD,OAAO,EAAE,QAAQ,EAAE,MAAM,MAAM,CAAC;AAChC,OAAO,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAC"}
|
package/dist/l1/index.js
ADDED
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.ReputationClient = exports.CAClient = exports.YellowPagesClient = exports.L1Dispatcher = exports.L1Client = void 0;
|
|
4
|
+
var base_client_1 = require("./base-client");
|
|
5
|
+
Object.defineProperty(exports, "L1Client", { enumerable: true, get: function () { return base_client_1.L1Client; } });
|
|
6
|
+
var dispatcher_1 = require("./dispatcher");
|
|
7
|
+
Object.defineProperty(exports, "L1Dispatcher", { enumerable: true, get: function () { return dispatcher_1.L1Dispatcher; } });
|
|
8
|
+
var yellow_pages_1 = require("./yellow-pages");
|
|
9
|
+
Object.defineProperty(exports, "YellowPagesClient", { enumerable: true, get: function () { return yellow_pages_1.YellowPagesClient; } });
|
|
10
|
+
var ca_1 = require("./ca");
|
|
11
|
+
Object.defineProperty(exports, "CAClient", { enumerable: true, get: function () { return ca_1.CAClient; } });
|
|
12
|
+
var reputation_1 = require("./reputation");
|
|
13
|
+
Object.defineProperty(exports, "ReputationClient", { enumerable: true, get: function () { return reputation_1.ReputationClient; } });
|
|
14
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/l1/index.ts"],"names":[],"mappings":";;;AAAA,6CAAyC;AAAhC,uGAAA,QAAQ,OAAA;AAEjB,2CAA4C;AAAnC,0GAAA,YAAY,OAAA;AACrB,+CAAmD;AAA1C,iHAAA,iBAAiB,OAAA;AAC1B,2BAAgC;AAAvB,8FAAA,QAAQ,OAAA;AACjB,2CAAgD;AAAvC,8GAAA,gBAAgB,OAAA"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { L1Client, L1Transport } from './base-client';
|
|
2
|
+
import type { L1Dispatcher } from './dispatcher';
|
|
3
|
+
import type { ReputationQuery } from '../types/l1';
|
|
4
|
+
import type { L1Response } from '../types/l1';
|
|
5
|
+
export declare class ReputationClient extends L1Client {
|
|
6
|
+
constructor(sendFn: L1Transport, serviceOpenid: string, dispatcher?: L1Dispatcher, requestTimeoutMs?: number);
|
|
7
|
+
submitTag(targetOpenid: string, tag: string, sig: string): Promise<L1Response>;
|
|
8
|
+
fraudReport(targetOpenid: string, evidence: string, sig: string): Promise<L1Response>;
|
|
9
|
+
spamReport(targetOpenid: string, sig: string): Promise<L1Response>;
|
|
10
|
+
queryReputation(openids: string[]): Promise<L1Response<{
|
|
11
|
+
reputations: ReputationQuery[];
|
|
12
|
+
}>>;
|
|
13
|
+
}
|
|
14
|
+
//# sourceMappingURL=reputation.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"reputation.d.ts","sourceRoot":"","sources":["../../src/l1/reputation.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AACtD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AACjD,OAAO,KAAK,EAKV,eAAe,EAChB,MAAM,aAAa,CAAC;AACrB,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAE9C,qBAAa,gBAAiB,SAAQ,QAAQ;gBAE1C,MAAM,EAAE,WAAW,EACnB,aAAa,EAAE,MAAM,EACrB,UAAU,CAAC,EAAE,YAAY,EACzB,gBAAgB,GAAE,MAAc;IAK5B,SAAS,CAAC,YAAY,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,CAAC;IAW9E,WAAW,CAAC,YAAY,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,CAAC;IAWrF,UAAU,CAAC,YAAY,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,CAAC;IAUlE,eAAe,CAAC,OAAO,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,UAAU,CAAC;QAAE,WAAW,EAAE,eAAe,EAAE,CAAA;KAAE,CAAC,CAAC;CAQlG"}
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.ReputationClient = void 0;
|
|
4
|
+
const base_client_1 = require("./base-client");
|
|
5
|
+
class ReputationClient extends base_client_1.L1Client {
|
|
6
|
+
constructor(sendFn, serviceOpenid, dispatcher, requestTimeoutMs = 30000) {
|
|
7
|
+
super(sendFn, serviceOpenid, dispatcher, requestTimeoutMs);
|
|
8
|
+
}
|
|
9
|
+
async submitTag(targetOpenid, tag, sig) {
|
|
10
|
+
const request = {
|
|
11
|
+
...this.buildRequest('submit_tag'),
|
|
12
|
+
action: 'submit_tag',
|
|
13
|
+
target_openid: targetOpenid,
|
|
14
|
+
tag,
|
|
15
|
+
sig,
|
|
16
|
+
};
|
|
17
|
+
return this.sendAction(request);
|
|
18
|
+
}
|
|
19
|
+
async fraudReport(targetOpenid, evidence, sig) {
|
|
20
|
+
const request = {
|
|
21
|
+
...this.buildRequest('fraud_report'),
|
|
22
|
+
action: 'fraud_report',
|
|
23
|
+
target_openid: targetOpenid,
|
|
24
|
+
evidence,
|
|
25
|
+
sig,
|
|
26
|
+
};
|
|
27
|
+
return this.sendAction(request);
|
|
28
|
+
}
|
|
29
|
+
async spamReport(targetOpenid, sig) {
|
|
30
|
+
const request = {
|
|
31
|
+
...this.buildRequest('spam_report'),
|
|
32
|
+
action: 'spam_report',
|
|
33
|
+
target_openid: targetOpenid,
|
|
34
|
+
sig,
|
|
35
|
+
};
|
|
36
|
+
return this.sendAction(request);
|
|
37
|
+
}
|
|
38
|
+
async queryReputation(openids) {
|
|
39
|
+
const request = {
|
|
40
|
+
...this.buildRequest('query_reputation'),
|
|
41
|
+
action: 'query_reputation',
|
|
42
|
+
openids,
|
|
43
|
+
};
|
|
44
|
+
return this.sendAction(request);
|
|
45
|
+
}
|
|
46
|
+
}
|
|
47
|
+
exports.ReputationClient = ReputationClient;
|
|
48
|
+
//# sourceMappingURL=reputation.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"reputation.js","sourceRoot":"","sources":["../../src/l1/reputation.ts"],"names":[],"mappings":";;;AAAA,+CAAsD;AAWtD,MAAa,gBAAiB,SAAQ,sBAAQ;IAC5C,YACE,MAAmB,EACnB,aAAqB,EACrB,UAAyB,EACzB,mBAA2B,KAAK;QAEhC,KAAK,CAAC,MAAM,EAAE,aAAa,EAAE,UAAU,EAAE,gBAAgB,CAAC,CAAC;IAC7D,CAAC;IAED,KAAK,CAAC,SAAS,CAAC,YAAoB,EAAE,GAAW,EAAE,GAAW;QAC5D,MAAM,OAAO,GAAwB;YACnC,GAAG,IAAI,CAAC,YAAY,CAAC,YAAY,CAAC;YAClC,MAAM,EAAE,YAAY;YACpB,aAAa,EAAE,YAAY;YAC3B,GAAG;YACH,GAAG;SACJ,CAAC;QACF,OAAO,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC;IAClC,CAAC;IAED,KAAK,CAAC,WAAW,CAAC,YAAoB,EAAE,QAAgB,EAAE,GAAW;QACnE,MAAM,OAAO,GAA0B;YACrC,GAAG,IAAI,CAAC,YAAY,CAAC,cAAc,CAAC;YACpC,MAAM,EAAE,cAAc;YACtB,aAAa,EAAE,YAAY;YAC3B,QAAQ;YACR,GAAG;SACJ,CAAC;QACF,OAAO,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC;IAClC,CAAC;IAED,KAAK,CAAC,UAAU,CAAC,YAAoB,EAAE,GAAW;QAChD,MAAM,OAAO,GAAyB;YACpC,GAAG,IAAI,CAAC,YAAY,CAAC,aAAa,CAAC;YACnC,MAAM,EAAE,aAAa;YACrB,aAAa,EAAE,YAAY;YAC3B,GAAG;SACJ,CAAC;QACF,OAAO,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC;IAClC,CAAC;IAED,KAAK,CAAC,eAAe,CAAC,OAAiB;QACrC,MAAM,OAAO,GAA2B;YACtC,GAAG,IAAI,CAAC,YAAY,CAAC,kBAAkB,CAAC;YACxC,MAAM,EAAE,kBAAkB;YAC1B,OAAO;SACR,CAAC;QACF,OAAO,IAAI,CAAC,UAAU,CAAC,OAAO,CAA4D,CAAC;IAC7F,CAAC;CACF;AAlDD,4CAkDC"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { L1Client, L1Transport } from './base-client';
|
|
2
|
+
import type { L1Dispatcher } from './dispatcher';
|
|
3
|
+
import type { YpEntry } from '../types/l1';
|
|
4
|
+
import type { L1Response } from '../types/l1';
|
|
5
|
+
export declare class YellowPagesClient extends L1Client {
|
|
6
|
+
constructor(sendFn: L1Transport, serviceOpenid: string, dispatcher?: L1Dispatcher, requestTimeoutMs?: number);
|
|
7
|
+
registerService(openid: string, tags: string[], description: string, publicKey: string, sig: string): Promise<L1Response>;
|
|
8
|
+
discover(tags?: string[], keywords?: string, limit?: number, offset?: number): Promise<L1Response<{
|
|
9
|
+
entries: YpEntry[];
|
|
10
|
+
total: number;
|
|
11
|
+
}>>;
|
|
12
|
+
heartbeat(openid: string, sig: string): Promise<L1Response>;
|
|
13
|
+
updateService(openid: string, sig: string, tags?: string[], description?: string): Promise<L1Response>;
|
|
14
|
+
deregisterService(openid: string, sig: string): Promise<L1Response>;
|
|
15
|
+
}
|
|
16
|
+
//# sourceMappingURL=yellow-pages.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"yellow-pages.d.ts","sourceRoot":"","sources":["../../src/l1/yellow-pages.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AACtD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AACjD,OAAO,KAAK,EAMV,OAAO,EACR,MAAM,aAAa,CAAC;AACrB,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAG9C,qBAAa,iBAAkB,SAAQ,QAAQ;gBAE3C,MAAM,EAAE,WAAW,EACnB,aAAa,EAAE,MAAM,EACrB,UAAU,CAAC,EAAE,YAAY,EACzB,gBAAgB,GAAE,MAAc;IAK5B,eAAe,CACnB,MAAM,EAAE,MAAM,EACd,IAAI,EAAE,MAAM,EAAE,EACd,WAAW,EAAE,MAAM,EACnB,SAAS,EAAE,MAAM,EACjB,GAAG,EAAE,MAAM,GACV,OAAO,CAAC,UAAU,CAAC;IAiBhB,QAAQ,CACZ,IAAI,CAAC,EAAE,MAAM,EAAE,EACf,QAAQ,CAAC,EAAE,MAAM,EACjB,KAAK,CAAC,EAAE,MAAM,EACd,MAAM,CAAC,EAAE,MAAM,GACd,OAAO,CAAC,UAAU,CAAC;QAAE,OAAO,EAAE,OAAO,EAAE,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IAYvD,SAAS,CAAC,MAAM,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,CAAC;IAU3D,aAAa,CACjB,MAAM,EAAE,MAAM,EACd,GAAG,EAAE,MAAM,EACX,IAAI,CAAC,EAAE,MAAM,EAAE,EACf,WAAW,CAAC,EAAE,MAAM,GACnB,OAAO,CAAC,UAAU,CAAC;IAYhB,iBAAiB,CAAC,MAAM,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,CAAC;CAS1E"}
|
|
@@ -0,0 +1,71 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.YellowPagesClient = void 0;
|
|
4
|
+
const base_client_1 = require("./base-client");
|
|
5
|
+
const errors_1 = require("../client/errors");
|
|
6
|
+
class YellowPagesClient extends base_client_1.L1Client {
|
|
7
|
+
constructor(sendFn, serviceOpenid, dispatcher, requestTimeoutMs = 30000) {
|
|
8
|
+
super(sendFn, serviceOpenid, dispatcher, requestTimeoutMs);
|
|
9
|
+
}
|
|
10
|
+
async registerService(openid, tags, description, publicKey, sig) {
|
|
11
|
+
const totalTagChars = tags.reduce((sum, t) => sum + t.length, 0);
|
|
12
|
+
if (totalTagChars > 120)
|
|
13
|
+
throw new errors_1.OceanBusError('Tags total character count exceeds 120');
|
|
14
|
+
if (description.length > 2000)
|
|
15
|
+
throw new errors_1.OceanBusError('Description exceeds 2000 characters');
|
|
16
|
+
const request = {
|
|
17
|
+
...this.buildRequest('register_service'),
|
|
18
|
+
action: 'register_service',
|
|
19
|
+
openid,
|
|
20
|
+
tags,
|
|
21
|
+
description,
|
|
22
|
+
public_key: publicKey,
|
|
23
|
+
sig,
|
|
24
|
+
};
|
|
25
|
+
return this.sendAction(request);
|
|
26
|
+
}
|
|
27
|
+
async discover(tags, keywords, limit, offset) {
|
|
28
|
+
const request = {
|
|
29
|
+
...this.buildRequest('discover'),
|
|
30
|
+
action: 'discover',
|
|
31
|
+
tags,
|
|
32
|
+
keywords,
|
|
33
|
+
limit,
|
|
34
|
+
offset,
|
|
35
|
+
};
|
|
36
|
+
return this.sendAction(request);
|
|
37
|
+
}
|
|
38
|
+
async heartbeat(openid, sig) {
|
|
39
|
+
const request = {
|
|
40
|
+
...this.buildRequest('heartbeat'),
|
|
41
|
+
action: 'heartbeat',
|
|
42
|
+
openid,
|
|
43
|
+
sig,
|
|
44
|
+
};
|
|
45
|
+
return this.sendAction(request);
|
|
46
|
+
}
|
|
47
|
+
async updateService(openid, sig, tags, description) {
|
|
48
|
+
const request = {
|
|
49
|
+
...this.buildRequest('update_service'),
|
|
50
|
+
action: 'update_service',
|
|
51
|
+
openid,
|
|
52
|
+
sig,
|
|
53
|
+
};
|
|
54
|
+
if (tags !== undefined)
|
|
55
|
+
request.tags = tags;
|
|
56
|
+
if (description !== undefined)
|
|
57
|
+
request.description = description;
|
|
58
|
+
return this.sendAction(request);
|
|
59
|
+
}
|
|
60
|
+
async deregisterService(openid, sig) {
|
|
61
|
+
const request = {
|
|
62
|
+
...this.buildRequest('deregister_service'),
|
|
63
|
+
action: 'deregister_service',
|
|
64
|
+
openid,
|
|
65
|
+
sig,
|
|
66
|
+
};
|
|
67
|
+
return this.sendAction(request);
|
|
68
|
+
}
|
|
69
|
+
}
|
|
70
|
+
exports.YellowPagesClient = YellowPagesClient;
|
|
71
|
+
//# sourceMappingURL=yellow-pages.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"yellow-pages.js","sourceRoot":"","sources":["../../src/l1/yellow-pages.ts"],"names":[],"mappings":";;;AAAA,+CAAsD;AAWtD,6CAAiD;AAEjD,MAAa,iBAAkB,SAAQ,sBAAQ;IAC7C,YACE,MAAmB,EACnB,aAAqB,EACrB,UAAyB,EACzB,mBAA2B,KAAK;QAEhC,KAAK,CAAC,MAAM,EAAE,aAAa,EAAE,UAAU,EAAE,gBAAgB,CAAC,CAAC;IAC7D,CAAC;IAED,KAAK,CAAC,eAAe,CACnB,MAAc,EACd,IAAc,EACd,WAAmB,EACnB,SAAiB,EACjB,GAAW;QAEX,MAAM,aAAa,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC,GAAG,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;QACjE,IAAI,aAAa,GAAG,GAAG;YAAE,MAAM,IAAI,sBAAa,CAAC,wCAAwC,CAAC,CAAC;QAC3F,IAAI,WAAW,CAAC,MAAM,GAAG,IAAI;YAAE,MAAM,IAAI,sBAAa,CAAC,qCAAqC,CAAC,CAAC;QAE9F,MAAM,OAAO,GAAsB;YACjC,GAAG,IAAI,CAAC,YAAY,CAAC,kBAAkB,CAAC;YACxC,MAAM,EAAE,kBAAkB;YAC1B,MAAM;YACN,IAAI;YACJ,WAAW;YACX,UAAU,EAAE,SAAS;YACrB,GAAG;SACJ,CAAC;QACF,OAAO,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC;IAClC,CAAC;IAED,KAAK,CAAC,QAAQ,CACZ,IAAe,EACf,QAAiB,EACjB,KAAc,EACd,MAAe;QAEf,MAAM,OAAO,GAAsB;YACjC,GAAG,IAAI,CAAC,YAAY,CAAC,UAAU,CAAC;YAChC,MAAM,EAAE,UAAU;YAClB,IAAI;YACJ,QAAQ;YACR,KAAK;YACL,MAAM;SACP,CAAC;QACF,OAAO,IAAI,CAAC,UAAU,CAAC,OAAO,CAA+D,CAAC;IAChG,CAAC;IAED,KAAK,CAAC,SAAS,CAAC,MAAc,EAAE,GAAW;QACzC,MAAM,OAAO,GAAuB;YAClC,GAAG,IAAI,CAAC,YAAY,CAAC,WAAW,CAAC;YACjC,MAAM,EAAE,WAAW;YACnB,MAAM;YACN,GAAG;SACJ,CAAC;QACF,OAAO,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC;IAClC,CAAC;IAED,KAAK,CAAC,aAAa,CACjB,MAAc,EACd,GAAW,EACX,IAAe,EACf,WAAoB;QAEpB,MAAM,OAAO,GAAoB;YAC/B,GAAG,IAAI,CAAC,YAAY,CAAC,gBAAgB,CAAC;YACtC,MAAM,EAAE,gBAAgB;YACxB,MAAM;YACN,GAAG;SACJ,CAAC;QACF,IAAI,IAAI,KAAK,SAAS;YAAE,OAAO,CAAC,IAAI,GAAG,IAAI,CAAC;QAC5C,IAAI,WAAW,KAAK,SAAS;YAAE,OAAO,CAAC,WAAW,GAAG,WAAW,CAAC;QACjE,OAAO,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC;IAClC,CAAC;IAED,KAAK,CAAC,iBAAiB,CAAC,MAAc,EAAE,GAAW;QACjD,MAAM,OAAO,GAAwB;YACnC,GAAG,IAAI,CAAC,YAAY,CAAC,oBAAoB,CAAC;YAC1C,MAAM,EAAE,oBAAoB;YAC5B,MAAM;YACN,GAAG;SACJ,CAAC;QACF,OAAO,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC;IAClC,CAAC;CACF;AAtFD,8CAsFC"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
export declare class SeqCursor {
|
|
2
|
+
private filePath;
|
|
3
|
+
private lastSeq;
|
|
4
|
+
constructor(filePath?: string);
|
|
5
|
+
get(): number;
|
|
6
|
+
set(seq: number): void;
|
|
7
|
+
load(): Promise<void>;
|
|
8
|
+
save(): Promise<void>;
|
|
9
|
+
reset(): Promise<void>;
|
|
10
|
+
}
|
|
11
|
+
//# sourceMappingURL=cursor.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cursor.d.ts","sourceRoot":"","sources":["../../src/mailbox/cursor.ts"],"names":[],"mappings":"AAIA,qBAAa,SAAS;IACpB,OAAO,CAAC,QAAQ,CAAS;IACzB,OAAO,CAAC,OAAO,CAAa;gBAEhB,QAAQ,CAAC,EAAE,MAAM;IAI7B,GAAG,IAAI,MAAM;IAIb,GAAG,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI;IAOhB,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;IAYrB,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;IAUrB,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;CAI7B"}
|
|
@@ -0,0 +1,79 @@
|
|
|
1
|
+
"use strict";
|
|
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
|
+
})();
|
|
35
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
36
|
+
exports.SeqCursor = void 0;
|
|
37
|
+
const fs = __importStar(require("fs"));
|
|
38
|
+
const path = __importStar(require("path"));
|
|
39
|
+
const os = __importStar(require("os"));
|
|
40
|
+
class SeqCursor {
|
|
41
|
+
filePath;
|
|
42
|
+
lastSeq = 0;
|
|
43
|
+
constructor(filePath) {
|
|
44
|
+
this.filePath = filePath || path.join(os.homedir(), '.oceanbus', 'seq_cursor.json');
|
|
45
|
+
}
|
|
46
|
+
get() {
|
|
47
|
+
return this.lastSeq;
|
|
48
|
+
}
|
|
49
|
+
set(seq) {
|
|
50
|
+
if (!Number.isSafeInteger(seq))
|
|
51
|
+
return; // guard against infinity/NaN/overflow
|
|
52
|
+
if (seq > this.lastSeq) {
|
|
53
|
+
this.lastSeq = seq;
|
|
54
|
+
}
|
|
55
|
+
}
|
|
56
|
+
async load() {
|
|
57
|
+
try {
|
|
58
|
+
const raw = await fs.promises.readFile(this.filePath, 'utf-8');
|
|
59
|
+
const data = JSON.parse(raw);
|
|
60
|
+
if (typeof data.last_seq === 'number') {
|
|
61
|
+
this.lastSeq = data.last_seq;
|
|
62
|
+
}
|
|
63
|
+
}
|
|
64
|
+
catch {
|
|
65
|
+
this.lastSeq = 0;
|
|
66
|
+
}
|
|
67
|
+
}
|
|
68
|
+
async save() {
|
|
69
|
+
const dir = path.dirname(this.filePath);
|
|
70
|
+
await fs.promises.mkdir(dir, { recursive: true });
|
|
71
|
+
await fs.promises.writeFile(this.filePath, JSON.stringify({ last_seq: this.lastSeq }), { mode: 0o600 });
|
|
72
|
+
}
|
|
73
|
+
async reset() {
|
|
74
|
+
this.lastSeq = 0;
|
|
75
|
+
await this.save();
|
|
76
|
+
}
|
|
77
|
+
}
|
|
78
|
+
exports.SeqCursor = SeqCursor;
|
|
79
|
+
//# sourceMappingURL=cursor.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cursor.js","sourceRoot":"","sources":["../../src/mailbox/cursor.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,uCAAyB;AACzB,2CAA6B;AAC7B,uCAAyB;AAEzB,MAAa,SAAS;IACZ,QAAQ,CAAS;IACjB,OAAO,GAAW,CAAC,CAAC;IAE5B,YAAY,QAAiB;QAC3B,IAAI,CAAC,QAAQ,GAAG,QAAQ,IAAI,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,OAAO,EAAE,EAAE,WAAW,EAAE,iBAAiB,CAAC,CAAC;IACtF,CAAC;IAED,GAAG;QACD,OAAO,IAAI,CAAC,OAAO,CAAC;IACtB,CAAC;IAED,GAAG,CAAC,GAAW;QACb,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,GAAG,CAAC;YAAE,OAAO,CAAC,sCAAsC;QAC9E,IAAI,GAAG,GAAG,IAAI,CAAC,OAAO,EAAE,CAAC;YACvB,IAAI,CAAC,OAAO,GAAG,GAAG,CAAC;QACrB,CAAC;IACH,CAAC;IAED,KAAK,CAAC,IAAI;QACR,IAAI,CAAC;YACH,MAAM,GAAG,GAAG,MAAM,EAAE,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;YAC/D,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;YAC7B,IAAI,OAAO,IAAI,CAAC,QAAQ,KAAK,QAAQ,EAAE,CAAC;gBACtC,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,QAAQ,CAAC;YAC/B,CAAC;QACH,CAAC;QAAC,MAAM,CAAC;YACP,IAAI,CAAC,OAAO,GAAG,CAAC,CAAC;QACnB,CAAC;IACH,CAAC;IAED,KAAK,CAAC,IAAI;QACR,MAAM,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QACxC,MAAM,EAAE,CAAC,QAAQ,CAAC,KAAK,CAAC,GAAG,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;QAClD,MAAM,EAAE,CAAC,QAAQ,CAAC,SAAS,CACzB,IAAI,CAAC,QAAQ,EACb,IAAI,CAAC,SAAS,CAAC,EAAE,QAAQ,EAAE,IAAI,CAAC,OAAO,EAAE,CAAC,EAC1C,EAAE,IAAI,EAAE,KAAK,EAAE,CAChB,CAAC;IACJ,CAAC;IAED,KAAK,CAAC,KAAK;QACT,IAAI,CAAC,OAAO,GAAG,CAAC,CAAC;QACjB,MAAM,IAAI,CAAC,IAAI,EAAE,CAAC;IACpB,CAAC;CACF;AA7CD,8BA6CC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/mailbox/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,QAAQ,CAAC;AACrC,OAAO,EAAE,cAAc,EAAE,MAAM,UAAU,CAAC;AAC1C,YAAY,EAAE,cAAc,EAAE,YAAY,EAAE,MAAM,UAAU,CAAC;AAC7D,OAAO,EAAE,SAAS,EAAE,MAAM,UAAU,CAAC"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.SeqCursor = exports.AutoPollEngine = exports.MailboxSync = void 0;
|
|
4
|
+
var sync_1 = require("./sync");
|
|
5
|
+
Object.defineProperty(exports, "MailboxSync", { enumerable: true, get: function () { return sync_1.MailboxSync; } });
|
|
6
|
+
var poller_1 = require("./poller");
|
|
7
|
+
Object.defineProperty(exports, "AutoPollEngine", { enumerable: true, get: function () { return poller_1.AutoPollEngine; } });
|
|
8
|
+
var cursor_1 = require("./cursor");
|
|
9
|
+
Object.defineProperty(exports, "SeqCursor", { enumerable: true, get: function () { return cursor_1.SeqCursor; } });
|
|
10
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/mailbox/index.ts"],"names":[],"mappings":";;;AAAA,+BAAqC;AAA5B,mGAAA,WAAW,OAAA;AACpB,mCAA0C;AAAjC,wGAAA,cAAc,OAAA;AAEvB,mCAAqC;AAA5B,mGAAA,SAAS,OAAA"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import type { Message } from '../types/messaging';
|
|
2
|
+
import { MailboxSync } from './sync';
|
|
3
|
+
export type MessageHandler = (message: Message) => void | Promise<void>;
|
|
4
|
+
export type ErrorHandler = (error: Error) => void;
|
|
5
|
+
export declare class AutoPollEngine {
|
|
6
|
+
private sync;
|
|
7
|
+
private intervalMs;
|
|
8
|
+
private running;
|
|
9
|
+
private timer;
|
|
10
|
+
private onMessage;
|
|
11
|
+
private onError;
|
|
12
|
+
constructor(sync: MailboxSync, onMessage: MessageHandler, onError?: ErrorHandler, intervalMs?: number);
|
|
13
|
+
start(): void;
|
|
14
|
+
stop(): void;
|
|
15
|
+
isRunning(): boolean;
|
|
16
|
+
private poll;
|
|
17
|
+
}
|
|
18
|
+
//# sourceMappingURL=poller.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"poller.d.ts","sourceRoot":"","sources":["../../src/mailbox/poller.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAC;AAClD,OAAO,EAAE,WAAW,EAAE,MAAM,QAAQ,CAAC;AAErC,MAAM,MAAM,cAAc,GAAG,CAAC,OAAO,EAAE,OAAO,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;AACxE,MAAM,MAAM,YAAY,GAAG,CAAC,KAAK,EAAE,KAAK,KAAK,IAAI,CAAC;AAElD,qBAAa,cAAc;IACzB,OAAO,CAAC,IAAI,CAAc;IAC1B,OAAO,CAAC,UAAU,CAAS;IAC3B,OAAO,CAAC,OAAO,CAAkB;IACjC,OAAO,CAAC,KAAK,CAA8C;IAC3D,OAAO,CAAC,SAAS,CAAiB;IAClC,OAAO,CAAC,OAAO,CAAe;gBAG5B,IAAI,EAAE,WAAW,EACjB,SAAS,EAAE,cAAc,EACzB,OAAO,CAAC,EAAE,YAAY,EACtB,UAAU,GAAE,MAAa;IAQ3B,KAAK,IAAI,IAAI;IAMb,IAAI,IAAI,IAAI;IAQZ,SAAS,IAAI,OAAO;YAIN,IAAI;CAyBnB"}
|
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.AutoPollEngine = void 0;
|
|
4
|
+
class AutoPollEngine {
|
|
5
|
+
sync;
|
|
6
|
+
intervalMs;
|
|
7
|
+
running = false;
|
|
8
|
+
timer = null;
|
|
9
|
+
onMessage;
|
|
10
|
+
onError;
|
|
11
|
+
constructor(sync, onMessage, onError, intervalMs = 2000) {
|
|
12
|
+
this.sync = sync;
|
|
13
|
+
this.onMessage = onMessage;
|
|
14
|
+
this.onError = onError || ((err) => { console.error('[oceanbus] polling error:', err.message); });
|
|
15
|
+
this.intervalMs = intervalMs;
|
|
16
|
+
}
|
|
17
|
+
start() {
|
|
18
|
+
if (this.running)
|
|
19
|
+
return;
|
|
20
|
+
this.running = true;
|
|
21
|
+
this.poll();
|
|
22
|
+
}
|
|
23
|
+
stop() {
|
|
24
|
+
this.running = false;
|
|
25
|
+
if (this.timer) {
|
|
26
|
+
clearTimeout(this.timer);
|
|
27
|
+
this.timer = null;
|
|
28
|
+
}
|
|
29
|
+
}
|
|
30
|
+
isRunning() {
|
|
31
|
+
return this.running;
|
|
32
|
+
}
|
|
33
|
+
async poll() {
|
|
34
|
+
while (this.running) {
|
|
35
|
+
try {
|
|
36
|
+
const messages = await this.sync.sync();
|
|
37
|
+
for (const msg of messages) {
|
|
38
|
+
try {
|
|
39
|
+
await this.onMessage(msg);
|
|
40
|
+
}
|
|
41
|
+
catch (handlerErr) {
|
|
42
|
+
this.onError(handlerErr);
|
|
43
|
+
}
|
|
44
|
+
}
|
|
45
|
+
}
|
|
46
|
+
catch (err) {
|
|
47
|
+
this.onError(err);
|
|
48
|
+
}
|
|
49
|
+
// Wait for next interval, but check running flag
|
|
50
|
+
await new Promise((resolve) => {
|
|
51
|
+
if (!this.running) {
|
|
52
|
+
resolve();
|
|
53
|
+
return;
|
|
54
|
+
}
|
|
55
|
+
this.timer = setTimeout(() => {
|
|
56
|
+
this.timer = null;
|
|
57
|
+
resolve();
|
|
58
|
+
}, this.intervalMs);
|
|
59
|
+
});
|
|
60
|
+
}
|
|
61
|
+
}
|
|
62
|
+
}
|
|
63
|
+
exports.AutoPollEngine = AutoPollEngine;
|
|
64
|
+
//# sourceMappingURL=poller.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"poller.js","sourceRoot":"","sources":["../../src/mailbox/poller.ts"],"names":[],"mappings":";;;AAMA,MAAa,cAAc;IACjB,IAAI,CAAc;IAClB,UAAU,CAAS;IACnB,OAAO,GAAY,KAAK,CAAC;IACzB,KAAK,GAAyC,IAAI,CAAC;IACnD,SAAS,CAAiB;IAC1B,OAAO,CAAe;IAE9B,YACE,IAAiB,EACjB,SAAyB,EACzB,OAAsB,EACtB,aAAqB,IAAI;QAEzB,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QACjB,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;QAC3B,IAAI,CAAC,OAAO,GAAG,OAAO,IAAI,CAAC,CAAC,GAAU,EAAE,EAAE,GAAG,OAAO,CAAC,KAAK,CAAC,2BAA2B,EAAE,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QACzG,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC;IAC/B,CAAC;IAED,KAAK;QACH,IAAI,IAAI,CAAC,OAAO;YAAE,OAAO;QACzB,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;QACpB,IAAI,CAAC,IAAI,EAAE,CAAC;IACd,CAAC;IAED,IAAI;QACF,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC;QACrB,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC;YACf,YAAY,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YACzB,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC;QACpB,CAAC;IACH,CAAC;IAED,SAAS;QACP,OAAO,IAAI,CAAC,OAAO,CAAC;IACtB,CAAC;IAEO,KAAK,CAAC,IAAI;QAChB,OAAO,IAAI,CAAC,OAAO,EAAE,CAAC;YACpB,IAAI,CAAC;gBACH,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;gBACxC,KAAK,MAAM,GAAG,IAAI,QAAQ,EAAE,CAAC;oBAC3B,IAAI,CAAC;wBACH,MAAM,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC;oBAC5B,CAAC;oBAAC,OAAO,UAAU,EAAE,CAAC;wBACpB,IAAI,CAAC,OAAO,CAAC,UAAmB,CAAC,CAAC;oBACpC,CAAC;gBACH,CAAC;YACH,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBACb,IAAI,CAAC,OAAO,CAAC,GAAY,CAAC,CAAC;YAC7B,CAAC;YAED,iDAAiD;YACjD,MAAM,IAAI,OAAO,CAAO,CAAC,OAAO,EAAE,EAAE;gBAClC,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC;oBAAC,OAAO,EAAE,CAAC;oBAAC,OAAO;gBAAC,CAAC;gBACzC,IAAI,CAAC,KAAK,GAAG,UAAU,CAAC,GAAG,EAAE;oBAC3B,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC;oBAClB,OAAO,EAAE,CAAC;gBACZ,CAAC,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC;YACtB,CAAC,CAAC,CAAC;QACL,CAAC;IACH,CAAC;CACF;AA/DD,wCA+DC"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { HttpClient } from '../client/http-client';
|
|
2
|
+
import type { Message } from '../types/messaging';
|
|
3
|
+
import { SeqCursor } from './cursor';
|
|
4
|
+
export declare class MailboxSync {
|
|
5
|
+
private http;
|
|
6
|
+
private getApiKey;
|
|
7
|
+
private cursor;
|
|
8
|
+
private defaultPageSize;
|
|
9
|
+
constructor(http: HttpClient, getApiKey: () => string | null, cursor: SeqCursor, defaultPageSize?: number);
|
|
10
|
+
getCursor(): SeqCursor;
|
|
11
|
+
sync(sinceSeq?: number, limit?: number): Promise<Message[]>;
|
|
12
|
+
}
|
|
13
|
+
//# sourceMappingURL=sync.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sync.d.ts","sourceRoot":"","sources":["../../src/mailbox/sync.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAC;AACnD,OAAO,KAAK,EAAE,OAAO,EAAY,MAAM,oBAAoB,CAAC;AAE5D,OAAO,EAAE,SAAS,EAAE,MAAM,UAAU,CAAC;AAKrC,qBAAa,WAAW;IACtB,OAAO,CAAC,IAAI,CAAa;IACzB,OAAO,CAAC,SAAS,CAAsB;IACvC,OAAO,CAAC,MAAM,CAAY;IAC1B,OAAO,CAAC,eAAe,CAAS;gBAG9B,IAAI,EAAE,UAAU,EAChB,SAAS,EAAE,MAAM,MAAM,GAAG,IAAI,EAC9B,MAAM,EAAE,SAAS,EACjB,eAAe,GAAE,MAAY;IAQ/B,SAAS,IAAI,SAAS;IAIhB,IAAI,CAAC,QAAQ,CAAC,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,EAAE,CAAC;CA4ClE"}
|
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.MailboxSync = void 0;
|
|
4
|
+
const errors_1 = require("../client/errors");
|
|
5
|
+
const MAX_PAGE_SIZE = 500;
|
|
6
|
+
const MAX_PAGINATION_ITERATIONS = 50;
|
|
7
|
+
class MailboxSync {
|
|
8
|
+
http;
|
|
9
|
+
getApiKey;
|
|
10
|
+
cursor;
|
|
11
|
+
defaultPageSize;
|
|
12
|
+
constructor(http, getApiKey, cursor, defaultPageSize = 100) {
|
|
13
|
+
this.http = http;
|
|
14
|
+
this.getApiKey = getApiKey;
|
|
15
|
+
this.cursor = cursor;
|
|
16
|
+
this.defaultPageSize = Math.min(defaultPageSize, MAX_PAGE_SIZE);
|
|
17
|
+
}
|
|
18
|
+
getCursor() {
|
|
19
|
+
return this.cursor;
|
|
20
|
+
}
|
|
21
|
+
async sync(sinceSeq, limit) {
|
|
22
|
+
const apiKey = this.getApiKey();
|
|
23
|
+
if (!apiKey)
|
|
24
|
+
throw new errors_1.OceanBusError('Not authenticated');
|
|
25
|
+
const allMessages = [];
|
|
26
|
+
let currentSince = sinceSeq ?? this.cursor.get();
|
|
27
|
+
const pageSize = limit ?? this.defaultPageSize;
|
|
28
|
+
let iteration = 0;
|
|
29
|
+
while (iteration < MAX_PAGINATION_ITERATIONS) {
|
|
30
|
+
iteration++;
|
|
31
|
+
const res = await this.http.get('/messages/sync', {
|
|
32
|
+
apiKey,
|
|
33
|
+
query: {
|
|
34
|
+
since_seq: currentSince,
|
|
35
|
+
limit: pageSize,
|
|
36
|
+
},
|
|
37
|
+
});
|
|
38
|
+
const { messages, has_more } = res.data;
|
|
39
|
+
if (messages && messages.length > 0) {
|
|
40
|
+
allMessages.push(...messages);
|
|
41
|
+
for (const msg of messages) {
|
|
42
|
+
this.cursor.set(msg.seq_id);
|
|
43
|
+
}
|
|
44
|
+
currentSince = this.cursor.get();
|
|
45
|
+
}
|
|
46
|
+
// Exit conditions
|
|
47
|
+
if (!has_more)
|
|
48
|
+
break;
|
|
49
|
+
// Guard: if has_more is true but no messages were returned, break to avoid infinite loop
|
|
50
|
+
if (!messages || messages.length === 0)
|
|
51
|
+
break;
|
|
52
|
+
if (limit && allMessages.length >= limit)
|
|
53
|
+
break;
|
|
54
|
+
}
|
|
55
|
+
await this.cursor.save();
|
|
56
|
+
return allMessages;
|
|
57
|
+
}
|
|
58
|
+
}
|
|
59
|
+
exports.MailboxSync = MailboxSync;
|
|
60
|
+
//# sourceMappingURL=sync.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sync.js","sourceRoot":"","sources":["../../src/mailbox/sync.ts"],"names":[],"mappings":";;;AAEA,6CAAiD;AAGjD,MAAM,aAAa,GAAG,GAAG,CAAC;AAC1B,MAAM,yBAAyB,GAAG,EAAE,CAAC;AAErC,MAAa,WAAW;IACd,IAAI,CAAa;IACjB,SAAS,CAAsB;IAC/B,MAAM,CAAY;IAClB,eAAe,CAAS;IAEhC,YACE,IAAgB,EAChB,SAA8B,EAC9B,MAAiB,EACjB,kBAA0B,GAAG;QAE7B,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QACjB,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;QAC3B,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACrB,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,GAAG,CAAC,eAAe,EAAE,aAAa,CAAC,CAAC;IAClE,CAAC;IAED,SAAS;QACP,OAAO,IAAI,CAAC,MAAM,CAAC;IACrB,CAAC;IAED,KAAK,CAAC,IAAI,CAAC,QAAiB,EAAE,KAAc;QAC1C,MAAM,MAAM,GAAG,IAAI,CAAC,SAAS,EAAE,CAAC;QAChC,IAAI,CAAC,MAAM;YAAE,MAAM,IAAI,sBAAa,CAAC,mBAAmB,CAAC,CAAC;QAE1D,MAAM,WAAW,GAAc,EAAE,CAAC;QAClC,IAAI,YAAY,GAAG,QAAQ,IAAI,IAAI,CAAC,MAAM,CAAC,GAAG,EAAE,CAAC;QACjD,MAAM,QAAQ,GAAG,KAAK,IAAI,IAAI,CAAC,eAAe,CAAC;QAC/C,IAAI,SAAS,GAAG,CAAC,CAAC;QAElB,OAAO,SAAS,GAAG,yBAAyB,EAAE,CAAC;YAC7C,SAAS,EAAE,CAAC;YACZ,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,GAAG,CAAW,gBAAgB,EAAE;gBAC1D,MAAM;gBACN,KAAK,EAAE;oBACL,SAAS,EAAE,YAAY;oBACvB,KAAK,EAAE,QAAQ;iBAChB;aACF,CAAC,CAAC;YAEH,MAAM,EAAE,QAAQ,EAAE,QAAQ,EAAE,GAAG,GAAG,CAAC,IAAI,CAAC;YAExC,IAAI,QAAQ,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBACpC,WAAW,CAAC,IAAI,CAAC,GAAG,QAAQ,CAAC,CAAC;gBAE9B,KAAK,MAAM,GAAG,IAAI,QAAQ,EAAE,CAAC;oBAC3B,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;gBAC9B,CAAC;gBAED,YAAY,GAAG,IAAI,CAAC,MAAM,CAAC,GAAG,EAAE,CAAC;YACnC,CAAC;YAED,kBAAkB;YAClB,IAAI,CAAC,QAAQ;gBAAE,MAAM;YAErB,yFAAyF;YACzF,IAAI,CAAC,QAAQ,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC;gBAAE,MAAM;YAE9C,IAAI,KAAK,IAAI,WAAW,CAAC,MAAM,IAAI,KAAK;gBAAE,MAAM;QAClD,CAAC;QAED,MAAM,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC;QAEzB,OAAO,WAAW,CAAC;IACrB,CAAC;CACF;AAlED,kCAkEC"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import { HttpClient } from '../client/http-client';
|
|
2
|
+
import type { ReverseLookupData } from '../types/messaging';
|
|
3
|
+
export declare class BlocklistManager {
|
|
4
|
+
private http;
|
|
5
|
+
private getApiKey;
|
|
6
|
+
private blocked;
|
|
7
|
+
private filePath;
|
|
8
|
+
constructor(http: HttpClient, getApiKey: () => string | null, filePath?: string);
|
|
9
|
+
loadLocal(): Promise<void>;
|
|
10
|
+
saveLocal(): Promise<void>;
|
|
11
|
+
block(fromOpenid: string): Promise<void>;
|
|
12
|
+
unblock(fromOpenid: string): Promise<void>;
|
|
13
|
+
isBlocked(fromOpenid: string): boolean;
|
|
14
|
+
getBlocklist(): string[];
|
|
15
|
+
reverseLookup(openid: string): Promise<ReverseLookupData>;
|
|
16
|
+
}
|
|
17
|
+
//# sourceMappingURL=blocklist.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"blocklist.d.ts","sourceRoot":"","sources":["../../src/messaging/blocklist.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAC;AACnD,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAC;AAG5D,qBAAa,gBAAgB;IAC3B,OAAO,CAAC,IAAI,CAAa;IACzB,OAAO,CAAC,SAAS,CAAsB;IACvC,OAAO,CAAC,OAAO,CAAc;IAC7B,OAAO,CAAC,QAAQ,CAAS;gBAEb,IAAI,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,MAAM,GAAG,IAAI,EAAE,QAAQ,CAAC,EAAE,MAAM;IAOzE,SAAS,IAAI,OAAO,CAAC,IAAI,CAAC;IAY1B,SAAS,IAAI,OAAO,CAAC,IAAI,CAAC;IAO1B,KAAK,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAUxC,OAAO,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAehD,SAAS,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO;IAItC,YAAY,IAAI,MAAM,EAAE;IAIlB,aAAa,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,iBAAiB,CAAC;CAUhE"}
|