@localhostdevs/sdk 0.18.0 → 0.19.1
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 +383 -356
- package/dist/bot.d.ts +27 -0
- package/dist/bot.d.ts.map +1 -1
- package/dist/bot.js +87 -1
- package/dist/bot.js.map +1 -1
- package/dist/collectStore.js +21 -21
- package/dist/sso.d.ts +28 -0
- package/dist/sso.d.ts.map +1 -1
- package/dist/sso.js +58 -3
- package/dist/sso.js.map +1 -1
- package/dist/transport.d.ts +16 -0
- package/dist/transport.d.ts.map +1 -1
- package/dist/transport.js +81 -9
- package/dist/transport.js.map +1 -1
- package/dist/types.d.ts +11 -0
- package/dist/types.d.ts.map +1 -1
- package/dist/version.d.ts +1 -1
- package/dist/version.js +1 -1
- package/package.json +64 -64
- package/dist/poll.d.ts +0 -31
- package/dist/poll.d.ts.map +0 -1
- package/dist/poll.js +0 -48
- package/dist/poll.js.map +0 -1
- package/dist/pollStore.d.ts +0 -26
- package/dist/pollStore.d.ts.map +0 -1
- package/dist/pollStore.js +0 -79
- package/dist/pollStore.js.map +0 -1
- package/dist/tsconfig.tsbuildinfo +0 -1
package/dist/transport.js
CHANGED
|
@@ -28,6 +28,13 @@ export function buildIdentifyPayload(opts) {
|
|
|
28
28
|
...(opts.http ? { http: true } : {}),
|
|
29
29
|
};
|
|
30
30
|
}
|
|
31
|
+
function logDebug(msg) {
|
|
32
|
+
// eslint-disable-next-line no-console
|
|
33
|
+
console.debug(`[lhd-sdk] ${msg}`);
|
|
34
|
+
}
|
|
35
|
+
/** Defaults for the redelivery reply cache's byte + age bounds. */
|
|
36
|
+
const DEFAULT_REPLY_CACHE_MAX_BYTES = 32 * 1024 * 1024; // 32 MiB
|
|
37
|
+
const DEFAULT_REPLY_CACHE_TTL_MS = 15 * 60 * 1000; // 15 minutes
|
|
31
38
|
/**
|
|
32
39
|
* Thin WebSocket client implementing the bot-gateway opcode protocol.
|
|
33
40
|
* - Sends IDENTIFY on open, awaits HELLO before resolving connect()
|
|
@@ -45,8 +52,13 @@ export class Transport {
|
|
|
45
52
|
replyCache = new Map();
|
|
46
53
|
replyCacheOrder = [];
|
|
47
54
|
replyCacheMax = 1024;
|
|
55
|
+
replyCacheMaxBytes;
|
|
56
|
+
replyCacheTtlMs;
|
|
57
|
+
replyCacheBytes = 0;
|
|
48
58
|
constructor(opts) {
|
|
49
59
|
this.opts = opts;
|
|
60
|
+
this.replyCacheMaxBytes = opts.replyCacheMaxBytes ?? DEFAULT_REPLY_CACHE_MAX_BYTES;
|
|
61
|
+
this.replyCacheTtlMs = opts.replyCacheTtlMs ?? DEFAULT_REPLY_CACHE_TTL_MS;
|
|
50
62
|
}
|
|
51
63
|
async connect() {
|
|
52
64
|
this.ws = new WebSocket(this.opts.serverUrl);
|
|
@@ -133,22 +145,82 @@ export class Transport {
|
|
|
133
145
|
this.send({ op: OP.REPLY, d: { msgId, body } });
|
|
134
146
|
}
|
|
135
147
|
cacheReply(msgId, body) {
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
148
|
+
this.expireReplyCache(Date.now());
|
|
149
|
+
let bytes;
|
|
150
|
+
try {
|
|
151
|
+
bytes = Buffer.byteLength(JSON.stringify(body) ?? '', 'utf8');
|
|
152
|
+
}
|
|
153
|
+
catch {
|
|
154
|
+
// Non-serializable body (circular ref, BigInt). It can't go on the wire
|
|
155
|
+
// either, so there's nothing worth caching.
|
|
156
|
+
this.dropCached(msgId);
|
|
157
|
+
return;
|
|
158
|
+
}
|
|
159
|
+
// A single reply larger than the whole budget is never cached — caching it
|
|
160
|
+
// would evict everything else and still blow the bound. Redelivery for this
|
|
161
|
+
// msgId then takes the existing "unreplayable" path (ERROR cannot_replay).
|
|
162
|
+
if (bytes > this.replyCacheMaxBytes) {
|
|
163
|
+
this.dropCached(msgId);
|
|
164
|
+
logDebug(`reply for msgId=${msgId} is ${bytes}B, over the ${this.replyCacheMaxBytes}B reply-cache budget — not cached; a redelivery will be refused with cannot_replay`);
|
|
165
|
+
return;
|
|
166
|
+
}
|
|
167
|
+
this.dropCached(msgId);
|
|
168
|
+
this.replyCacheOrder.push(msgId);
|
|
169
|
+
this.replyCache.set(msgId, { body, bytes, cachedAt: Date.now() });
|
|
170
|
+
this.replyCacheBytes += bytes;
|
|
171
|
+
// Evict oldest-inserted until BOTH budgets are satisfied. Terminates: the
|
|
172
|
+
// just-inserted entry alone is within the byte budget (checked above).
|
|
173
|
+
while (this.replyCacheOrder.length > this.replyCacheMax ||
|
|
174
|
+
this.replyCacheBytes > this.replyCacheMaxBytes) {
|
|
140
175
|
const evicted = this.replyCacheOrder.shift();
|
|
141
|
-
if (evicted)
|
|
142
|
-
|
|
176
|
+
if (evicted === undefined)
|
|
177
|
+
break;
|
|
178
|
+
this.forget(evicted);
|
|
179
|
+
}
|
|
180
|
+
}
|
|
181
|
+
/** Remove msgId from the cache (and its order slot), keeping the byte total honest. */
|
|
182
|
+
dropCached(msgId) {
|
|
183
|
+
if (!this.replyCache.has(msgId))
|
|
184
|
+
return;
|
|
185
|
+
const idx = this.replyCacheOrder.indexOf(msgId);
|
|
186
|
+
if (idx >= 0)
|
|
187
|
+
this.replyCacheOrder.splice(idx, 1);
|
|
188
|
+
this.forget(msgId);
|
|
189
|
+
}
|
|
190
|
+
/** Delete a cache entry and decrement the byte total. Does NOT touch the order array. */
|
|
191
|
+
forget(msgId) {
|
|
192
|
+
const entry = this.replyCache.get(msgId);
|
|
193
|
+
if (!entry)
|
|
194
|
+
return;
|
|
195
|
+
this.replyCacheBytes -= entry.bytes;
|
|
196
|
+
this.replyCache.delete(msgId);
|
|
197
|
+
}
|
|
198
|
+
/** Lazy TTL sweep — drops every entry older than replyCacheTtlMs. */
|
|
199
|
+
expireReplyCache(now) {
|
|
200
|
+
// The order array is insertion-ordered and the TTL is uniform, so the
|
|
201
|
+
// expired entries are always a prefix.
|
|
202
|
+
while (this.replyCacheOrder.length > 0) {
|
|
203
|
+
const oldest = this.replyCacheOrder[0];
|
|
204
|
+
const entry = this.replyCache.get(oldest);
|
|
205
|
+
if (!entry) {
|
|
206
|
+
this.replyCacheOrder.shift();
|
|
207
|
+
continue;
|
|
208
|
+
}
|
|
209
|
+
if (now - entry.cachedAt < this.replyCacheTtlMs)
|
|
210
|
+
return;
|
|
211
|
+
this.replyCacheOrder.shift();
|
|
212
|
+
this.forget(oldest);
|
|
143
213
|
}
|
|
144
214
|
}
|
|
145
215
|
hasReplyCached(msgId) {
|
|
216
|
+
this.expireReplyCache(Date.now());
|
|
146
217
|
return this.replyCache.has(msgId);
|
|
147
218
|
}
|
|
148
219
|
replayReply(msgId) {
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
220
|
+
this.expireReplyCache(Date.now());
|
|
221
|
+
const entry = this.replyCache.get(msgId);
|
|
222
|
+
if (entry !== undefined)
|
|
223
|
+
this.send({ op: OP.REPLY, d: { msgId, body: entry.body } });
|
|
152
224
|
}
|
|
153
225
|
sendCannotReplay(msgId) {
|
|
154
226
|
this.send({ op: OP.ERROR, d: { msgId, code: 'cannot_replay' } });
|
package/dist/transport.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"transport.js","sourceRoot":"","sources":["../src/transport.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,IAAI,CAAC;AAE/B,2FAA2F;AAC3F,MAAM,CAAC,MAAM,EAAE,GAAG;IAChB,OAAO,EAAE,CAAC;IACV,QAAQ,EAAE,CAAC;IACX,SAAS,EAAE,CAAC;IACZ,KAAK,EAAE,CAAC;IACR,MAAM,EAAE,CAAC;IACT,cAAc,EAAE,CAAC;IACjB,KAAK,EAAE,CAAC;IACR,KAAK,EAAE,EAAE;IACT,aAAa,EAAE,EAAE;CACT,CAAC;
|
|
1
|
+
{"version":3,"file":"transport.js","sourceRoot":"","sources":["../src/transport.ts"],"names":[],"mappings":"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"}
|
package/dist/types.d.ts
CHANGED
|
@@ -301,6 +301,17 @@ export interface BotOptions {
|
|
|
301
301
|
apiBaseUrl?: string;
|
|
302
302
|
/** Idempotency LRU size. Defaults to 1024. */
|
|
303
303
|
idempotencyLruSize?: number;
|
|
304
|
+
/** Byte ceiling for the redelivery reply cache. Defaults to 32 MiB.
|
|
305
|
+
* The cache keeps whole reply bodies (base64 images included), so the count
|
|
306
|
+
* bound alone let a few large replies pin hundreds of MB. A reply bigger than
|
|
307
|
+
* this budget is not cached at all — a redelivery of it is refused with
|
|
308
|
+
* `cannot_replay` and the gateway refunds, exactly as for any other
|
|
309
|
+
* unreplayable message. */
|
|
310
|
+
replyCacheMaxBytes?: number;
|
|
311
|
+
/** How long a cached reply stays replayable, in ms. Defaults to 15 minutes.
|
|
312
|
+
* Older entries are dropped lazily; a redelivery past the TTL is refused with
|
|
313
|
+
* `cannot_replay`. */
|
|
314
|
+
replyCacheTtlMs?: number;
|
|
304
315
|
/** When true, command handlers can call ctx.update() to emit progress
|
|
305
316
|
* frames before the final ctx.reply(). When false (default), ctx.update
|
|
306
317
|
* is not exposed; calling it would be a type error. Per-command override
|
package/dist/types.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
|
package/dist/version.d.ts
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export declare const SDK_PACKAGE_VERSION = "0.
|
|
1
|
+
export declare const SDK_PACKAGE_VERSION = "0.19.1";
|
|
2
2
|
//# sourceMappingURL=version.d.ts.map
|
package/dist/version.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
// AUTO-GENERATED by scripts/generate-version.mjs from package.json.
|
|
2
2
|
// Do not edit by hand — run `npm run build` after bumping package.json.
|
|
3
|
-
export const SDK_PACKAGE_VERSION = '0.
|
|
3
|
+
export const SDK_PACKAGE_VERSION = '0.19.1';
|
|
4
4
|
//# sourceMappingURL=version.js.map
|
package/package.json
CHANGED
|
@@ -1,64 +1,64 @@
|
|
|
1
|
-
{
|
|
2
|
-
"name": "@localhostdevs/sdk",
|
|
3
|
-
"version": "0.
|
|
4
|
-
"description": "JavaScript SDK for building bots on localhostdevs — run your app on your laptop, publish it as a command-driven bot.",
|
|
5
|
-
"keywords": [
|
|
6
|
-
"localhostdevs",
|
|
7
|
-
"bot",
|
|
8
|
-
"websocket",
|
|
9
|
-
"chatops",
|
|
10
|
-
"cli",
|
|
11
|
-
"sdk"
|
|
12
|
-
],
|
|
13
|
-
"homepage": "https://github.com/jugod0/localhostdevs-sdk",
|
|
14
|
-
"repository": {
|
|
15
|
-
"type": "git",
|
|
16
|
-
"url": "git+https://github.com/jugod0/localhostdevs-sdk.git"
|
|
17
|
-
},
|
|
18
|
-
"bugs": {
|
|
19
|
-
"url": "https://github.com/jugod0/localhostdevs-sdk/issues"
|
|
20
|
-
},
|
|
21
|
-
"license": "MIT",
|
|
22
|
-
"type": "module",
|
|
23
|
-
"main": "./dist/index.js",
|
|
24
|
-
"types": "./dist/index.d.ts",
|
|
25
|
-
"exports": {
|
|
26
|
-
".": {
|
|
27
|
-
"types": "./dist/index.d.ts",
|
|
28
|
-
"import": "./dist/index.js",
|
|
29
|
-
"default": "./dist/index.js"
|
|
30
|
-
}
|
|
31
|
-
},
|
|
32
|
-
"files": [
|
|
33
|
-
"dist",
|
|
34
|
-
"README.md"
|
|
35
|
-
],
|
|
36
|
-
"engines": {
|
|
37
|
-
"node": ">=22.5"
|
|
38
|
-
},
|
|
39
|
-
"scripts": {
|
|
40
|
-
"generate-version": "node scripts/generate-version.mjs",
|
|
41
|
-
"build": "npm run generate-version && tsc -p tsconfig.build.json",
|
|
42
|
-
"typecheck": "npm run generate-version && tsc --noEmit",
|
|
43
|
-
"typecheck:fast": "tsgo --noEmit -p tsconfig.json || echo '[tsgo preview] advisory only — stable tsc is the source of truth'",
|
|
44
|
-
"test": "npm run generate-version && vitest run",
|
|
45
|
-
"prepare": "npm run build",
|
|
46
|
-
"prepublishOnly": "npm run build"
|
|
47
|
-
},
|
|
48
|
-
"dependencies": {
|
|
49
|
-
"nanoid": "^5.1.11",
|
|
50
|
-
"ws": "^8.18.0",
|
|
51
|
-
"zod": "^4.0.0"
|
|
52
|
-
},
|
|
53
|
-
"devDependencies": {
|
|
54
|
-
"@types/node": "^22.19.19",
|
|
55
|
-
"@types/ws": "^8.5.13",
|
|
56
|
-
"@typescript/native-preview": "^7.0.0-dev.20260624.1",
|
|
57
|
-
"tsx": "^4.21.0",
|
|
58
|
-
"typescript": "^6.0.3",
|
|
59
|
-
"vitest": "^2.1.9"
|
|
60
|
-
},
|
|
61
|
-
"publishConfig": {
|
|
62
|
-
"access": "public"
|
|
63
|
-
}
|
|
64
|
-
}
|
|
1
|
+
{
|
|
2
|
+
"name": "@localhostdevs/sdk",
|
|
3
|
+
"version": "0.19.1",
|
|
4
|
+
"description": "JavaScript SDK for building bots on localhostdevs — run your app on your laptop, publish it as a command-driven bot.",
|
|
5
|
+
"keywords": [
|
|
6
|
+
"localhostdevs",
|
|
7
|
+
"bot",
|
|
8
|
+
"websocket",
|
|
9
|
+
"chatops",
|
|
10
|
+
"cli",
|
|
11
|
+
"sdk"
|
|
12
|
+
],
|
|
13
|
+
"homepage": "https://github.com/jugod0/localhostdevs-sdk",
|
|
14
|
+
"repository": {
|
|
15
|
+
"type": "git",
|
|
16
|
+
"url": "git+https://github.com/jugod0/localhostdevs-sdk.git"
|
|
17
|
+
},
|
|
18
|
+
"bugs": {
|
|
19
|
+
"url": "https://github.com/jugod0/localhostdevs-sdk/issues"
|
|
20
|
+
},
|
|
21
|
+
"license": "MIT",
|
|
22
|
+
"type": "module",
|
|
23
|
+
"main": "./dist/index.js",
|
|
24
|
+
"types": "./dist/index.d.ts",
|
|
25
|
+
"exports": {
|
|
26
|
+
".": {
|
|
27
|
+
"types": "./dist/index.d.ts",
|
|
28
|
+
"import": "./dist/index.js",
|
|
29
|
+
"default": "./dist/index.js"
|
|
30
|
+
}
|
|
31
|
+
},
|
|
32
|
+
"files": [
|
|
33
|
+
"dist",
|
|
34
|
+
"README.md"
|
|
35
|
+
],
|
|
36
|
+
"engines": {
|
|
37
|
+
"node": ">=22.5"
|
|
38
|
+
},
|
|
39
|
+
"scripts": {
|
|
40
|
+
"generate-version": "node scripts/generate-version.mjs",
|
|
41
|
+
"build": "npm run generate-version && tsc -p tsconfig.build.json",
|
|
42
|
+
"typecheck": "npm run generate-version && tsc --noEmit",
|
|
43
|
+
"typecheck:fast": "tsgo --noEmit -p tsconfig.json || echo '[tsgo preview] advisory only — stable tsc is the source of truth'",
|
|
44
|
+
"test": "npm run generate-version && vitest run",
|
|
45
|
+
"prepare": "npm run build",
|
|
46
|
+
"prepublishOnly": "npm run build"
|
|
47
|
+
},
|
|
48
|
+
"dependencies": {
|
|
49
|
+
"nanoid": "^5.1.11",
|
|
50
|
+
"ws": "^8.18.0",
|
|
51
|
+
"zod": "^4.0.0"
|
|
52
|
+
},
|
|
53
|
+
"devDependencies": {
|
|
54
|
+
"@types/node": "^22.19.19",
|
|
55
|
+
"@types/ws": "^8.5.13",
|
|
56
|
+
"@typescript/native-preview": "^7.0.0-dev.20260624.1",
|
|
57
|
+
"tsx": "^4.21.0",
|
|
58
|
+
"typescript": "^6.0.3",
|
|
59
|
+
"vitest": "^2.1.9"
|
|
60
|
+
},
|
|
61
|
+
"publishConfig": {
|
|
62
|
+
"access": "public"
|
|
63
|
+
}
|
|
64
|
+
}
|
package/dist/poll.d.ts
DELETED
|
@@ -1,31 +0,0 @@
|
|
|
1
|
-
import type { PollOption } from './pollStore.js';
|
|
2
|
-
import type { PollStore } from './pollStore.js';
|
|
3
|
-
import type { CommandContext } from './types.js';
|
|
4
|
-
export type PollResult = {
|
|
5
|
-
action: string | null;
|
|
6
|
-
noVotes?: boolean;
|
|
7
|
-
tally: Array<{
|
|
8
|
-
action: string;
|
|
9
|
-
label: string;
|
|
10
|
-
votes: number;
|
|
11
|
-
}>;
|
|
12
|
-
};
|
|
13
|
-
/** Plurality; on a tie the earliest-declared option (lowest index) wins; zero
|
|
14
|
-
* total votes → { action: null, noVotes: true }. The tally lists every option
|
|
15
|
-
* in declaration order. */
|
|
16
|
-
export declare function resolveWinner(options: PollOption[], counts: Record<string, number>): PollResult;
|
|
17
|
-
export type PollResultSink = (event: {
|
|
18
|
-
promptId: string;
|
|
19
|
-
result: PollResult;
|
|
20
|
-
origin: Record<string, unknown>;
|
|
21
|
-
}) => Promise<void>;
|
|
22
|
-
/** One close-loop pass: resolve every due open poll, emit to the sink, mark
|
|
23
|
-
* closed. Emit-before-mark with at-least-once intent — if the sink throws the
|
|
24
|
-
* poll stays open and is retried next pass (the sink/#2 dedups on promptId).
|
|
25
|
-
* Never rejects: a per-poll failure is isolated so one bad poll can't stall
|
|
26
|
-
* the rest. */
|
|
27
|
-
export declare function closeDuePolls(store: PollStore, now: number, sink: PollResultSink): Promise<void>;
|
|
28
|
-
/** The internal `__poll_vote` action handler: upsert one vote per member.
|
|
29
|
-
* Ignores votes for an unknown/closed poll or an option not in the poll. */
|
|
30
|
-
export declare function makeVoteHandler(store: PollStore): (ctx: CommandContext) => Promise<void>;
|
|
31
|
-
//# sourceMappingURL=poll.d.ts.map
|
package/dist/poll.d.ts.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"poll.d.ts","sourceRoot":"","sources":["../src/poll.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AACjD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAChD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAEjD,MAAM,MAAM,UAAU,GAAG;IACvB,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,KAAK,EAAE,KAAK,CAAC;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;CAChE,CAAC;AAEF;;4BAE4B;AAC5B,wBAAgB,aAAa,CAAC,OAAO,EAAE,UAAU,EAAE,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,UAAU,CAQ/F;AAED,MAAM,MAAM,cAAc,GAAG,CAAC,KAAK,EAAE;IACnC,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,UAAU,CAAC;IACnB,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACjC,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;AAEpB;;;;gBAIgB;AAChB,wBAAsB,aAAa,CAAC,KAAK,EAAE,SAAS,EAAE,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,cAAc,GAAG,OAAO,CAAC,IAAI,CAAC,CAUtG;AAED;6EAC6E;AAC7E,wBAAgB,eAAe,CAAC,KAAK,EAAE,SAAS,GAAG,CAAC,GAAG,EAAE,cAAc,KAAK,OAAO,CAAC,IAAI,CAAC,CAYxF"}
|
package/dist/poll.js
DELETED
|
@@ -1,48 +0,0 @@
|
|
|
1
|
-
/** Plurality; on a tie the earliest-declared option (lowest index) wins; zero
|
|
2
|
-
* total votes → { action: null, noVotes: true }. The tally lists every option
|
|
3
|
-
* in declaration order. */
|
|
4
|
-
export function resolveWinner(options, counts) {
|
|
5
|
-
const tally = options.map((o) => ({ action: o.action, label: o.label, votes: counts[o.action] ?? 0 }));
|
|
6
|
-
const total = tally.reduce((s, t) => s + t.votes, 0);
|
|
7
|
-
if (total === 0)
|
|
8
|
-
return { action: null, noVotes: true, tally };
|
|
9
|
-
// Iterate in declaration order so the first option to reach the max wins ties.
|
|
10
|
-
let best = tally[0];
|
|
11
|
-
for (const t of tally)
|
|
12
|
-
if (t.votes > best.votes)
|
|
13
|
-
best = t;
|
|
14
|
-
return { action: best.action, tally };
|
|
15
|
-
}
|
|
16
|
-
/** One close-loop pass: resolve every due open poll, emit to the sink, mark
|
|
17
|
-
* closed. Emit-before-mark with at-least-once intent — if the sink throws the
|
|
18
|
-
* poll stays open and is retried next pass (the sink/#2 dedups on promptId).
|
|
19
|
-
* Never rejects: a per-poll failure is isolated so one bad poll can't stall
|
|
20
|
-
* the rest. */
|
|
21
|
-
export async function closeDuePolls(store, now, sink) {
|
|
22
|
-
for (const poll of store.dueOpenPolls(now)) {
|
|
23
|
-
try {
|
|
24
|
-
const result = resolveWinner(poll.options, store.tally(poll.promptId));
|
|
25
|
-
await sink({ promptId: poll.promptId, result, origin: poll.origin });
|
|
26
|
-
store.markClosed(poll.promptId);
|
|
27
|
-
}
|
|
28
|
-
catch {
|
|
29
|
-
// Leave it open; next pass retries.
|
|
30
|
-
}
|
|
31
|
-
}
|
|
32
|
-
}
|
|
33
|
-
/** The internal `__poll_vote` action handler: upsert one vote per member.
|
|
34
|
-
* Ignores votes for an unknown/closed poll or an option not in the poll. */
|
|
35
|
-
export function makeVoteHandler(store) {
|
|
36
|
-
return async (ctx) => {
|
|
37
|
-
const promptId = typeof ctx.args.promptId === 'string' ? ctx.args.promptId : '';
|
|
38
|
-
const option = typeof ctx.args.option === 'string' ? ctx.args.option : '';
|
|
39
|
-
const voterId = ctx.user?.id;
|
|
40
|
-
const poll = promptId ? store.getPoll(promptId) : null;
|
|
41
|
-
if (poll && poll.status === 'open' && voterId && poll.options.some((o) => o.action === option)) {
|
|
42
|
-
store.recordVote(promptId, voterId, option);
|
|
43
|
-
}
|
|
44
|
-
// Always ack so the dispatch completes (the visible tally update is #2's job).
|
|
45
|
-
await ctx.reply({ kind: 'text', text: 'voted' });
|
|
46
|
-
};
|
|
47
|
-
}
|
|
48
|
-
//# sourceMappingURL=poll.js.map
|
package/dist/poll.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"poll.js","sourceRoot":"","sources":["../src/poll.ts"],"names":[],"mappings":"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"}
|
package/dist/pollStore.d.ts
DELETED
|
@@ -1,26 +0,0 @@
|
|
|
1
|
-
export type PollOption = {
|
|
2
|
-
label: string;
|
|
3
|
-
action: string;
|
|
4
|
-
};
|
|
5
|
-
export type StoredPoll = {
|
|
6
|
-
promptId: string;
|
|
7
|
-
question: string;
|
|
8
|
-
options: PollOption[];
|
|
9
|
-
closesAt: number;
|
|
10
|
-
origin: Record<string, unknown>;
|
|
11
|
-
status: 'open' | 'closed';
|
|
12
|
-
};
|
|
13
|
-
/** Durable poll + vote storage over the built-in node:sqlite (synchronous). */
|
|
14
|
-
export declare class PollStore {
|
|
15
|
-
private readonly db;
|
|
16
|
-
constructor(path: string);
|
|
17
|
-
openPoll(p: Omit<StoredPoll, 'status'>): void;
|
|
18
|
-
recordVote(promptId: string, voterId: string, option: string): void;
|
|
19
|
-
getPoll(promptId: string): StoredPoll | null;
|
|
20
|
-
/** option(action) → count, with every option present (0 for unvoted). */
|
|
21
|
-
tally(promptId: string): Record<string, number>;
|
|
22
|
-
dueOpenPolls(now: number): StoredPoll[];
|
|
23
|
-
markClosed(promptId: string): void;
|
|
24
|
-
close(): void;
|
|
25
|
-
}
|
|
26
|
-
//# sourceMappingURL=pollStore.d.ts.map
|
package/dist/pollStore.d.ts.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"pollStore.d.ts","sourceRoot":"","sources":["../src/pollStore.ts"],"names":[],"mappings":"AAEA,MAAM,MAAM,UAAU,GAAG;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,CAAC;AAC3D,MAAM,MAAM,UAAU,GAAG;IACvB,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,UAAU,EAAE,CAAC;IACtB,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAChC,MAAM,EAAE,MAAM,GAAG,QAAQ,CAAC;CAC3B,CAAC;AAoBF,+EAA+E;AAC/E,qBAAa,SAAS;IACpB,OAAO,CAAC,QAAQ,CAAC,EAAE,CAAe;gBAEtB,IAAI,EAAE,MAAM;IAKxB,QAAQ,CAAC,CAAC,EAAE,IAAI,CAAC,UAAU,EAAE,QAAQ,CAAC,GAAG,IAAI;IAU7C,UAAU,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,IAAI;IASnE,OAAO,CAAC,QAAQ,EAAE,MAAM,GAAG,UAAU,GAAG,IAAI;IAe5C,yEAAyE;IACzE,KAAK,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC;IAW/C,YAAY,CAAC,GAAG,EAAE,MAAM,GAAG,UAAU,EAAE;IAOvC,UAAU,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI;IAIlC,KAAK,IAAI,IAAI;CAGd"}
|
package/dist/pollStore.js
DELETED
|
@@ -1,79 +0,0 @@
|
|
|
1
|
-
import { DatabaseSync } from 'node:sqlite';
|
|
2
|
-
const DDL = `
|
|
3
|
-
CREATE TABLE IF NOT EXISTS polls (
|
|
4
|
-
prompt_id TEXT PRIMARY KEY,
|
|
5
|
-
question TEXT NOT NULL,
|
|
6
|
-
options TEXT NOT NULL,
|
|
7
|
-
closes_at INTEGER NOT NULL,
|
|
8
|
-
origin TEXT NOT NULL,
|
|
9
|
-
status TEXT NOT NULL DEFAULT 'open'
|
|
10
|
-
);
|
|
11
|
-
CREATE TABLE IF NOT EXISTS poll_votes (
|
|
12
|
-
prompt_id TEXT NOT NULL,
|
|
13
|
-
voter_id TEXT NOT NULL,
|
|
14
|
-
option TEXT NOT NULL,
|
|
15
|
-
PRIMARY KEY (prompt_id, voter_id)
|
|
16
|
-
);
|
|
17
|
-
CREATE INDEX IF NOT EXISTS polls_open_due_idx ON polls (status, closes_at);
|
|
18
|
-
`;
|
|
19
|
-
/** Durable poll + vote storage over the built-in node:sqlite (synchronous). */
|
|
20
|
-
export class PollStore {
|
|
21
|
-
db;
|
|
22
|
-
constructor(path) {
|
|
23
|
-
this.db = new DatabaseSync(path);
|
|
24
|
-
this.db.exec(DDL);
|
|
25
|
-
}
|
|
26
|
-
openPoll(p) {
|
|
27
|
-
this.db
|
|
28
|
-
.prepare(`INSERT INTO polls (prompt_id, question, options, closes_at, origin, status)
|
|
29
|
-
VALUES (?, ?, ?, ?, ?, 'open')
|
|
30
|
-
ON CONFLICT(prompt_id) DO NOTHING`)
|
|
31
|
-
.run(p.promptId, p.question, JSON.stringify(p.options), p.closesAt, JSON.stringify(p.origin));
|
|
32
|
-
}
|
|
33
|
-
recordVote(promptId, voterId, option) {
|
|
34
|
-
this.db
|
|
35
|
-
.prepare(`INSERT INTO poll_votes (prompt_id, voter_id, option) VALUES (?, ?, ?)
|
|
36
|
-
ON CONFLICT(prompt_id, voter_id) DO UPDATE SET option = excluded.option`)
|
|
37
|
-
.run(promptId, voterId, option);
|
|
38
|
-
}
|
|
39
|
-
getPoll(promptId) {
|
|
40
|
-
const row = this.db.prepare(`SELECT * FROM polls WHERE prompt_id = ?`).get(promptId);
|
|
41
|
-
if (!row)
|
|
42
|
-
return null;
|
|
43
|
-
return {
|
|
44
|
-
promptId: row.prompt_id,
|
|
45
|
-
question: row.question,
|
|
46
|
-
options: JSON.parse(row.options),
|
|
47
|
-
closesAt: row.closes_at,
|
|
48
|
-
origin: JSON.parse(row.origin),
|
|
49
|
-
status: row.status,
|
|
50
|
-
};
|
|
51
|
-
}
|
|
52
|
-
/** option(action) → count, with every option present (0 for unvoted). */
|
|
53
|
-
tally(promptId) {
|
|
54
|
-
const poll = this.getPoll(promptId);
|
|
55
|
-
const counts = {};
|
|
56
|
-
for (const o of poll?.options ?? [])
|
|
57
|
-
counts[o.action] = 0;
|
|
58
|
-
const rows = this.db
|
|
59
|
-
.prepare(`SELECT option, COUNT(*) AS n FROM poll_votes WHERE prompt_id = ? GROUP BY option`)
|
|
60
|
-
.all(promptId);
|
|
61
|
-
for (const r of rows)
|
|
62
|
-
if (r.option in counts)
|
|
63
|
-
counts[r.option] = r.n;
|
|
64
|
-
return counts;
|
|
65
|
-
}
|
|
66
|
-
dueOpenPolls(now) {
|
|
67
|
-
const rows = this.db
|
|
68
|
-
.prepare(`SELECT prompt_id FROM polls WHERE status = 'open' AND closes_at <= ?`)
|
|
69
|
-
.all(now);
|
|
70
|
-
return rows.map((r) => this.getPoll(r.prompt_id)).filter(Boolean);
|
|
71
|
-
}
|
|
72
|
-
markClosed(promptId) {
|
|
73
|
-
this.db.prepare(`UPDATE polls SET status = 'closed' WHERE prompt_id = ?`).run(promptId);
|
|
74
|
-
}
|
|
75
|
-
close() {
|
|
76
|
-
this.db.close();
|
|
77
|
-
}
|
|
78
|
-
}
|
|
79
|
-
//# sourceMappingURL=pollStore.js.map
|
package/dist/pollStore.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"pollStore.js","sourceRoot":"","sources":["../src/pollStore.ts"],"names":[],"mappings":"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"}
|