@xlsft/grammy-reactive 0.7.34
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 +7 -0
- package/dist/jsx/index.d.ts +3 -0
- package/dist/jsx/index.d.ts.map +1 -0
- package/dist/jsx/index.js +2 -0
- package/dist/jsx/index.js.map +1 -0
- package/dist/jsx/jsx-dev-runtime.d.ts +2 -0
- package/dist/jsx/jsx-dev-runtime.d.ts.map +1 -0
- package/dist/jsx/jsx-dev-runtime.js +2 -0
- package/dist/jsx/jsx-dev-runtime.js.map +1 -0
- package/dist/jsx/jsx-runtime.d.ts +2 -0
- package/dist/jsx/jsx-runtime.d.ts.map +1 -0
- package/dist/jsx/jsx-runtime.js +2 -0
- package/dist/jsx/jsx-runtime.js.map +1 -0
- package/dist/jsx/runtime/jsx.d.ts +10 -0
- package/dist/jsx/runtime/jsx.d.ts.map +1 -0
- package/dist/jsx/runtime/jsx.errors.d.ts +4 -0
- package/dist/jsx/runtime/jsx.errors.d.ts.map +1 -0
- package/dist/jsx/runtime/jsx.errors.js +7 -0
- package/dist/jsx/runtime/jsx.errors.js.map +1 -0
- package/dist/jsx/runtime/jsx.js +209 -0
- package/dist/jsx/runtime/jsx.js.map +1 -0
- package/dist/jsx/runtime/jsx.runtime.d.ts +18 -0
- package/dist/jsx/runtime/jsx.runtime.d.ts.map +1 -0
- package/dist/jsx/runtime/jsx.runtime.js +3 -0
- package/dist/jsx/runtime/jsx.runtime.js.map +1 -0
- package/dist/lib/helpers/context.helper.d.ts +3 -0
- package/dist/lib/helpers/context.helper.d.ts.map +1 -0
- package/dist/lib/helpers/index.d.ts +2 -0
- package/dist/lib/helpers/index.d.ts.map +1 -0
- package/dist/lib/index.d.ts +12 -0
- package/dist/lib/index.d.ts.map +1 -0
- package/dist/lib/index.js +45 -0
- package/dist/lib/index.js.map +1 -0
- package/dist/lib/jsx-runtime.d.ts +2 -0
- package/dist/lib/jsx-runtime.d.ts.map +1 -0
- package/dist/lib/plugin/index.d.ts +4 -0
- package/dist/lib/plugin/index.d.ts.map +1 -0
- package/dist/lib/plugin/index.js +40 -0
- package/dist/lib/plugin/index.js.map +1 -0
- package/dist/lib/render/components/Error.d.ts +26 -0
- package/dist/lib/render/components/Error.d.ts.map +1 -0
- package/dist/lib/render/components/Error.js +25 -0
- package/dist/lib/render/components/Error.js.map +1 -0
- package/dist/lib/render/message.render.d.ts +40 -0
- package/dist/lib/render/message.render.d.ts.map +1 -0
- package/dist/lib/render/message.render.js +60 -0
- package/dist/lib/render/message.render.js.map +1 -0
- package/dist/lib/render/node/fragmemt.render.d.ts +34 -0
- package/dist/lib/render/node/fragmemt.render.d.ts.map +1 -0
- package/dist/lib/render/node/fragmemt.render.js +56 -0
- package/dist/lib/render/node/fragmemt.render.js.map +1 -0
- package/dist/lib/render/node/intrinsic.render.d.ts +37 -0
- package/dist/lib/render/node/intrinsic.render.d.ts.map +1 -0
- package/dist/lib/render/node/intrinsic.render.js +167 -0
- package/dist/lib/render/node/intrinsic.render.js.map +1 -0
- package/dist/lib/render/node/plain.render.d.ts +27 -0
- package/dist/lib/render/node/plain.render.d.ts.map +1 -0
- package/dist/lib/render/node/plain.render.js +32 -0
- package/dist/lib/render/node/plain.render.js.map +1 -0
- package/dist/lib/render/tag.render.d.ts +24 -0
- package/dist/lib/render/tag.render.d.ts.map +1 -0
- package/dist/lib/render/tag.render.js +27 -0
- package/dist/lib/render/tag.render.js.map +1 -0
- package/dist/lib/state/create.state.d.ts +8 -0
- package/dist/lib/state/create.state.d.ts.map +1 -0
- package/dist/lib/state/create.state.js +61 -0
- package/dist/lib/state/create.state.js.map +1 -0
- package/dist/lib/state/events/onclick.event.d.ts +21 -0
- package/dist/lib/state/events/onclick.event.d.ts.map +1 -0
- package/dist/lib/state/events/onclick.event.js +36 -0
- package/dist/lib/state/events/onclick.event.js.map +1 -0
- package/dist/lib/state/hooks/callback.hooks.d.ts +2 -0
- package/dist/lib/state/hooks/callback.hooks.d.ts.map +1 -0
- package/dist/lib/state/hooks/create.d.ts +7 -0
- package/dist/lib/state/hooks/create.d.ts.map +1 -0
- package/dist/lib/state/hooks/create.hooks.d.ts +29 -0
- package/dist/lib/state/hooks/create.hooks.d.ts.map +1 -0
- package/dist/lib/state/hooks/create.hooks.js +38 -0
- package/dist/lib/state/hooks/create.hooks.js.map +1 -0
- package/dist/lib/state/hooks/effect.hooks.d.ts +5 -0
- package/dist/lib/state/hooks/effect.hooks.d.ts.map +1 -0
- package/dist/lib/state/hooks/get.hooks.d.ts +25 -0
- package/dist/lib/state/hooks/get.hooks.d.ts.map +1 -0
- package/dist/lib/state/hooks/get.hooks.js +33 -0
- package/dist/lib/state/hooks/get.hooks.js.map +1 -0
- package/dist/lib/state/hooks/index.d.ts +7 -0
- package/dist/lib/state/hooks/index.d.ts.map +1 -0
- package/dist/lib/state/hooks/memo.hooks.d.ts +2 -0
- package/dist/lib/state/hooks/memo.hooks.d.ts.map +1 -0
- package/dist/lib/state/hooks/reducer.hooks.d.ts +3 -0
- package/dist/lib/state/hooks/reducer.hooks.d.ts.map +1 -0
- package/dist/lib/state/hooks/ref.hooks.d.ts +4 -0
- package/dist/lib/state/hooks/ref.hooks.d.ts.map +1 -0
- package/dist/lib/state/hooks/reset.hooks.d.ts +16 -0
- package/dist/lib/state/hooks/reset.hooks.d.ts.map +1 -0
- package/dist/lib/state/hooks/reset.hooks.js +19 -0
- package/dist/lib/state/hooks/reset.hooks.js.map +1 -0
- package/dist/lib/state/hooks/set.hooks.d.ts +23 -0
- package/dist/lib/state/hooks/set.hooks.d.ts.map +1 -0
- package/dist/lib/state/hooks/set.hooks.js +28 -0
- package/dist/lib/state/hooks/set.hooks.js.map +1 -0
- package/dist/lib/state/hooks/state.hooks.d.ts +50 -0
- package/dist/lib/state/hooks/state.hooks.d.ts.map +1 -0
- package/dist/lib/state/lifecycle/error.state.d.ts +7 -0
- package/dist/lib/state/lifecycle/error.state.d.ts.map +1 -0
- package/dist/lib/state/lifecycle/error.state.js +55 -0
- package/dist/lib/state/lifecycle/error.state.js.map +1 -0
- package/dist/lib/state/lifecycle/mount.state.d.ts +10 -0
- package/dist/lib/state/lifecycle/mount.state.d.ts.map +1 -0
- package/dist/lib/state/lifecycle/mount.state.js +84 -0
- package/dist/lib/state/lifecycle/mount.state.js.map +1 -0
- package/dist/lib/state/lifecycle/rerender.state.d.ts +10 -0
- package/dist/lib/state/lifecycle/rerender.state.d.ts.map +1 -0
- package/dist/lib/state/lifecycle/rerender.state.js +86 -0
- package/dist/lib/state/lifecycle/rerender.state.js.map +1 -0
- package/dist/lib/state/lifecycle/unmount.state.d.ts +9 -0
- package/dist/lib/state/lifecycle/unmount.state.d.ts.map +1 -0
- package/dist/lib/state/lifecycle/unmount.state.js +33 -0
- package/dist/lib/state/lifecycle/unmount.state.js.map +1 -0
- package/dist/types/grammy.types.d.ts +29 -0
- package/dist/types/grammy.types.d.ts.map +1 -0
- package/dist/types/grammy.types.js +3 -0
- package/dist/types/grammy.types.js.map +1 -0
- package/dist/types/hooks.types.d.ts +27 -0
- package/dist/types/hooks.types.d.ts.map +1 -0
- package/dist/types/jsx.types.d.ts +240 -0
- package/dist/types/jsx.types.d.ts.map +1 -0
- package/dist/types/jsx.types.js +29 -0
- package/dist/types/jsx.types.js.map +1 -0
- package/dist/types/lib.types.d.ts +80 -0
- package/dist/types/lib.types.d.ts.map +1 -0
- package/dist/types/lib.types.js +1 -0
- package/dist/types/lib.types.js.map +1 -0
- package/dist/types/plugin.types.d.ts +81 -0
- package/dist/types/plugin.types.d.ts.map +1 -0
- package/dist/types/plugin.types.js +1 -0
- package/dist/types/plugin.types.js.map +1 -0
- package/dist/utils/generateUniqueId.d.ts +29 -0
- package/dist/utils/generateUniqueId.d.ts.map +1 -0
- package/dist/utils/generateUniqueId.js +41 -0
- package/dist/utils/generateUniqueId.js.map +1 -0
- package/dist/utils/getEmoji.d.ts +26 -0
- package/dist/utils/getEmoji.d.ts.map +1 -0
- package/dist/utils/getEmoji.js +33 -0
- package/dist/utils/getEmoji.js.map +1 -0
- package/dist/utils/getPlainText.d.ts +23 -0
- package/dist/utils/getPlainText.d.ts.map +1 -0
- package/dist/utils/getPlainText.js +30 -0
- package/dist/utils/getPlainText.js.map +1 -0
- package/dist/utils/global.d.ts +13 -0
- package/dist/utils/global.d.ts.map +1 -0
- package/dist/utils/global.js +7 -0
- package/dist/utils/global.js.map +1 -0
- package/dist/utils/index.d.ts +9 -0
- package/dist/utils/index.d.ts.map +1 -0
- package/dist/utils/index.js +10 -0
- package/dist/utils/index.js.map +1 -0
- package/dist/utils/isAbortError.d.ts +2 -0
- package/dist/utils/isAbortError.d.ts.map +1 -0
- package/dist/utils/isEmoji.d.ts +25 -0
- package/dist/utils/isEmoji.d.ts.map +1 -0
- package/dist/utils/isEmoji.js +27 -0
- package/dist/utils/isEmoji.js.map +1 -0
- package/dist/utils/isEqual.d.ts +42 -0
- package/dist/utils/isEqual.d.ts.map +1 -0
- package/dist/utils/isEqual.js +142 -0
- package/dist/utils/isEqual.js.map +1 -0
- package/dist/utils/isIntrinsicElement.d.ts +23 -0
- package/dist/utils/isIntrinsicElement.d.ts.map +1 -0
- package/dist/utils/isIntrinsicElement.js +25 -0
- package/dist/utils/isIntrinsicElement.js.map +1 -0
- package/dist/utils/isMessageNotFount.d.ts +2 -0
- package/dist/utils/isMessageNotFount.d.ts.map +1 -0
- package/dist/utils/isUnixTime.d.ts +32 -0
- package/dist/utils/isUnixTime.d.ts.map +1 -0
- package/dist/utils/isUnixTime.js +38 -0
- package/dist/utils/isUnixTime.js.map +1 -0
- package/dist/utils/sanitizeHtmlString.d.ts +24 -0
- package/dist/utils/sanitizeHtmlString.d.ts.map +1 -0
- package/dist/utils/sanitizeHtmlString.js +29 -0
- package/dist/utils/sanitizeHtmlString.js.map +1 -0
- package/dist/utils/withComponentScope.d.ts +2 -0
- package/dist/utils/withComponentScope.d.ts.map +1 -0
- package/dist/utils/withRuntime.d.ts +4 -0
- package/dist/utils/withRuntime.d.ts.map +1 -0
- package/package.json +62 -0
- package/readme.md +373 -0
|
@@ -0,0 +1,86 @@
|
|
|
1
|
+
import { globalCurrentState, globalPreviousState, isEqual } from "~/utils";
|
|
2
|
+
import { createMessageRender } from "~/lib/render/message.render";
|
|
3
|
+
import { createErrorMessageState } from "./error.state";
|
|
4
|
+
/**
|
|
5
|
+
* Executes the rerender lifecycle transition for an active message session.
|
|
6
|
+
*
|
|
7
|
+
* This lifecycle step re-runs the original handler, re-renders the JSX tree,
|
|
8
|
+
* computes the next Telegram message payload, and applies the minimal
|
|
9
|
+
* required update strategy based on the selected render view.
|
|
10
|
+
*
|
|
11
|
+
* Supported rerender flows:
|
|
12
|
+
* - text message updates via `editMessageText`
|
|
13
|
+
* - caption updates via `editMessageCaption`
|
|
14
|
+
* - single media replacement via `editMessageMedia`
|
|
15
|
+
* - media group remount when multiple media items are present
|
|
16
|
+
*
|
|
17
|
+
* If the session is no longer mounted, the operation exits silently.
|
|
18
|
+
*
|
|
19
|
+
* After a successful update, the current message snapshot is promoted
|
|
20
|
+
* into the previous render state cache for future diff comparisons.
|
|
21
|
+
*
|
|
22
|
+
* Any runtime errors during rerendering are delegated to the lifecycle
|
|
23
|
+
* error handler before being logged.
|
|
24
|
+
*
|
|
25
|
+
* @template {ReactiveContext} C
|
|
26
|
+
* @param {string} id - The unique mounted message session identifier.
|
|
27
|
+
* @param {C} ctx - The bound reactive Telegram context.
|
|
28
|
+
* @param {BotStaticMessageHandler<C> | BotMessageHandler<C>} handler
|
|
29
|
+
* The original handler used to regenerate the render tree.
|
|
30
|
+
* @param {BotHandlerLifecycleInstance<C>} state
|
|
31
|
+
* The bound lifecycle controller instance.
|
|
32
|
+
* @param {ReturnType<typeof createHooks<C>>} [hooks]
|
|
33
|
+
* Optional reactive hook bindings for stateful handlers.
|
|
34
|
+
* @returns {Promise<void>}
|
|
35
|
+
*
|
|
36
|
+
* @example
|
|
37
|
+
* await createRerenderMessageState(id, ctx, handler, state, hooks);
|
|
38
|
+
*/
|
|
39
|
+
export async function createRerenderMessageState({ id, ctx, handler, state, hooks, controller }) {
|
|
40
|
+
try {
|
|
41
|
+
if (!globalCurrentState[id])
|
|
42
|
+
return;
|
|
43
|
+
const element = await handler({ ctx, ...state, ...hooks || {} });
|
|
44
|
+
const data = await createMessageRender({
|
|
45
|
+
id,
|
|
46
|
+
method: createRerenderMessageState.name,
|
|
47
|
+
jsx: element,
|
|
48
|
+
ctx,
|
|
49
|
+
other: {},
|
|
50
|
+
});
|
|
51
|
+
if (data.view === 'message') {
|
|
52
|
+
if (globalPreviousState[id]?.text !== data.text) {
|
|
53
|
+
await ctx.api.editMessageText(globalCurrentState[id].chat.id, globalCurrentState[id].message_id, data.text, data.other, controller?.signal);
|
|
54
|
+
}
|
|
55
|
+
}
|
|
56
|
+
else if (data.view === 'caption') {
|
|
57
|
+
if (globalPreviousState[id]?.caption !== data.text)
|
|
58
|
+
await ctx.api.editMessageCaption(globalCurrentState[id].chat.id, globalCurrentState[id].message_id, data.other, controller?.signal);
|
|
59
|
+
if (data.media.length > 2) {
|
|
60
|
+
ctx.deleteMessage(controller?.signal);
|
|
61
|
+
const messages = await ctx.replyWithMediaGroup(data.media.slice(0, 10), data.other, controller?.signal);
|
|
62
|
+
if (!messages || !messages[0])
|
|
63
|
+
throw new Error("Failed to send media group");
|
|
64
|
+
globalCurrentState[id] = messages[0];
|
|
65
|
+
}
|
|
66
|
+
else if (data.media.length === 1) {
|
|
67
|
+
if (!data.media[0])
|
|
68
|
+
throw new Error("No photo provided for caption view");
|
|
69
|
+
const message = await ctx.api.editMessageMedia(globalCurrentState[id].chat.id, globalCurrentState[id].message_id, data.media[0], data.other, controller?.signal);
|
|
70
|
+
if (!message)
|
|
71
|
+
throw new Error("Failed to send photo");
|
|
72
|
+
globalCurrentState[id] = message;
|
|
73
|
+
}
|
|
74
|
+
else
|
|
75
|
+
throw new TypeError("No media provided for caption view");
|
|
76
|
+
}
|
|
77
|
+
if (!globalCurrentState[id])
|
|
78
|
+
throw new Error("No state rendered");
|
|
79
|
+
globalPreviousState[id] = globalCurrentState[id];
|
|
80
|
+
}
|
|
81
|
+
catch (e) {
|
|
82
|
+
await createErrorMessageState(id, ctx, e);
|
|
83
|
+
console.error(e);
|
|
84
|
+
}
|
|
85
|
+
}
|
|
86
|
+
//# sourceMappingURL=rerender.state.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"rerender.state.js","sourceRoot":"","sources":["../../../../src/lib/state/lifecycle/rerender.state.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import type { ReactiveContext } from "~/types/plugin.types";
|
|
2
|
+
import type { BotHandlerLifecycleInstance } from "~/types/lib.types";
|
|
3
|
+
export declare function createUnmountMessageState<C extends ReactiveContext>({ id, ctx, controller, state }: {
|
|
4
|
+
id: string;
|
|
5
|
+
ctx: C;
|
|
6
|
+
controller: AbortController;
|
|
7
|
+
state: BotHandlerLifecycleInstance<C>;
|
|
8
|
+
}): Promise<void>;
|
|
9
|
+
//# sourceMappingURL=unmount.state.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"unmount.state.d.ts","sourceRoot":"","sources":["../../../../src/lib/state/lifecycle/unmount.state.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAA;AAC3D,OAAO,KAAK,EAAE,2BAA2B,EAAE,MAAM,mBAAmB,CAAC;AAKrE,wBAAsB,yBAAyB,CAAC,CAAC,SAAS,eAAe,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,UAAU,EAAE,KAAK,EAAE,EAAE;IACvG,EAAE,EAAE,MAAM,CAAC;IACX,GAAG,EAAE,CAAC,CAAC;IACP,UAAU,EAAE,eAAe,CAAA;IAC3B,KAAK,EAAE,2BAA2B,CAAC,CAAC,CAAC,CAAA;CACxC,iBAcA"}
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
import { globalCurrentState } from "~/utils";
|
|
2
|
+
import { createErrorMessageState } from "./error.state";
|
|
3
|
+
/**
|
|
4
|
+
* Executes the unmount lifecycle transition for a mounted message session.
|
|
5
|
+
*
|
|
6
|
+
* If an active lifecycle state exists for the provided session ID,
|
|
7
|
+
* the currently bound Telegram message is deleted from chat.
|
|
8
|
+
*
|
|
9
|
+
* If the session is not mounted, the operation exits silently.
|
|
10
|
+
*
|
|
11
|
+
* Any runtime errors during deletion are forwarded to the lifecycle
|
|
12
|
+
* error handler before being logged to the console.
|
|
13
|
+
*
|
|
14
|
+
* @template {ReactiveContext} C
|
|
15
|
+
* @param {string} id - The unique mounted message session identifier.
|
|
16
|
+
* @param {C} ctx - The bound reactive Telegram context.
|
|
17
|
+
* @returns {Promise<void>}
|
|
18
|
+
*
|
|
19
|
+
* @example
|
|
20
|
+
* await createUnmountMessageState(id, ctx);
|
|
21
|
+
*/
|
|
22
|
+
export async function createUnmountMessageState({ id, ctx, controller }) {
|
|
23
|
+
try {
|
|
24
|
+
if (!globalCurrentState[id])
|
|
25
|
+
return;
|
|
26
|
+
await ctx.deleteMessage();
|
|
27
|
+
}
|
|
28
|
+
catch (e) {
|
|
29
|
+
await createErrorMessageState(id, ctx, e);
|
|
30
|
+
console.error(e);
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
//# sourceMappingURL=unmount.state.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"unmount.state.js","sourceRoot":"","sources":["../../../../src/lib/state/lifecycle/unmount.state.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,MAAM,SAAS,CAAA;AAC5C,OAAO,EAAE,uBAAuB,EAAE,MAAM,eAAe,CAAA;AAGvD;;;;;;;;;;;;;;;;;;GAkBG;AACH,MAAM,CAAC,KAAK,UAAU,yBAAyB,CAA4B,EAAE,EAAE,EAAE,GAAG,EAAE,UAAU,EAI/F;IACG,IAAI,CAAC;QACD,IAAI,CAAC,kBAAkB,CAAC,EAAE,CAAC;YAAE,OAAM;QACnC,MAAM,GAAG,CAAC,aAAa,EAAE,CAAA;IAC7B,CAAC;IAAC,OAAO,CAAC,EAAE,CAAC;QACT,MAAM,uBAAuB,CAAC,EAAE,EAAE,GAAG,EAAE,CAAU,CAAC,CAAA;QAClD,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAA;IACpB,CAAC;AACL,CAAC"}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
import { InputFile, Keyboard, InlineKeyboard, InputMediaBuilder, Bot } from "grammy";
|
|
2
|
+
import type { Context, MiddlewareFn, RawApi, NextFunction } from "grammy";
|
|
3
|
+
import type { Message, MessageEntity, Update, InputMediaPhoto, InlineKeyboardButton } from "grammy/types";
|
|
4
|
+
import type { Other } from "node_modules/grammy/out/core/api.d.ts";
|
|
5
|
+
import type { Methods } from "node_modules/grammy/out/core/client.d.ts";
|
|
6
|
+
/**
|
|
7
|
+
* A convenience alias for Grammy's {@link Other} utility type,
|
|
8
|
+
* specialized for context-bound API helper methods.
|
|
9
|
+
*
|
|
10
|
+
* This type is commonly used to describe additional Telegram method options
|
|
11
|
+
* while excluding parameters that are already handled internally by
|
|
12
|
+
* context-aware helpers such as `replyWithJSX()` or `editMessageJSX()`.
|
|
13
|
+
*
|
|
14
|
+
* It is especially useful for plugin APIs that wrap standard Grammy
|
|
15
|
+
* context methods and need strongly typed `other` options.
|
|
16
|
+
*
|
|
17
|
+
* @template {Methods<RawApi>} M - The target Grammy API method name.
|
|
18
|
+
* @template {string} [X=never] - Keys to exclude from the resulting options type.
|
|
19
|
+
*
|
|
20
|
+
* @example
|
|
21
|
+
* type ReplyOptions = OtherContexted<
|
|
22
|
+
* "sendMessage",
|
|
23
|
+
* "text" | "chat_id" | "parse_mode"
|
|
24
|
+
* >;
|
|
25
|
+
*/
|
|
26
|
+
type OtherContexted<M extends Methods<RawApi>, X extends string = never> = Other<RawApi, M, X>;
|
|
27
|
+
export type { Context, MiddlewareFn, RawApi, NextFunction, Message, MessageEntity, Update, InputMediaPhoto, InlineKeyboardButton, Other, Methods, OtherContexted, };
|
|
28
|
+
export { InputFile, Keyboard, InlineKeyboard, InputMediaBuilder, Bot };
|
|
29
|
+
//# sourceMappingURL=grammy.types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"grammy.types.d.ts","sourceRoot":"","sources":["../../src/types/grammy.types.ts"],"names":[],"mappings":"AAAA,OAAO,EACH,SAAS,EACT,QAAQ,EACR,cAAc,EACd,iBAAiB,EAEjB,GAAG,EACN,MAAM,QAAQ,CAAC;AAChB,OAAO,KAAK,EACR,OAAO,EACP,YAAY,EACZ,MAAM,EACN,YAAY,EACf,MAAM,QAAQ,CAAC;AAChB,OAAO,KAAK,EACR,OAAO,EACP,aAAa,EACb,MAAM,EACN,eAAe,EACf,oBAAoB,EACvB,MAAM,cAAc,CAAC;AACtB,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,uCAAuC,CAAC;AACnE,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,0CAA0C,CAAC;AAExE;;;;;;;;;;;;;;;;;;;GAmBG;AAEH,KAAK,cAAc,CAAC,CAAC,SAAS,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC,SAAS,MAAM,GAAG,KAAK,IAAI,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;AAE/F,YAAY,EACR,OAAO,EAAE,YAAY,EAAE,MAAM,EAAE,YAAY,EAC3C,OAAO,EAAE,aAAa,EAAE,MAAM,EAAE,eAAe,EAAE,oBAAoB,EACrE,KAAK,EAAE,OAAO,EAAE,cAAc,GACjC,CAAA;AACD,OAAO,EACH,SAAS,EAAE,QAAQ,EAAE,cAAc,EAAE,iBAAiB,EAAE,GAAG,EAC9D,CAAA"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"grammy.types.js","sourceRoot":"","sources":["../../src/types/grammy.types.ts"],"names":[],"mappings":"AAAA,OAAO,EACH,SAAS,EACT,QAAQ,EACR,cAAc,EACd,iBAAiB,EACjB,GAAG,EACN,MAAM,QAAQ,CAAC;AA6ChB,OAAO,EACH,SAAS,EAAE,QAAQ,EAAE,cAAc,EAAE,iBAAiB,EAAE,GAAG,EAC9D,CAAA"}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import type { BotHandlerLifecycleInstance } from "./lib.types";
|
|
2
|
+
import type { ReactiveContext } from "./plugin.types";
|
|
3
|
+
export type HookRuntime = {
|
|
4
|
+
id: string;
|
|
5
|
+
ctx: ReactiveContext;
|
|
6
|
+
state: BotHandlerLifecycleInstance<ReactiveContext>;
|
|
7
|
+
hooks: Map<string, unknown[]>;
|
|
8
|
+
componentPath: number[];
|
|
9
|
+
childCursorStack: number[];
|
|
10
|
+
hookCursor: number;
|
|
11
|
+
effects: Array<() => Promise<void>>;
|
|
12
|
+
visited: Set<string>;
|
|
13
|
+
renderVersion: number;
|
|
14
|
+
isRendering: boolean;
|
|
15
|
+
pendingRender: boolean;
|
|
16
|
+
};
|
|
17
|
+
export type MemoHook<T> = {
|
|
18
|
+
value: T;
|
|
19
|
+
deps?: unknown[];
|
|
20
|
+
};
|
|
21
|
+
export type ReducerHook<S, A> = (state: S, action: A) => S;
|
|
22
|
+
export type EffectState = {
|
|
23
|
+
deps?: unknown[];
|
|
24
|
+
cleanup?: EffectCleanup;
|
|
25
|
+
};
|
|
26
|
+
export type EffectCleanup = void | (() => void | Promise<void>);
|
|
27
|
+
//# sourceMappingURL=hooks.types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"hooks.types.d.ts","sourceRoot":"","sources":["../../src/types/hooks.types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,2BAA2B,EAAE,MAAM,aAAa,CAAC;AAC/D,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC;AAEtD,MAAM,MAAM,WAAW,GAAG;IACtB,EAAE,EAAE,MAAM,CAAA;IACV,GAAG,EAAE,eAAe,CAAA;IACpB,KAAK,EAAE,2BAA2B,CAAC,eAAe,CAAC,CAAA;IACnD,KAAK,EAAE,GAAG,CAAC,MAAM,EAAE,OAAO,EAAE,CAAC,CAAA;IAC7B,aAAa,EAAE,MAAM,EAAE,CAAA;IACvB,gBAAgB,EAAE,MAAM,EAAE,CAAA;IAC1B,UAAU,EAAE,MAAM,CAAA;IAClB,OAAO,EAAE,KAAK,CAAC,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC;IACpC,OAAO,EAAE,GAAG,CAAC,MAAM,CAAC,CAAA;IACpB,aAAa,EAAE,MAAM,CAAA;IACrB,WAAW,EAAE,OAAO,CAAA;IACpB,aAAa,EAAE,OAAO,CAAA;CACzB,CAAC;AAEF,MAAM,MAAM,QAAQ,CAAC,CAAC,IAAI;IACtB,KAAK,EAAE,CAAC,CAAC;IACT,IAAI,CAAC,EAAE,OAAO,EAAE,CAAC;CACpB,CAAC;AAEF,MAAM,MAAM,WAAW,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,KAAK,CAAC,CAAC;AAE3D,MAAM,MAAM,WAAW,GAAG;IACtB,IAAI,CAAC,EAAE,OAAO,EAAE,CAAC;IACjB,OAAO,CAAC,EAAE,aAAa,CAAC;CAC3B,CAAC;AAEF,MAAM,MAAM,aAAa,GAAG,IAAI,GAAG,CAAC,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC"}
|
|
@@ -0,0 +1,240 @@
|
|
|
1
|
+
import type { InlineKeyboardButton } from "grammy/types";
|
|
2
|
+
import type { InlineKeyboard, Context } from "grammy";
|
|
3
|
+
import type { ReactiveContextFlavor } from "~/types/plugin.types";
|
|
4
|
+
import type { JSX } from "~/jsx/runtime/jsx.runtime";
|
|
5
|
+
/**
|
|
6
|
+
* Adds optional JSX children support to a props object.
|
|
7
|
+
*
|
|
8
|
+
* This is the base utility used for intrinsic elements and custom
|
|
9
|
+
* component props that may receive renderable child nodes.
|
|
10
|
+
*
|
|
11
|
+
* @template P
|
|
12
|
+
*/
|
|
13
|
+
export type WithChildren<P = {}> = P & {
|
|
14
|
+
children?: Node;
|
|
15
|
+
};
|
|
16
|
+
/**
|
|
17
|
+
* Extracts the props type from a {@link WithChildren}-compatible shape.
|
|
18
|
+
*
|
|
19
|
+
* If the target type does not use `WithChildren`, the original type
|
|
20
|
+
* is returned unchanged.
|
|
21
|
+
*
|
|
22
|
+
* @template T
|
|
23
|
+
*/
|
|
24
|
+
export type PropsOf<T> = T extends WithChildren<infer P> ? P : T;
|
|
25
|
+
/**
|
|
26
|
+
* Runtime registry of all supported intrinsic JSX elements.
|
|
27
|
+
*
|
|
28
|
+
* This object defines the canonical intrinsic tag surface supported by
|
|
29
|
+
* the Telegram JSX renderer.
|
|
30
|
+
*
|
|
31
|
+
* Use {@link IntrinsicElements} for the inferred type-safe version.
|
|
32
|
+
*/
|
|
33
|
+
export declare const intrinsicElements: {
|
|
34
|
+
b: WithChildren;
|
|
35
|
+
i: WithChildren;
|
|
36
|
+
u: WithChildren;
|
|
37
|
+
s: WithChildren;
|
|
38
|
+
spoiler: WithChildren;
|
|
39
|
+
a: WithChildren<{
|
|
40
|
+
href: string;
|
|
41
|
+
}>;
|
|
42
|
+
emoji: WithChildren<{
|
|
43
|
+
id: string;
|
|
44
|
+
}>;
|
|
45
|
+
time: WithChildren<{
|
|
46
|
+
unix: number;
|
|
47
|
+
format?: TimeFormat;
|
|
48
|
+
}>;
|
|
49
|
+
code: WithChildren;
|
|
50
|
+
codeblock: WithChildren<{
|
|
51
|
+
lang?: CodeBlockLanguages;
|
|
52
|
+
}>;
|
|
53
|
+
blockquote: WithChildren<{
|
|
54
|
+
expandable?: boolean;
|
|
55
|
+
}>;
|
|
56
|
+
h: WithChildren;
|
|
57
|
+
p: WithChildren;
|
|
58
|
+
br: {};
|
|
59
|
+
/** TODO:
|
|
60
|
+
* When caption rerender is fixed, uncomment this
|
|
61
|
+
* */
|
|
62
|
+
preview: {
|
|
63
|
+
src: string;
|
|
64
|
+
position?: "top" | "bottom";
|
|
65
|
+
size?: "small" | "large";
|
|
66
|
+
};
|
|
67
|
+
button: WithChildren<InlineButtonProps>;
|
|
68
|
+
mention: WithChildren<{
|
|
69
|
+
id: number;
|
|
70
|
+
}>;
|
|
71
|
+
};
|
|
72
|
+
/**
|
|
73
|
+
* Type-safe map of all supported intrinsic JSX elements and their props.
|
|
74
|
+
*
|
|
75
|
+
* Each key represents an intrinsic JSX tag name and each value
|
|
76
|
+
* defines its allowed props shape.
|
|
77
|
+
*/
|
|
78
|
+
export type IntrinsicElements = typeof intrinsicElements;
|
|
79
|
+
/**
|
|
80
|
+
* Resolves the exact props type for a specific intrinsic element tag.
|
|
81
|
+
*
|
|
82
|
+
* @template {keyof IntrinsicElements} K
|
|
83
|
+
*/
|
|
84
|
+
export type ExactIntrinsicElement<K extends keyof IntrinsicElements> = IntrinsicElements[K];
|
|
85
|
+
/**
|
|
86
|
+
* Union type describing all valid intrinsic element creation payloads.
|
|
87
|
+
*
|
|
88
|
+
* Each variant binds a `tag` to its corresponding strongly typed `props`.
|
|
89
|
+
*/
|
|
90
|
+
export type IntrinsicElementOptions = {
|
|
91
|
+
[K in keyof IntrinsicElements]: {
|
|
92
|
+
tag: K;
|
|
93
|
+
props: IntrinsicElements[K];
|
|
94
|
+
};
|
|
95
|
+
}[keyof IntrinsicElements];
|
|
96
|
+
/**
|
|
97
|
+
* Union type describing all supported inline keyboard button variants.
|
|
98
|
+
*
|
|
99
|
+
* Includes shared button styling options and variant-specific payloads.
|
|
100
|
+
*/
|
|
101
|
+
export type InlineButtonProps = {
|
|
102
|
+
[K in keyof InlineButtonPropsMap]: {
|
|
103
|
+
variant?: K;
|
|
104
|
+
color?: Parameters<typeof InlineKeyboard.prototype.style>[0];
|
|
105
|
+
row?: boolean;
|
|
106
|
+
} & InlineButtonPropsMap[K];
|
|
107
|
+
}[keyof InlineButtonPropsMap];
|
|
108
|
+
/**
|
|
109
|
+
* Resolves the exact payload type for a specific inline button variant.
|
|
110
|
+
*
|
|
111
|
+
* @template {keyof InlineButtonPropsMap} K
|
|
112
|
+
*/
|
|
113
|
+
export type ExactInlineButtonProps<K extends keyof InlineButtonPropsMap> = InlineButtonPropsMap[K];
|
|
114
|
+
/**
|
|
115
|
+
* Mapping of supported inline keyboard button variants to their payload shapes.
|
|
116
|
+
*
|
|
117
|
+
* Used internally for variant-safe button entity creation.
|
|
118
|
+
*/
|
|
119
|
+
export type InlineButtonPropsMap = {
|
|
120
|
+
url: {
|
|
121
|
+
url: string;
|
|
122
|
+
};
|
|
123
|
+
callback: {
|
|
124
|
+
event?: string;
|
|
125
|
+
onClick?: (ctx: ReactiveContextFlavor<Context>) => Promise<void> | void;
|
|
126
|
+
};
|
|
127
|
+
app: {
|
|
128
|
+
url: string;
|
|
129
|
+
};
|
|
130
|
+
login: {
|
|
131
|
+
data: InlineKeyboardButton.LoginButton['login_url'];
|
|
132
|
+
};
|
|
133
|
+
switch_inline: {
|
|
134
|
+
query: string;
|
|
135
|
+
};
|
|
136
|
+
switch_inline_current: {
|
|
137
|
+
query: string;
|
|
138
|
+
};
|
|
139
|
+
switch_inline_chosen: {
|
|
140
|
+
data: InlineKeyboardButton.SwitchInlineChosenChatButton['switch_inline_query_chosen_chat'];
|
|
141
|
+
};
|
|
142
|
+
copy: {
|
|
143
|
+
value: string;
|
|
144
|
+
};
|
|
145
|
+
game: {};
|
|
146
|
+
pay: {};
|
|
147
|
+
};
|
|
148
|
+
/**
|
|
149
|
+
* Factory output map for intrinsic entity creation.
|
|
150
|
+
*
|
|
151
|
+
* Each intrinsic tag is mapped to its exact serialized entity shape.
|
|
152
|
+
*/
|
|
153
|
+
export type EntityFactoryMap = {
|
|
154
|
+
[K in keyof IntrinsicElements]: {
|
|
155
|
+
type: K;
|
|
156
|
+
} & EntityPropsMap[K];
|
|
157
|
+
};
|
|
158
|
+
/**
|
|
159
|
+
* Maps intrinsic element tags to their extracted serializable props.
|
|
160
|
+
*/
|
|
161
|
+
export type EntityPropsMap = {
|
|
162
|
+
[K in keyof IntrinsicElements]: Extract<PropsOf<IntrinsicElements[K]>, object>;
|
|
163
|
+
};
|
|
164
|
+
/**
|
|
165
|
+
* Internal entity lookup map keyed by intrinsic tag name.
|
|
166
|
+
*/
|
|
167
|
+
export type EntityMap = {
|
|
168
|
+
[K in keyof IntrinsicElements]: EntityBase<K> & (keyof PropsOf<IntrinsicElements[K]> extends never ? {} : PropsOf<IntrinsicElements[K]>);
|
|
169
|
+
};
|
|
170
|
+
/**
|
|
171
|
+
* Base discriminated entity shape.
|
|
172
|
+
*
|
|
173
|
+
* @template {string} K
|
|
174
|
+
*/
|
|
175
|
+
export type EntityBase<K extends string> = {
|
|
176
|
+
type: K;
|
|
177
|
+
};
|
|
178
|
+
/**
|
|
179
|
+
* Union type of all supported intrinsic render entities.
|
|
180
|
+
*
|
|
181
|
+
* This is the primary metadata representation used by intrinsic
|
|
182
|
+
* JSX tree nodes.
|
|
183
|
+
*/
|
|
184
|
+
export type Entity = {
|
|
185
|
+
[K in keyof IntrinsicElements]: keyof PropsOf<IntrinsicElements[K]> extends never ? EntityBase<K> : EntityBase<K> & PropsOf<IntrinsicElements[K]>;
|
|
186
|
+
}[keyof IntrinsicElements];
|
|
187
|
+
/**
|
|
188
|
+
* Primitive node values supported by the JSX render tree.
|
|
189
|
+
*/
|
|
190
|
+
export type PlainNode = string | number | boolean | null | undefined;
|
|
191
|
+
/**
|
|
192
|
+
* A renderable JSX tree node.
|
|
193
|
+
*
|
|
194
|
+
* Supports primitive values, elements, nested arrays,
|
|
195
|
+
* and promised async nodes.
|
|
196
|
+
*/
|
|
197
|
+
export type Node = PlainNode | JSX.Element | Node[] | Promise<PlainNode | JSX.Element | Node[]>;
|
|
198
|
+
/**
|
|
199
|
+
* Union type of all normalized render tree elements.
|
|
200
|
+
*/
|
|
201
|
+
export type Element = PlainElement | FragmentElement | IntrinsicElement;
|
|
202
|
+
/**
|
|
203
|
+
* Functional JSX component signature for the renderer.
|
|
204
|
+
*/
|
|
205
|
+
export type Component = (props: any) => JSX.Element | Promise<JSX.Element>;
|
|
206
|
+
/**
|
|
207
|
+
* Plain text render node.
|
|
208
|
+
*/
|
|
209
|
+
export interface PlainElement {
|
|
210
|
+
type: "plain";
|
|
211
|
+
value: PlainNode;
|
|
212
|
+
}
|
|
213
|
+
/**
|
|
214
|
+
* Fragment render node used to group multiple children.
|
|
215
|
+
*/
|
|
216
|
+
export interface FragmentElement {
|
|
217
|
+
type: "fragment";
|
|
218
|
+
children: JSX.Element[];
|
|
219
|
+
}
|
|
220
|
+
/**
|
|
221
|
+
* Intrinsic JSX render node with serialized entity metadata.
|
|
222
|
+
*/
|
|
223
|
+
export interface IntrinsicElement {
|
|
224
|
+
id: string;
|
|
225
|
+
type: "intrinsic";
|
|
226
|
+
entity: Entity;
|
|
227
|
+
children: JSX.Element[];
|
|
228
|
+
}
|
|
229
|
+
/**
|
|
230
|
+
* Supported Telegram time formatting tokens.
|
|
231
|
+
*/
|
|
232
|
+
export type TimeFormat = "r" | `${"w" | ""}${"d" | "D" | ""}${"t" | "T" | ""}`;
|
|
233
|
+
/**
|
|
234
|
+
* Supported syntax highlighting language identifiers for `codeblock`.
|
|
235
|
+
*
|
|
236
|
+
* Includes all Prism-compatible language aliases plus custom strings.
|
|
237
|
+
*/
|
|
238
|
+
export type CodeBlockLanguages = (string & {}) | "markup" | "html" | "xml" | "svg" | "mathml" | "ssml" | "atom" | "rss" | "css" | "clike" | "regex" | "javascript" | "js" | "abap" | "abnf" | "actionscript" | "ada" | "agda" | "al" | "antlr4" | "g4" | "apacheconf" | "sql" | "apex" | "apl" | "applescript" | "aql" | "c" | "cpp" | "arduino" | "ino" | "arff" | "armasm" | "arm-asm" | "bash" | "sh" | "shell" | "yaml" | "yml" | "markdown" | "md" | "arturo" | "art" | "asciidoc" | "adoc" | "csharp" | "cs" | "dotnet" | "aspnet" | "asm6502" | "asmatmel" | "autohotkey" | "autoit" | "avisynth" | "avs" | "avro-idl" | "avdl" | "awk" | "gawk" | "basic" | "batch" | "bbcode" | "shortcode" | "bbj" | "bicep" | "birb" | "bison" | "bnf" | "rbnf" | "bqn" | "brainfuck" | "brightscript" | "bro" | "cfscript" | "cfc" | "chaiscript" | "cil" | "cilkc" | "cilk-c" | "cilkcpp" | "cilk-cpp" | "cilk" | "clojure" | "cmake" | "cobol" | "coffeescript" | "coffee" | "concurnas" | "conc" | "csp" | "cooklang" | "ruby" | "rb" | "crystal" | "csv" | "cue" | "cypher" | "d" | "dart" | "dataweave" | "dax" | "dhall" | "diff" | "markup-templating" | "django" | "jinja2" | "dns-zone-file" | "dns-zone" | "docker" | "dockerfile" | "dot" | "gv" | "ebnf" | "editorconfig" | "eiffel" | "ejs" | "eta" | "elixir" | "elm" | "lua" | "etlua" | "erb" | "erlang" | "excel-formula" | "xlsx" | "xls" | "fsharp" | "factor" | "false" | "fift" | "firestore-security-rules" | "flow" | "fortran" | "ftl" | "func" | "gml" | "gamemakerlanguage" | "gap" | "gcode" | "gdscript" | "gedcom" | "gettext" | "po" | "git" | "glsl" | "gn" | "gni" | "linker-script" | "ld" | "go" | "go-module" | "go-mod" | "gradle" | "graphql" | "groovy" | "less" | "scss" | "textile" | "haml" | "handlebars" | "hbs" | "mustache" | "haskell" | "hs" | "haxe" | "hcl" | "hlsl" | "hoon" | "hpkp" | "hsts" | "json" | "webmanifest" | "uri" | "url" | "http" | "ichigojam" | "icon" | "icu-message-format" | "idris" | "idr" | "ignore" | "gitignore" | "hgignore" | "npmignore" | "inform7" | "ini" | "io" | "j" | "java" | "scala" | "php" | "javadoclike" | "javadoc" | "javastacktrace" | "jolie" | "jq" | "typescript" | "ts" | "jsdoc" | "n4js" | "n4jsd" | "json5" | "jsonp" | "jsstacktrace" | "julia" | "keepalived" | "keyman" | "kotlin" | "kt" | "kts" | "kusto" | "latex" | "tex" | "context" | "latte" | "scheme" | "lilypond" | "ly" | "liquid" | "lisp" | "emacs" | "elisp" | "emacs-lisp" | "livescript" | "llvm" | "log" | "lolcode" | "magma" | "makefile" | "mata" | "matlab" | "maxscript" | "mel" | "mermaid" | "metafont" | "mizar" | "mongodb" | "monkey" | "moonscript" | "moon" | "n1ql" | "nand2tetris-hdl" | "naniscript" | "nani" | "nasm" | "neon" | "nevod" | "nginx" | "nim" | "nix" | "nsis" | "objectivec" | "objc" | "ocaml" | "odin" | "opencl" | "openqasm" | "qasm" | "oz" | "parigp" | "parser" | "pascal" | "objectpascal" | "pascaligo" | "psl" | "pcaxis" | "px" | "peoplecode" | "pcode" | "perl" | "phpdoc" | "plant-uml" | "plantuml" | "plsql" | "powerquery" | "pq" | "mscript" | "powershell" | "processing" | "prolog" | "promql" | "properties" | "protobuf" | "stylus" | "twig" | "pug" | "puppet" | "purebasic" | "pbfasm" | "python" | "py" | "qsharp" | "qs" | "q" | "qml" | "qore" | "r" | "racket" | "rkt" | "cshtml" | "razor" | "jsx" | "tsx" | "reason" | "rego" | "renpy" | "rpy" | "rescript" | "res" | "rest" | "rip" | "roboconf" | "robotframework" | "robot" | "rust" | "sas" | "sass" | "shell-session" | "sh-session" | "shellsession" | "smali" | "smalltalk" | "smarty" | "sml" | "smlnj" | "solidity" | "sol" | "solution-file" | "sln" | "soy" | "splunk-spl" | "sqf" | "squirrel" | "stan" | "stata" | "iecst" | "supercollider" | "sclang" | "swift" | "systemd" | "tact" | "t4-templating" | "t4-cs" | "t4" | "vbnet" | "t4-vb" | "tap" | "tcl" | "tt2" | "toml" | "ttcn" | "ttcn3" | "ttcn-3" | "turtle" | "trickle" | "typescript-jsdoc" | "typoscript" | "tsconfig" | "unrealscript" | "uscript" | "uc" | "v" | "vala" | "vba" | "vbscript" | "velocity" | "verilog" | "vhdl" | "vim" | "visual-basic" | "vb" | "warpscript" | "wasm" | "web-idl" | "webidl" | "wgsl" | "wiki" | "wolfram" | "mathematica" | "nb" | "wl" | "xeora" | "xeoracube" | "xml-doc" | "xojo" | "xquery" | "yang" | "zig";
|
|
239
|
+
export type { JSX };
|
|
240
|
+
//# sourceMappingURL=jsx.types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"jsx.types.d.ts","sourceRoot":"","sources":["../../src/types/jsx.types.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
// ! Intrinsic elements
|
|
2
|
+
/**
|
|
3
|
+
* Runtime registry of all supported intrinsic JSX elements.
|
|
4
|
+
*
|
|
5
|
+
* This object defines the canonical intrinsic tag surface supported by
|
|
6
|
+
* the Telegram JSX renderer.
|
|
7
|
+
*
|
|
8
|
+
* Use {@link IntrinsicElements} for the inferred type-safe version.
|
|
9
|
+
*/
|
|
10
|
+
export const intrinsicElements = {
|
|
11
|
+
b: {},
|
|
12
|
+
i: {},
|
|
13
|
+
u: {},
|
|
14
|
+
s: {},
|
|
15
|
+
spoiler: {},
|
|
16
|
+
a: {},
|
|
17
|
+
emoji: {},
|
|
18
|
+
time: {},
|
|
19
|
+
code: {},
|
|
20
|
+
codeblock: {},
|
|
21
|
+
blockquote: {},
|
|
22
|
+
h: {},
|
|
23
|
+
p: {},
|
|
24
|
+
br: {},
|
|
25
|
+
img: {},
|
|
26
|
+
preview: {},
|
|
27
|
+
button: {},
|
|
28
|
+
};
|
|
29
|
+
//# sourceMappingURL=jsx.types.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"jsx.types.js","sourceRoot":"","sources":["../../src/types/jsx.types.ts"],"names":[],"mappings":"AA6BA,uBAAuB;AAEvB;;;;;;;GAOG;AACH,MAAM,CAAC,MAAM,iBAAiB,GAAG;IAC7B,CAAC,EAAE,EAAkB;IACrB,CAAC,EAAE,EAAkB;IACrB,CAAC,EAAE,EAAkB;IACrB,CAAC,EAAE,EAAkB;IACrB,OAAO,EAAE,EAAkB;IAC3B,CAAC,EAAE,EAAoC;IACvC,KAAK,EAAE,EAAkC;IACzC,IAAI,EAAE,EAAyD;IAC/D,IAAI,EAAE,EAAkB;IACxB,SAAS,EAAE,EAAiD;IAC5D,UAAU,EAAE,EAA4C;IACxD,CAAC,EAAE,EAAkB;IACrB,CAAC,EAAE,EAAkB;IACrB,EAAE,EAAE,EAAQ;IACZ,GAAG,EAAE,EAAqE;IAC1E,OAAO,EAAE,EAA4E;IACrF,MAAM,EAAE,EAAqC;CACd,CAAC"}
|
|
@@ -0,0 +1,80 @@
|
|
|
1
|
+
import type { InputFile, InputMediaPhoto, OtherContexted } from "./grammy.types";
|
|
2
|
+
import type { IntrinsicElements, JSX } from "./jsx.types";
|
|
3
|
+
import type { ReactiveContext } from "./plugin.types";
|
|
4
|
+
/**
|
|
5
|
+
* Represents the asynchronous result of the message render pipeline.
|
|
6
|
+
*
|
|
7
|
+
* Includes the final serialized text, Telegram API options,
|
|
8
|
+
* selected render target view, generated media collection,
|
|
9
|
+
* and an optional primary photo attachment.
|
|
10
|
+
*
|
|
11
|
+
* @template {OtherContexted<"sendMessage", "text" | "chat_id" | "parse_mode">} Other
|
|
12
|
+
*/
|
|
13
|
+
export type RenderedMessage<Other extends OtherContexted<"sendMessage", "text" | "chat_id" | "parse_mode">> = Promise<{
|
|
14
|
+
text: string;
|
|
15
|
+
other: Other;
|
|
16
|
+
view: RenderedViewType;
|
|
17
|
+
media: InputMediaPhoto[];
|
|
18
|
+
photo: InputFile | undefined;
|
|
19
|
+
}>;
|
|
20
|
+
/**
|
|
21
|
+
* Input options required to render a JSX tree into a Telegram message payload.
|
|
22
|
+
*
|
|
23
|
+
* This type defines the full context passed into the render pipeline,
|
|
24
|
+
* including runtime context, render method metadata, unique render ID,
|
|
25
|
+
* and optional intrinsic restrictions.
|
|
26
|
+
*
|
|
27
|
+
* @template {ReactiveContext} C
|
|
28
|
+
* @template {OtherContexted<"sendMessage", "text" | "chat_id" | "parse_mode">} Other
|
|
29
|
+
*/
|
|
30
|
+
export type RenderedMessageOptions<C extends ReactiveContext, Other extends OtherContexted<"sendMessage", "text" | "chat_id" | "parse_mode">> = {
|
|
31
|
+
method: string;
|
|
32
|
+
jsx: JSX.Element[] | JSX.Element;
|
|
33
|
+
ctx: C;
|
|
34
|
+
other: Other;
|
|
35
|
+
id: string;
|
|
36
|
+
unallowed?: (keyof IntrinsicElements)[];
|
|
37
|
+
};
|
|
38
|
+
/**
|
|
39
|
+
* Defines the render target mode selected by the message serializer.
|
|
40
|
+
*
|
|
41
|
+
* - `"message"` renders the content as message text
|
|
42
|
+
* - `"caption"` renders the content as media caption
|
|
43
|
+
*/
|
|
44
|
+
export type RenderedViewType = "message" | "caption";
|
|
45
|
+
/**
|
|
46
|
+
* Describes the lifecycle contract for a reactive bot handler instance.
|
|
47
|
+
*
|
|
48
|
+
* Lifecycle hooks are used to mount, rerender, and unmount
|
|
49
|
+
* dynamic JSX-driven bot views.
|
|
50
|
+
*
|
|
51
|
+
* @template {ReactiveContext} C
|
|
52
|
+
*/
|
|
53
|
+
export type BotHandlerLifecycle<C extends ReactiveContext> = (ctx: C) => {
|
|
54
|
+
mount: () => Promise<void>;
|
|
55
|
+
rerender: () => Promise<void>;
|
|
56
|
+
unmount: () => Promise<void>;
|
|
57
|
+
error: (error: Error) => Promise<void>;
|
|
58
|
+
controller: AbortController;
|
|
59
|
+
};
|
|
60
|
+
/**
|
|
61
|
+
* Resolves the concrete lifecycle instance returned by
|
|
62
|
+
* {@link BotHandlerLifecycle}.
|
|
63
|
+
*
|
|
64
|
+
* @template {ReactiveContext} C
|
|
65
|
+
*/
|
|
66
|
+
export type BotHandlerLifecycleInstance<C extends ReactiveContext> = ReturnType<BotHandlerLifecycle<C>>;
|
|
67
|
+
/**
|
|
68
|
+
* Defines a reactive bot message render handler.
|
|
69
|
+
*
|
|
70
|
+
* Reactive handlers receive lifecycle controls, context,
|
|
71
|
+
* and hook-based event helpers such as state management.
|
|
72
|
+
*
|
|
73
|
+
* @template {ReactiveContext} C
|
|
74
|
+
*/
|
|
75
|
+
export type BotMessageHandler<C extends ReactiveContext> = (event: {
|
|
76
|
+
ctx: C;
|
|
77
|
+
id: string;
|
|
78
|
+
controller?: AbortController;
|
|
79
|
+
}) => JSX.Element | Promise<JSX.Element>;
|
|
80
|
+
//# sourceMappingURL=lib.types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"lib.types.d.ts","sourceRoot":"","sources":["../../src/types/lib.types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AACjF,OAAO,KAAK,EAAW,iBAAiB,EAAE,GAAG,EAAE,MAAM,aAAa,CAAC;AACnE,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC;AAItD;;;;;;;;GAQG;AACH,MAAM,MAAM,eAAe,CACvB,KAAK,SAAS,cAAc,CAAC,aAAa,EAAE,MAAM,GAAG,SAAS,GAAG,YAAY,CAAC,IAC9E,OAAO,CAAC;IACR,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,KAAK,CAAC;IACb,IAAI,EAAE,gBAAgB,CAAC;IACvB,KAAK,EAAE,eAAe,EAAE,CAAC;IACzB,KAAK,EAAE,SAAS,GAAG,SAAS,CAAC;CAChC,CAAC,CAAC;AAEH;;;;;;;;;GASG;AACH,MAAM,MAAM,sBAAsB,CAC9B,CAAC,SAAS,eAAe,EACzB,KAAK,SAAS,cAAc,CAAC,aAAa,EAAE,MAAM,GAAG,SAAS,GAAG,YAAY,CAAC,IAC9E;IACA,MAAM,EAAE,MAAM,CAAC;IACf,GAAG,EAAE,GAAG,CAAC,OAAO,EAAE,GAAG,GAAG,CAAC,OAAO,CAAC;IACjC,GAAG,EAAE,CAAC,CAAC;IACP,KAAK,EAAE,KAAK,CAAC;IACb,EAAE,EAAE,MAAM,CAAC;IACX,SAAS,CAAC,EAAE,CAAC,MAAM,iBAAiB,CAAC,EAAE,CAAC;CAC3C,CAAC;AAEF;;;;;GAKG;AACH,MAAM,MAAM,gBAAgB,GAAG,SAAS,GAAG,SAAS,CAAC;AAIrD;;;;;;;GAOG;AACH,MAAM,MAAM,mBAAmB,CAAC,CAAC,SAAS,eAAe,IAAI,CAAC,GAAG,EAAE,CAAC,KAAK;IACrE,KAAK,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;IAC3B,QAAQ,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;IAC9B,OAAO,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;IAC7B,KAAK,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IACvC,UAAU,EAAE,eAAe,CAAC;CAC/B,CAAC;AAEF;;;;;GAKG;AACH,MAAM,MAAM,2BAA2B,CACnC,CAAC,SAAS,eAAe,IACzB,UAAU,CAAC,mBAAmB,CAAC,CAAC,CAAC,CAAC,CAAC;AAIvC;;;;;;;GAOG;AACH,MAAM,MAAM,iBAAiB,CAAC,CAAC,SAAS,eAAe,IAAI,CACvD,KAAK,EAAE;IAAE,GAAG,EAAE,CAAC,CAAC;IAAC,EAAE,EAAE,MAAM,CAAC;IAAC,UAAU,CAAC,EAAE,eAAe,CAAA;CAAE,KAC1D,GAAG,CAAC,OAAO,GAAG,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
//# sourceMappingURL=lib.types.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"lib.types.js","sourceRoot":"","sources":["../../src/types/lib.types.ts"],"names":[],"mappings":""}
|