@fragno-dev/telegram-fragment 0.0.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 (60) hide show
  1. package/LICENSE.md +16 -0
  2. package/README.md +87 -0
  3. package/dist/browser/client/react.d.ts +226 -0
  4. package/dist/browser/client/react.d.ts.map +1 -0
  5. package/dist/browser/client/react.js +166 -0
  6. package/dist/browser/client/react.js.map +1 -0
  7. package/dist/browser/client/solid.d.ts +228 -0
  8. package/dist/browser/client/solid.d.ts.map +1 -0
  9. package/dist/browser/client/solid.js +136 -0
  10. package/dist/browser/client/solid.js.map +1 -0
  11. package/dist/browser/client/svelte.d.ts +223 -0
  12. package/dist/browser/client/svelte.d.ts.map +1 -0
  13. package/dist/browser/client/svelte.js +134 -0
  14. package/dist/browser/client/svelte.js.map +1 -0
  15. package/dist/browser/client/vanilla.d.ts +252 -0
  16. package/dist/browser/client/vanilla.d.ts.map +1 -0
  17. package/dist/browser/client/vanilla.js +160 -0
  18. package/dist/browser/client/vanilla.js.map +1 -0
  19. package/dist/browser/client/vue.d.ts +226 -0
  20. package/dist/browser/client/vue.d.ts.map +1 -0
  21. package/dist/browser/client/vue.js +133 -0
  22. package/dist/browser/client/vue.js.map +1 -0
  23. package/dist/browser/client-Bk-J98pf.d.ts +679 -0
  24. package/dist/browser/client-Bk-J98pf.d.ts.map +1 -0
  25. package/dist/browser/index.d.ts +1392 -0
  26. package/dist/browser/index.d.ts.map +1 -0
  27. package/dist/browser/index.js +24 -0
  28. package/dist/browser/index.js.map +1 -0
  29. package/dist/browser/schema-QDMf15Vn.js +2343 -0
  30. package/dist/browser/schema-QDMf15Vn.js.map +1 -0
  31. package/dist/node/command-handler-api.js +42 -0
  32. package/dist/node/command-handler-api.js.map +1 -0
  33. package/dist/node/definition.d.ts +194 -0
  34. package/dist/node/definition.d.ts.map +1 -0
  35. package/dist/node/definition.js +90 -0
  36. package/dist/node/definition.js.map +1 -0
  37. package/dist/node/index.d.ts +587 -0
  38. package/dist/node/index.d.ts.map +1 -0
  39. package/dist/node/index.js +29 -0
  40. package/dist/node/index.js.map +1 -0
  41. package/dist/node/routes.d.ts +385 -0
  42. package/dist/node/routes.d.ts.map +1 -0
  43. package/dist/node/routes.js +392 -0
  44. package/dist/node/routes.js.map +1 -0
  45. package/dist/node/schema.d.ts +13 -0
  46. package/dist/node/schema.d.ts.map +1 -0
  47. package/dist/node/schema.js +78 -0
  48. package/dist/node/schema.js.map +1 -0
  49. package/dist/node/services.js +589 -0
  50. package/dist/node/services.js.map +1 -0
  51. package/dist/node/telegram-api.js +41 -0
  52. package/dist/node/telegram-api.js.map +1 -0
  53. package/dist/node/telegram-utils.js +61 -0
  54. package/dist/node/telegram-utils.js.map +1 -0
  55. package/dist/node/types.d.ts +245 -0
  56. package/dist/node/types.d.ts.map +1 -0
  57. package/dist/node/types.js +92 -0
  58. package/dist/node/types.js.map +1 -0
  59. package/dist/tsconfig.tsbuildinfo +1 -0
  60. package/package.json +96 -0
@@ -0,0 +1,226 @@
1
+ import { a as FragnoClientError, c as InferOr, d as MaybeExtractPathParamsOrWiden, f as QueryParamsHint, i as ReadableAtom, o as NonGetHTTPMethod, s as FragnoPublicClientConfig } from "../client-Bk-J98pf.js";
2
+ import * as zod from "zod";
3
+ import { Ref } from "vue";
4
+ import * as zod_v4_core0 from "zod/v4/core";
5
+ import { StandardSchemaV1 } from "@standard-schema/spec";
6
+
7
+ //#region ../fragno/dist/client/vue.d.ts
8
+ //#region src/client/vue.d.ts
9
+ type FragnoVueHook<_TMethod extends "GET", TPath$1 extends string, TOutputSchema$1 extends StandardSchemaV1, TErrorCode$1 extends string, TQueryParameters$1 extends string> = (args?: {
10
+ path?: MaybeExtractPathParamsOrWiden<TPath$1, string | Ref<string> | ReadableAtom<string>>;
11
+ query?: QueryParamsHint<TQueryParameters$1, string | Ref<string> | ReadableAtom<string>>;
12
+ }) => {
13
+ data: Ref<InferOr<TOutputSchema$1, undefined>>;
14
+ loading: Ref<boolean>;
15
+ error: Ref<FragnoClientError<TErrorCode$1[number]> | undefined>;
16
+ };
17
+ type FragnoVueMutator<_TMethod extends NonGetHTTPMethod, TPath$1 extends string, TInputSchema$1 extends StandardSchemaV1 | undefined, TOutputSchema$1 extends StandardSchemaV1 | undefined, TErrorCode$1 extends string, TQueryParameters$1 extends string> = () => {
18
+ mutate: (args: {
19
+ body?: InferOr<TInputSchema$1, undefined>;
20
+ path?: MaybeExtractPathParamsOrWiden<TPath$1, string | Ref<string> | ReadableAtom<string>>;
21
+ query?: QueryParamsHint<TQueryParameters$1, string | Ref<string> | ReadableAtom<string>>;
22
+ }) => Promise<InferOr<TOutputSchema$1, undefined>>;
23
+ loading: Ref<boolean | undefined>;
24
+ error: Ref<FragnoClientError<TErrorCode$1[number]> | undefined>;
25
+ data: Ref<InferOr<TOutputSchema$1, undefined>>;
26
+ };
27
+ /**
28
+ * Type helper that wraps any Store fields of the object into reactive Vue refs.
29
+ */
30
+ //#endregion
31
+ //#region src/client/vue.d.ts
32
+ declare function createTelegramFragmentClient(config?: FragnoPublicClientConfig): {
33
+ useCommands: FragnoVueHook<"GET", "/commands", zod.ZodObject<{
34
+ commands: zod.ZodArray<zod.ZodObject<{
35
+ name: zod.ZodString;
36
+ description: zod.ZodOptional<zod.ZodString>;
37
+ scopes: zod.ZodArray<zod.ZodEnum<{
38
+ private: "private";
39
+ group: "group";
40
+ supergroup: "supergroup";
41
+ channel: "channel";
42
+ }>>;
43
+ enabled: zod.ZodOptional<zod.ZodBoolean>;
44
+ effectiveScopes: zod.ZodOptional<zod.ZodArray<zod.ZodEnum<{
45
+ private: "private";
46
+ group: "group";
47
+ supergroup: "supergroup";
48
+ channel: "channel";
49
+ }>>>;
50
+ binding: zod.ZodOptional<zod.ZodNullable<zod.ZodObject<{
51
+ enabled: zod.ZodOptional<zod.ZodBoolean>;
52
+ scopes: zod.ZodOptional<zod.ZodArray<zod.ZodEnum<{
53
+ private: "private";
54
+ group: "group";
55
+ supergroup: "supergroup";
56
+ channel: "channel";
57
+ }>>>;
58
+ }, zod_v4_core0.$strip>>>;
59
+ }, zod_v4_core0.$strip>>;
60
+ }, zod_v4_core0.$strip>, "chat_not_found", "chatId">;
61
+ useBindCommand: FragnoVueMutator<NonGetHTTPMethod, "/commands/bind", zod.ZodObject<{
62
+ chatId: zod.ZodString;
63
+ commandName: zod.ZodString;
64
+ enabled: zod.ZodDefault<zod.ZodOptional<zod.ZodBoolean>>;
65
+ scopes: zod.ZodOptional<zod.ZodArray<zod.ZodEnum<{
66
+ private: "private";
67
+ group: "group";
68
+ supergroup: "supergroup";
69
+ channel: "channel";
70
+ }>>>;
71
+ }, zod_v4_core0.$strip> | undefined, zod.ZodObject<{
72
+ chatId: zod.ZodString;
73
+ commandName: zod.ZodString;
74
+ enabled: zod.ZodBoolean;
75
+ scopes: zod.ZodOptional<zod.ZodArray<zod.ZodEnum<{
76
+ private: "private";
77
+ group: "group";
78
+ supergroup: "supergroup";
79
+ channel: "channel";
80
+ }>>>;
81
+ }, zod_v4_core0.$strip> | undefined, "chat_not_found" | "command_not_found" | "invalid_scopes", string>;
82
+ useChats: FragnoVueHook<"GET", "/chats", zod.ZodArray<zod.ZodObject<{
83
+ id: zod.ZodString;
84
+ type: zod.ZodEnum<{
85
+ private: "private";
86
+ group: "group";
87
+ supergroup: "supergroup";
88
+ channel: "channel";
89
+ }>;
90
+ title: zod.ZodNullable<zod.ZodString>;
91
+ username: zod.ZodNullable<zod.ZodString>;
92
+ isForum: zod.ZodBoolean;
93
+ commandBindings: zod.ZodNullable<zod.ZodRecord<zod.ZodString, zod.ZodObject<{
94
+ enabled: zod.ZodOptional<zod.ZodBoolean>;
95
+ scopes: zod.ZodOptional<zod.ZodArray<zod.ZodEnum<{
96
+ private: "private";
97
+ group: "group";
98
+ supergroup: "supergroup";
99
+ channel: "channel";
100
+ }>>>;
101
+ }, zod_v4_core0.$loose>>>;
102
+ createdAt: zod.ZodDate;
103
+ updatedAt: zod.ZodDate;
104
+ }, zod_v4_core0.$strip>>, string, "type">;
105
+ useChat: FragnoVueHook<"GET", "/chats/:chatId", zod.ZodObject<{
106
+ chat: zod.ZodObject<{
107
+ id: zod.ZodString;
108
+ type: zod.ZodEnum<{
109
+ private: "private";
110
+ group: "group";
111
+ supergroup: "supergroup";
112
+ channel: "channel";
113
+ }>;
114
+ title: zod.ZodNullable<zod.ZodString>;
115
+ username: zod.ZodNullable<zod.ZodString>;
116
+ isForum: zod.ZodBoolean;
117
+ commandBindings: zod.ZodNullable<zod.ZodRecord<zod.ZodString, zod.ZodObject<{
118
+ enabled: zod.ZodOptional<zod.ZodBoolean>;
119
+ scopes: zod.ZodOptional<zod.ZodArray<zod.ZodEnum<{
120
+ private: "private";
121
+ group: "group";
122
+ supergroup: "supergroup";
123
+ channel: "channel";
124
+ }>>>;
125
+ }, zod_v4_core0.$loose>>>;
126
+ createdAt: zod.ZodDate;
127
+ updatedAt: zod.ZodDate;
128
+ }, zod_v4_core0.$strip>;
129
+ members: zod.ZodArray<zod.ZodObject<{
130
+ id: zod.ZodString;
131
+ chatId: zod.ZodString;
132
+ userId: zod.ZodString;
133
+ status: zod.ZodString;
134
+ joinedAt: zod.ZodNullable<zod.ZodDate>;
135
+ leftAt: zod.ZodNullable<zod.ZodDate>;
136
+ user: zod.ZodNullable<zod.ZodObject<{
137
+ id: zod.ZodString;
138
+ username: zod.ZodNullable<zod.ZodString>;
139
+ firstName: zod.ZodString;
140
+ lastName: zod.ZodNullable<zod.ZodString>;
141
+ isBot: zod.ZodBoolean;
142
+ languageCode: zod.ZodNullable<zod.ZodString>;
143
+ createdAt: zod.ZodDate;
144
+ updatedAt: zod.ZodDate;
145
+ }, zod_v4_core0.$strip>>;
146
+ createdAt: zod.ZodDate;
147
+ updatedAt: zod.ZodDate;
148
+ }, zod_v4_core0.$strip>>;
149
+ }, zod_v4_core0.$strip>, "chat_not_found", string>;
150
+ useChatMessages: FragnoVueHook<"GET", "/chats/:chatId/messages", zod.ZodObject<{
151
+ messages: zod.ZodArray<zod.ZodObject<{
152
+ id: zod.ZodString;
153
+ chatId: zod.ZodString;
154
+ fromUserId: zod.ZodNullable<zod.ZodString>;
155
+ senderChatId: zod.ZodNullable<zod.ZodString>;
156
+ replyToMessageId: zod.ZodNullable<zod.ZodString>;
157
+ messageType: zod.ZodEnum<{
158
+ message: "message";
159
+ edited_message: "edited_message";
160
+ channel_post: "channel_post";
161
+ }>;
162
+ text: zod.ZodNullable<zod.ZodString>;
163
+ payload: zod.ZodNullable<zod.ZodUnknown>;
164
+ sentAt: zod.ZodDate;
165
+ editedAt: zod.ZodNullable<zod.ZodDate>;
166
+ commandName: zod.ZodNullable<zod.ZodString>;
167
+ fromUser: zod.ZodNullable<zod.ZodObject<{
168
+ id: zod.ZodString;
169
+ username: zod.ZodNullable<zod.ZodString>;
170
+ firstName: zod.ZodString;
171
+ lastName: zod.ZodNullable<zod.ZodString>;
172
+ isBot: zod.ZodBoolean;
173
+ languageCode: zod.ZodNullable<zod.ZodString>;
174
+ createdAt: zod.ZodDate;
175
+ updatedAt: zod.ZodDate;
176
+ }, zod_v4_core0.$strip>>;
177
+ }, zod_v4_core0.$strip>>;
178
+ cursor: zod.ZodOptional<zod.ZodString>;
179
+ hasNextPage: zod.ZodBoolean;
180
+ }, zod_v4_core0.$strip>, string, "pageSize" | "cursor" | "order">;
181
+ useChatAction: FragnoVueMutator<NonGetHTTPMethod, "/chats/:chatId/actions", zod.ZodObject<{
182
+ action: zod.ZodEnum<{
183
+ typing: "typing";
184
+ upload_photo: "upload_photo";
185
+ record_video: "record_video";
186
+ upload_video: "upload_video";
187
+ record_voice: "record_voice";
188
+ upload_voice: "upload_voice";
189
+ upload_document: "upload_document";
190
+ choose_sticker: "choose_sticker";
191
+ find_location: "find_location";
192
+ record_video_note: "record_video_note";
193
+ upload_video_note: "upload_video_note";
194
+ }>;
195
+ }, zod_v4_core0.$strip> | undefined, zod.ZodObject<{
196
+ ok: zod.ZodBoolean;
197
+ }, zod_v4_core0.$strip> | undefined, "TELEGRAM_API_ERROR", string>;
198
+ useSendMessage: FragnoVueMutator<NonGetHTTPMethod, "/chats/:chatId/send", zod.ZodObject<{
199
+ text: zod.ZodString;
200
+ parseMode: zod.ZodOptional<zod.ZodEnum<{
201
+ MarkdownV2: "MarkdownV2";
202
+ Markdown: "Markdown";
203
+ HTML: "HTML";
204
+ }>>;
205
+ disableWebPagePreview: zod.ZodOptional<zod.ZodBoolean>;
206
+ replyToMessageId: zod.ZodOptional<zod.ZodCoercedNumber<unknown>>;
207
+ }, zod_v4_core0.$strip> | undefined, zod.ZodObject<{
208
+ ok: zod.ZodBoolean;
209
+ queued: zod.ZodBoolean;
210
+ }, zod_v4_core0.$strip> | undefined, string, string>;
211
+ useEditMessage: FragnoVueMutator<NonGetHTTPMethod, "/chats/:chatId/messages/:messageId/edit", zod.ZodObject<{
212
+ text: zod.ZodString;
213
+ parseMode: zod.ZodOptional<zod.ZodEnum<{
214
+ MarkdownV2: "MarkdownV2";
215
+ Markdown: "Markdown";
216
+ HTML: "HTML";
217
+ }>>;
218
+ disableWebPagePreview: zod.ZodOptional<zod.ZodBoolean>;
219
+ }, zod_v4_core0.$strip> | undefined, zod.ZodObject<{
220
+ ok: zod.ZodBoolean;
221
+ queued: zod.ZodBoolean;
222
+ }, zod_v4_core0.$strip> | undefined, "INVALID_MESSAGE_ID", string>;
223
+ };
224
+ //#endregion
225
+ export { createTelegramFragmentClient };
226
+ //# sourceMappingURL=vue.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"vue.d.ts","names":["MaybeExtractPathParamsOrWiden","QueryParamsHint","InferOr","NonGetHTTPMethod","FragnoClientError","FragnoClientHookData","FragnoClientMutatorData","FragnoStoreFactoryData","FragnoStoreObjectData","ReadableAtom","Store","StoreValue","DeepReadonly","Ref","ShallowRef","UnwrapNestedRefs","StandardSchemaV1","FragnoVueHook","_TMethod","TPath$1","TOutputSchema$1","TErrorCode$1","TQueryParameters$1","path","query","args","data","loading","error","FragnoVueMutator","TInputSchema$1","Promise","mutate","body","FragnoVueStoreRef","T","FragnoVueStoreValue","K","FragnoVueStore","TArgs","refToAtom","ref","useFragno","Record","TPath","TOutputSchema","TErrorCode","TQueryParameters","M","TInputSchema","TStoreObj","TStoreArgs","clientObj","useStore","SomeStore","Value","store"],"sources":["../../../../fragno/dist/client/vue.d.ts","../../../src/client/vue.ts"],"mappings":";;;;;;;;KAUKiB,aAAAA,yEAAsFD,gBAAAA,qEAAqFS,IAAAA;EAC9KF,IAAAA,GAAOvB,6BAAAA,CAA8BmB,OAAAA,WAAkBN,GAAAA,WAAcJ,YAAAA;EACrEe,KAAAA,GAAQvB,eAAAA,CAAgBqB,kBAAAA,WAA6BT,GAAAA,WAAcJ,YAAAA;AAAAA;EAEnEiB,IAAAA,EAAMb,GAAAA,CAAIX,OAAAA,CAAQkB,eAAAA;EAClBO,OAAAA,EAASd,GAAAA;EACTe,KAAAA,EAAOf,GAAAA,CAAIT,iBAAAA,CAAkBiB,YAAAA;AAAAA;AAAAA,KAE1BQ,gBAAAA,kBAAkC1B,gBAAAA,iDAAiEa,gBAAAA,sCAAsDA,gBAAAA;EAC5JgB,MAAAA,GAASP,IAAAA;IACPQ,IAAAA,GAAO/B,OAAAA,CAAQ4B,cAAAA;IACfP,IAAAA,GAAOvB,6BAAAA,CAA8BmB,OAAAA,WAAkBN,GAAAA,WAAcJ,YAAAA;IACrEe,KAAAA,GAAQvB,eAAAA,CAAgBqB,kBAAAA,WAA6BT,GAAAA,WAAcJ,YAAAA;EAAAA,MAC/DsB,OAAAA,CAAQ7B,OAAAA,CAAQkB,eAAAA;EACtBO,OAAAA,EAASd,GAAAA;EACTe,KAAAA,EAAOf,GAAAA,CAAIT,iBAAAA,CAAkBiB,YAAAA;EAC7BK,IAAAA,EAAMb,GAAAA,CAAIX,OAAAA,CAAQkB,eAAAA;AAAAA;;;;;;iBCrBJ,4BAAA,CAA6B,MAAA,GAAQ,wBAAA;;;YAA6B,GAAA,CAAA,SAAA"}
@@ -0,0 +1,133 @@
1
+ import { c as isMutatorHook, d as isReadableAtom, l as isStore, s as isGetHook, u as atom } from "../schema-QDMf15Vn.js";
2
+ import { createTelegramFragmentClients } from "../index.js";
3
+ import { computed, getCurrentScope, isRef, onScopeDispose, ref, shallowRef, watch } from "vue";
4
+
5
+ //#region ../fragno/dist/client/vue.js
6
+ /**
7
+ * Converts a Vue Ref to a NanoStore Atom.
8
+ *
9
+ * This is used to convert Vue refs to atoms, so that we can use them in the store.
10
+ *
11
+ * @private
12
+ */
13
+ function refToAtom(ref$1) {
14
+ const a = /* @__PURE__ */ atom(ref$1.value);
15
+ watch(ref$1, (newVal) => {
16
+ a.set(newVal);
17
+ });
18
+ return a;
19
+ }
20
+ function createVueHook(hook) {
21
+ return ({ path, query } = {}) => {
22
+ const pathParams = {};
23
+ const queryParams = {};
24
+ for (const [key, value] of Object.entries(path ?? {})) {
25
+ const v = value;
26
+ pathParams[key] = isRef(v) ? refToAtom(v) : v;
27
+ }
28
+ for (const [key, value] of Object.entries(query ?? {})) {
29
+ const v = value;
30
+ queryParams[key] = isRef(v) ? refToAtom(v) : v;
31
+ }
32
+ const store = hook.store({
33
+ path: pathParams,
34
+ query: queryParams
35
+ });
36
+ const data = ref();
37
+ const loading = ref();
38
+ const error = ref();
39
+ const unsubscribe = store.subscribe((updatedStoreValue) => {
40
+ data.value = updatedStoreValue.data;
41
+ loading.value = updatedStoreValue.loading;
42
+ error.value = updatedStoreValue.error;
43
+ });
44
+ if (getCurrentScope()) onScopeDispose(() => {
45
+ unsubscribe();
46
+ });
47
+ return {
48
+ data,
49
+ loading,
50
+ error
51
+ };
52
+ };
53
+ }
54
+ function createVueMutator(hook) {
55
+ return () => {
56
+ const store = useStore(hook.mutatorStore);
57
+ const mutate = async (args) => {
58
+ const { body, path, query } = args;
59
+ const pathParams = {};
60
+ const queryParams = {};
61
+ for (const [key, value] of Object.entries(path ?? {})) {
62
+ const v = value;
63
+ pathParams[key] = isRef(v) ? v.value : v;
64
+ }
65
+ for (const [key, value] of Object.entries(query ?? {})) {
66
+ const v = value;
67
+ queryParams[key] = isRef(v) ? v.value : v;
68
+ }
69
+ return store.value.mutate({
70
+ body,
71
+ path: pathParams,
72
+ query: queryParams
73
+ });
74
+ };
75
+ return {
76
+ mutate,
77
+ loading: computed(() => store.value.loading),
78
+ error: computed(() => store.value.error),
79
+ data: computed(() => store.value.data)
80
+ };
81
+ };
82
+ }
83
+ function unwrapVueStoreValue(value) {
84
+ if (isReadableAtom(value)) return useStore(value);
85
+ const result = {};
86
+ for (const key in value) {
87
+ if (!Object.prototype.hasOwnProperty.call(value, key)) continue;
88
+ const fieldValue = value[key];
89
+ if (isReadableAtom(fieldValue)) result[key] = useStore(fieldValue);
90
+ else result[key] = fieldValue;
91
+ }
92
+ return result;
93
+ }
94
+ function createVueStore(hook) {
95
+ return (...args) => {
96
+ const value = "factory" in hook ? hook.factory(...args) : hook.obj;
97
+ const disposer = value[Symbol.dispose];
98
+ if (typeof disposer === "function" && getCurrentScope()) onScopeDispose(() => {
99
+ disposer.call(value);
100
+ });
101
+ return unwrapVueStoreValue(value);
102
+ };
103
+ }
104
+ function useFragno(clientObj) {
105
+ const result = {};
106
+ for (const key in clientObj) {
107
+ if (!Object.prototype.hasOwnProperty.call(clientObj, key)) continue;
108
+ const hook = clientObj[key];
109
+ if (isGetHook(hook)) result[key] = createVueHook(hook);
110
+ else if (isMutatorHook(hook)) result[key] = createVueMutator(hook);
111
+ else if (isStore(hook)) result[key] = createVueStore(hook);
112
+ else result[key] = hook;
113
+ }
114
+ return result;
115
+ }
116
+ function useStore(store) {
117
+ const state = shallowRef();
118
+ const unsubscribe = store.subscribe((value) => {
119
+ state.value = value;
120
+ });
121
+ if (getCurrentScope()) onScopeDispose(unsubscribe);
122
+ return state;
123
+ }
124
+
125
+ //#endregion
126
+ //#region src/client/vue.ts
127
+ function createTelegramFragmentClient(config = {}) {
128
+ return useFragno(createTelegramFragmentClients(config));
129
+ }
130
+
131
+ //#endregion
132
+ export { createTelegramFragmentClient };
133
+ //# sourceMappingURL=vue.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"vue.js","names":["isReadableAtom","isGetHook","isMutatorHook","isStore","atom","computed","computed$1","getCurrentScope","isRef","onScopeDispose","ref","shallowRef","watch","refToAtom","ref$1","a","value","newVal","set","createVueHook","hook","path","query","pathParams","queryParams","key","Object","entries","v","store","data","loading","error","unsubscribe","subscribe","updatedStoreValue","createVueMutator","useStore","mutatorStore","mutate","args","body","unwrapVueStoreValue","result","prototype","hasOwnProperty","call","fieldValue","createVueStore","factory","obj","disposer","Symbol","dispose","useFragno","clientObj","state","FragnoPublicClientConfig","useFragno","createTelegramFragmentClients","createTelegramFragmentClient","config"],"sources":["../../../../fragno/dist/client/vue.js","../../../src/client/vue.ts"],"sourcesContent":["import { isReadableAtom } from \"../util/nanostores.js\";\nimport { isGetHook, isMutatorHook, isStore } from \"./client.js\";\nimport { atom } from \"nanostores\";\nimport { computed as computed$1, getCurrentScope, isRef, onScopeDispose, ref, shallowRef, watch } from \"vue\";\n\n//#region src/client/vue.ts\n/**\n* Converts a Vue Ref to a NanoStore Atom.\n*\n* This is used to convert Vue refs to atoms, so that we can use them in the store.\n*\n* @private\n*/\nfunction refToAtom(ref$1) {\n\tconst a = atom(ref$1.value);\n\twatch(ref$1, (newVal) => {\n\t\ta.set(newVal);\n\t});\n\treturn a;\n}\nfunction createVueHook(hook) {\n\treturn ({ path, query } = {}) => {\n\t\tconst pathParams = {};\n\t\tconst queryParams = {};\n\t\tfor (const [key, value] of Object.entries(path ?? {})) {\n\t\t\tconst v = value;\n\t\t\tpathParams[key] = isRef(v) ? refToAtom(v) : v;\n\t\t}\n\t\tfor (const [key, value] of Object.entries(query ?? {})) {\n\t\t\tconst v = value;\n\t\t\tqueryParams[key] = isRef(v) ? refToAtom(v) : v;\n\t\t}\n\t\tconst store = hook.store({\n\t\t\tpath: pathParams,\n\t\t\tquery: queryParams\n\t\t});\n\t\tconst data = ref();\n\t\tconst loading = ref();\n\t\tconst error = ref();\n\t\tconst unsubscribe = store.subscribe((updatedStoreValue) => {\n\t\t\tdata.value = updatedStoreValue.data;\n\t\t\tloading.value = updatedStoreValue.loading;\n\t\t\terror.value = updatedStoreValue.error;\n\t\t});\n\t\tif (getCurrentScope()) onScopeDispose(() => {\n\t\t\tunsubscribe();\n\t\t});\n\t\treturn {\n\t\t\tdata,\n\t\t\tloading,\n\t\t\terror\n\t\t};\n\t};\n}\nfunction createVueMutator(hook) {\n\treturn () => {\n\t\tconst store = useStore(hook.mutatorStore);\n\t\tconst mutate = async (args) => {\n\t\t\tconst { body, path, query } = args;\n\t\t\tconst pathParams = {};\n\t\t\tconst queryParams = {};\n\t\t\tfor (const [key, value] of Object.entries(path ?? {})) {\n\t\t\t\tconst v = value;\n\t\t\t\tpathParams[key] = isRef(v) ? v.value : v;\n\t\t\t}\n\t\t\tfor (const [key, value] of Object.entries(query ?? {})) {\n\t\t\t\tconst v = value;\n\t\t\t\tqueryParams[key] = isRef(v) ? v.value : v;\n\t\t\t}\n\t\t\treturn store.value.mutate({\n\t\t\t\tbody,\n\t\t\t\tpath: pathParams,\n\t\t\t\tquery: queryParams\n\t\t\t});\n\t\t};\n\t\treturn {\n\t\t\tmutate,\n\t\t\tloading: computed$1(() => store.value.loading),\n\t\t\terror: computed$1(() => store.value.error),\n\t\t\tdata: computed$1(() => store.value.data)\n\t\t};\n\t};\n}\nfunction unwrapVueStoreValue(value) {\n\tif (isReadableAtom(value)) return useStore(value);\n\tconst result = {};\n\tfor (const key in value) {\n\t\tif (!Object.prototype.hasOwnProperty.call(value, key)) continue;\n\t\tconst fieldValue = value[key];\n\t\tif (isReadableAtom(fieldValue)) result[key] = useStore(fieldValue);\n\t\telse result[key] = fieldValue;\n\t}\n\treturn result;\n}\nfunction createVueStore(hook) {\n\treturn ((...args) => {\n\t\tconst value = \"factory\" in hook ? hook.factory(...args) : hook.obj;\n\t\tconst disposer = value[Symbol.dispose];\n\t\tif (typeof disposer === \"function\" && getCurrentScope()) onScopeDispose(() => {\n\t\t\tdisposer.call(value);\n\t\t});\n\t\treturn unwrapVueStoreValue(value);\n\t});\n}\nfunction useFragno(clientObj) {\n\tconst result = {};\n\tfor (const key in clientObj) {\n\t\tif (!Object.prototype.hasOwnProperty.call(clientObj, key)) continue;\n\t\tconst hook = clientObj[key];\n\t\tif (isGetHook(hook)) result[key] = createVueHook(hook);\n\t\telse if (isMutatorHook(hook)) result[key] = createVueMutator(hook);\n\t\telse if (isStore(hook)) result[key] = createVueStore(hook);\n\t\telse result[key] = hook;\n\t}\n\treturn result;\n}\nfunction useStore(store) {\n\tconst state = shallowRef();\n\tconst unsubscribe = store.subscribe((value) => {\n\t\tstate.value = value;\n\t});\n\tif (getCurrentScope()) onScopeDispose(unsubscribe);\n\treturn state;\n}\n\n//#endregion\nexport { refToAtom, useFragno, useStore };\n//# sourceMappingURL=vue.js.map","import type { FragnoPublicClientConfig } from \"@fragno-dev/core/client\";\nimport { useFragno } from \"@fragno-dev/core/vue\";\n\nimport { createTelegramFragmentClients } from \"..\";\n\nexport function createTelegramFragmentClient(config: FragnoPublicClientConfig = {}) {\n return useFragno(createTelegramFragmentClients(config));\n}\n"],"mappings":"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"}