@vertesia/tools-sdk 1.6.0-dev.20261009.095813Z → 1.6.0-dev.20261014.015055Z
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/lib/scratch.d.ts.map +1 -1
- package/lib/scratch.js +19 -8
- package/lib/scratch.js.map +1 -1
- package/package.json +7 -7
- package/src/scratch.ts +39 -26
package/lib/scratch.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"scratch.d.ts","sourceRoot":"","sources":["../src/scratch.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,MAAM,MAAM,WAAW,GAAG,MAAM,GAAG,UAAU,GAAG,WAAW,GAAG,IAAI,CAAC;AAEnE,MAAM,WAAW,YAAY;IACzB,GAAG,EAAE,MAAM,CAAC;IACZ,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;CACvB;AAED,MAAM,WAAW,WAAW;IACxB,+FAA+F;IAC/F,GAAG,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,WAAW,EAAE,OAAO,CAAC,EAAE;QAAE,WAAW,CAAC,EAAE,MAAM,CAAA;KAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACvF,OAAO,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACpD,+CAA+C;IAC/C,GAAG,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,GAAG,SAAS,CAAC,CAAC;IAClD,OAAO,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC,CAAC;IAClD,OAAO,CAAC,CAAC,GAAG,OAAO,EAAE,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,CAAC,GAAG,SAAS,CAAC,CAAC;IAC1D,0CAA0C;IAC1C,MAAM,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;IACtC,IAAI,IAAI,OAAO,CAAC,YAAY,EAAE,CAAC,CAAC;CACnC;AAED,MAAM,MAAM,gBAAgB,GAAG,aAAa,GAAG,gBAAgB,GAAG,aAAa,CAAC;AAEhF,qBAAa,YAAa,SAAQ,KAAK;aAEf,IAAI,EAAE,gBAAgB;IAD1C,YACoB,IAAI,EAAE,gBAAgB,EACtC,OAAO,EAAE,MAAM,EACf,OAAO,CAAC,EAAE;QAAE,KAAK,CAAC,EAAE,OAAO,CAAA;KAAE,EAIhC;CACJ;AAED,8FAA8F;AAC9F,eAAO,MAAM,2BAA2B,QAAoB,CAAC;AAE7D,qEAAqE;AACrE,eAAO,MAAM,sBAAsB,2BAA2B,CAAC;AAE/D,wBAAgB,kBAAkB,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI,CASpD;AAmDD,6GAA6G;AAC7G,wBAAgB,mBAAmB,CAAC,KAAK,SAAuB,GAAG,WAAW,CAyB7E;AAUD,sFAAsF;AACtF,wBAAgB,oBAAoB,CAAC,SAAS,GAAE,OAAO,KAAmC,GAAG,WAAW,
|
|
1
|
+
{"version":3,"file":"scratch.d.ts","sourceRoot":"","sources":["../src/scratch.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,MAAM,MAAM,WAAW,GAAG,MAAM,GAAG,UAAU,GAAG,WAAW,GAAG,IAAI,CAAC;AAEnE,MAAM,WAAW,YAAY;IACzB,GAAG,EAAE,MAAM,CAAC;IACZ,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;CACvB;AAED,MAAM,WAAW,WAAW;IACxB,+FAA+F;IAC/F,GAAG,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,WAAW,EAAE,OAAO,CAAC,EAAE;QAAE,WAAW,CAAC,EAAE,MAAM,CAAA;KAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACvF,OAAO,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACpD,+CAA+C;IAC/C,GAAG,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,GAAG,SAAS,CAAC,CAAC;IAClD,OAAO,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC,CAAC;IAClD,OAAO,CAAC,CAAC,GAAG,OAAO,EAAE,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,CAAC,GAAG,SAAS,CAAC,CAAC;IAC1D,0CAA0C;IAC1C,MAAM,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;IACtC,IAAI,IAAI,OAAO,CAAC,YAAY,EAAE,CAAC,CAAC;CACnC;AAED,MAAM,MAAM,gBAAgB,GAAG,aAAa,GAAG,gBAAgB,GAAG,aAAa,CAAC;AAEhF,qBAAa,YAAa,SAAQ,KAAK;aAEf,IAAI,EAAE,gBAAgB;IAD1C,YACoB,IAAI,EAAE,gBAAgB,EACtC,OAAO,EAAE,MAAM,EACf,OAAO,CAAC,EAAE;QAAE,KAAK,CAAC,EAAE,OAAO,CAAA;KAAE,EAIhC;CACJ;AAED,8FAA8F;AAC9F,eAAO,MAAM,2BAA2B,QAAoB,CAAC;AAE7D,qEAAqE;AACrE,eAAO,MAAM,sBAAsB,2BAA2B,CAAC;AAE/D,wBAAgB,kBAAkB,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI,CASpD;AAmDD,6GAA6G;AAC7G,wBAAgB,mBAAmB,CAAC,KAAK,SAAuB,GAAG,WAAW,CAyB7E;AAUD,sFAAsF;AACtF,wBAAgB,oBAAoB,CAAC,SAAS,GAAE,OAAO,KAAmC,GAAG,WAAW,CAkDvG"}
|
package/lib/scratch.js
CHANGED
|
@@ -119,8 +119,19 @@ export function createSandboxScratch(fetchImpl = (...args) => fetch(...args)) {
|
|
|
119
119
|
return new ScratchError('invalid_key', detail || 'Invalid scratch key');
|
|
120
120
|
return new ScratchError('unavailable', `Scratch ${operation} failed with status ${response.status}: ${detail}`);
|
|
121
121
|
};
|
|
122
|
+
// An unreachable runtime, or a response cut off mid-body, is the same `unavailable` as an error status.
|
|
123
|
+
const run = async (operation, exchange) => {
|
|
124
|
+
try {
|
|
125
|
+
return await exchange();
|
|
126
|
+
}
|
|
127
|
+
catch (error) {
|
|
128
|
+
if (error instanceof ScratchError)
|
|
129
|
+
throw error;
|
|
130
|
+
throw new ScratchError('unavailable', `Scratch ${operation} failed: ${String(error)}`, { cause: error });
|
|
131
|
+
}
|
|
132
|
+
};
|
|
122
133
|
return withHelpers({
|
|
123
|
-
|
|
134
|
+
put: (key, bytes, contentType) => run('write', async () => {
|
|
124
135
|
const response = await fetchImpl(url(key), {
|
|
125
136
|
method: 'PUT',
|
|
126
137
|
headers: { 'content-type': contentType },
|
|
@@ -128,30 +139,30 @@ export function createSandboxScratch(fetchImpl = (...args) => fetch(...args)) {
|
|
|
128
139
|
});
|
|
129
140
|
if (!response.ok)
|
|
130
141
|
throw await failure(response, 'write');
|
|
131
|
-
},
|
|
132
|
-
|
|
142
|
+
}),
|
|
143
|
+
get: (key) => run('read', async () => {
|
|
133
144
|
const response = await fetchImpl(url(key));
|
|
134
145
|
if (response.status === 404)
|
|
135
146
|
return undefined;
|
|
136
147
|
if (!response.ok)
|
|
137
148
|
throw await failure(response, 'read');
|
|
138
149
|
return new Uint8Array(await response.arrayBuffer());
|
|
139
|
-
},
|
|
140
|
-
|
|
150
|
+
}),
|
|
151
|
+
delete: (key) => run('delete', async () => {
|
|
141
152
|
const response = await fetchImpl(url(key), { method: 'DELETE' });
|
|
142
153
|
if (response.status === 404)
|
|
143
154
|
return false;
|
|
144
155
|
if (!response.ok)
|
|
145
156
|
throw await failure(response, 'delete');
|
|
146
157
|
return true;
|
|
147
|
-
},
|
|
148
|
-
async
|
|
158
|
+
}),
|
|
159
|
+
list: () => run('list', async () => {
|
|
149
160
|
const response = await fetchImpl(url());
|
|
150
161
|
if (!response.ok)
|
|
151
162
|
throw await failure(response, 'list');
|
|
152
163
|
const body = (await response.json());
|
|
153
164
|
return body.entries.map(({ key, size, type }) => ({ key, size, contentType: type }));
|
|
154
|
-
},
|
|
165
|
+
}),
|
|
155
166
|
});
|
|
156
167
|
}
|
|
157
168
|
//# sourceMappingURL=scratch.js.map
|
package/lib/scratch.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"scratch.js","sourceRoot":"","sources":["../src/scratch.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"scratch.js","sourceRoot":"","sources":["../src/scratch.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@vertesia/tools-sdk",
|
|
3
|
-
"version": "1.6.0-dev.
|
|
3
|
+
"version": "1.6.0-dev.20261014.015055Z",
|
|
4
4
|
"description": "Tools SDK - utilities for building remote tools",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "./lib/index.js",
|
|
@@ -22,18 +22,18 @@
|
|
|
22
22
|
}
|
|
23
23
|
},
|
|
24
24
|
"devDependencies": {
|
|
25
|
-
"@types/node": "^24.19.
|
|
25
|
+
"@types/node": "^24.19.1",
|
|
26
26
|
"@vertesia/tsconfig": "0.1.0",
|
|
27
27
|
"typescript": "7.0.2",
|
|
28
|
-
"vitest": "5.0.
|
|
28
|
+
"vitest": "5.0.3"
|
|
29
29
|
},
|
|
30
30
|
"peerDependencies": {
|
|
31
31
|
"hono": "^4.13.13"
|
|
32
32
|
},
|
|
33
33
|
"dependencies": {
|
|
34
|
-
"@llumiverse/common": "1.6.0-dev.
|
|
35
|
-
"@vertesia/client": "1.6.0-dev.
|
|
36
|
-
"@vertesia/common": "1.6.0-dev.
|
|
34
|
+
"@llumiverse/common": "1.6.0-dev.20261014.012028Z",
|
|
35
|
+
"@vertesia/client": "1.6.0-dev.20261014.015055Z",
|
|
36
|
+
"@vertesia/common": "1.6.0-dev.20261014.015055Z",
|
|
37
37
|
"jose": "^6.2.12",
|
|
38
38
|
"zod": "4.6.5"
|
|
39
39
|
},
|
|
@@ -51,7 +51,7 @@
|
|
|
51
51
|
"agents",
|
|
52
52
|
"typescript"
|
|
53
53
|
],
|
|
54
|
-
"gitHead": "
|
|
54
|
+
"gitHead": "468240ecf939f968e1324116be26386cdf5ada49",
|
|
55
55
|
"scripts": {
|
|
56
56
|
"lint": "biome lint src",
|
|
57
57
|
"test": "vitest run",
|
package/src/scratch.ts
CHANGED
|
@@ -152,32 +152,45 @@ export function createSandboxScratch(fetchImpl: typeof fetch = (...args) => fetc
|
|
|
152
152
|
if (response.status === 400) return new ScratchError('invalid_key', detail || 'Invalid scratch key');
|
|
153
153
|
return new ScratchError('unavailable', `Scratch ${operation} failed with status ${response.status}: ${detail}`);
|
|
154
154
|
};
|
|
155
|
+
// An unreachable runtime, or a response cut off mid-body, is the same `unavailable` as an error status.
|
|
156
|
+
const run = async <T>(operation: string, exchange: () => Promise<T>): Promise<T> => {
|
|
157
|
+
try {
|
|
158
|
+
return await exchange();
|
|
159
|
+
} catch (error: unknown) {
|
|
160
|
+
if (error instanceof ScratchError) throw error;
|
|
161
|
+
throw new ScratchError('unavailable', `Scratch ${operation} failed: ${String(error)}`, { cause: error });
|
|
162
|
+
}
|
|
163
|
+
};
|
|
155
164
|
return withHelpers({
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
165
|
+
put: (key, bytes, contentType) =>
|
|
166
|
+
run('write', async () => {
|
|
167
|
+
const response = await fetchImpl(url(key), {
|
|
168
|
+
method: 'PUT',
|
|
169
|
+
headers: { 'content-type': contentType },
|
|
170
|
+
body: bytes,
|
|
171
|
+
});
|
|
172
|
+
if (!response.ok) throw await failure(response, 'write');
|
|
173
|
+
}),
|
|
174
|
+
get: (key) =>
|
|
175
|
+
run('read', async () => {
|
|
176
|
+
const response = await fetchImpl(url(key));
|
|
177
|
+
if (response.status === 404) return undefined;
|
|
178
|
+
if (!response.ok) throw await failure(response, 'read');
|
|
179
|
+
return new Uint8Array(await response.arrayBuffer());
|
|
180
|
+
}),
|
|
181
|
+
delete: (key) =>
|
|
182
|
+
run('delete', async () => {
|
|
183
|
+
const response = await fetchImpl(url(key), { method: 'DELETE' });
|
|
184
|
+
if (response.status === 404) return false;
|
|
185
|
+
if (!response.ok) throw await failure(response, 'delete');
|
|
186
|
+
return true;
|
|
187
|
+
}),
|
|
188
|
+
list: () =>
|
|
189
|
+
run('list', async () => {
|
|
190
|
+
const response = await fetchImpl(url());
|
|
191
|
+
if (!response.ok) throw await failure(response, 'list');
|
|
192
|
+
const body = (await response.json()) as { entries: { key: string; size: number; type: string }[] };
|
|
193
|
+
return body.entries.map(({ key, size, type }) => ({ key, size, contentType: type }));
|
|
194
|
+
}),
|
|
182
195
|
});
|
|
183
196
|
}
|