@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.
Files changed (187) hide show
  1. package/LICENSE +7 -0
  2. package/dist/jsx/index.d.ts +3 -0
  3. package/dist/jsx/index.d.ts.map +1 -0
  4. package/dist/jsx/index.js +2 -0
  5. package/dist/jsx/index.js.map +1 -0
  6. package/dist/jsx/jsx-dev-runtime.d.ts +2 -0
  7. package/dist/jsx/jsx-dev-runtime.d.ts.map +1 -0
  8. package/dist/jsx/jsx-dev-runtime.js +2 -0
  9. package/dist/jsx/jsx-dev-runtime.js.map +1 -0
  10. package/dist/jsx/jsx-runtime.d.ts +2 -0
  11. package/dist/jsx/jsx-runtime.d.ts.map +1 -0
  12. package/dist/jsx/jsx-runtime.js +2 -0
  13. package/dist/jsx/jsx-runtime.js.map +1 -0
  14. package/dist/jsx/runtime/jsx.d.ts +10 -0
  15. package/dist/jsx/runtime/jsx.d.ts.map +1 -0
  16. package/dist/jsx/runtime/jsx.errors.d.ts +4 -0
  17. package/dist/jsx/runtime/jsx.errors.d.ts.map +1 -0
  18. package/dist/jsx/runtime/jsx.errors.js +7 -0
  19. package/dist/jsx/runtime/jsx.errors.js.map +1 -0
  20. package/dist/jsx/runtime/jsx.js +209 -0
  21. package/dist/jsx/runtime/jsx.js.map +1 -0
  22. package/dist/jsx/runtime/jsx.runtime.d.ts +18 -0
  23. package/dist/jsx/runtime/jsx.runtime.d.ts.map +1 -0
  24. package/dist/jsx/runtime/jsx.runtime.js +3 -0
  25. package/dist/jsx/runtime/jsx.runtime.js.map +1 -0
  26. package/dist/lib/helpers/context.helper.d.ts +3 -0
  27. package/dist/lib/helpers/context.helper.d.ts.map +1 -0
  28. package/dist/lib/helpers/index.d.ts +2 -0
  29. package/dist/lib/helpers/index.d.ts.map +1 -0
  30. package/dist/lib/index.d.ts +12 -0
  31. package/dist/lib/index.d.ts.map +1 -0
  32. package/dist/lib/index.js +45 -0
  33. package/dist/lib/index.js.map +1 -0
  34. package/dist/lib/jsx-runtime.d.ts +2 -0
  35. package/dist/lib/jsx-runtime.d.ts.map +1 -0
  36. package/dist/lib/plugin/index.d.ts +4 -0
  37. package/dist/lib/plugin/index.d.ts.map +1 -0
  38. package/dist/lib/plugin/index.js +40 -0
  39. package/dist/lib/plugin/index.js.map +1 -0
  40. package/dist/lib/render/components/Error.d.ts +26 -0
  41. package/dist/lib/render/components/Error.d.ts.map +1 -0
  42. package/dist/lib/render/components/Error.js +25 -0
  43. package/dist/lib/render/components/Error.js.map +1 -0
  44. package/dist/lib/render/message.render.d.ts +40 -0
  45. package/dist/lib/render/message.render.d.ts.map +1 -0
  46. package/dist/lib/render/message.render.js +60 -0
  47. package/dist/lib/render/message.render.js.map +1 -0
  48. package/dist/lib/render/node/fragmemt.render.d.ts +34 -0
  49. package/dist/lib/render/node/fragmemt.render.d.ts.map +1 -0
  50. package/dist/lib/render/node/fragmemt.render.js +56 -0
  51. package/dist/lib/render/node/fragmemt.render.js.map +1 -0
  52. package/dist/lib/render/node/intrinsic.render.d.ts +37 -0
  53. package/dist/lib/render/node/intrinsic.render.d.ts.map +1 -0
  54. package/dist/lib/render/node/intrinsic.render.js +167 -0
  55. package/dist/lib/render/node/intrinsic.render.js.map +1 -0
  56. package/dist/lib/render/node/plain.render.d.ts +27 -0
  57. package/dist/lib/render/node/plain.render.d.ts.map +1 -0
  58. package/dist/lib/render/node/plain.render.js +32 -0
  59. package/dist/lib/render/node/plain.render.js.map +1 -0
  60. package/dist/lib/render/tag.render.d.ts +24 -0
  61. package/dist/lib/render/tag.render.d.ts.map +1 -0
  62. package/dist/lib/render/tag.render.js +27 -0
  63. package/dist/lib/render/tag.render.js.map +1 -0
  64. package/dist/lib/state/create.state.d.ts +8 -0
  65. package/dist/lib/state/create.state.d.ts.map +1 -0
  66. package/dist/lib/state/create.state.js +61 -0
  67. package/dist/lib/state/create.state.js.map +1 -0
  68. package/dist/lib/state/events/onclick.event.d.ts +21 -0
  69. package/dist/lib/state/events/onclick.event.d.ts.map +1 -0
  70. package/dist/lib/state/events/onclick.event.js +36 -0
  71. package/dist/lib/state/events/onclick.event.js.map +1 -0
  72. package/dist/lib/state/hooks/callback.hooks.d.ts +2 -0
  73. package/dist/lib/state/hooks/callback.hooks.d.ts.map +1 -0
  74. package/dist/lib/state/hooks/create.d.ts +7 -0
  75. package/dist/lib/state/hooks/create.d.ts.map +1 -0
  76. package/dist/lib/state/hooks/create.hooks.d.ts +29 -0
  77. package/dist/lib/state/hooks/create.hooks.d.ts.map +1 -0
  78. package/dist/lib/state/hooks/create.hooks.js +38 -0
  79. package/dist/lib/state/hooks/create.hooks.js.map +1 -0
  80. package/dist/lib/state/hooks/effect.hooks.d.ts +5 -0
  81. package/dist/lib/state/hooks/effect.hooks.d.ts.map +1 -0
  82. package/dist/lib/state/hooks/get.hooks.d.ts +25 -0
  83. package/dist/lib/state/hooks/get.hooks.d.ts.map +1 -0
  84. package/dist/lib/state/hooks/get.hooks.js +33 -0
  85. package/dist/lib/state/hooks/get.hooks.js.map +1 -0
  86. package/dist/lib/state/hooks/index.d.ts +7 -0
  87. package/dist/lib/state/hooks/index.d.ts.map +1 -0
  88. package/dist/lib/state/hooks/memo.hooks.d.ts +2 -0
  89. package/dist/lib/state/hooks/memo.hooks.d.ts.map +1 -0
  90. package/dist/lib/state/hooks/reducer.hooks.d.ts +3 -0
  91. package/dist/lib/state/hooks/reducer.hooks.d.ts.map +1 -0
  92. package/dist/lib/state/hooks/ref.hooks.d.ts +4 -0
  93. package/dist/lib/state/hooks/ref.hooks.d.ts.map +1 -0
  94. package/dist/lib/state/hooks/reset.hooks.d.ts +16 -0
  95. package/dist/lib/state/hooks/reset.hooks.d.ts.map +1 -0
  96. package/dist/lib/state/hooks/reset.hooks.js +19 -0
  97. package/dist/lib/state/hooks/reset.hooks.js.map +1 -0
  98. package/dist/lib/state/hooks/set.hooks.d.ts +23 -0
  99. package/dist/lib/state/hooks/set.hooks.d.ts.map +1 -0
  100. package/dist/lib/state/hooks/set.hooks.js +28 -0
  101. package/dist/lib/state/hooks/set.hooks.js.map +1 -0
  102. package/dist/lib/state/hooks/state.hooks.d.ts +50 -0
  103. package/dist/lib/state/hooks/state.hooks.d.ts.map +1 -0
  104. package/dist/lib/state/lifecycle/error.state.d.ts +7 -0
  105. package/dist/lib/state/lifecycle/error.state.d.ts.map +1 -0
  106. package/dist/lib/state/lifecycle/error.state.js +55 -0
  107. package/dist/lib/state/lifecycle/error.state.js.map +1 -0
  108. package/dist/lib/state/lifecycle/mount.state.d.ts +10 -0
  109. package/dist/lib/state/lifecycle/mount.state.d.ts.map +1 -0
  110. package/dist/lib/state/lifecycle/mount.state.js +84 -0
  111. package/dist/lib/state/lifecycle/mount.state.js.map +1 -0
  112. package/dist/lib/state/lifecycle/rerender.state.d.ts +10 -0
  113. package/dist/lib/state/lifecycle/rerender.state.d.ts.map +1 -0
  114. package/dist/lib/state/lifecycle/rerender.state.js +86 -0
  115. package/dist/lib/state/lifecycle/rerender.state.js.map +1 -0
  116. package/dist/lib/state/lifecycle/unmount.state.d.ts +9 -0
  117. package/dist/lib/state/lifecycle/unmount.state.d.ts.map +1 -0
  118. package/dist/lib/state/lifecycle/unmount.state.js +33 -0
  119. package/dist/lib/state/lifecycle/unmount.state.js.map +1 -0
  120. package/dist/types/grammy.types.d.ts +29 -0
  121. package/dist/types/grammy.types.d.ts.map +1 -0
  122. package/dist/types/grammy.types.js +3 -0
  123. package/dist/types/grammy.types.js.map +1 -0
  124. package/dist/types/hooks.types.d.ts +27 -0
  125. package/dist/types/hooks.types.d.ts.map +1 -0
  126. package/dist/types/jsx.types.d.ts +240 -0
  127. package/dist/types/jsx.types.d.ts.map +1 -0
  128. package/dist/types/jsx.types.js +29 -0
  129. package/dist/types/jsx.types.js.map +1 -0
  130. package/dist/types/lib.types.d.ts +80 -0
  131. package/dist/types/lib.types.d.ts.map +1 -0
  132. package/dist/types/lib.types.js +1 -0
  133. package/dist/types/lib.types.js.map +1 -0
  134. package/dist/types/plugin.types.d.ts +81 -0
  135. package/dist/types/plugin.types.d.ts.map +1 -0
  136. package/dist/types/plugin.types.js +1 -0
  137. package/dist/types/plugin.types.js.map +1 -0
  138. package/dist/utils/generateUniqueId.d.ts +29 -0
  139. package/dist/utils/generateUniqueId.d.ts.map +1 -0
  140. package/dist/utils/generateUniqueId.js +41 -0
  141. package/dist/utils/generateUniqueId.js.map +1 -0
  142. package/dist/utils/getEmoji.d.ts +26 -0
  143. package/dist/utils/getEmoji.d.ts.map +1 -0
  144. package/dist/utils/getEmoji.js +33 -0
  145. package/dist/utils/getEmoji.js.map +1 -0
  146. package/dist/utils/getPlainText.d.ts +23 -0
  147. package/dist/utils/getPlainText.d.ts.map +1 -0
  148. package/dist/utils/getPlainText.js +30 -0
  149. package/dist/utils/getPlainText.js.map +1 -0
  150. package/dist/utils/global.d.ts +13 -0
  151. package/dist/utils/global.d.ts.map +1 -0
  152. package/dist/utils/global.js +7 -0
  153. package/dist/utils/global.js.map +1 -0
  154. package/dist/utils/index.d.ts +9 -0
  155. package/dist/utils/index.d.ts.map +1 -0
  156. package/dist/utils/index.js +10 -0
  157. package/dist/utils/index.js.map +1 -0
  158. package/dist/utils/isAbortError.d.ts +2 -0
  159. package/dist/utils/isAbortError.d.ts.map +1 -0
  160. package/dist/utils/isEmoji.d.ts +25 -0
  161. package/dist/utils/isEmoji.d.ts.map +1 -0
  162. package/dist/utils/isEmoji.js +27 -0
  163. package/dist/utils/isEmoji.js.map +1 -0
  164. package/dist/utils/isEqual.d.ts +42 -0
  165. package/dist/utils/isEqual.d.ts.map +1 -0
  166. package/dist/utils/isEqual.js +142 -0
  167. package/dist/utils/isEqual.js.map +1 -0
  168. package/dist/utils/isIntrinsicElement.d.ts +23 -0
  169. package/dist/utils/isIntrinsicElement.d.ts.map +1 -0
  170. package/dist/utils/isIntrinsicElement.js +25 -0
  171. package/dist/utils/isIntrinsicElement.js.map +1 -0
  172. package/dist/utils/isMessageNotFount.d.ts +2 -0
  173. package/dist/utils/isMessageNotFount.d.ts.map +1 -0
  174. package/dist/utils/isUnixTime.d.ts +32 -0
  175. package/dist/utils/isUnixTime.d.ts.map +1 -0
  176. package/dist/utils/isUnixTime.js +38 -0
  177. package/dist/utils/isUnixTime.js.map +1 -0
  178. package/dist/utils/sanitizeHtmlString.d.ts +24 -0
  179. package/dist/utils/sanitizeHtmlString.d.ts.map +1 -0
  180. package/dist/utils/sanitizeHtmlString.js +29 -0
  181. package/dist/utils/sanitizeHtmlString.js.map +1 -0
  182. package/dist/utils/withComponentScope.d.ts +2 -0
  183. package/dist/utils/withComponentScope.d.ts.map +1 -0
  184. package/dist/utils/withRuntime.d.ts +4 -0
  185. package/dist/utils/withRuntime.d.ts.map +1 -0
  186. package/package.json +62 -0
  187. 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,3 @@
1
+ import { InputFile, Keyboard, InlineKeyboard, InputMediaBuilder, Bot } from "grammy";
2
+ export { InputFile, Keyboard, InlineKeyboard, InputMediaBuilder, Bot };
3
+ //# sourceMappingURL=grammy.types.js.map
@@ -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":""}