robodev 0.48.0 → 0.49.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/package.json +3 -3
- package/src/dev-inspect.test.ts +15 -0
- package/src/dev-inspect.ts +10 -3
- package/src/dev-server.ts +6 -0
- package/templates/auth-chat/package.json +2 -2
- package/templates/backend/package.json +2 -2
- package/templates/empty/package.json +2 -2
- package/templates/marketplace/package.json +2 -2
- package/templates/povio/package.json +2 -2
- package/templates/shadcn/package.json +2 -2
- package/templates/space/package.json +2 -2
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "robodev",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.49.0",
|
|
4
4
|
"description": "CLI for Robodev Starbase — create, auth, link, deploy, load, and run a project locally with robodev dev",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"license": "MIT",
|
|
@@ -26,8 +26,8 @@
|
|
|
26
26
|
"embedded-postgres": "17.10.0-beta.17",
|
|
27
27
|
"fastify": "^5.12.1",
|
|
28
28
|
"tsx": "^4.20.5",
|
|
29
|
-
"@robodev-ai/
|
|
30
|
-
"@robodev-ai/
|
|
29
|
+
"@robodev-ai/sdk": "0.15.0",
|
|
30
|
+
"@robodev-ai/runtime": "0.9.0"
|
|
31
31
|
},
|
|
32
32
|
"devDependencies": {
|
|
33
33
|
"@types/node": "^24.3.0",
|
package/src/dev-inspect.test.ts
CHANGED
|
@@ -62,6 +62,10 @@ test("shouldCountRequestHistogram counts Auth and matched file routes only", ()
|
|
|
62
62
|
assert.equal(shouldCountRequestHistogram("/_robodev/scalar", fileRuntime, "GET"), false);
|
|
63
63
|
assert.equal(shouldCountRequestHistogram("/_robodev/ready", fileRuntime, "GET"), false);
|
|
64
64
|
assert.equal(shouldCountRequestHistogram("/openapi.json", fileRuntime, "GET"), false);
|
|
65
|
+
assert.equal(
|
|
66
|
+
shouldCountRequestHistogram("/robodev-enterprise-spec.json", fileRuntime, "GET"),
|
|
67
|
+
false,
|
|
68
|
+
);
|
|
65
69
|
assert.equal(shouldCountRequestHistogram("/docs", fileRuntime, "GET"), false);
|
|
66
70
|
assert.equal(shouldCountRequestHistogram("/swagger", fileRuntime, "GET"), false);
|
|
67
71
|
assert.equal(isHistogramExcludedPath("/scalar"), true);
|
|
@@ -278,6 +282,17 @@ test("inspect HTML has nav labels and polls state.json", () => {
|
|
|
278
282
|
assert.doesNotMatch(html, /fetch\("\/_robodev\/logs\.json"\)/);
|
|
279
283
|
assert.doesNotMatch(html, /@xyflow|React\.createElement|react-dom/);
|
|
280
284
|
assert.match(html, /setInterval\(poll, 1000\)/);
|
|
285
|
+
assert.match(html, /state\.overview\.links\.enterprise/);
|
|
286
|
+
assert.match(html, /label: "Enterprise spec"/);
|
|
287
|
+
});
|
|
288
|
+
|
|
289
|
+
test("dashboard state includes enterprise spec link after openapi", async () => {
|
|
290
|
+
const state = await buildDashboardState({
|
|
291
|
+
inspect: createDevInspect(),
|
|
292
|
+
runtime: { routes: [], jobs: [] },
|
|
293
|
+
});
|
|
294
|
+
assert.equal(state.overview.links.openapi, "/openapi.json");
|
|
295
|
+
assert.equal(state.overview.links.enterprise, "/robodev-enterprise-spec.json");
|
|
281
296
|
});
|
|
282
297
|
|
|
283
298
|
test("storageActivityMatchesKey uses exact key except list prefixes", () => {
|
package/src/dev-inspect.ts
CHANGED
|
@@ -40,6 +40,7 @@ const HISTOGRAM_EXCLUDED_PATHS = new Set([
|
|
|
40
40
|
"/_robodev/scalar",
|
|
41
41
|
"/scalar",
|
|
42
42
|
"/openapi.json",
|
|
43
|
+
"/robodev-enterprise-spec.json",
|
|
43
44
|
"/_robodev/ready",
|
|
44
45
|
]);
|
|
45
46
|
|
|
@@ -213,7 +214,7 @@ export type DashboardState = {
|
|
|
213
214
|
google: DashboardGoogle;
|
|
214
215
|
requestHistogram: RequestHistogramBucket[];
|
|
215
216
|
jobHistogram: JobHistogramBucket[];
|
|
216
|
-
links: { swagger: string; scalar: string; openapi: string };
|
|
217
|
+
links: { swagger: string; scalar: string; openapi: string; enterprise: string };
|
|
217
218
|
};
|
|
218
219
|
routes: Array<{ method: string; path: string; file: string }>;
|
|
219
220
|
calls: Array<{ at: number; method: string; path: string; status: number; durationMs: number }>;
|
|
@@ -596,7 +597,12 @@ export async function buildDashboardState(input: {
|
|
|
596
597
|
google,
|
|
597
598
|
requestHistogram: input.inspect.requestHistogram(),
|
|
598
599
|
jobHistogram: input.inspect.jobHistogram(),
|
|
599
|
-
links: {
|
|
600
|
+
links: {
|
|
601
|
+
swagger: "/_robodev/docs",
|
|
602
|
+
scalar: "/_robodev/scalar",
|
|
603
|
+
openapi: "/openapi.json",
|
|
604
|
+
enterprise: "/robodev-enterprise-spec.json",
|
|
605
|
+
},
|
|
600
606
|
},
|
|
601
607
|
routes,
|
|
602
608
|
calls,
|
|
@@ -1067,7 +1073,8 @@ export function inspectHtml(): string {
|
|
|
1067
1073
|
var items = [
|
|
1068
1074
|
{ href: state.overview.links.swagger, label: "Swagger" },
|
|
1069
1075
|
{ href: state.overview.links.scalar, label: "Scalar" },
|
|
1070
|
-
{ href: state.overview.links.openapi, label: "openapi.json" }
|
|
1076
|
+
{ href: state.overview.links.openapi, label: "openapi.json" },
|
|
1077
|
+
{ href: state.overview.links.enterprise, label: "Enterprise spec" }
|
|
1071
1078
|
];
|
|
1072
1079
|
for (var i = 0; i < items.length; i++) {
|
|
1073
1080
|
var a = document.createElement("a");
|
package/src/dev-server.ts
CHANGED
|
@@ -11,9 +11,11 @@ import {
|
|
|
11
11
|
browseRows,
|
|
12
12
|
browseSchema,
|
|
13
13
|
buildOpenApi,
|
|
14
|
+
buildEnterpriseSpec,
|
|
14
15
|
handleLocalAuth,
|
|
15
16
|
isLocalAuthPath,
|
|
16
17
|
isReservedStoragePath,
|
|
18
|
+
ENTERPRISE_SPEC_PATH,
|
|
17
19
|
matchProjectRoute,
|
|
18
20
|
matchSocketRoute,
|
|
19
21
|
parseLogicalKey,
|
|
@@ -624,6 +626,10 @@ export async function startDevServer(
|
|
|
624
626
|
await reply.send(runtime.openapi);
|
|
625
627
|
return;
|
|
626
628
|
}
|
|
629
|
+
if (pathname === ENTERPRISE_SPEC_PATH) {
|
|
630
|
+
await reply.send(buildEnterpriseSpec(runtime.openapi));
|
|
631
|
+
return;
|
|
632
|
+
}
|
|
627
633
|
|
|
628
634
|
if (isLocalAuthPath(pathname)) {
|
|
629
635
|
const result = await handleLocalAuth(
|
|
@@ -9,10 +9,10 @@
|
|
|
9
9
|
"rules:gen": "rulesync generate"
|
|
10
10
|
},
|
|
11
11
|
"dependencies": {
|
|
12
|
-
"@robodev-ai/sdk": "^0.
|
|
12
|
+
"@robodev-ai/sdk": "^0.15.0"
|
|
13
13
|
},
|
|
14
14
|
"devDependencies": {
|
|
15
|
-
"robodev": "^0.
|
|
15
|
+
"robodev": "^0.49.0",
|
|
16
16
|
"rulesync": "^8.18.0",
|
|
17
17
|
"typescript": "^5.9.2"
|
|
18
18
|
}
|
|
@@ -10,13 +10,13 @@
|
|
|
10
10
|
"build": "vite build"
|
|
11
11
|
},
|
|
12
12
|
"dependencies": {
|
|
13
|
-
"@robodev-ai/sdk": "^0.
|
|
13
|
+
"@robodev-ai/sdk": "^0.15.0",
|
|
14
14
|
"@robodev-ai/client": "^0.5.0",
|
|
15
15
|
"react": "^18.3.1",
|
|
16
16
|
"react-dom": "^18.3.1"
|
|
17
17
|
},
|
|
18
18
|
"devDependencies": {
|
|
19
|
-
"robodev": "^0.
|
|
19
|
+
"robodev": "^0.49.0",
|
|
20
20
|
"typescript": "^5.9.2",
|
|
21
21
|
"vite": "^6.0.0"
|
|
22
22
|
}
|
|
@@ -9,10 +9,10 @@
|
|
|
9
9
|
"rules:gen": "rulesync generate"
|
|
10
10
|
},
|
|
11
11
|
"dependencies": {
|
|
12
|
-
"@robodev-ai/sdk": "^0.
|
|
12
|
+
"@robodev-ai/sdk": "^0.15.0"
|
|
13
13
|
},
|
|
14
14
|
"devDependencies": {
|
|
15
|
-
"robodev": "^0.
|
|
15
|
+
"robodev": "^0.49.0",
|
|
16
16
|
"rulesync": "^8.18.0",
|
|
17
17
|
"typescript": "^5.9.2"
|
|
18
18
|
}
|
|
@@ -9,10 +9,10 @@
|
|
|
9
9
|
"rules:gen": "rulesync generate"
|
|
10
10
|
},
|
|
11
11
|
"dependencies": {
|
|
12
|
-
"@robodev-ai/sdk": "^0.
|
|
12
|
+
"@robodev-ai/sdk": "^0.15.0"
|
|
13
13
|
},
|
|
14
14
|
"devDependencies": {
|
|
15
|
-
"robodev": "^0.
|
|
15
|
+
"robodev": "^0.49.0",
|
|
16
16
|
"rulesync": "^8.18.0",
|
|
17
17
|
"typescript": "^5.9.2"
|
|
18
18
|
}
|
|
@@ -11,7 +11,7 @@
|
|
|
11
11
|
"generate:api": "orval"
|
|
12
12
|
},
|
|
13
13
|
"dependencies": {
|
|
14
|
-
"@robodev-ai/sdk": "^0.
|
|
14
|
+
"@robodev-ai/sdk": "^0.15.0",
|
|
15
15
|
"@robodev-ai/client": "^0.5.0",
|
|
16
16
|
"react": "^18.3.1",
|
|
17
17
|
"react-dom": "^18.3.1",
|
|
@@ -21,7 +21,7 @@
|
|
|
21
21
|
"@types/react": "^18.3.12",
|
|
22
22
|
"@types/react-dom": "^18.3.1",
|
|
23
23
|
"orval": "^7.11.2",
|
|
24
|
-
"robodev": "^0.
|
|
24
|
+
"robodev": "^0.49.0",
|
|
25
25
|
"typescript": "^5.9.2",
|
|
26
26
|
"vite": "^6.0.0"
|
|
27
27
|
}
|
|
@@ -9,10 +9,10 @@
|
|
|
9
9
|
"rules:gen": "rulesync generate"
|
|
10
10
|
},
|
|
11
11
|
"dependencies": {
|
|
12
|
-
"@robodev-ai/sdk": "^0.
|
|
12
|
+
"@robodev-ai/sdk": "^0.15.0"
|
|
13
13
|
},
|
|
14
14
|
"devDependencies": {
|
|
15
|
-
"robodev": "^0.
|
|
15
|
+
"robodev": "^0.49.0",
|
|
16
16
|
"rulesync": "^8.18.0",
|
|
17
17
|
"typescript": "^5.9.2"
|
|
18
18
|
}
|