@tthr/vue 0.0.17 → 0.0.19
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/server.d.ts +124 -0
- package/dist/server.d.ts.map +1 -0
- package/dist/server.js +245 -0
- package/dist/server.js.map +1 -0
- package/package.json +7 -2
package/dist/server.d.ts
ADDED
|
@@ -0,0 +1,124 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @tthr/vue/server - Server-side Tether client for Nuxt
|
|
3
|
+
*
|
|
4
|
+
* Use this in Nuxt server/api routes for webhooks, third-party integrations,
|
|
5
|
+
* and any server-side logic that needs to call Tether queries/mutations.
|
|
6
|
+
*
|
|
7
|
+
* For custom functions, use `executeFunction()` which runs the function
|
|
8
|
+
* locally with a database proxy that calls Tether's CRUD endpoints.
|
|
9
|
+
*/
|
|
10
|
+
import { TetherServerClient, type TetherServerClientOptions } from '@tthr/client';
|
|
11
|
+
import type { QueryDefinition, MutationDefinition } from '@tthr/server';
|
|
12
|
+
export { TetherServerClient, type TetherServerClientOptions } from '@tthr/client';
|
|
13
|
+
/**
|
|
14
|
+
* Configure the server-side Tether client.
|
|
15
|
+
* Call this once in your Nuxt server plugin or at the top of your API routes.
|
|
16
|
+
*
|
|
17
|
+
* @example
|
|
18
|
+
* ```typescript
|
|
19
|
+
* // server/plugins/tether.ts
|
|
20
|
+
* import { configureTetherServer } from '@tthr/vue/server';
|
|
21
|
+
*
|
|
22
|
+
* export default defineNitroPlugin(() => {
|
|
23
|
+
* configureTetherServer({
|
|
24
|
+
* url: process.env.TETHER_URL!,
|
|
25
|
+
* projectId: process.env.TETHER_PROJECT_ID!,
|
|
26
|
+
* apiKey: process.env.TETHER_API_KEY,
|
|
27
|
+
* });
|
|
28
|
+
* });
|
|
29
|
+
* ```
|
|
30
|
+
*/
|
|
31
|
+
export declare function configureTetherServer(options: TetherServerClientOptions): void;
|
|
32
|
+
/**
|
|
33
|
+
* Get the configured server-side Tether client.
|
|
34
|
+
*
|
|
35
|
+
* @example
|
|
36
|
+
* ```typescript
|
|
37
|
+
* // server/api/users.get.ts
|
|
38
|
+
* import { useTetherServer } from '@tthr/vue/server';
|
|
39
|
+
*
|
|
40
|
+
* export default defineEventHandler(async () => {
|
|
41
|
+
* const tether = useTetherServer();
|
|
42
|
+
* return await tether.query('users.list');
|
|
43
|
+
* });
|
|
44
|
+
* ```
|
|
45
|
+
*/
|
|
46
|
+
export declare function useTetherServer(): TetherServerClient;
|
|
47
|
+
/**
|
|
48
|
+
* Create a new server-side Tether client instance.
|
|
49
|
+
* Use this when you need a separate client with different configuration.
|
|
50
|
+
*
|
|
51
|
+
* @example
|
|
52
|
+
* ```typescript
|
|
53
|
+
* // server/api/webhook.ts
|
|
54
|
+
* import { createTetherServer } from '@tthr/vue/server';
|
|
55
|
+
*
|
|
56
|
+
* const tether = createTetherServer({
|
|
57
|
+
* url: process.env.TETHER_URL!,
|
|
58
|
+
* projectId: process.env.TETHER_PROJECT_ID!,
|
|
59
|
+
* apiKey: process.env.TETHER_API_KEY,
|
|
60
|
+
* });
|
|
61
|
+
*
|
|
62
|
+
* export default defineEventHandler(async (event) => {
|
|
63
|
+
* const users = await tether.query('users.list');
|
|
64
|
+
* return { users };
|
|
65
|
+
* });
|
|
66
|
+
* ```
|
|
67
|
+
*/
|
|
68
|
+
export declare function createTetherServer(options: TetherServerClientOptions): TetherServerClient;
|
|
69
|
+
/**
|
|
70
|
+
* Auth context for function execution
|
|
71
|
+
*/
|
|
72
|
+
export interface AuthContext {
|
|
73
|
+
/**
|
|
74
|
+
* Get the user identity from the current request.
|
|
75
|
+
* Returns null if not authenticated.
|
|
76
|
+
*/
|
|
77
|
+
getUserIdentity(): Promise<UserIdentity | null>;
|
|
78
|
+
}
|
|
79
|
+
/**
|
|
80
|
+
* User identity returned from auth
|
|
81
|
+
*/
|
|
82
|
+
export interface UserIdentity {
|
|
83
|
+
/** User's subject/ID */
|
|
84
|
+
subject: string;
|
|
85
|
+
/** User's email if available */
|
|
86
|
+
email?: string;
|
|
87
|
+
/** Additional claims from the auth token */
|
|
88
|
+
[key: string]: unknown;
|
|
89
|
+
}
|
|
90
|
+
/**
|
|
91
|
+
* Options for configuring auth in function execution
|
|
92
|
+
*/
|
|
93
|
+
export interface AuthOptions {
|
|
94
|
+
/**
|
|
95
|
+
* Get the current user's identity.
|
|
96
|
+
* This should validate the auth token and return user info.
|
|
97
|
+
*/
|
|
98
|
+
getUserIdentity?: () => Promise<UserIdentity | null>;
|
|
99
|
+
}
|
|
100
|
+
/**
|
|
101
|
+
* Execute a Tether function locally with a database proxy.
|
|
102
|
+
*
|
|
103
|
+
* This runs the function handler in your Nuxt server, with database
|
|
104
|
+
* operations proxied to Tether's CRUD endpoints.
|
|
105
|
+
*
|
|
106
|
+
* @example
|
|
107
|
+
* ```typescript
|
|
108
|
+
* // server/api/my-channels.get.ts
|
|
109
|
+
* import { executeFunction } from '@tthr/vue/server';
|
|
110
|
+
* import { getMyChannels } from '~/tether/functions/channel';
|
|
111
|
+
*
|
|
112
|
+
* export default defineEventHandler(async (event) => {
|
|
113
|
+
* const session = await getUserSession(event);
|
|
114
|
+
*
|
|
115
|
+
* return executeFunction(getMyChannels, {}, {
|
|
116
|
+
* getUserIdentity: async () => session?.userId
|
|
117
|
+
* ? { subject: session.userId }
|
|
118
|
+
* : null,
|
|
119
|
+
* });
|
|
120
|
+
* });
|
|
121
|
+
* ```
|
|
122
|
+
*/
|
|
123
|
+
export declare function executeFunction<TArgs, TResult>(fn: QueryDefinition<TArgs, TResult> | MutationDefinition<TArgs, TResult>, args: TArgs, authOptions?: AuthOptions): Promise<TResult>;
|
|
124
|
+
//# sourceMappingURL=server.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,EAAE,kBAAkB,EAAE,KAAK,yBAAyB,EAAE,MAAM,cAAc,CAAC;AAClF,OAAO,KAAK,EAAgC,eAAe,EAAE,kBAAkB,EAAE,MAAM,cAAc,CAAC;AAGtG,OAAO,EAAE,kBAAkB,EAAE,KAAK,yBAAyB,EAAE,MAAM,cAAc,CAAC;AAKlF;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAgB,qBAAqB,CAAC,OAAO,EAAE,yBAAyB,GAAG,IAAI,CAE9E;AAED;;;;;;;;;;;;;GAaG;AACH,wBAAgB,eAAe,IAAI,kBAAkB,CAQpD;AAED;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,yBAAyB,GAAG,kBAAkB,CAEzF;AAMD;;GAEG;AACH,MAAM,WAAW,WAAW;IAC1B;;;OAGG;IACH,eAAe,IAAI,OAAO,CAAC,YAAY,GAAG,IAAI,CAAC,CAAC;CACjD;AAED;;GAEG;AACH,MAAM,WAAW,YAAY;IAC3B,wBAAwB;IACxB,OAAO,EAAE,MAAM,CAAC;IAChB,gCAAgC;IAChC,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,4CAA4C;IAC5C,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;CACxB;AAED;;GAEG;AACH,MAAM,WAAW,WAAW;IAC1B;;;OAGG;IACH,eAAe,CAAC,EAAE,MAAM,OAAO,CAAC,YAAY,GAAG,IAAI,CAAC,CAAC;CACtD;AAoGD;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,wBAAsB,eAAe,CAAC,KAAK,EAAE,OAAO,EAClD,EAAE,EAAE,eAAe,CAAC,KAAK,EAAE,OAAO,CAAC,GAAG,kBAAkB,CAAC,KAAK,EAAE,OAAO,CAAC,EACxE,IAAI,EAAE,KAAK,EACX,WAAW,CAAC,EAAE,WAAW,GACxB,OAAO,CAAC,OAAO,CAAC,CA4ClB"}
|
package/dist/server.js
ADDED
|
@@ -0,0 +1,245 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @tthr/vue/server - Server-side Tether client for Nuxt
|
|
3
|
+
*
|
|
4
|
+
* Use this in Nuxt server/api routes for webhooks, third-party integrations,
|
|
5
|
+
* and any server-side logic that needs to call Tether queries/mutations.
|
|
6
|
+
*
|
|
7
|
+
* For custom functions, use `executeFunction()` which runs the function
|
|
8
|
+
* locally with a database proxy that calls Tether's CRUD endpoints.
|
|
9
|
+
*/
|
|
10
|
+
import { TetherServerClient } from '@tthr/client';
|
|
11
|
+
// Re-export the server client and types for convenience
|
|
12
|
+
export { TetherServerClient } from '@tthr/client';
|
|
13
|
+
// Singleton client instance
|
|
14
|
+
let serverClient = null;
|
|
15
|
+
/**
|
|
16
|
+
* Configure the server-side Tether client.
|
|
17
|
+
* Call this once in your Nuxt server plugin or at the top of your API routes.
|
|
18
|
+
*
|
|
19
|
+
* @example
|
|
20
|
+
* ```typescript
|
|
21
|
+
* // server/plugins/tether.ts
|
|
22
|
+
* import { configureTetherServer } from '@tthr/vue/server';
|
|
23
|
+
*
|
|
24
|
+
* export default defineNitroPlugin(() => {
|
|
25
|
+
* configureTetherServer({
|
|
26
|
+
* url: process.env.TETHER_URL!,
|
|
27
|
+
* projectId: process.env.TETHER_PROJECT_ID!,
|
|
28
|
+
* apiKey: process.env.TETHER_API_KEY,
|
|
29
|
+
* });
|
|
30
|
+
* });
|
|
31
|
+
* ```
|
|
32
|
+
*/
|
|
33
|
+
export function configureTetherServer(options) {
|
|
34
|
+
serverClient = new TetherServerClient(options);
|
|
35
|
+
}
|
|
36
|
+
/**
|
|
37
|
+
* Get the configured server-side Tether client.
|
|
38
|
+
*
|
|
39
|
+
* @example
|
|
40
|
+
* ```typescript
|
|
41
|
+
* // server/api/users.get.ts
|
|
42
|
+
* import { useTetherServer } from '@tthr/vue/server';
|
|
43
|
+
*
|
|
44
|
+
* export default defineEventHandler(async () => {
|
|
45
|
+
* const tether = useTetherServer();
|
|
46
|
+
* return await tether.query('users.list');
|
|
47
|
+
* });
|
|
48
|
+
* ```
|
|
49
|
+
*/
|
|
50
|
+
export function useTetherServer() {
|
|
51
|
+
if (!serverClient) {
|
|
52
|
+
throw new Error('Tether server client not configured. Call configureTetherServer() first, ' +
|
|
53
|
+
'typically in a Nitro plugin (server/plugins/tether.ts).');
|
|
54
|
+
}
|
|
55
|
+
return serverClient;
|
|
56
|
+
}
|
|
57
|
+
/**
|
|
58
|
+
* Create a new server-side Tether client instance.
|
|
59
|
+
* Use this when you need a separate client with different configuration.
|
|
60
|
+
*
|
|
61
|
+
* @example
|
|
62
|
+
* ```typescript
|
|
63
|
+
* // server/api/webhook.ts
|
|
64
|
+
* import { createTetherServer } from '@tthr/vue/server';
|
|
65
|
+
*
|
|
66
|
+
* const tether = createTetherServer({
|
|
67
|
+
* url: process.env.TETHER_URL!,
|
|
68
|
+
* projectId: process.env.TETHER_PROJECT_ID!,
|
|
69
|
+
* apiKey: process.env.TETHER_API_KEY,
|
|
70
|
+
* });
|
|
71
|
+
*
|
|
72
|
+
* export default defineEventHandler(async (event) => {
|
|
73
|
+
* const users = await tether.query('users.list');
|
|
74
|
+
* return { users };
|
|
75
|
+
* });
|
|
76
|
+
* ```
|
|
77
|
+
*/
|
|
78
|
+
export function createTetherServer(options) {
|
|
79
|
+
return new TetherServerClient(options);
|
|
80
|
+
}
|
|
81
|
+
/**
|
|
82
|
+
* Create a database proxy that routes calls to Tether's CRUD endpoints
|
|
83
|
+
*/
|
|
84
|
+
function createDatabaseProxy(client) {
|
|
85
|
+
return new Proxy({}, {
|
|
86
|
+
get(_target, tableName) {
|
|
87
|
+
return {
|
|
88
|
+
findMany: async (options) => {
|
|
89
|
+
const args = {};
|
|
90
|
+
if (options?.where)
|
|
91
|
+
args.where = options.where;
|
|
92
|
+
if (options?.limit)
|
|
93
|
+
args.limit = options.limit;
|
|
94
|
+
if (options?.offset)
|
|
95
|
+
args.offset = options.offset;
|
|
96
|
+
if (options?.orderBy)
|
|
97
|
+
args.orderBy = options.orderBy;
|
|
98
|
+
if (options?.orderDir)
|
|
99
|
+
args.orderDir = options.orderDir;
|
|
100
|
+
return client.query(`${tableName}.list`, args);
|
|
101
|
+
},
|
|
102
|
+
findFirst: async (options) => {
|
|
103
|
+
const args = { limit: 1 };
|
|
104
|
+
if (options?.where)
|
|
105
|
+
args.where = options.where;
|
|
106
|
+
const results = await client.query(`${tableName}.list`, args);
|
|
107
|
+
return results?.[0] ?? null;
|
|
108
|
+
},
|
|
109
|
+
findUnique: async (options) => {
|
|
110
|
+
const args = { limit: 1 };
|
|
111
|
+
if (options?.where)
|
|
112
|
+
args.where = options.where;
|
|
113
|
+
const results = await client.query(`${tableName}.list`, args);
|
|
114
|
+
return results?.[0] ?? null;
|
|
115
|
+
},
|
|
116
|
+
findById: async (id) => {
|
|
117
|
+
return client.query(`${tableName}.get`, { id });
|
|
118
|
+
},
|
|
119
|
+
count: async (options) => {
|
|
120
|
+
const args = {};
|
|
121
|
+
if (options?.where)
|
|
122
|
+
args.where = options.where;
|
|
123
|
+
const result = await client.query(`${tableName}.count`, args);
|
|
124
|
+
return result?.count ?? 0;
|
|
125
|
+
},
|
|
126
|
+
insert: async (data) => {
|
|
127
|
+
return client.mutation(`${tableName}.create`, { data });
|
|
128
|
+
},
|
|
129
|
+
insertMany: async (items) => {
|
|
130
|
+
const results = [];
|
|
131
|
+
for (const data of items) {
|
|
132
|
+
const result = await client.mutation(`${tableName}.create`, { data });
|
|
133
|
+
results.push(result);
|
|
134
|
+
}
|
|
135
|
+
return results;
|
|
136
|
+
},
|
|
137
|
+
create: async (options) => {
|
|
138
|
+
return client.mutation(`${tableName}.create`, { data: options.data });
|
|
139
|
+
},
|
|
140
|
+
update: async (options) => {
|
|
141
|
+
// For updates, we need to get the ID from the where clause
|
|
142
|
+
const whereObj = options.where;
|
|
143
|
+
const id = whereObj.id;
|
|
144
|
+
if (!id) {
|
|
145
|
+
throw new Error('Update requires an id in the where clause');
|
|
146
|
+
}
|
|
147
|
+
const result = await client.mutation(`${tableName}.update`, {
|
|
148
|
+
id,
|
|
149
|
+
data: options.data,
|
|
150
|
+
});
|
|
151
|
+
return result?.rowsAffected ?? 0;
|
|
152
|
+
},
|
|
153
|
+
upsert: async (options) => {
|
|
154
|
+
const whereObj = options.where;
|
|
155
|
+
const id = whereObj.id;
|
|
156
|
+
// Try to find existing
|
|
157
|
+
const existing = id
|
|
158
|
+
? await client.query(`${tableName}.get`, { id }).catch(() => null)
|
|
159
|
+
: null;
|
|
160
|
+
if (existing) {
|
|
161
|
+
await client.mutation(`${tableName}.update`, { id, data: options.update });
|
|
162
|
+
return { ...existing, ...options.update };
|
|
163
|
+
}
|
|
164
|
+
else {
|
|
165
|
+
return client.mutation(`${tableName}.create`, { data: options.create });
|
|
166
|
+
}
|
|
167
|
+
},
|
|
168
|
+
delete: async (options) => {
|
|
169
|
+
const whereObj = options.where;
|
|
170
|
+
const id = whereObj.id;
|
|
171
|
+
if (!id) {
|
|
172
|
+
throw new Error('Delete requires an id in the where clause');
|
|
173
|
+
}
|
|
174
|
+
const result = await client.mutation(`${tableName}.delete`, { id });
|
|
175
|
+
return result?.rowsAffected ?? 0;
|
|
176
|
+
},
|
|
177
|
+
deleteById: async (id) => {
|
|
178
|
+
const result = await client.mutation(`${tableName}.delete`, { id });
|
|
179
|
+
return (result?.rowsAffected ?? 0) > 0;
|
|
180
|
+
},
|
|
181
|
+
};
|
|
182
|
+
},
|
|
183
|
+
});
|
|
184
|
+
}
|
|
185
|
+
/**
|
|
186
|
+
* Execute a Tether function locally with a database proxy.
|
|
187
|
+
*
|
|
188
|
+
* This runs the function handler in your Nuxt server, with database
|
|
189
|
+
* operations proxied to Tether's CRUD endpoints.
|
|
190
|
+
*
|
|
191
|
+
* @example
|
|
192
|
+
* ```typescript
|
|
193
|
+
* // server/api/my-channels.get.ts
|
|
194
|
+
* import { executeFunction } from '@tthr/vue/server';
|
|
195
|
+
* import { getMyChannels } from '~/tether/functions/channel';
|
|
196
|
+
*
|
|
197
|
+
* export default defineEventHandler(async (event) => {
|
|
198
|
+
* const session = await getUserSession(event);
|
|
199
|
+
*
|
|
200
|
+
* return executeFunction(getMyChannels, {}, {
|
|
201
|
+
* getUserIdentity: async () => session?.userId
|
|
202
|
+
* ? { subject: session.userId }
|
|
203
|
+
* : null,
|
|
204
|
+
* });
|
|
205
|
+
* });
|
|
206
|
+
* ```
|
|
207
|
+
*/
|
|
208
|
+
export async function executeFunction(fn, args, authOptions) {
|
|
209
|
+
if (!serverClient) {
|
|
210
|
+
throw new Error('Tether server client not configured. Call configureTetherServer() first.');
|
|
211
|
+
}
|
|
212
|
+
// Create database proxy
|
|
213
|
+
const db = createDatabaseProxy(serverClient);
|
|
214
|
+
// Create auth context
|
|
215
|
+
const auth = {
|
|
216
|
+
getUserIdentity: authOptions?.getUserIdentity ?? (async () => null),
|
|
217
|
+
};
|
|
218
|
+
// Create execution context
|
|
219
|
+
const ctx = {
|
|
220
|
+
auth: {
|
|
221
|
+
userId: null,
|
|
222
|
+
claims: {},
|
|
223
|
+
},
|
|
224
|
+
userId: null,
|
|
225
|
+
};
|
|
226
|
+
// Get user identity and populate ctx
|
|
227
|
+
const identity = await auth.getUserIdentity();
|
|
228
|
+
if (identity) {
|
|
229
|
+
ctx.userId = identity.subject;
|
|
230
|
+
ctx.auth.userId = identity.subject;
|
|
231
|
+
ctx.auth.claims = identity;
|
|
232
|
+
}
|
|
233
|
+
// Build handler context
|
|
234
|
+
const handlerContext = {
|
|
235
|
+
db,
|
|
236
|
+
ctx,
|
|
237
|
+
auth,
|
|
238
|
+
args,
|
|
239
|
+
};
|
|
240
|
+
// Execute the function handler
|
|
241
|
+
// The type is complex due to conditional types in FunctionHandlerContext
|
|
242
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
243
|
+
return fn.handler(handlerContext);
|
|
244
|
+
}
|
|
245
|
+
//# sourceMappingURL=server.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"server.js","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@tthr/vue",
|
|
3
|
-
"version": "0.0.
|
|
3
|
+
"version": "0.0.19",
|
|
4
4
|
"description": "Tether Vue/Nuxt SDK",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "./dist/index.js",
|
|
@@ -10,6 +10,10 @@
|
|
|
10
10
|
"types": "./dist/index.d.ts",
|
|
11
11
|
"import": "./dist/index.js"
|
|
12
12
|
},
|
|
13
|
+
"./server": {
|
|
14
|
+
"types": "./dist/server.d.ts",
|
|
15
|
+
"import": "./dist/server.js"
|
|
16
|
+
},
|
|
13
17
|
"./nuxt": {
|
|
14
18
|
"import": "./nuxt/module.ts"
|
|
15
19
|
}
|
|
@@ -25,7 +29,8 @@
|
|
|
25
29
|
},
|
|
26
30
|
"dependencies": {
|
|
27
31
|
"@nuxt/kit": "^3.14.0",
|
|
28
|
-
"@tthr/client": "
|
|
32
|
+
"@tthr/client": "workspace:*",
|
|
33
|
+
"@tthr/server": "workspace:*"
|
|
29
34
|
},
|
|
30
35
|
"devDependencies": {
|
|
31
36
|
"typescript": "^5.7.2"
|