@teactjs/storage 0.1.0-alpha.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (74) hide show
  1. package/README.md +97 -0
  2. package/dist/index.js +21827 -0
  3. package/dist/react/src/callback-registry.d.ts +11 -0
  4. package/dist/react/src/callback-registry.d.ts.map +1 -0
  5. package/dist/react/src/components.d.ts +396 -0
  6. package/dist/react/src/components.d.ts.map +1 -0
  7. package/dist/react/src/error-boundary.d.ts +19 -0
  8. package/dist/react/src/error-boundary.d.ts.map +1 -0
  9. package/dist/react/src/hooks.d.ts +37 -0
  10. package/dist/react/src/hooks.d.ts.map +1 -0
  11. package/dist/react/src/index.d.ts +11 -0
  12. package/dist/react/src/index.d.ts.map +1 -0
  13. package/dist/renderer/src/index.d.ts +5 -0
  14. package/dist/renderer/src/index.d.ts.map +1 -0
  15. package/dist/renderer/src/nodes.d.ts +23 -0
  16. package/dist/renderer/src/nodes.d.ts.map +1 -0
  17. package/dist/renderer/src/renderer.d.ts +9 -0
  18. package/dist/renderer/src/renderer.d.ts.map +1 -0
  19. package/dist/renderer/src/types.d.ts +36 -0
  20. package/dist/renderer/src/types.d.ts.map +1 -0
  21. package/dist/runtime/src/auth-session.d.ts +51 -0
  22. package/dist/runtime/src/auth-session.d.ts.map +1 -0
  23. package/dist/runtime/src/auth.d.ts +37 -0
  24. package/dist/runtime/src/auth.d.ts.map +1 -0
  25. package/dist/runtime/src/bot.d.ts +143 -0
  26. package/dist/runtime/src/bot.d.ts.map +1 -0
  27. package/dist/runtime/src/config.d.ts +38 -0
  28. package/dist/runtime/src/config.d.ts.map +1 -0
  29. package/dist/runtime/src/context.d.ts +74 -0
  30. package/dist/runtime/src/context.d.ts.map +1 -0
  31. package/dist/runtime/src/conversation.d.ts +310 -0
  32. package/dist/runtime/src/conversation.d.ts.map +1 -0
  33. package/dist/runtime/src/event-hooks.d.ts +49 -0
  34. package/dist/runtime/src/event-hooks.d.ts.map +1 -0
  35. package/dist/runtime/src/i18n.d.ts +55 -0
  36. package/dist/runtime/src/i18n.d.ts.map +1 -0
  37. package/dist/runtime/src/index.d.ts +28 -0
  38. package/dist/runtime/src/index.d.ts.map +1 -0
  39. package/dist/runtime/src/invoice.d.ts +120 -0
  40. package/dist/runtime/src/invoice.d.ts.map +1 -0
  41. package/dist/runtime/src/media-hooks.d.ts +178 -0
  42. package/dist/runtime/src/media-hooks.d.ts.map +1 -0
  43. package/dist/runtime/src/middleware.d.ts +26 -0
  44. package/dist/runtime/src/middleware.d.ts.map +1 -0
  45. package/dist/runtime/src/plugin.d.ts +32 -0
  46. package/dist/runtime/src/plugin.d.ts.map +1 -0
  47. package/dist/runtime/src/router.d.ts +168 -0
  48. package/dist/runtime/src/router.d.ts.map +1 -0
  49. package/dist/runtime/src/session.d.ts +20 -0
  50. package/dist/runtime/src/session.d.ts.map +1 -0
  51. package/dist/runtime/src/stream.d.ts +34 -0
  52. package/dist/runtime/src/stream.d.ts.map +1 -0
  53. package/dist/storage/src/drivers/file.d.ts +18 -0
  54. package/dist/storage/src/drivers/file.d.ts.map +1 -0
  55. package/dist/storage/src/drivers/memory.d.ts +11 -0
  56. package/dist/storage/src/drivers/memory.d.ts.map +1 -0
  57. package/dist/storage/src/index.d.ts +5 -0
  58. package/dist/storage/src/index.d.ts.map +1 -0
  59. package/dist/storage/src/plugin.d.ts +29 -0
  60. package/dist/storage/src/plugin.d.ts.map +1 -0
  61. package/dist/storage/src/types.d.ts +29 -0
  62. package/dist/storage/src/types.d.ts.map +1 -0
  63. package/dist/telegram/src/adapter.d.ts +83 -0
  64. package/dist/telegram/src/adapter.d.ts.map +1 -0
  65. package/dist/telegram/src/conversations.d.ts +175 -0
  66. package/dist/telegram/src/conversations.d.ts.map +1 -0
  67. package/dist/telegram/src/index.d.ts +8 -0
  68. package/dist/telegram/src/index.d.ts.map +1 -0
  69. package/dist/telegram/src/serialize.d.ts +80 -0
  70. package/dist/telegram/src/serialize.d.ts.map +1 -0
  71. package/dist/telegram/src/stream.d.ts +12 -0
  72. package/dist/telegram/src/stream.d.ts.map +1 -0
  73. package/package.json +31 -0
  74. package/src/index.ts +4 -0
package/README.md ADDED
@@ -0,0 +1,97 @@
1
+ # @teactjs/storage
2
+
3
+ Persistent storage plugin for Teact. Store and retrieve data across bot restarts with file-based or in-memory drivers.
4
+
5
+ ## Install
6
+
7
+ ```bash
8
+ bun add @teactjs/storage
9
+ ```
10
+
11
+ ## Setup
12
+
13
+ Register the plugin with `createBot`:
14
+
15
+ ```ts
16
+ import { createBot } from "@teactjs/core";
17
+ import { storagePlugin } from "@teactjs/storage";
18
+
19
+ const bot = createBot({
20
+ plugins: [
21
+ storagePlugin({
22
+ driver: "file", // "file" | "memory" | custom StorageDriver
23
+ path: "./data", // directory for file driver (default: "./data")
24
+ }),
25
+ ],
26
+ // ...
27
+ });
28
+ ```
29
+
30
+ ## useStorage
31
+
32
+ Per-key reactive storage hook:
33
+
34
+ ```tsx
35
+ import { useStorage } from "@teactjs/storage";
36
+
37
+ function Favorites() {
38
+ const [favorites, setFavorites] = useStorage<string[]>("favorites", []);
39
+
40
+ return (
41
+ <Message text={`You have ${favorites.length} favorites`}>
42
+ <InlineKeyboard>
43
+ <Button
44
+ text="Add Pikachu"
45
+ onClick={() => setFavorites([...favorites, "Pikachu"])}
46
+ />
47
+ </InlineKeyboard>
48
+ </Message>
49
+ );
50
+ }
51
+ ```
52
+
53
+ ## useGlobalStorage
54
+
55
+ Access the raw storage interface for advanced operations:
56
+
57
+ ```ts
58
+ const storage = useGlobalStorage();
59
+
60
+ await storage.get("key");
61
+ await storage.set("key", value);
62
+ await storage.delete("key");
63
+ await storage.has("key");
64
+ await storage.keys();
65
+ await storage.clear();
66
+ ```
67
+
68
+ ## Drivers
69
+
70
+ ### Built-in
71
+
72
+ - **`"memory"`** -- in-memory store, cleared on restart. Good for testing.
73
+ - **`"file"`** -- persists to disk as JSON files. Set `path` to control the directory.
74
+
75
+ ### Custom Driver
76
+
77
+ Implement the `StorageDriver` interface:
78
+
79
+ ```ts
80
+ import type { StorageDriver } from "@teactjs/storage";
81
+
82
+ const redisDriver: StorageDriver = {
83
+ get: async (key) => { /* ... */ },
84
+ set: async (key, value) => { /* ... */ },
85
+ delete: async (key) => { /* ... */ },
86
+ has: async (key) => { /* ... */ },
87
+ clear: async () => { /* ... */ },
88
+ keys: async () => { /* ... */ },
89
+ };
90
+
91
+ storagePlugin({ driver: redisDriver });
92
+ ```
93
+
94
+ ## See Also
95
+
96
+ - [`@teactjs/core`](../core) for the barrel import
97
+ - [`@teactjs/runtime`](../runtime) for the plugin system