@tthr/vue 0.2.0 → 0.3.0
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/index.d.ts +36 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +43 -0
- package/dist/index.js.map +1 -1
- package/nuxt/server-src/plugins/cron.ts +9 -18
- package/package.json +9 -9
package/dist/index.d.ts
CHANGED
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
* Reactive data fetching and mutations for Vue and Nuxt applications.
|
|
5
5
|
*/
|
|
6
6
|
import { type Ref, type App } from 'vue';
|
|
7
|
-
import { TetherClient, type TetherClientOptions } from '@tthr/client';
|
|
7
|
+
import { TetherClient, type TetherClientOptions, type TetherBridge } from '@tthr/client';
|
|
8
8
|
/**
|
|
9
9
|
* Tether plugin for Vue/Nuxt
|
|
10
10
|
*/
|
|
@@ -16,6 +16,20 @@ export declare const TetherPlugin: {
|
|
|
16
16
|
* Get the Tether client instance
|
|
17
17
|
*/
|
|
18
18
|
export declare function useTether(): TetherClient;
|
|
19
|
+
/**
|
|
20
|
+
* Get the Tether bridge API for cross-project communication
|
|
21
|
+
*
|
|
22
|
+
* @example
|
|
23
|
+
* ```vue
|
|
24
|
+
* <script setup>
|
|
25
|
+
* import { useBridge } from '@tthr/vue';
|
|
26
|
+
*
|
|
27
|
+
* const bridge = useBridge();
|
|
28
|
+
* const studioData = await bridge.query('studio', 'projects.list');
|
|
29
|
+
* </script>
|
|
30
|
+
* ```
|
|
31
|
+
*/
|
|
32
|
+
export declare function useBridge(): TetherBridge;
|
|
19
33
|
/**
|
|
20
34
|
* Query state returned by useQuery
|
|
21
35
|
*/
|
|
@@ -139,7 +153,27 @@ export declare function $query<TArgs, TResult>(query: QueryFunction<TArgs, TResu
|
|
|
139
153
|
* ```
|
|
140
154
|
*/
|
|
141
155
|
export declare function $mutation<TArgs, TResult>(mutation: MutationFunction<TArgs, TResult>, args?: TArgs, options?: UseMutationOptions): Promise<TResult>;
|
|
142
|
-
|
|
156
|
+
/**
|
|
157
|
+
* Execute a bridge query and return raw data directly.
|
|
158
|
+
*
|
|
159
|
+
* @example
|
|
160
|
+
* ```ts
|
|
161
|
+
* import { $bridgeQuery } from '@tthr/vue';
|
|
162
|
+
* const streams = await $bridgeQuery('studio', 'streams.list', { active: true });
|
|
163
|
+
* ```
|
|
164
|
+
*/
|
|
165
|
+
export declare function $bridgeQuery<T = unknown>(alias: string, functionName: string, args?: unknown): Promise<T>;
|
|
166
|
+
/**
|
|
167
|
+
* Execute a bridge mutation and return the result directly.
|
|
168
|
+
*
|
|
169
|
+
* @example
|
|
170
|
+
* ```ts
|
|
171
|
+
* import { $bridgeMutation } from '@tthr/vue';
|
|
172
|
+
* await $bridgeMutation('studio', 'renders.start', { projectId: '123' });
|
|
173
|
+
* ```
|
|
174
|
+
*/
|
|
175
|
+
export declare function $bridgeMutation<T = unknown>(alias: string, functionName: string, args?: unknown): Promise<T>;
|
|
176
|
+
export type { TetherClientOptions, AuthTokenSource, MutationOptions, TetherBridge, BridgeInfo, BridgeCallOptions } from '@tthr/client';
|
|
143
177
|
/**
|
|
144
178
|
* Tether Nuxt/Vue project configuration
|
|
145
179
|
*/
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAA+B,KAAK,GAAG,EAAE,KAAK,GAAG,EAAE,MAAM,KAAK,CAAC;AACtE,OAAO,EAAE,YAAY,EAAE,KAAK,mBAAmB,EAAE,MAAM,cAAc,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
package/dist/index.js
CHANGED
|
@@ -28,6 +28,23 @@ export function useTether() {
|
|
|
28
28
|
}
|
|
29
29
|
return globalClient;
|
|
30
30
|
}
|
|
31
|
+
/**
|
|
32
|
+
* Get the Tether bridge API for cross-project communication
|
|
33
|
+
*
|
|
34
|
+
* @example
|
|
35
|
+
* ```vue
|
|
36
|
+
* <script setup>
|
|
37
|
+
* import { useBridge } from '@tthr/vue';
|
|
38
|
+
*
|
|
39
|
+
* const bridge = useBridge();
|
|
40
|
+
* const studioData = await bridge.query('studio', 'projects.list');
|
|
41
|
+
* </script>
|
|
42
|
+
* ```
|
|
43
|
+
*/
|
|
44
|
+
export function useBridge() {
|
|
45
|
+
const client = useTether();
|
|
46
|
+
return client.bridge;
|
|
47
|
+
}
|
|
31
48
|
/**
|
|
32
49
|
* Reactive query composable
|
|
33
50
|
*
|
|
@@ -183,6 +200,32 @@ export async function $mutation(mutation, args, options) {
|
|
|
183
200
|
invalidates: options?.invalidates,
|
|
184
201
|
});
|
|
185
202
|
}
|
|
203
|
+
/**
|
|
204
|
+
* Execute a bridge query and return raw data directly.
|
|
205
|
+
*
|
|
206
|
+
* @example
|
|
207
|
+
* ```ts
|
|
208
|
+
* import { $bridgeQuery } from '@tthr/vue';
|
|
209
|
+
* const streams = await $bridgeQuery('studio', 'streams.list', { active: true });
|
|
210
|
+
* ```
|
|
211
|
+
*/
|
|
212
|
+
export async function $bridgeQuery(alias, functionName, args) {
|
|
213
|
+
const client = useTether();
|
|
214
|
+
return client.bridge.query(alias, functionName, args);
|
|
215
|
+
}
|
|
216
|
+
/**
|
|
217
|
+
* Execute a bridge mutation and return the result directly.
|
|
218
|
+
*
|
|
219
|
+
* @example
|
|
220
|
+
* ```ts
|
|
221
|
+
* import { $bridgeMutation } from '@tthr/vue';
|
|
222
|
+
* await $bridgeMutation('studio', 'renders.start', { projectId: '123' });
|
|
223
|
+
* ```
|
|
224
|
+
*/
|
|
225
|
+
export async function $bridgeMutation(alias, functionName, args) {
|
|
226
|
+
const client = useTether();
|
|
227
|
+
return client.bridge.mutate(alias, functionName, args);
|
|
228
|
+
}
|
|
186
229
|
/**
|
|
187
230
|
* Define Tether project configuration
|
|
188
231
|
* Used in tether.config.ts at the project root
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,GAAG,EAAE,SAAS,EAAE,WAAW,EAAsB,MAAM,KAAK,CAAC;AACtE,OAAO,EAAE,YAAY,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -120,31 +120,23 @@ interface ServerMessage {
|
|
|
120
120
|
error?: { code: string; message: string };
|
|
121
121
|
}
|
|
122
122
|
|
|
123
|
-
function getWsUrl(config: { url: string; projectId: string; apiKey: string
|
|
123
|
+
function getWsUrl(config: { url: string; projectId: string; apiKey: string }): string {
|
|
124
124
|
const base = config.url
|
|
125
125
|
.replace('https://', 'wss://')
|
|
126
126
|
.replace('http://', 'ws://')
|
|
127
127
|
.replace(/\/$/, '');
|
|
128
128
|
|
|
129
|
-
|
|
130
|
-
const wsPath = env && env !== 'production'
|
|
131
|
-
? `${base}/ws/${config.projectId}/${env}`
|
|
132
|
-
: `${base}/ws/${config.projectId}`;
|
|
133
|
-
|
|
134
|
-
return `${wsPath}?type=server&token=${encodeURIComponent(config.apiKey)}`;
|
|
129
|
+
return `${base}/ws/${config.projectId}?type=server&token=${encodeURIComponent(config.apiKey)}`;
|
|
135
130
|
}
|
|
136
131
|
|
|
137
132
|
async function reportExecution(
|
|
138
|
-
config: { url: string; projectId: string; apiKey: string
|
|
133
|
+
config: { url: string; projectId: string; apiKey: string },
|
|
139
134
|
trigger: CronTriggerMessage,
|
|
140
135
|
result: { success: boolean; result?: unknown; error?: string },
|
|
141
136
|
durationMs: number
|
|
142
137
|
): Promise<void> {
|
|
143
138
|
const base = config.url.replace(/\/$/, '');
|
|
144
|
-
const
|
|
145
|
-
const apiPath = env && env !== 'production'
|
|
146
|
-
? `${base}/api/v1/projects/${config.projectId}/env/${env}`
|
|
147
|
-
: `${base}/api/v1/projects/${config.projectId}`;
|
|
139
|
+
const apiPath = `${base}/api/v1/projects/${config.projectId}`;
|
|
148
140
|
|
|
149
141
|
try {
|
|
150
142
|
const response = await fetch(`${apiPath}/crons/${trigger.cronId}/executions`, {
|
|
@@ -171,7 +163,7 @@ async function reportExecution(
|
|
|
171
163
|
}
|
|
172
164
|
|
|
173
165
|
async function handleCronTrigger(
|
|
174
|
-
config: { url: string; projectId: string; apiKey: string
|
|
166
|
+
config: { url: string; projectId: string; apiKey: string },
|
|
175
167
|
trigger: CronTriggerMessage
|
|
176
168
|
): Promise<void> {
|
|
177
169
|
log.info(`Received trigger for ${trigger.functionName} (execution: ${trigger.executionId})`);
|
|
@@ -255,7 +247,7 @@ async function getWebSocketImpl(): Promise<typeof WebSocket> {
|
|
|
255
247
|
return WebSocketImpl;
|
|
256
248
|
}
|
|
257
249
|
|
|
258
|
-
async function connect(config: { url: string; projectId: string; apiKey: string
|
|
250
|
+
async function connect(config: { url: string; projectId: string; apiKey: string }): Promise<void> {
|
|
259
251
|
const WS = await getWebSocketImpl();
|
|
260
252
|
|
|
261
253
|
if (ws?.readyState === WS.OPEN || ws?.readyState === WS.CONNECTING) {
|
|
@@ -327,7 +319,7 @@ async function connect(config: { url: string; projectId: string; apiKey: string;
|
|
|
327
319
|
}
|
|
328
320
|
}
|
|
329
321
|
|
|
330
|
-
function handleReconnect(config: { url: string; projectId: string; apiKey: string
|
|
322
|
+
function handleReconnect(config: { url: string; projectId: string; apiKey: string }): void {
|
|
331
323
|
if (!shouldReconnect || reconnectAttempts >= MAX_RECONNECT_ATTEMPTS) {
|
|
332
324
|
if (reconnectAttempts >= MAX_RECONNECT_ATTEMPTS) {
|
|
333
325
|
log.error('Max reconnection attempts reached');
|
|
@@ -347,7 +339,6 @@ export default defineNitroPlugin((nitro) => {
|
|
|
347
339
|
const apiKey = process.env.NUXT_TETHER_API_KEY || process.env.TETHER_API_KEY;
|
|
348
340
|
const url = process.env.NUXT_TETHER_URL || process.env.TETHER_URL || 'https://tether-api.strands.gg';
|
|
349
341
|
const projectId = process.env.NUXT_TETHER_PROJECT_ID || process.env.TETHER_PROJECT_ID;
|
|
350
|
-
const environment = process.env.NUXT_TETHER_ENVIRONMENT || process.env.TETHER_ENVIRONMENT;
|
|
351
342
|
verboseLogging = process.env.NUXT_TETHER_VERBOSE === 'true' || process.env.TETHER_VERBOSE === 'true';
|
|
352
343
|
|
|
353
344
|
if (!apiKey || !projectId) {
|
|
@@ -358,9 +349,9 @@ export default defineNitroPlugin((nitro) => {
|
|
|
358
349
|
// Configure the server client so executeFunction works
|
|
359
350
|
configureTetherServer({ url, projectId, apiKey });
|
|
360
351
|
|
|
361
|
-
log.info(
|
|
352
|
+
log.info('Initialising cron connection...');
|
|
362
353
|
|
|
363
|
-
const config = { url, projectId, apiKey
|
|
354
|
+
const config = { url, projectId, apiKey };
|
|
364
355
|
|
|
365
356
|
process.nextTick(() => {
|
|
366
357
|
connect(config).catch((err) => log.error('Initial connect failed:', err));
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@tthr/vue",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.3.0",
|
|
4
4
|
"description": "Tether Vue/Nuxt SDK",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "./dist/index.js",
|
|
@@ -32,20 +32,20 @@
|
|
|
32
32
|
"nuxt/runtime/**/*.vue",
|
|
33
33
|
"nuxt/runtime/server/**/*.js"
|
|
34
34
|
],
|
|
35
|
+
"scripts": {
|
|
36
|
+
"build": "tsc && tsc -p nuxt/tsconfig.json && tsc -p nuxt/tsconfig.server.json; true",
|
|
37
|
+
"dev": "tsc --watch",
|
|
38
|
+
"typecheck": "tsc --noEmit"
|
|
39
|
+
},
|
|
35
40
|
"dependencies": {
|
|
36
41
|
"@nuxt/kit": "^3.14.0",
|
|
37
|
-
"@tthr/client": "
|
|
38
|
-
"@tthr/server": "
|
|
42
|
+
"@tthr/client": "workspace:*",
|
|
43
|
+
"@tthr/server": "workspace:*"
|
|
39
44
|
},
|
|
40
45
|
"devDependencies": {
|
|
41
46
|
"typescript": "^5.7.2"
|
|
42
47
|
},
|
|
43
48
|
"peerDependencies": {
|
|
44
49
|
"vue": "^3.0.0"
|
|
45
|
-
},
|
|
46
|
-
"scripts": {
|
|
47
|
-
"build": "tsc && tsc -p nuxt/tsconfig.json && tsc -p nuxt/tsconfig.server.json; true",
|
|
48
|
-
"dev": "tsc --watch",
|
|
49
|
-
"typecheck": "tsc --noEmit"
|
|
50
50
|
}
|
|
51
|
-
}
|
|
51
|
+
}
|