@fragno-dev/mcp-fragment 0.0.0-stage → 0.0.3

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 (90) hide show
  1. package/LICENSE.md +16 -0
  2. package/README.md +312 -2
  3. package/bin/run.js +7 -0
  4. package/dist/browser/client/react.d.ts +253 -0
  5. package/dist/browser/client/react.d.ts.map +1 -0
  6. package/dist/browser/client/react.js +194 -0
  7. package/dist/browser/client/react.js.map +1 -0
  8. package/dist/browser/client/solid.d.ts +256 -0
  9. package/dist/browser/client/solid.d.ts.map +1 -0
  10. package/dist/browser/client/solid.js +129 -0
  11. package/dist/browser/client/solid.js.map +1 -0
  12. package/dist/browser/client/svelte.d.ts +256 -0
  13. package/dist/browser/client/svelte.d.ts.map +1 -0
  14. package/dist/browser/client/svelte.js +131 -0
  15. package/dist/browser/client/svelte.js.map +1 -0
  16. package/dist/browser/client/vanilla.d.ts +283 -0
  17. package/dist/browser/client/vanilla.d.ts.map +1 -0
  18. package/dist/browser/client/vanilla.js +159 -0
  19. package/dist/browser/client/vanilla.js.map +1 -0
  20. package/dist/browser/client/vue.d.ts +256 -0
  21. package/dist/browser/client/vue.d.ts.map +1 -0
  22. package/dist/browser/client/vue.js +127 -0
  23. package/dist/browser/client/vue.js.map +1 -0
  24. package/dist/browser/client-BCzNDSlW.d.ts +711 -0
  25. package/dist/browser/client-BCzNDSlW.d.ts.map +1 -0
  26. package/dist/browser/index.d.ts +813 -0
  27. package/dist/browser/index.d.ts.map +1 -0
  28. package/dist/browser/index.js +1 -0
  29. package/dist/browser/src-B6dHZXqB.js +2303 -0
  30. package/dist/browser/src-B6dHZXqB.js.map +1 -0
  31. package/dist/cli/cli.d.ts +6 -0
  32. package/dist/cli/cli.d.ts.map +1 -0
  33. package/dist/cli/cli.js +227 -0
  34. package/dist/cli/cli.js.map +1 -0
  35. package/dist/cli/definition.js +330 -0
  36. package/dist/cli/definition.js.map +1 -0
  37. package/dist/cli/diagnostics.js +93 -0
  38. package/dist/cli/diagnostics.js.map +1 -0
  39. package/dist/cli/index.js +13 -0
  40. package/dist/cli/index.js.map +1 -0
  41. package/dist/cli/mcp-api.js +87 -0
  42. package/dist/cli/mcp-api.js.map +1 -0
  43. package/dist/cli/mcp-types.js +100 -0
  44. package/dist/cli/mcp-types.js.map +1 -0
  45. package/dist/cli/oauth-provider.js +113 -0
  46. package/dist/cli/oauth-provider.js.map +1 -0
  47. package/dist/cli/routes.js +743 -0
  48. package/dist/cli/routes.js.map +1 -0
  49. package/dist/cli/schema.js +13 -0
  50. package/dist/cli/schema.js.map +1 -0
  51. package/dist/cli/services.js +330 -0
  52. package/dist/cli/services.js.map +1 -0
  53. package/dist/node/definition.d.ts +260 -0
  54. package/dist/node/definition.d.ts.map +1 -0
  55. package/dist/node/definition.js +330 -0
  56. package/dist/node/definition.js.map +1 -0
  57. package/dist/node/diagnostics.js +93 -0
  58. package/dist/node/diagnostics.js.map +1 -0
  59. package/dist/node/index.d.ts +694 -0
  60. package/dist/node/index.d.ts.map +1 -0
  61. package/dist/node/index.js +26 -0
  62. package/dist/node/index.js.map +1 -0
  63. package/dist/node/mcp-api.d.ts +2 -0
  64. package/dist/node/mcp-api.js +87 -0
  65. package/dist/node/mcp-api.js.map +1 -0
  66. package/dist/node/mcp-types.d.ts +146 -0
  67. package/dist/node/mcp-types.d.ts.map +1 -0
  68. package/dist/node/mcp-types.js +100 -0
  69. package/dist/node/mcp-types.js.map +1 -0
  70. package/dist/node/oauth-provider.d.ts +24 -0
  71. package/dist/node/oauth-provider.d.ts.map +1 -0
  72. package/dist/node/oauth-provider.js +113 -0
  73. package/dist/node/oauth-provider.js.map +1 -0
  74. package/dist/node/routes.d.ts +466 -0
  75. package/dist/node/routes.d.ts.map +1 -0
  76. package/dist/node/routes.js +743 -0
  77. package/dist/node/routes.js.map +1 -0
  78. package/dist/node/schema.d.ts +9 -0
  79. package/dist/node/schema.d.ts.map +1 -0
  80. package/dist/node/schema.js +13 -0
  81. package/dist/node/schema.js.map +1 -0
  82. package/dist/node/services.d.ts +40 -0
  83. package/dist/node/services.d.ts.map +1 -0
  84. package/dist/node/services.js +330 -0
  85. package/dist/node/services.js.map +1 -0
  86. package/dist/node/testing/mcp-test-server.d.ts +42 -0
  87. package/dist/node/testing/mcp-test-server.d.ts.map +1 -0
  88. package/dist/node/testing/mcp-test-server.js +218 -0
  89. package/dist/node/testing/mcp-test-server.js.map +1 -0
  90. package/package.json +130 -3
@@ -0,0 +1,283 @@
1
+ import { a as FragnoClientRequestError, c as InferOr, d as MaybeExtractPathParamsOrWiden, i as ReadableAtom, l as ExtractPathParamsOrWiden, o as NonGetHTTPMethod, s as FragnoPublicClientConfig, u as HasPathParams } from "../client-BCzNDSlW.js";
2
+ import { StandardSchemaV1 } from "@standard-schema/spec";
3
+ //#region ../fragno/dist/client/vanilla.d.ts
4
+ //#region src/client/vanilla.d.ts
5
+ type StoreData<TOutputSchema extends StandardSchemaV1 | undefined, TErrorCodes extends string> = {
6
+ loading: boolean;
7
+ error?: FragnoClientRequestError<TErrorCodes>;
8
+ data?: InferOr<TOutputSchema, undefined>;
9
+ };
10
+ type FragnoVanillaListeners<_TMethod extends "GET", TPath extends string, TOutputSchema extends StandardSchemaV1, TErrorCode extends string, TQueryParameters extends string> = (args?: {
11
+ path?: MaybeExtractPathParamsOrWiden<TPath, string | ReadableAtom<string>>;
12
+ query?: Record<TQueryParameters, string | ReadableAtom<string>>;
13
+ }) => {
14
+ /** Called for every change in the store. */
15
+ listen: (callback: (value: StoreData<TOutputSchema, TErrorCode[number]>) => void) => () => void;
16
+ /** Called once initially, then called for every change in the store. */
17
+ subscribe: (callback: (value: StoreData<TOutputSchema, TErrorCode[number]>) => void) => () => void;
18
+ get: () => StoreData<TOutputSchema, TErrorCode[number]>;
19
+ refetch: () => void;
20
+ /**
21
+ * Produces an item for every change in the store.
22
+ * Note: the iterator does NOT return.
23
+ *
24
+ * @example
25
+ * ```typescript
26
+ * const store = useFragno(clientObj).store;
27
+ * for await (const value of store[Symbol.asyncIterator]()) {
28
+ * console.log(value);
29
+ * }
30
+ * ```
31
+ */
32
+ [Symbol.asyncIterator]: () => AsyncGenerator<StoreData<TOutputSchema, TErrorCode[number]>, void, unknown>;
33
+ };
34
+ type FragnoVanillaMutator<_TMethod extends NonGetHTTPMethod, TPath extends string, TInputSchema extends StandardSchemaV1 | undefined, TOutputSchema extends StandardSchemaV1 | undefined, TErrorCode extends string, TQueryParameters extends string> = (args?: {
35
+ path?: MaybeExtractPathParamsOrWiden<TPath, string | ReadableAtom<string>>;
36
+ query?: Record<TQueryParameters, string | ReadableAtom<string>>;
37
+ }) => {
38
+ subscribe: (callback: (value: {
39
+ loading: boolean;
40
+ error?: FragnoClientRequestError<TErrorCode[number]>;
41
+ data?: InferOr<TOutputSchema, undefined>;
42
+ }) => void) => () => void;
43
+ get: () => StoreData<TOutputSchema, TErrorCode[number]>;
44
+ mutate: ({ body, path, query }: {
45
+ body?: InferOr<TInputSchema, undefined>;
46
+ path?: HasPathParams<TPath> extends true ? ExtractPathParamsOrWiden<TPath, string | ReadableAtom<string>> : undefined;
47
+ query?: Record<string, string | ReadableAtom<string>>;
48
+ }) => Promise<InferOr<TOutputSchema, undefined>>;
49
+ [Symbol.asyncIterator]: () => AsyncGenerator<StoreData<TOutputSchema, TErrorCode[number]>, void, unknown>;
50
+ };
51
+ //#endregion
52
+ //#region src/client/vanilla.d.ts
53
+ export declare function createMcpFragmentClient(config?: FragnoPublicClientConfig): {
54
+ useServers: FragnoVanillaListeners<"GET", "/servers", import("zod").ZodObject<{
55
+ servers: import("zod").ZodArray<import("zod").ZodObject<{
56
+ slug: import("zod").ZodString;
57
+ name: import("zod").ZodOptional<import("zod").ZodNullable<import("zod").ZodString>>;
58
+ endpointUrl: import("zod").ZodString;
59
+ authMode: import("zod").ZodString;
60
+ cache: import("zod").ZodOptional<import("zod").ZodNullable<import("zod").ZodObject<{
61
+ protocolVersion: import("zod").ZodOptional<import("zod").ZodNullable<import("zod").ZodString>>;
62
+ serverInfo: import("zod").ZodOptional<import("zod").ZodNullable<import("zod").ZodUnknown>>;
63
+ capabilities: import("zod").ZodOptional<import("zod").ZodNullable<import("zod").ZodUnknown>>;
64
+ tools: import("zod").ZodOptional<import("zod").ZodNullable<import("zod").ZodArray<import("zod").ZodObject<{
65
+ name: import("zod").ZodString;
66
+ title: import("zod").ZodOptional<import("zod").ZodString>;
67
+ description: import("zod").ZodOptional<import("zod").ZodString>;
68
+ inputSchema: import("zod").ZodRecord<import("zod").ZodString, import("zod").ZodUnknown>;
69
+ outputSchema: import("zod").ZodOptional<import("zod").ZodRecord<import("zod").ZodString, import("zod").ZodUnknown>>;
70
+ annotations: import("zod").ZodOptional<import("zod").ZodRecord<import("zod").ZodString, import("zod").ZodUnknown>>;
71
+ _meta: import("zod").ZodOptional<import("zod").ZodRecord<import("zod").ZodString, import("zod").ZodUnknown>>;
72
+ }, import("zod/v4/core").$loose>>>>;
73
+ updatedAt: import("zod").ZodOptional<import("zod").ZodUnion<readonly [import("zod").ZodString, import("zod").ZodDate]>>;
74
+ }, import("zod/v4/core").$strip>>>;
75
+ }, import("zod/v4/core").$strip>>;
76
+ }, import("zod/v4/core").$strip>, string, string>;
77
+ useServer: FragnoVanillaListeners<"GET", "/servers/:slug", import("zod").ZodObject<{
78
+ slug: import("zod").ZodString;
79
+ name: import("zod").ZodOptional<import("zod").ZodNullable<import("zod").ZodString>>;
80
+ endpointUrl: import("zod").ZodString;
81
+ authMode: import("zod").ZodString;
82
+ cache: import("zod").ZodOptional<import("zod").ZodNullable<import("zod").ZodObject<{
83
+ protocolVersion: import("zod").ZodOptional<import("zod").ZodNullable<import("zod").ZodString>>;
84
+ serverInfo: import("zod").ZodOptional<import("zod").ZodNullable<import("zod").ZodUnknown>>;
85
+ capabilities: import("zod").ZodOptional<import("zod").ZodNullable<import("zod").ZodUnknown>>;
86
+ tools: import("zod").ZodOptional<import("zod").ZodNullable<import("zod").ZodArray<import("zod").ZodObject<{
87
+ name: import("zod").ZodString;
88
+ title: import("zod").ZodOptional<import("zod").ZodString>;
89
+ description: import("zod").ZodOptional<import("zod").ZodString>;
90
+ inputSchema: import("zod").ZodRecord<import("zod").ZodString, import("zod").ZodUnknown>;
91
+ outputSchema: import("zod").ZodOptional<import("zod").ZodRecord<import("zod").ZodString, import("zod").ZodUnknown>>;
92
+ annotations: import("zod").ZodOptional<import("zod").ZodRecord<import("zod").ZodString, import("zod").ZodUnknown>>;
93
+ _meta: import("zod").ZodOptional<import("zod").ZodRecord<import("zod").ZodString, import("zod").ZodUnknown>>;
94
+ }, import("zod/v4/core").$loose>>>>;
95
+ updatedAt: import("zod").ZodOptional<import("zod").ZodUnion<readonly [import("zod").ZodString, import("zod").ZodDate]>>;
96
+ }, import("zod/v4/core").$strip>>>;
97
+ }, import("zod/v4/core").$strip>, "SERVER_NOT_FOUND", string>;
98
+ createServer: FragnoVanillaMutator<NonGetHTTPMethod, "/servers", import("@standard-schema/spec").StandardSchemaV1<unknown, unknown> | import("zod").ZodObject<{
99
+ slug: import("zod").ZodString;
100
+ name: import("zod").ZodOptional<import("zod").ZodString>;
101
+ endpointUrl: import("zod").ZodURL;
102
+ auth: import("zod").ZodDefault<import("zod").ZodDiscriminatedUnion<[import("zod").ZodObject<{
103
+ type: import("zod").ZodLiteral<"none">;
104
+ }, import("zod/v4/core").$strip>, import("zod").ZodObject<{
105
+ type: import("zod").ZodLiteral<"bearer">;
106
+ token: import("zod").ZodString;
107
+ }, import("zod/v4/core").$strip>, import("zod").ZodObject<{
108
+ type: import("zod").ZodLiteral<"client_credentials">;
109
+ clientId: import("zod").ZodString;
110
+ clientSecret: import("zod").ZodString;
111
+ scopes: import("zod").ZodOptional<import("zod").ZodArray<import("zod").ZodString>>;
112
+ }, import("zod/v4/core").$strip>, import("zod").ZodObject<{
113
+ type: import("zod").ZodLiteral<"oauth">;
114
+ clientId: import("zod").ZodOptional<import("zod").ZodString>;
115
+ clientSecret: import("zod").ZodOptional<import("zod").ZodString>;
116
+ scopes: import("zod").ZodOptional<import("zod").ZodArray<import("zod").ZodString>>;
117
+ }, import("zod/v4/core").$strip>], "type">>;
118
+ }, import("zod/v4/core").$strip> | undefined, import("zod").ZodObject<{
119
+ slug: import("zod").ZodString;
120
+ name: import("zod").ZodOptional<import("zod").ZodNullable<import("zod").ZodString>>;
121
+ endpointUrl: import("zod").ZodString;
122
+ authMode: import("zod").ZodString;
123
+ cache: import("zod").ZodOptional<import("zod").ZodNullable<import("zod").ZodObject<{
124
+ protocolVersion: import("zod").ZodOptional<import("zod").ZodNullable<import("zod").ZodString>>;
125
+ serverInfo: import("zod").ZodOptional<import("zod").ZodNullable<import("zod").ZodUnknown>>;
126
+ capabilities: import("zod").ZodOptional<import("zod").ZodNullable<import("zod").ZodUnknown>>;
127
+ tools: import("zod").ZodOptional<import("zod").ZodNullable<import("zod").ZodArray<import("zod").ZodObject<{
128
+ name: import("zod").ZodString;
129
+ title: import("zod").ZodOptional<import("zod").ZodString>;
130
+ description: import("zod").ZodOptional<import("zod").ZodString>;
131
+ inputSchema: import("zod").ZodRecord<import("zod").ZodString, import("zod").ZodUnknown>;
132
+ outputSchema: import("zod").ZodOptional<import("zod").ZodRecord<import("zod").ZodString, import("zod").ZodUnknown>>;
133
+ annotations: import("zod").ZodOptional<import("zod").ZodRecord<import("zod").ZodString, import("zod").ZodUnknown>>;
134
+ _meta: import("zod").ZodOptional<import("zod").ZodRecord<import("zod").ZodString, import("zod").ZodUnknown>>;
135
+ }, import("zod/v4/core").$loose>>>>;
136
+ updatedAt: import("zod").ZodOptional<import("zod").ZodUnion<readonly [import("zod").ZodString, import("zod").ZodDate]>>;
137
+ }, import("zod/v4/core").$strip>>>;
138
+ }, import("zod/v4/core").$strip> | import("zod").ZodObject<{
139
+ servers: import("zod").ZodArray<import("zod").ZodObject<{
140
+ slug: import("zod").ZodString;
141
+ name: import("zod").ZodOptional<import("zod").ZodNullable<import("zod").ZodString>>;
142
+ endpointUrl: import("zod").ZodString;
143
+ authMode: import("zod").ZodString;
144
+ cache: import("zod").ZodOptional<import("zod").ZodNullable<import("zod").ZodObject<{
145
+ protocolVersion: import("zod").ZodOptional<import("zod").ZodNullable<import("zod").ZodString>>;
146
+ serverInfo: import("zod").ZodOptional<import("zod").ZodNullable<import("zod").ZodUnknown>>;
147
+ capabilities: import("zod").ZodOptional<import("zod").ZodNullable<import("zod").ZodUnknown>>;
148
+ tools: import("zod").ZodOptional<import("zod").ZodNullable<import("zod").ZodArray<import("zod").ZodObject<{
149
+ name: import("zod").ZodString;
150
+ title: import("zod").ZodOptional<import("zod").ZodString>;
151
+ description: import("zod").ZodOptional<import("zod").ZodString>;
152
+ inputSchema: import("zod").ZodRecord<import("zod").ZodString, import("zod").ZodUnknown>;
153
+ outputSchema: import("zod").ZodOptional<import("zod").ZodRecord<import("zod").ZodString, import("zod").ZodUnknown>>;
154
+ annotations: import("zod").ZodOptional<import("zod").ZodRecord<import("zod").ZodString, import("zod").ZodUnknown>>;
155
+ _meta: import("zod").ZodOptional<import("zod").ZodRecord<import("zod").ZodString, import("zod").ZodUnknown>>;
156
+ }, import("zod/v4/core").$loose>>>>;
157
+ updatedAt: import("zod").ZodOptional<import("zod").ZodUnion<readonly [import("zod").ZodString, import("zod").ZodDate]>>;
158
+ }, import("zod/v4/core").$strip>>>;
159
+ }, import("zod/v4/core").$strip>>;
160
+ }, import("zod/v4/core").$strip> | undefined, string, string>;
161
+ refreshServer: FragnoVanillaMutator<NonGetHTTPMethod, "/servers/:slug/refresh", import("@standard-schema/spec").StandardSchemaV1<unknown, unknown> | undefined, import("zod").ZodObject<{
162
+ ok: import("zod").ZodBoolean;
163
+ tools: import("zod").ZodArray<import("zod").ZodObject<{
164
+ name: import("zod").ZodString;
165
+ title: import("zod").ZodOptional<import("zod").ZodString>;
166
+ description: import("zod").ZodOptional<import("zod").ZodString>;
167
+ inputSchema: import("zod").ZodRecord<import("zod").ZodString, import("zod").ZodUnknown>;
168
+ outputSchema: import("zod").ZodOptional<import("zod").ZodRecord<import("zod").ZodString, import("zod").ZodUnknown>>;
169
+ annotations: import("zod").ZodOptional<import("zod").ZodRecord<import("zod").ZodString, import("zod").ZodUnknown>>;
170
+ _meta: import("zod").ZodOptional<import("zod").ZodRecord<import("zod").ZodString, import("zod").ZodUnknown>>;
171
+ }, import("zod/v4/core").$loose>>;
172
+ stage: import("zod").ZodNullable<import("zod").ZodEnum<{
173
+ auth: "auth";
174
+ list_tools: "list_tools";
175
+ }>>;
176
+ checkedAt: import("zod").ZodString;
177
+ server: import("zod").ZodObject<{
178
+ name: import("zod").ZodOptional<import("zod").ZodNullable<import("zod").ZodString>>;
179
+ endpointUrl: import("zod").ZodString;
180
+ authMode: import("zod").ZodString;
181
+ slug: import("zod").ZodString;
182
+ }, import("zod/v4/core").$strip>;
183
+ auth: import("zod").ZodObject<{
184
+ authenticated: import("zod").ZodBoolean;
185
+ mode: import("zod").ZodString;
186
+ tokenPresent: import("zod").ZodBoolean;
187
+ expiresAt: import("zod").ZodNullable<import("zod").ZodUnion<readonly [import("zod").ZodString, import("zod").ZodDate]>>;
188
+ expired: import("zod").ZodNullable<import("zod").ZodBoolean>;
189
+ scopes: import("zod").ZodObject<{
190
+ requested: import("zod").ZodNullable<import("zod").ZodArray<import("zod").ZodString>>;
191
+ granted: import("zod").ZodNullable<import("zod").ZodArray<import("zod").ZodString>>;
192
+ missing: import("zod").ZodNullable<import("zod").ZodArray<import("zod").ZodString>>;
193
+ raw: import("zod").ZodNullable<import("zod").ZodString>;
194
+ }, import("zod/v4/core").$strip>;
195
+ }, import("zod/v4/core").$strip>;
196
+ live: import("zod").ZodObject<{
197
+ reachable: import("zod").ZodBoolean;
198
+ listToolsOk: import("zod").ZodBoolean;
199
+ toolCount: import("zod").ZodNullable<import("zod").ZodNumber>;
200
+ protocolVersion: import("zod").ZodNullable<import("zod").ZodString>;
201
+ serverInfo: import("zod").ZodNullable<import("zod").ZodUnknown>;
202
+ capabilities: import("zod").ZodNullable<import("zod").ZodUnknown>;
203
+ }, import("zod/v4/core").$strip>;
204
+ cache: import("zod").ZodObject<{
205
+ presentBeforeCheck: import("zod").ZodBoolean;
206
+ previousToolCount: import("zod").ZodNullable<import("zod").ZodNumber>;
207
+ updatedToolCount: import("zod").ZodNullable<import("zod").ZodNumber>;
208
+ }, import("zod/v4/core").$strip>;
209
+ error: import("zod").ZodNullable<import("zod").ZodObject<{
210
+ code: import("zod").ZodString;
211
+ message: import("zod").ZodString;
212
+ }, import("zod/v4/core").$strip>>;
213
+ }, import("zod/v4/core").$strip> | undefined, "SERVER_NOT_FOUND", string>;
214
+ callTool: FragnoVanillaMutator<NonGetHTTPMethod, "/servers/:slug/tools/execute", import("zod").ZodObject<{
215
+ name: import("zod").ZodString;
216
+ arguments: import("zod").ZodOptional<import("zod").ZodRecord<import("zod").ZodString, import("zod").ZodUnknown>>;
217
+ timeoutMs: import("zod").ZodOptional<import("zod").ZodNumber>;
218
+ }, import("zod/v4/core").$strip> | undefined, import("zod").ZodObject<{
219
+ isError: import("zod").ZodBoolean;
220
+ content: import("zod").ZodArray<import("zod").ZodRecord<import("zod").ZodString, import("zod").ZodUnknown>>;
221
+ structuredContent: import("zod").ZodUnknown;
222
+ }, import("zod/v4/core").$strip> | undefined, "SERVER_NOT_FOUND" | "MCP_ERROR", string>;
223
+ setToken: FragnoVanillaMutator<NonGetHTTPMethod, "/servers/:slug/auth/token", import("zod").ZodObject<{
224
+ token: import("zod").ZodString;
225
+ }, import("zod/v4/core").$strip> | undefined, import("zod").ZodDiscriminatedUnion<[import("zod").ZodObject<{
226
+ mode: import("zod").ZodLiteral<"none">;
227
+ }, import("zod/v4/core").$strip>, import("zod").ZodObject<{
228
+ mode: import("zod").ZodLiteral<"bearer">;
229
+ credentials: import("zod").ZodEnum<{
230
+ present: "present";
231
+ missing: "missing";
232
+ }>;
233
+ }, import("zod/v4/core").$strip>, import("zod").ZodObject<{
234
+ mode: import("zod").ZodLiteral<"client_credentials">;
235
+ credentials: import("zod").ZodEnum<{
236
+ present: "present";
237
+ missing: "missing";
238
+ }>;
239
+ }, import("zod/v4/core").$strip>, import("zod").ZodObject<{
240
+ mode: import("zod").ZodLiteral<"oauth">;
241
+ state: import("zod").ZodEnum<{
242
+ "consent-required": "consent-required";
243
+ "consent-pending": "consent-pending";
244
+ authorized: "authorized";
245
+ expired: "expired";
246
+ }>;
247
+ }, import("zod/v4/core").$strip>], "mode"> | undefined, "SERVER_NOT_FOUND", string>;
248
+ startOAuth: FragnoVanillaMutator<NonGetHTTPMethod, "/servers/:slug/auth/start", import("zod").ZodObject<{
249
+ scope: import("zod").ZodOptional<import("zod").ZodString>;
250
+ clientId: import("zod").ZodOptional<import("zod").ZodString>;
251
+ clientSecret: import("zod").ZodOptional<import("zod").ZodString>;
252
+ discardTokens: import("zod").ZodDefault<import("zod").ZodBoolean>;
253
+ }, import("zod/v4/core").$strip> | undefined, import("zod").ZodObject<{
254
+ authorizationUrl: import("zod").ZodString;
255
+ state: import("zod").ZodString;
256
+ }, import("zod/v4/core").$strip> | undefined, "SERVER_NOT_FOUND" | "INVALID_OAUTH_REDIRECT_URI" | "OAUTH_REDIRECT_URI_NOT_ALLOWED" | "OAUTH_ERROR", string>;
257
+ deleteAuth: FragnoVanillaMutator<NonGetHTTPMethod, "/servers/:slug/auth", import("@standard-schema/spec").StandardSchemaV1<unknown, unknown> | undefined, import("zod").ZodDiscriminatedUnion<[import("zod").ZodObject<{
258
+ mode: import("zod").ZodLiteral<"none">;
259
+ }, import("zod/v4/core").$strip>, import("zod").ZodObject<{
260
+ mode: import("zod").ZodLiteral<"bearer">;
261
+ credentials: import("zod").ZodEnum<{
262
+ present: "present";
263
+ missing: "missing";
264
+ }>;
265
+ }, import("zod/v4/core").$strip>, import("zod").ZodObject<{
266
+ mode: import("zod").ZodLiteral<"client_credentials">;
267
+ credentials: import("zod").ZodEnum<{
268
+ present: "present";
269
+ missing: "missing";
270
+ }>;
271
+ }, import("zod/v4/core").$strip>, import("zod").ZodObject<{
272
+ mode: import("zod").ZodLiteral<"oauth">;
273
+ state: import("zod").ZodEnum<{
274
+ "consent-required": "consent-required";
275
+ "consent-pending": "consent-pending";
276
+ authorized: "authorized";
277
+ expired: "expired";
278
+ }>;
279
+ }, import("zod/v4/core").$strip>], "mode"> | undefined, "SERVER_NOT_FOUND", string>;
280
+ };
281
+ //#endregion
282
+ export {};
283
+ //# sourceMappingURL=vanilla.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"vanilla.d.ts","names":["_$_fragno_dev_core_vanilla0.FragnoVanillaListeners","_$_fragno_dev_core_api0.NonGetHTTPMethod","_$_fragno_dev_core_vanilla0.FragnoVanillaMutator"],"sources":["../../../../fragno/dist/client/vanilla.d.ts","../../../src/client/vanilla.ts"],"mappings":";;;;KAQK,UAAU,sBAAsB,8BAA8B;EACjE;EACA,QAAQ,yBAAyB;EACjC,OAAO,QAAQ;;KAEZ,uBAAuB,wBAAwB,sBAAsB,sBAAsB,kBAAkB,2BAA2B,oCAAoC;EAC/K,OAAO,8BAA8B,gBAAgB;EACrD,QAAQ,OAAO,2BAA2B;;;EAG1C,SAAS,WAAW,OAAO,UAAU,eAAe;;EAEpD,YAAY,WAAW,OAAO,UAAU,eAAe;EACvD,WAAW,UAAU,eAAe;EACpC;;;;;;;;;;;;;GAaC,OAAO,sBAAsB,eAAe,UAAU,eAAe;;KAEnE,qBAAqB,iBAAiB,kBAAkB,sBAAsB,qBAAqB,8BAA8B,sBAAsB,8BAA8B,2BAA2B,oCAAoC;EACvP,OAAO,8BAA8B,gBAAgB;EACrD,QAAQ,OAAO,2BAA2B;;EAE1C,YAAY,WAAW;IACrB;IACA,QAAQ,yBAAyB;IACjC,OAAO,QAAQ;;EAEjB,WAAW,UAAU,eAAe;EACpC,WAAW,MAAM,MAAM;IACrB,OAAO,QAAQ;IACf,OAAO,cAAc,sBAAsB,yBAAyB,gBAAgB;IACpF,QAAQ,wBAAwB;QAC5B,QAAQ,QAAQ;GACrB,OAAO,sBAAsB,eAAe,UAAU,eAAe;;;;wBC/CxD,wBAAwB,SAAQ;cAAAA"}
@@ -0,0 +1,159 @@
1
+ import { a as isStore, i as isMutatorHook, n as createMcpFragmentClients, r as isGetHook } from "../src-B6dHZXqB.js";
2
+ //#region ../fragno/dist/util/async.js
3
+ /**
4
+ * Creates an async iterator from a subscribe function that follows the observable pattern.
5
+ *
6
+ * @template T The type of values produced by the store.
7
+ * @param subscribe A function that subscribes to store updates. It receives a callback to be
8
+ * called on each update, and returns an unsubscribe function.
9
+ * @returns An async generator that yields store values as they are produced.
10
+ */
11
+ function createAsyncIteratorFromCallback(subscribe) {
12
+ const queue = [];
13
+ let unsubscribe = null;
14
+ let resolveNext = null;
15
+ const unsubscribeFunc = subscribe((value) => {
16
+ if (resolveNext) {
17
+ resolveNext({
18
+ value,
19
+ done: false
20
+ });
21
+ resolveNext = null;
22
+ } else queue.push(value);
23
+ });
24
+ if (typeof unsubscribeFunc === "function") unsubscribe = unsubscribeFunc;
25
+ return async function* () {
26
+ try {
27
+ while (true) if (queue.length > 0) yield queue.shift();
28
+ else yield await new Promise((resolve) => {
29
+ resolveNext = (result) => {
30
+ if (!result.done) resolve(result.value);
31
+ };
32
+ });
33
+ } finally {
34
+ if (unsubscribe) unsubscribe();
35
+ }
36
+ }();
37
+ }
38
+ //#endregion
39
+ //#region ../fragno/dist/client/vanilla.js
40
+ function createVanillaListeners(hook) {
41
+ return ({ path, query } = {}) => {
42
+ const store = hook.store({
43
+ path,
44
+ query
45
+ });
46
+ return {
47
+ listen: (callback) => {
48
+ return store.listen(({ loading, error, data }) => {
49
+ callback({
50
+ loading,
51
+ error,
52
+ data
53
+ });
54
+ });
55
+ },
56
+ subscribe: (callback) => {
57
+ return store.subscribe(({ loading, error, data }) => {
58
+ callback({
59
+ loading,
60
+ error,
61
+ data
62
+ });
63
+ });
64
+ },
65
+ refetch: () => {
66
+ store.revalidate();
67
+ },
68
+ get: () => {
69
+ return store.get();
70
+ },
71
+ [Symbol.asyncIterator]() {
72
+ return createAsyncIteratorFromCallback((callback) => store.listen(({ loading, error, data }) => {
73
+ callback({
74
+ loading,
75
+ error,
76
+ data
77
+ });
78
+ }));
79
+ }
80
+ };
81
+ };
82
+ }
83
+ function createVanillaMutator(hook) {
84
+ return () => {
85
+ const store = hook.mutatorStore;
86
+ return {
87
+ subscribe: (callback) => {
88
+ return store.subscribe((value) => {
89
+ callback({
90
+ loading: value.loading ?? false,
91
+ error: value.error,
92
+ data: value.data
93
+ });
94
+ });
95
+ },
96
+ get: () => {
97
+ const { loading, error, data } = store.get();
98
+ return {
99
+ loading: loading ?? false,
100
+ error,
101
+ data
102
+ };
103
+ },
104
+ mutate: ({ body, path, query }) => {
105
+ return store.mutate({
106
+ body,
107
+ path,
108
+ query
109
+ });
110
+ },
111
+ [Symbol.asyncIterator]() {
112
+ return createAsyncIteratorFromCallback((callback) => store.listen((value) => {
113
+ callback({
114
+ loading: value.loading ?? false,
115
+ error: value.error,
116
+ data: value.data
117
+ });
118
+ }));
119
+ }
120
+ };
121
+ };
122
+ }
123
+ function createVanillaStore(hook) {
124
+ if ("obj" in hook) return hook.obj;
125
+ return (...args) => {
126
+ const value = hook.factory(...args);
127
+ const dispose = value[Symbol.dispose];
128
+ const disposer = typeof dispose === "function" ? dispose.bind(value) : void 0;
129
+ if (!disposer) return value;
130
+ Object.defineProperty(value, "destroy", {
131
+ value: disposer,
132
+ enumerable: false,
133
+ configurable: true,
134
+ writable: true
135
+ });
136
+ return value;
137
+ };
138
+ }
139
+ function useFragno(clientObj) {
140
+ const result = {};
141
+ for (const key in clientObj) {
142
+ if (!Object.prototype.hasOwnProperty.call(clientObj, key)) continue;
143
+ const hook = clientObj[key];
144
+ if (isGetHook(hook)) result[key] = createVanillaListeners(hook);
145
+ else if (isMutatorHook(hook)) result[key] = createVanillaMutator(hook);
146
+ else if (isStore(hook)) result[key] = createVanillaStore(hook);
147
+ else result[key] = hook;
148
+ }
149
+ return result;
150
+ }
151
+ //#endregion
152
+ //#region src/client/vanilla.ts
153
+ function createMcpFragmentClient(config = {}) {
154
+ return useFragno(createMcpFragmentClients(config));
155
+ }
156
+ //#endregion
157
+ export { createMcpFragmentClient };
158
+
159
+ //# sourceMappingURL=vanilla.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"vanilla.js","names":["createAsyncIteratorFromCallback","subscribe","queue","unsubscribe","resolveNext","unsubscribeFunc","value","done","push","length","shift","Promise","resolve","result","isGetHook","isMutatorHook","isStore","createAsyncIteratorFromCallback","createVanillaListeners","hook","path","query","store","listen","callback","loading","error","data","subscribe","refetch","revalidate","get","Symbol","asyncIterator","createVanillaMutator","mutatorStore","value","mutate","body","createVanillaStore","obj","args","factory","dispose","disposer","bind","Object","defineProperty","enumerable","configurable","writable","useFragno","clientObj","result","key","prototype","hasOwnProperty","call","FragnoPublicClientConfig","useFragno","createMcpFragmentClients","createMcpFragmentClient","config"],"sources":["../../../../fragno/dist/util/async.js","../../../../fragno/dist/client/vanilla.js","../../../src/client/vanilla.ts"],"sourcesContent":["//#region src/util/async.ts\n/**\n* Creates an async iterator from a subscribe function that follows the observable pattern.\n*\n* @template T The type of values produced by the store.\n* @param subscribe A function that subscribes to store updates. It receives a callback to be\n* called on each update, and returns an unsubscribe function.\n* @returns An async generator that yields store values as they are produced.\n*/\nfunction createAsyncIteratorFromCallback(subscribe) {\n\tconst queue = [];\n\tlet unsubscribe = null;\n\tlet resolveNext = null;\n\tconst unsubscribeFunc = subscribe((value) => {\n\t\tif (resolveNext) {\n\t\t\tresolveNext({\n\t\t\t\tvalue,\n\t\t\t\tdone: false\n\t\t\t});\n\t\t\tresolveNext = null;\n\t\t} else queue.push(value);\n\t});\n\tif (typeof unsubscribeFunc === \"function\") unsubscribe = unsubscribeFunc;\n\treturn (async function* () {\n\t\ttry {\n\t\t\twhile (true) if (queue.length > 0) yield queue.shift();\n\t\t\telse yield await new Promise((resolve) => {\n\t\t\t\tresolveNext = (result) => {\n\t\t\t\t\tif (!result.done) resolve(result.value);\n\t\t\t\t};\n\t\t\t});\n\t\t} finally {\n\t\t\tif (unsubscribe) unsubscribe();\n\t\t}\n\t})();\n}\n//#endregion\nexport { createAsyncIteratorFromCallback };\n\n//# sourceMappingURL=async.js.map","import { isGetHook, isMutatorHook, isStore } from \"./client.js\";\nimport { createAsyncIteratorFromCallback } from \"../util/async.js\";\n//#region src/client/vanilla.ts\nfunction createVanillaListeners(hook) {\n\treturn ({ path, query } = {}) => {\n\t\tconst store = hook.store({\n\t\t\tpath,\n\t\t\tquery\n\t\t});\n\t\treturn {\n\t\t\tlisten: (callback) => {\n\t\t\t\treturn store.listen(({ loading, error, data }) => {\n\t\t\t\t\tcallback({\n\t\t\t\t\t\tloading,\n\t\t\t\t\t\terror,\n\t\t\t\t\t\tdata\n\t\t\t\t\t});\n\t\t\t\t});\n\t\t\t},\n\t\t\tsubscribe: (callback) => {\n\t\t\t\treturn store.subscribe(({ loading, error, data }) => {\n\t\t\t\t\tcallback({\n\t\t\t\t\t\tloading,\n\t\t\t\t\t\terror,\n\t\t\t\t\t\tdata\n\t\t\t\t\t});\n\t\t\t\t});\n\t\t\t},\n\t\t\trefetch: () => {\n\t\t\t\tstore.revalidate();\n\t\t\t},\n\t\t\tget: () => {\n\t\t\t\treturn store.get();\n\t\t\t},\n\t\t\t[Symbol.asyncIterator]() {\n\t\t\t\treturn createAsyncIteratorFromCallback((callback) => store.listen(({ loading, error, data }) => {\n\t\t\t\t\tcallback({\n\t\t\t\t\t\tloading,\n\t\t\t\t\t\terror,\n\t\t\t\t\t\tdata\n\t\t\t\t\t});\n\t\t\t\t}));\n\t\t\t}\n\t\t};\n\t};\n}\nfunction createVanillaMutator(hook) {\n\treturn () => {\n\t\tconst store = hook.mutatorStore;\n\t\treturn {\n\t\t\tsubscribe: (callback) => {\n\t\t\t\treturn store.subscribe((value) => {\n\t\t\t\t\tcallback({\n\t\t\t\t\t\tloading: value.loading ?? false,\n\t\t\t\t\t\terror: value.error,\n\t\t\t\t\t\tdata: value.data\n\t\t\t\t\t});\n\t\t\t\t});\n\t\t\t},\n\t\t\tget: () => {\n\t\t\t\tconst { loading, error, data } = store.get();\n\t\t\t\treturn {\n\t\t\t\t\tloading: loading ?? false,\n\t\t\t\t\terror,\n\t\t\t\t\tdata\n\t\t\t\t};\n\t\t\t},\n\t\t\tmutate: ({ body, path, query }) => {\n\t\t\t\treturn store.mutate({\n\t\t\t\t\tbody,\n\t\t\t\t\tpath,\n\t\t\t\t\tquery\n\t\t\t\t});\n\t\t\t},\n\t\t\t[Symbol.asyncIterator]() {\n\t\t\t\treturn createAsyncIteratorFromCallback((callback) => store.listen((value) => {\n\t\t\t\t\tcallback({\n\t\t\t\t\t\tloading: value.loading ?? false,\n\t\t\t\t\t\terror: value.error,\n\t\t\t\t\t\tdata: value.data\n\t\t\t\t\t});\n\t\t\t\t}));\n\t\t\t}\n\t\t};\n\t};\n}\nfunction createVanillaStore(hook) {\n\tif (\"obj\" in hook) return hook.obj;\n\treturn ((...args) => {\n\t\tconst value = hook.factory(...args);\n\t\tconst dispose = value[Symbol.dispose];\n\t\tconst disposer = typeof dispose === \"function\" ? dispose.bind(value) : void 0;\n\t\tif (!disposer) return value;\n\t\tObject.defineProperty(value, \"destroy\", {\n\t\t\tvalue: disposer,\n\t\t\tenumerable: false,\n\t\t\tconfigurable: true,\n\t\t\twritable: true\n\t\t});\n\t\treturn 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] = createVanillaListeners(hook);\n\t\telse if (isMutatorHook(hook)) result[key] = createVanillaMutator(hook);\n\t\telse if (isStore(hook)) result[key] = createVanillaStore(hook);\n\t\telse result[key] = hook;\n\t}\n\treturn result;\n}\n//#endregion\nexport { useFragno };\n\n//# sourceMappingURL=vanilla.js.map","import type { FragnoPublicClientConfig } from \"@fragno-dev/core/client\";\nimport { useFragno } from \"@fragno-dev/core/vanilla\";\n\nimport { createMcpFragmentClients } from \"..\";\n\nexport function createMcpFragmentClient(config: FragnoPublicClientConfig = {}) {\n return useFragno(createMcpFragmentClients(config));\n}\n"],"mappings":"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"}