stitchkit 0.100.2 → 0.101.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/CHANGELOG.md +153 -0
- package/README.md +2 -1
- package/dist/entrypoints/agent-runtime/browser.js +119 -119
- package/dist/entrypoints/agent-runtime/coding-tools.js +15 -20
- package/dist/entrypoints/agent-runtime/harness.js +55 -63
- package/dist/entrypoints/agent-runtime/openrouter.js +6 -6
- package/dist/entrypoints/agent-runtime/sandbox.js +20 -25
- package/dist/entrypoints/agent-runtime/sqlite/bun.js +11 -13
- package/dist/entrypoints/agent-runtime/sqlite/node.js +11 -13
- package/dist/entrypoints/agent-runtime/testing.js +32 -34
- package/dist/entrypoints/agent-runtime.js +395 -402
- package/dist/entrypoints/application/diagnostic-journal.js +26 -27
- package/dist/entrypoints/application/directory-inbox.js +16 -17
- package/dist/entrypoints/application/grammy.js +13 -13
- package/dist/entrypoints/application/opentelemetry.js +13 -13
- package/dist/entrypoints/application/schemas.js +24 -24
- package/dist/entrypoints/application.js +209 -210
- package/dist/entrypoints/bin/upgrade-cli.js +2 -2
- package/dist/entrypoints/cli.js +81 -84
- package/dist/entrypoints/contract.js +54 -57
- package/dist/entrypoints/declaration.js +22 -22
- package/dist/entrypoints/files.js +18 -21
- package/dist/entrypoints/geo.js +7 -8
- package/dist/entrypoints/google.js +2 -2
- package/dist/entrypoints/index.js +150 -154
- package/dist/entrypoints/live.js +45 -47
- package/dist/entrypoints/node.js +68 -74
- package/dist/entrypoints/oauth.js +6 -6
- package/dist/entrypoints/observability.d.ts +1 -0
- package/dist/entrypoints/observability.d.ts.map +1 -1
- package/dist/entrypoints/observability.js +116 -87
- package/dist/entrypoints/primitives.js +35 -35
- package/dist/entrypoints/react/keyboard.d.ts +4 -0
- package/dist/entrypoints/react/keyboard.d.ts.map +1 -0
- package/dist/entrypoints/react/keyboard.js +397 -0
- package/dist/entrypoints/react.js +10 -10
- package/dist/entrypoints/release.js +7 -7
- package/dist/entrypoints/remote.js +15 -17
- package/dist/entrypoints/server.js +198 -200
- package/dist/entrypoints/telegram/html.d.ts +5 -0
- package/dist/entrypoints/telegram/html.d.ts.map +1 -0
- package/dist/entrypoints/telegram/html.js +26 -0
- package/dist/entrypoints/telegram/screens.d.ts +14 -0
- package/dist/entrypoints/telegram/screens.d.ts.map +1 -0
- package/dist/entrypoints/telegram/screens.js +2028 -0
- package/dist/entrypoints/telegram.d.ts +11 -3
- package/dist/entrypoints/telegram.d.ts.map +1 -1
- package/dist/entrypoints/telegram.js +779 -159
- package/dist/entrypoints/testing.js +75 -79
- package/dist/entrypoints/tools/connections.js +30 -32
- package/dist/entrypoints/tools/contract.js +18 -20
- package/dist/entrypoints/tools/invoker.js +12 -17
- package/dist/entrypoints/tools.js +224 -229
- package/dist/entrypoints/tracking/server.js +6 -6
- package/dist/entrypoints/tracking.js +40 -42
- package/dist/entrypoints/voice.js +3 -3
- package/dist/{index-eaysmdtq.js → index-0ndk4555.js} +56 -56
- package/dist/{index-2bxbyab0.js → index-1bx1xv1k.js} +1 -1
- package/dist/{index-p5r7qpdd.js → index-1eeqpadm.js} +4 -4
- package/dist/{index-hadmp193.js → index-3ct7hhq6.js} +210 -210
- package/dist/{index-e01r054k.js → index-45tdvqa3.js} +26 -26
- package/dist/{index-dce5wxcq.js → index-4s0fep5q.js} +8 -8
- package/dist/index-50ejfz75.js +9 -0
- package/dist/{index-m9zn6cpq.js → index-5107q189.js} +12 -12
- package/dist/{index-sbdmyz75.js → index-5cc6r990.js} +3 -3
- package/dist/{index-c6bxbsnc.js → index-7kxw1awn.js} +2 -2
- package/dist/{index-0r0fbk7z.js → index-7z9ym7t8.js} +28 -28
- package/dist/{index-p7hgdyhb.js → index-814xpr6d.js} +2 -2
- package/dist/{index-gtj3zc53.js → index-8kzct1d6.js} +99 -99
- package/dist/{index-1zbbzgfh.js → index-9pw0a51a.js} +4 -4
- package/dist/{index-79z7m7dt.js → index-a9pd417t.js} +35 -35
- package/dist/{index-ham5sz8m.js → index-aaj97r4y.js} +45 -45
- package/dist/{index-s812ycat.js → index-aan6hqb9.js} +3 -3
- package/dist/{index-10x2hbx0.js → index-adhgd4pe.js} +44 -44
- package/dist/{index-2gxzjvyr.js → index-afjvjyck.js} +23 -23
- package/dist/{index-qmy6zq75.js → index-ahvsksw5.js} +16 -16
- package/dist/{index-hr4tzbwq.js → index-ap3gqe56.js} +3 -3
- package/dist/{index-znfs20ss.js → index-b2bz0kdm.js} +16 -16
- package/dist/{index-r066jx76.js → index-c6aagrbd.js} +148 -120
- package/dist/{index-k30h66yd.js → index-ck71tbcf.js} +9 -9
- package/dist/{index-eqqvgdb3.js → index-ct75c3at.js} +2 -2
- package/dist/{index-gw8bmyaj.js → index-djjhhgjk.js} +41 -41
- package/dist/{index-8qt2m66q.js → index-dvwj1f43.js} +43 -43
- package/dist/index-e05cjgtf.js +144 -0
- package/dist/{index-yw4fzmdz.js → index-e6c2spsd.js} +79 -30
- package/dist/{index-fhwqwxe0.js → index-ej331hah.js} +1 -1
- package/dist/{index-9t3dffv2.js → index-ewbaywk5.js} +5 -5
- package/dist/{index-7p1f0vp2.js → index-fyphpknh.js} +25 -25
- package/dist/{index-83bdg97s.js → index-g149e9pk.js} +1 -1
- package/dist/{index-ngfhvfpd.js → index-g6a3na27.js} +4 -4
- package/dist/{index-qwhynv6x.js → index-h124epcf.js} +20 -20
- package/dist/{index-h6eeys1v.js → index-h97tqqp1.js} +9 -9
- package/dist/{index-zcgf3gqf.js → index-hby4qhax.js} +10 -10
- package/dist/{index-5jrd0yng.js → index-j8aw2c0e.js} +4 -4
- package/dist/{index-d8m8zpd8.js → index-jzczzcsb.js} +14 -14
- package/dist/index-kqnd6a85.js +26 -0
- package/dist/{index-35mh5bhj.js → index-kw1ws0cs.js} +12 -12
- package/dist/{index-4gcnakhx.js → index-m38ej7e5.js} +2 -2
- package/dist/{index-ndddxtyx.js → index-m79yr938.js} +19 -19
- package/dist/{index-5p2m7we1.js → index-m9fndta6.js} +11 -11
- package/dist/index-mnkk1ffz.js +150 -0
- package/dist/index-n15jny5b.js +4 -0
- package/dist/{index-2vtcmrj9.js → index-n53mswt3.js} +20 -20
- package/dist/{index-bt14acb5.js → index-n5yqxd3d.js} +21 -21
- package/dist/{index-bm5rx7n6.js → index-n9tyz8z3.js} +12 -12
- package/dist/index-nmaqxdx7.js +463 -0
- package/dist/{index-mqv3b5rh.js → index-nx6eazt0.js} +30 -30
- package/dist/{index-3z73fh2c.js → index-q0th8q0z.js} +9 -9
- package/dist/{index-v260df89.js → index-qjeggp8w.js} +20 -20
- package/dist/{index-zfrhfn82.js → index-r1z0rd9c.js} +20 -20
- package/dist/{index-wqgjfstn.js → index-r5c4fedv.js} +3 -3
- package/dist/{index-cyktc4bp.js → index-r5hsgkz5.js} +118 -118
- package/dist/{index-0b1ess5e.js → index-r7a7r7ha.js} +1 -1
- package/dist/{index-1j8pm5t0.js → index-rfkh44ss.js} +15 -15
- package/dist/index-rz3z13e9.js +47 -0
- package/dist/{index-k6gpggb9.js → index-s80awwsw.js} +35 -35
- package/dist/{index-vqr7f7v8.js → index-ssmd41kh.js} +124 -124
- package/dist/index-sznqf8fx.js +20 -0
- package/dist/{index-ensd0r74.js → index-v14qqmys.js} +41 -41
- package/dist/{index-paz6sgdp.js → index-v4a2fjtk.js} +36 -36
- package/dist/{index-d9pk3td4.js → index-w0eqdhyd.js} +14 -14
- package/dist/{index-5qn1kx34.js → index-w575evhq.js} +29 -29
- package/dist/{index-3gye9wzb.js → index-w5s3xftz.js} +26 -26
- package/dist/{index-tm88avnj.js → index-wykebpn9.js} +3 -3
- package/dist/{index-sh3s86na.js → index-xkhk5d6g.js} +17 -17
- package/dist/{index-6k1937bx.js → index-xqhede6x.js} +4 -4
- package/dist/{index-f4fx2tza.js → index-zs4ms3th.js} +181 -181
- package/dist/{index-k5hsfc3j.js → index-zsvzhjtk.js} +1 -1
- package/dist/internal/secret-shapes.d.ts +21 -0
- package/dist/internal/secret-shapes.d.ts.map +1 -0
- package/dist/observability/bounded-logger.d.ts +2 -0
- package/dist/observability/bounded-logger.d.ts.map +1 -1
- package/dist/observability/sanitize.d.ts +6 -0
- package/dist/observability/sanitize.d.ts.map +1 -1
- package/dist/observability/secret-values.d.ts +25 -0
- package/dist/observability/secret-values.d.ts.map +1 -0
- package/dist/react/keyboard/hooks.d.ts +71 -0
- package/dist/react/keyboard/hooks.d.ts.map +1 -0
- package/dist/react/keyboard/layers.d.ts +98 -0
- package/dist/react/keyboard/layers.d.ts.map +1 -0
- package/dist/react/keyboard/zone.d.ts +139 -0
- package/dist/react/keyboard/zone.d.ts.map +1 -0
- package/dist/telegram/bot-api.d.ts +7 -4
- package/dist/telegram/bot-api.d.ts.map +1 -1
- package/dist/telegram/crypto.d.ts +16 -0
- package/dist/telegram/crypto.d.ts.map +1 -0
- package/dist/telegram/html/check.d.ts +26 -0
- package/dist/telegram/html/check.d.ts.map +1 -0
- package/dist/telegram/html/nodes.d.ts +70 -0
- package/dist/telegram/html/nodes.d.ts.map +1 -0
- package/dist/telegram/html/parse.d.ts +35 -0
- package/dist/telegram/html/parse.d.ts.map +1 -0
- package/dist/telegram/html/render.d.ts +39 -0
- package/dist/telegram/html/render.d.ts.map +1 -0
- package/dist/telegram/init-data.d.ts +3 -44
- package/dist/telegram/init-data.d.ts.map +1 -1
- package/dist/telegram/operator-channel.d.ts +19 -3
- package/dist/telegram/operator-channel.d.ts.map +1 -1
- package/dist/telegram/operator-dedupe.d.ts +44 -0
- package/dist/telegram/operator-dedupe.d.ts.map +1 -0
- package/dist/telegram/screens/callback-codec.d.ts +34 -0
- package/dist/telegram/screens/callback-codec.d.ts.map +1 -0
- package/dist/telegram/screens/dispatch.d.ts +22 -0
- package/dist/telegram/screens/dispatch.d.ts.map +1 -0
- package/dist/telegram/screens/display.d.ts +70 -0
- package/dist/telegram/screens/display.d.ts.map +1 -0
- package/dist/telegram/screens/execute.d.ts +57 -0
- package/dist/telegram/screens/execute.d.ts.map +1 -0
- package/dist/telegram/screens/html.d.ts +36 -0
- package/dist/telegram/screens/html.d.ts.map +1 -0
- package/dist/telegram/screens/outcome.d.ts +74 -0
- package/dist/telegram/screens/outcome.d.ts.map +1 -0
- package/dist/telegram/screens/path.d.ts +29 -0
- package/dist/telegram/screens/path.d.ts.map +1 -0
- package/dist/telegram/screens/reconcile.d.ts +67 -0
- package/dist/telegram/screens/reconcile.d.ts.map +1 -0
- package/dist/telegram/screens/registry.d.ts +23 -0
- package/dist/telegram/screens/registry.d.ts.map +1 -0
- package/dist/telegram/screens/render.d.ts +70 -0
- package/dist/telegram/screens/render.d.ts.map +1 -0
- package/dist/telegram/screens/runtime.d.ts +133 -0
- package/dist/telegram/screens/runtime.d.ts.map +1 -0
- package/dist/telegram/screens/screen-types.d.ts +130 -0
- package/dist/telegram/screens/screen-types.d.ts.map +1 -0
- package/dist/telegram/screens/screen.d.ts +138 -0
- package/dist/telegram/screens/screen.d.ts.map +1 -0
- package/dist/telegram/screens/state.d.ts +115 -0
- package/dist/telegram/screens/state.d.ts.map +1 -0
- package/dist/telegram/screens/telegram-screens.d.ts +18 -0
- package/dist/telegram/screens/telegram-screens.d.ts.map +1 -0
- package/dist/telegram/screens/test-chat-telegram.d.ts +47 -0
- package/dist/telegram/screens/test-chat-telegram.d.ts.map +1 -0
- package/dist/telegram/screens/test-chat.d.ts +66 -0
- package/dist/telegram/screens/test-chat.d.ts.map +1 -0
- package/dist/telegram/screens/view.d.ts +89 -0
- package/dist/telegram/screens/view.d.ts.map +1 -0
- package/dist/telegram/send-failure.d.ts +25 -0
- package/dist/telegram/send-failure.d.ts.map +1 -1
- package/dist/telegram/update-intake.d.ts +82 -0
- package/dist/telegram/update-intake.d.ts.map +1 -0
- package/dist/telegram/update-store-check.d.ts +22 -0
- package/dist/telegram/update-store-check.d.ts.map +1 -0
- package/dist/telegram/update-store-postgres.d.ts +33 -0
- package/dist/telegram/update-store-postgres.d.ts.map +1 -0
- package/dist/telegram/update-store-sqlite.d.ts +26 -0
- package/dist/telegram/update-store-sqlite.d.ts.map +1 -0
- package/dist/telegram/update-store.d.ts +67 -0
- package/dist/telegram/update-store.d.ts.map +1 -0
- package/dist/telegram/user.d.ts +51 -0
- package/dist/telegram/user.d.ts.map +1 -0
- package/dist/telegram/webhook.d.ts +105 -0
- package/dist/telegram/webhook.d.ts.map +1 -0
- package/dist/tools/cli/args-fields.d.ts +8 -0
- package/dist/tools/cli/args-fields.d.ts.map +1 -1
- package/dist/tools/cli/args-route.d.ts.map +1 -1
- package/dist/tools/cli/args.d.ts.map +1 -1
- package/dist/tools/cli/help.d.ts.map +1 -1
- package/llms/cli.txt +8 -2
- package/llms/observability.txt +15 -2
- package/llms/react-keyboard.txt +193 -0
- package/llms/server.4.txt +16 -0
- package/llms/stitchkit.txt +10 -4
- package/llms/telegram-html.txt +35 -0
- package/llms/telegram-screens.txt +365 -0
- package/llms/telegram.txt +245 -11
- package/llms/{upgrading-0.74.0-0.100.0.txt → upgrading-0.74.0-0.101.0.txt} +39 -3
- package/llms/upgrading.txt +1 -1
- package/llms-full.txt +889 -19
- package/llms.txt +12 -7
- package/package.json +17 -2
- package/dist/index-2k4yrqkc.js +0 -9
- package/dist/index-crykmqkr.js +0 -26
- package/dist/index-y64k3s0h.js +0 -150
- package/dist/index-y91ry9h2.js +0 -4
- /package/dist/{index-hffjpmq9.js → index-9jfdm5tg.js} +0 -0
- /package/dist/{index-zjjyynm3.js → index-d4pa2bgs.js} +0 -0
- /package/dist/{index-rxfy4cq7.js → index-dwfv9a85.js} +0 -0
- /package/dist/{index-5jm36zv1.js → index-gfk7nrht.js} +0 -0
- /package/dist/{index-b9aefrqd.js → index-n1dqr7gf.js} +0 -0
- /package/dist/{index-q3pyb9n0.js → index-sykb5ag7.js} +0 -0
- /package/dist/{index-48ffdxgk.js → index-xhzq2qvj.js} +0 -0
- /package/dist/{index-kzfs85xp.js → index-zsarb5xp.js} +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import {
|
|
2
|
-
|
|
3
|
-
} from "./index-
|
|
2
|
+
createBoundedChannel2
|
|
3
|
+
} from "./index-w0eqdhyd.js";
|
|
4
4
|
|
|
5
5
|
// src/browser/live-state.ts
|
|
6
6
|
import { z as z2 } from "zod";
|
|
@@ -71,7 +71,7 @@ class LiveStateCore {
|
|
|
71
71
|
}
|
|
72
72
|
status() {
|
|
73
73
|
const buffered = this.current?.buffer.getSnapshot();
|
|
74
|
-
return
|
|
74
|
+
return LiveStateControllerStatusSchema2.parse({
|
|
75
75
|
phase: this.phase,
|
|
76
76
|
generation: this.generation,
|
|
77
77
|
hasValue: this.stored.hasValue,
|
|
@@ -255,21 +255,21 @@ class LiveStateCore {
|
|
|
255
255
|
this.publishAvailableCapacity();
|
|
256
256
|
throw error;
|
|
257
257
|
}
|
|
258
|
-
sourceOpening = sourceOpening.then((
|
|
259
|
-
active.closeSource = () =>
|
|
258
|
+
sourceOpening = sourceOpening.then((opened) => {
|
|
259
|
+
active.closeSource = () => opened.close();
|
|
260
260
|
this.unsettledSourceOpens -= 1;
|
|
261
261
|
if (active.retired || this.current !== active || this.phase === "closed") {
|
|
262
262
|
this.closeSource(active);
|
|
263
263
|
}
|
|
264
264
|
this.publishAvailableCapacity();
|
|
265
|
-
return
|
|
265
|
+
return opened;
|
|
266
266
|
}, (error) => {
|
|
267
267
|
this.unsettledSourceOpens -= 1;
|
|
268
268
|
this.publishAvailableCapacity();
|
|
269
269
|
throw error;
|
|
270
270
|
});
|
|
271
271
|
const outcome = await Promise.race([
|
|
272
|
-
sourceOpening.then((
|
|
272
|
+
sourceOpening.then((opened) => ({ outcome: "opened", opened })),
|
|
273
273
|
active.retiredPromise.then(() => ({ outcome: "retired" }))
|
|
274
274
|
]);
|
|
275
275
|
if (outcome.outcome === "retired") {
|
|
@@ -320,7 +320,7 @@ class LiveStateCore {
|
|
|
320
320
|
id: this.generation,
|
|
321
321
|
startedByResync,
|
|
322
322
|
abort: new AbortController,
|
|
323
|
-
buffer:
|
|
323
|
+
buffer: createBoundedChannel2({
|
|
324
324
|
policy: "ordered",
|
|
325
325
|
maxItems: this.maxBufferedEvents,
|
|
326
326
|
maxBytes: this.maxBufferedBytes,
|
|
@@ -362,7 +362,7 @@ class LiveStateCore {
|
|
|
362
362
|
}
|
|
363
363
|
|
|
364
364
|
// src/browser/live-state.ts
|
|
365
|
-
var
|
|
365
|
+
var LiveStatePhaseSchema2 = z2.enum([
|
|
366
366
|
"idle",
|
|
367
367
|
"opening",
|
|
368
368
|
"live",
|
|
@@ -370,7 +370,7 @@ var LiveStatePhaseSchema = z2.enum([
|
|
|
370
370
|
"unavailable",
|
|
371
371
|
"closed"
|
|
372
372
|
]);
|
|
373
|
-
var
|
|
373
|
+
var LiveStateStopReasonSchema2 = z2.enum([
|
|
374
374
|
"gap",
|
|
375
375
|
"buffer-overflow",
|
|
376
376
|
"source-unavailable",
|
|
@@ -378,8 +378,8 @@ var LiveStateStopReasonSchema = z2.enum([
|
|
|
378
378
|
"controller-error",
|
|
379
379
|
"controller-capacity"
|
|
380
380
|
]);
|
|
381
|
-
var
|
|
382
|
-
phase:
|
|
381
|
+
var LiveStateControllerStatusSchema2 = z2.object({
|
|
382
|
+
phase: LiveStatePhaseSchema2,
|
|
383
383
|
generation: z2.number().int().nonnegative(),
|
|
384
384
|
hasValue: z2.boolean(),
|
|
385
385
|
bufferedEvents: z2.number().int().nonnegative(),
|
|
@@ -389,9 +389,9 @@ var LiveStateControllerStatusSchema = z2.object({
|
|
|
389
389
|
duplicateEvents: z2.number().int().nonnegative(),
|
|
390
390
|
gapEvents: z2.number().int().nonnegative(),
|
|
391
391
|
refusedEvents: z2.number().int().nonnegative(),
|
|
392
|
-
reason:
|
|
392
|
+
reason: LiveStateStopReasonSchema2.optional()
|
|
393
393
|
}).strict().readonly();
|
|
394
|
-
function
|
|
394
|
+
function createLiveStateController2(config) {
|
|
395
395
|
const core = new LiveStateCore(config);
|
|
396
396
|
return {
|
|
397
397
|
start: () => core.start(),
|
|
@@ -409,4 +409,4 @@ function createLiveStateController(config) {
|
|
|
409
409
|
};
|
|
410
410
|
}
|
|
411
411
|
|
|
412
|
-
export {
|
|
412
|
+
export { LiveStatePhaseSchema2, LiveStateStopReasonSchema2, LiveStateControllerStatusSchema2, createLiveStateController2 };
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
import {
|
|
2
|
+
tokenize
|
|
3
|
+
} from "./index-nmaqxdx7.js";
|
|
4
|
+
|
|
5
|
+
// src/telegram/html/check.ts
|
|
6
|
+
var TAGS = new Set([
|
|
7
|
+
"b",
|
|
8
|
+
"strong",
|
|
9
|
+
"i",
|
|
10
|
+
"em",
|
|
11
|
+
"u",
|
|
12
|
+
"ins",
|
|
13
|
+
"s",
|
|
14
|
+
"strike",
|
|
15
|
+
"del",
|
|
16
|
+
"span",
|
|
17
|
+
"tg-spoiler",
|
|
18
|
+
"a",
|
|
19
|
+
"tg-emoji",
|
|
20
|
+
"tg-time",
|
|
21
|
+
"code",
|
|
22
|
+
"pre",
|
|
23
|
+
"blockquote"
|
|
24
|
+
]);
|
|
25
|
+
function checkTelegramHtml2(markup) {
|
|
26
|
+
const open = [];
|
|
27
|
+
let text = "";
|
|
28
|
+
for (const token of tokenize(markup)) {
|
|
29
|
+
if (token.type === "text")
|
|
30
|
+
text += token.text;
|
|
31
|
+
else if (token.type === "entity") {
|
|
32
|
+
if (!token.telegram)
|
|
33
|
+
return { problem: { kind: "bare-character" }, text };
|
|
34
|
+
text += token.text;
|
|
35
|
+
} else if (token.type === "bare")
|
|
36
|
+
return { problem: { kind: "bare-character" }, text };
|
|
37
|
+
else if (!TAGS.has(token.name)) {
|
|
38
|
+
return { problem: { kind: "unsupported-tag", tag: token.name }, text };
|
|
39
|
+
} else if (!token.closing)
|
|
40
|
+
open.push(token.name);
|
|
41
|
+
else if (open.pop() !== token.name)
|
|
42
|
+
return { problem: { kind: "unmatched-end-tag" }, text };
|
|
43
|
+
}
|
|
44
|
+
return open.length > 0 ? { problem: { kind: "unclosed-tag" }, text } : { text };
|
|
45
|
+
}
|
|
46
|
+
|
|
47
|
+
export { checkTelegramHtml2 };
|
|
@@ -1,26 +1,26 @@
|
|
|
1
1
|
import {
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
} from "./index-
|
|
2
|
+
LiveStatePhaseSchema2,
|
|
3
|
+
LiveStateStopReasonSchema2
|
|
4
|
+
} from "./index-rfkh44ss.js";
|
|
5
5
|
import {
|
|
6
6
|
serializeCanonicalJson
|
|
7
|
-
} from "./index-
|
|
7
|
+
} from "./index-zsvzhjtk.js";
|
|
8
8
|
import {
|
|
9
9
|
isRecord
|
|
10
|
-
} from "./index-
|
|
10
|
+
} from "./index-9jfdm5tg.js";
|
|
11
11
|
|
|
12
12
|
// src/live/watch-delta.ts
|
|
13
13
|
import { z } from "zod";
|
|
14
|
-
var
|
|
14
|
+
var WatchDeltaSchema2 = z.lazy(() => z.union([
|
|
15
15
|
z.object({ t: z.literal("set"), v: z.unknown() }),
|
|
16
16
|
z.object({
|
|
17
17
|
t: z.literal("obj"),
|
|
18
|
-
set: z.record(z.string(),
|
|
18
|
+
set: z.record(z.string(), WatchDeltaSchema2).optional(),
|
|
19
19
|
drop: z.array(z.string()).optional()
|
|
20
20
|
}),
|
|
21
|
-
z.object({ t: z.literal("arr"), ops: z.array(
|
|
21
|
+
z.object({ t: z.literal("arr"), ops: z.array(WatchArrayOpSchema2) })
|
|
22
22
|
]));
|
|
23
|
-
var
|
|
23
|
+
var WatchArrayOpSchema2 = z.lazy(() => z.union([
|
|
24
24
|
z.object({
|
|
25
25
|
o: z.literal("copy"),
|
|
26
26
|
from: z.number().int().nonnegative(),
|
|
@@ -29,7 +29,7 @@ var WatchArrayOpSchema = z.lazy(() => z.union([
|
|
|
29
29
|
z.object({
|
|
30
30
|
o: z.literal("patch"),
|
|
31
31
|
from: z.number().int().nonnegative(),
|
|
32
|
-
d:
|
|
32
|
+
d: WatchDeltaSchema2
|
|
33
33
|
}),
|
|
34
34
|
z.object({ o: z.literal("put"), v: z.unknown() })
|
|
35
35
|
]));
|
|
@@ -137,13 +137,13 @@ function apply(previous, delta) {
|
|
|
137
137
|
if (delta.t === "obj") {
|
|
138
138
|
if (!isRecord(previous))
|
|
139
139
|
throw new Error("an object difference needs an object to apply to");
|
|
140
|
-
const
|
|
140
|
+
const result = { ...previous };
|
|
141
141
|
for (const key of delta.drop ?? [])
|
|
142
|
-
delete
|
|
142
|
+
delete result[key];
|
|
143
143
|
for (const [key, nested] of Object.entries(delta.set ?? {})) {
|
|
144
|
-
|
|
144
|
+
result[key] = apply(Object.hasOwn(result, key) ? result[key] : undefined, nested);
|
|
145
145
|
}
|
|
146
|
-
return
|
|
146
|
+
return result;
|
|
147
147
|
}
|
|
148
148
|
if (!Array.isArray(previous))
|
|
149
149
|
throw new Error("an array difference needs an array to apply to");
|
|
@@ -173,56 +173,56 @@ function deltaWins(delta, value) {
|
|
|
173
173
|
|
|
174
174
|
// src/live/watch-contract.ts
|
|
175
175
|
import { z as z2 } from "zod";
|
|
176
|
-
var
|
|
176
|
+
var WatchKeySchema2 = z2.object({
|
|
177
177
|
service: z2.string().min(1),
|
|
178
178
|
instance: z2.string().min(1).max(128).optional(),
|
|
179
179
|
action: z2.string().min(1),
|
|
180
180
|
digest: z2.string().min(1)
|
|
181
181
|
}).strict().readonly();
|
|
182
|
-
var
|
|
183
|
-
var WatchOpenSchema = z2.object({ key:
|
|
182
|
+
var WatchHaveSchema2 = z2.object({ revision: z2.number().int().nonnegative(), fingerprint: z2.string().min(1) }).strict().readonly();
|
|
183
|
+
var WatchOpenSchema = z2.object({ key: WatchKeySchema2, args: z2.unknown(), have: WatchHaveSchema2.optional() }).readonly();
|
|
184
184
|
var WatchAcceptedSchema = z2.object({
|
|
185
185
|
accepted: z2.boolean(),
|
|
186
186
|
reason: z2.string().optional()
|
|
187
187
|
}).strict().readonly();
|
|
188
188
|
var watchValueParts = {
|
|
189
|
-
key:
|
|
189
|
+
key: WatchKeySchema2,
|
|
190
190
|
revision: z2.number().int().nonnegative(),
|
|
191
191
|
fingerprint: z2.string().min(1)
|
|
192
192
|
};
|
|
193
|
-
var
|
|
193
|
+
var WatchValueSchema2 = z2.discriminatedUnion("kind", [
|
|
194
194
|
z2.object({ kind: z2.literal("full"), ...watchValueParts, value: z2.unknown() }).readonly(),
|
|
195
195
|
z2.object({
|
|
196
196
|
kind: z2.literal("delta"),
|
|
197
197
|
...watchValueParts,
|
|
198
198
|
base: z2.number().int().nonnegative(),
|
|
199
|
-
delta:
|
|
199
|
+
delta: WatchDeltaSchema2
|
|
200
200
|
}).readonly(),
|
|
201
201
|
z2.object({ kind: z2.literal("unchanged"), ...watchValueParts }).readonly()
|
|
202
202
|
]);
|
|
203
|
-
var
|
|
204
|
-
key:
|
|
205
|
-
phase:
|
|
206
|
-
reason:
|
|
203
|
+
var WatchStateSchema2 = z2.object({
|
|
204
|
+
key: WatchKeySchema2,
|
|
205
|
+
phase: LiveStatePhaseSchema2,
|
|
206
|
+
reason: LiveStateStopReasonSchema2.optional(),
|
|
207
207
|
code: z2.string().optional(),
|
|
208
208
|
message: z2.string().optional()
|
|
209
209
|
}).readonly();
|
|
210
|
-
var
|
|
211
|
-
var
|
|
212
|
-
var
|
|
213
|
-
var
|
|
214
|
-
var
|
|
210
|
+
var WATCH_OPEN2 = "stitchkit.watch.open";
|
|
211
|
+
var WATCH_CLOSE2 = "stitchkit.watch.close";
|
|
212
|
+
var WATCH_VALUE2 = "stitchkit.watch.value";
|
|
213
|
+
var WATCH_STATE2 = "stitchkit.watch.state";
|
|
214
|
+
var watchContract2 = {
|
|
215
215
|
serverToClient: {
|
|
216
|
-
[
|
|
217
|
-
[
|
|
216
|
+
[WATCH_VALUE2]: { args: z2.tuple([WatchValueSchema2]) },
|
|
217
|
+
[WATCH_STATE2]: { args: z2.tuple([WatchStateSchema2]) }
|
|
218
218
|
},
|
|
219
219
|
clientToServer: {
|
|
220
|
-
[
|
|
221
|
-
[
|
|
220
|
+
[WATCH_OPEN2]: { args: z2.tuple([WatchOpenSchema]), ack: WatchAcceptedSchema },
|
|
221
|
+
[WATCH_CLOSE2]: { args: z2.tuple([z2.object({ key: WatchKeySchema2 }).readonly()]) }
|
|
222
222
|
}
|
|
223
223
|
};
|
|
224
|
-
function
|
|
224
|
+
function watchKeyString2(key) {
|
|
225
225
|
return `${key.service}/${key.action}/${key.digest}${key.instance === undefined ? "" : `/${encodeURIComponent(key.instance)}`}`;
|
|
226
226
|
}
|
|
227
227
|
|
|
228
|
-
export {
|
|
228
|
+
export { WatchDeltaSchema2, WatchArrayOpSchema2, diff, apply, deltaWins, WatchKeySchema2, WatchHaveSchema2, WatchValueSchema2, WatchStateSchema2, WATCH_OPEN2, WATCH_CLOSE2, WATCH_VALUE2, WATCH_STATE2, watchContract2, watchKeyString2 };
|