@stigmer/react 0.0.84 → 0.0.85
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/demo/fixtures.d.ts +4 -0
- package/demo/fixtures.d.ts.map +1 -1
- package/demo/fixtures.js +4 -0
- package/demo/fixtures.js.map +1 -1
- package/index.d.ts +4 -2
- package/index.d.ts.map +1 -1
- package/index.js +3 -1
- package/index.js.map +1 -1
- package/library/ResourceListView.js +1 -1
- package/library/ResourceListView.js.map +1 -1
- package/mcp-server/McpServerConnectDialog.d.ts +51 -0
- package/mcp-server/McpServerConnectDialog.d.ts.map +1 -0
- package/mcp-server/McpServerConnectDialog.js +164 -0
- package/mcp-server/McpServerConnectDialog.js.map +1 -0
- package/mcp-server/McpServerDetailView.js +2 -2
- package/mcp-server/McpServerDetailView.js.map +1 -1
- package/mcp-server/McpServerPicker.d.ts.map +1 -1
- package/mcp-server/McpServerPicker.js +7 -1
- package/mcp-server/McpServerPicker.js.map +1 -1
- package/mcp-server/index.d.ts +2 -0
- package/mcp-server/index.d.ts.map +1 -1
- package/mcp-server/index.js +1 -0
- package/mcp-server/index.js.map +1 -1
- package/oauth-app/CreateOAuthAppForm.d.ts +41 -0
- package/oauth-app/CreateOAuthAppForm.d.ts.map +1 -0
- package/oauth-app/CreateOAuthAppForm.js +140 -0
- package/oauth-app/CreateOAuthAppForm.js.map +1 -0
- package/oauth-app/OAuthAppDetailPanel.d.ts +43 -0
- package/oauth-app/OAuthAppDetailPanel.d.ts.map +1 -0
- package/oauth-app/OAuthAppDetailPanel.js +202 -0
- package/oauth-app/OAuthAppDetailPanel.js.map +1 -0
- package/oauth-app/OAuthAppListPanel.d.ts +43 -0
- package/oauth-app/OAuthAppListPanel.d.ts.map +1 -0
- package/oauth-app/OAuthAppListPanel.js +79 -0
- package/oauth-app/OAuthAppListPanel.js.map +1 -0
- package/oauth-app/index.d.ts +15 -0
- package/oauth-app/index.d.ts.map +1 -0
- package/oauth-app/index.js +8 -0
- package/oauth-app/index.js.map +1 -0
- package/oauth-app/useCreateOAuthApp.d.ts +39 -0
- package/oauth-app/useCreateOAuthApp.d.ts.map +1 -0
- package/oauth-app/useCreateOAuthApp.js +50 -0
- package/oauth-app/useCreateOAuthApp.js.map +1 -0
- package/oauth-app/useDeleteOAuthApp.d.ts +31 -0
- package/oauth-app/useDeleteOAuthApp.d.ts.map +1 -0
- package/oauth-app/useDeleteOAuthApp.js +43 -0
- package/oauth-app/useDeleteOAuthApp.js.map +1 -0
- package/oauth-app/useOAuthAppList.d.ts +32 -0
- package/oauth-app/useOAuthAppList.d.ts.map +1 -0
- package/oauth-app/useOAuthAppList.js +61 -0
- package/oauth-app/useOAuthAppList.js.map +1 -0
- package/oauth-app/useUpdateOAuthApp.d.ts +38 -0
- package/oauth-app/useUpdateOAuthApp.d.ts.map +1 -0
- package/oauth-app/useUpdateOAuthApp.js +49 -0
- package/oauth-app/useUpdateOAuthApp.js.map +1 -0
- package/package.json +4 -4
- package/src/demo/fixtures.ts +8 -0
- package/src/index.ts +22 -0
- package/src/library/ResourceListView.tsx +8 -8
- package/src/mcp-server/McpServerConnectDialog.tsx +527 -0
- package/src/mcp-server/McpServerDetailView.tsx +2 -1
- package/src/mcp-server/McpServerPicker.tsx +8 -1
- package/src/mcp-server/index.ts +3 -0
- package/src/oauth-app/CreateOAuthAppForm.tsx +449 -0
- package/src/oauth-app/OAuthAppDetailPanel.tsx +671 -0
- package/src/oauth-app/OAuthAppListPanel.tsx +237 -0
- package/src/oauth-app/index.ts +14 -0
- package/src/oauth-app/useCreateOAuthApp.ts +70 -0
- package/src/oauth-app/useDeleteOAuthApp.ts +62 -0
- package/src/oauth-app/useOAuthAppList.ts +84 -0
- package/src/oauth-app/useUpdateOAuthApp.ts +69 -0
- package/styles.css +1 -1
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useOAuthAppList.d.ts","sourceRoot":"","sources":["../../src/oauth-app/useOAuthAppList.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,mDAAmD,CAAC;AAIlF,+CAA+C;AAC/C,MAAM,WAAW,qBAAqB;IACpC,6EAA6E;IAC7E,QAAQ,CAAC,SAAS,EAAE,SAAS,QAAQ,EAAE,CAAC;IACxC,gEAAgE;IAChE,QAAQ,CAAC,SAAS,EAAE,OAAO,CAAC;IAC5B,kEAAkE;IAClE,QAAQ,CAAC,KAAK,EAAE,KAAK,GAAG,IAAI,CAAC;IAC7B,iEAAiE;IACjE,QAAQ,CAAC,OAAO,EAAE,MAAM,IAAI,CAAC;CAC9B;AAED;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAgB,eAAe,CAC7B,GAAG,EAAE,MAAM,GAAG,IAAI,GACjB,qBAAqB,CA0CvB"}
|
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
import { useCallback, useEffect, useState } from "react";
|
|
3
|
+
import { create } from "@bufbuild/protobuf";
|
|
4
|
+
import { ListOAuthAppsByOrgInputSchema } from "@stigmer/protos/ai/stigmer/iam/oauthapp/v1/io_pb";
|
|
5
|
+
import { useStigmer } from "../hooks";
|
|
6
|
+
import { toError } from "../internal/toError";
|
|
7
|
+
/**
|
|
8
|
+
* Data hook that fetches all {@link OAuthApp} entries for an organization.
|
|
9
|
+
*
|
|
10
|
+
* Returns every OAuthApp whose `metadata.org` matches the input. In
|
|
11
|
+
* practice these are the BYOA OAuth apps created through the "Bring
|
|
12
|
+
* your own app" flow on MCP server detail pages.
|
|
13
|
+
*
|
|
14
|
+
* Pass `null` for `org` to skip fetching (stable no-op). Useful when
|
|
15
|
+
* the active organization has not been resolved yet.
|
|
16
|
+
*
|
|
17
|
+
* @example
|
|
18
|
+
* ```tsx
|
|
19
|
+
* const { oauthApps, isLoading, error } = useOAuthAppList(org);
|
|
20
|
+
*
|
|
21
|
+
* if (isLoading) return <Spinner />;
|
|
22
|
+
* oauthApps.map((app) => app.spec?.provider);
|
|
23
|
+
* ```
|
|
24
|
+
*/
|
|
25
|
+
export function useOAuthAppList(org) {
|
|
26
|
+
const stigmer = useStigmer();
|
|
27
|
+
const [oauthApps, setOauthApps] = useState([]);
|
|
28
|
+
const [isLoading, setIsLoading] = useState(false);
|
|
29
|
+
const [error, setError] = useState(null);
|
|
30
|
+
const [fetchKey, setFetchKey] = useState(0);
|
|
31
|
+
const refetch = useCallback(() => setFetchKey((k) => k + 1), []);
|
|
32
|
+
useEffect(() => {
|
|
33
|
+
if (!org) {
|
|
34
|
+
setOauthApps([]);
|
|
35
|
+
setIsLoading(false);
|
|
36
|
+
setError(null);
|
|
37
|
+
return;
|
|
38
|
+
}
|
|
39
|
+
const cancelled = { current: false };
|
|
40
|
+
setIsLoading(true);
|
|
41
|
+
setError(null);
|
|
42
|
+
stigmer.oauthapp
|
|
43
|
+
.listByOrg(create(ListOAuthAppsByOrgInputSchema, { org }))
|
|
44
|
+
.then((result) => {
|
|
45
|
+
if (cancelled.current)
|
|
46
|
+
return;
|
|
47
|
+
setOauthApps([...result.entries]);
|
|
48
|
+
setIsLoading(false);
|
|
49
|
+
}, (err) => {
|
|
50
|
+
if (cancelled.current)
|
|
51
|
+
return;
|
|
52
|
+
setError(toError(err));
|
|
53
|
+
setIsLoading(false);
|
|
54
|
+
});
|
|
55
|
+
return () => {
|
|
56
|
+
cancelled.current = true;
|
|
57
|
+
};
|
|
58
|
+
}, [org, stigmer, fetchKey]);
|
|
59
|
+
return { oauthApps, isLoading, error, refetch };
|
|
60
|
+
}
|
|
61
|
+
//# sourceMappingURL=useOAuthAppList.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useOAuthAppList.js","sourceRoot":"","sources":["../../src/oauth-app/useOAuthAppList.ts"],"names":[],"mappings":"AAAA,YAAY,CAAC;AAEb,OAAO,EAAE,WAAW,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AACzD,OAAO,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAC;AAC5C,OAAO,EAAE,6BAA6B,EAAE,MAAM,kDAAkD,CAAC;AAEjG,OAAO,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC;AACtC,OAAO,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAC;AAc9C;;;;;;;;;;;;;;;;;GAiBG;AACH,MAAM,UAAU,eAAe,CAC7B,GAAkB;IAElB,MAAM,OAAO,GAAG,UAAU,EAAE,CAAC;IAC7B,MAAM,CAAC,SAAS,EAAE,YAAY,CAAC,GAAG,QAAQ,CAAa,EAAE,CAAC,CAAC;IAC3D,MAAM,CAAC,SAAS,EAAE,YAAY,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC;IAClD,MAAM,CAAC,KAAK,EAAE,QAAQ,CAAC,GAAG,QAAQ,CAAe,IAAI,CAAC,CAAC;IACvD,MAAM,CAAC,QAAQ,EAAE,WAAW,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC;IAE5C,MAAM,OAAO,GAAG,WAAW,CAAC,GAAG,EAAE,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;IAEjE,SAAS,CAAC,GAAG,EAAE;QACb,IAAI,CAAC,GAAG,EAAE,CAAC;YACT,YAAY,CAAC,EAAE,CAAC,CAAC;YACjB,YAAY,CAAC,KAAK,CAAC,CAAC;YACpB,QAAQ,CAAC,IAAI,CAAC,CAAC;YACf,OAAO;QACT,CAAC;QAED,MAAM,SAAS,GAAG,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC;QACrC,YAAY,CAAC,IAAI,CAAC,CAAC;QACnB,QAAQ,CAAC,IAAI,CAAC,CAAC;QAEf,OAAO,CAAC,QAAQ;aACb,SAAS,CAAC,MAAM,CAAC,6BAA6B,EAAE,EAAE,GAAG,EAAE,CAAC,CAAC;aACzD,IAAI,CACH,CAAC,MAAM,EAAE,EAAE;YACT,IAAI,SAAS,CAAC,OAAO;gBAAE,OAAO;YAC9B,YAAY,CAAC,CAAC,GAAG,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC;YAClC,YAAY,CAAC,KAAK,CAAC,CAAC;QACtB,CAAC,EACD,CAAC,GAAG,EAAE,EAAE;YACN,IAAI,SAAS,CAAC,OAAO;gBAAE,OAAO;YAC9B,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC;YACvB,YAAY,CAAC,KAAK,CAAC,CAAC;QACtB,CAAC,CACF,CAAC;QAEJ,OAAO,GAAG,EAAE;YACV,SAAS,CAAC,OAAO,GAAG,IAAI,CAAC;QAC3B,CAAC,CAAC;IACJ,CAAC,EAAE,CAAC,GAAG,EAAE,OAAO,EAAE,QAAQ,CAAC,CAAC,CAAC;IAE7B,OAAO,EAAE,SAAS,EAAE,SAAS,EAAE,KAAK,EAAE,OAAO,EAAE,CAAC;AAClD,CAAC"}
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
import type { OAuthAppInput } from "@stigmer/sdk";
|
|
2
|
+
import type { OAuthApp } from "@stigmer/protos/ai/stigmer/iam/oauthapp/v1/api_pb";
|
|
3
|
+
/** Return value of {@link useUpdateOAuthApp}. */
|
|
4
|
+
export interface UseUpdateOAuthAppReturn {
|
|
5
|
+
/** Submit an {@link OAuthAppInput} to update an existing OAuth app. Resolves with the updated resource. */
|
|
6
|
+
readonly update: (input: OAuthAppInput) => Promise<OAuthApp>;
|
|
7
|
+
/** `true` while the update request is in flight. */
|
|
8
|
+
readonly isUpdating: boolean;
|
|
9
|
+
/** Error from the last failed update, or `null` when healthy. */
|
|
10
|
+
readonly error: Error | null;
|
|
11
|
+
/** Reset `error` to `null`. */
|
|
12
|
+
readonly clearError: () => void;
|
|
13
|
+
}
|
|
14
|
+
/**
|
|
15
|
+
* Mutation hook that wraps `oauthapp.update()` with loading and error
|
|
16
|
+
* state.
|
|
17
|
+
*
|
|
18
|
+
* Updates an existing OAuth app. The input must include the `name` and
|
|
19
|
+
* `org` fields to identify the target resource, along with the updated
|
|
20
|
+
* spec fields. Omit `clientSecret` to leave the existing secret
|
|
21
|
+
* unchanged.
|
|
22
|
+
*
|
|
23
|
+
* @example
|
|
24
|
+
* ```tsx
|
|
25
|
+
* const { update, isUpdating, error } = useUpdateOAuthApp();
|
|
26
|
+
*
|
|
27
|
+
* await update({
|
|
28
|
+
* name: "My Slack App",
|
|
29
|
+
* org: "acme",
|
|
30
|
+
* provider: "Slack",
|
|
31
|
+
* clientId: "123456.789012",
|
|
32
|
+
* authorizationUrl: "https://slack.com/oauth/v2/authorize",
|
|
33
|
+
* tokenUrl: "https://slack.com/api/oauth.v2.access",
|
|
34
|
+
* });
|
|
35
|
+
* ```
|
|
36
|
+
*/
|
|
37
|
+
export declare function useUpdateOAuthApp(): UseUpdateOAuthAppReturn;
|
|
38
|
+
//# sourceMappingURL=useUpdateOAuthApp.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useUpdateOAuthApp.d.ts","sourceRoot":"","sources":["../../src/oauth-app/useUpdateOAuthApp.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAClD,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,mDAAmD,CAAC;AAIlF,iDAAiD;AACjD,MAAM,WAAW,uBAAuB;IACtC,2GAA2G;IAC3G,QAAQ,CAAC,MAAM,EAAE,CAAC,KAAK,EAAE,aAAa,KAAK,OAAO,CAAC,QAAQ,CAAC,CAAC;IAC7D,oDAAoD;IACpD,QAAQ,CAAC,UAAU,EAAE,OAAO,CAAC;IAC7B,iEAAiE;IACjE,QAAQ,CAAC,KAAK,EAAE,KAAK,GAAG,IAAI,CAAC;IAC7B,+BAA+B;IAC/B,QAAQ,CAAC,UAAU,EAAE,MAAM,IAAI,CAAC;CACjC;AAED;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,wBAAgB,iBAAiB,IAAI,uBAAuB,CAyB3D"}
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
import { useCallback, useState } from "react";
|
|
3
|
+
import { useStigmer } from "../hooks";
|
|
4
|
+
import { toError } from "../internal/toError";
|
|
5
|
+
/**
|
|
6
|
+
* Mutation hook that wraps `oauthapp.update()` with loading and error
|
|
7
|
+
* state.
|
|
8
|
+
*
|
|
9
|
+
* Updates an existing OAuth app. The input must include the `name` and
|
|
10
|
+
* `org` fields to identify the target resource, along with the updated
|
|
11
|
+
* spec fields. Omit `clientSecret` to leave the existing secret
|
|
12
|
+
* unchanged.
|
|
13
|
+
*
|
|
14
|
+
* @example
|
|
15
|
+
* ```tsx
|
|
16
|
+
* const { update, isUpdating, error } = useUpdateOAuthApp();
|
|
17
|
+
*
|
|
18
|
+
* await update({
|
|
19
|
+
* name: "My Slack App",
|
|
20
|
+
* org: "acme",
|
|
21
|
+
* provider: "Slack",
|
|
22
|
+
* clientId: "123456.789012",
|
|
23
|
+
* authorizationUrl: "https://slack.com/oauth/v2/authorize",
|
|
24
|
+
* tokenUrl: "https://slack.com/api/oauth.v2.access",
|
|
25
|
+
* });
|
|
26
|
+
* ```
|
|
27
|
+
*/
|
|
28
|
+
export function useUpdateOAuthApp() {
|
|
29
|
+
const stigmer = useStigmer();
|
|
30
|
+
const [isUpdating, setIsUpdating] = useState(false);
|
|
31
|
+
const [error, setError] = useState(null);
|
|
32
|
+
const clearError = useCallback(() => setError(null), []);
|
|
33
|
+
const update = useCallback(async (input) => {
|
|
34
|
+
setIsUpdating(true);
|
|
35
|
+
setError(null);
|
|
36
|
+
try {
|
|
37
|
+
return await stigmer.oauthapp.update(input);
|
|
38
|
+
}
|
|
39
|
+
catch (err) {
|
|
40
|
+
setError(toError(err));
|
|
41
|
+
throw err;
|
|
42
|
+
}
|
|
43
|
+
finally {
|
|
44
|
+
setIsUpdating(false);
|
|
45
|
+
}
|
|
46
|
+
}, [stigmer]);
|
|
47
|
+
return { update, isUpdating, error, clearError };
|
|
48
|
+
}
|
|
49
|
+
//# sourceMappingURL=useUpdateOAuthApp.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useUpdateOAuthApp.js","sourceRoot":"","sources":["../../src/oauth-app/useUpdateOAuthApp.ts"],"names":[],"mappings":"AAAA,YAAY,CAAC;AAEb,OAAO,EAAE,WAAW,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AAG9C,OAAO,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC;AACtC,OAAO,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAC;AAc9C;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,MAAM,UAAU,iBAAiB;IAC/B,MAAM,OAAO,GAAG,UAAU,EAAE,CAAC;IAC7B,MAAM,CAAC,UAAU,EAAE,aAAa,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC;IACpD,MAAM,CAAC,KAAK,EAAE,QAAQ,CAAC,GAAG,QAAQ,CAAe,IAAI,CAAC,CAAC;IAEvD,MAAM,UAAU,GAAG,WAAW,CAAC,GAAG,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,EAAE,CAAC,CAAC;IAEzD,MAAM,MAAM,GAAG,WAAW,CACxB,KAAK,EAAE,KAAoB,EAAqB,EAAE;QAChD,aAAa,CAAC,IAAI,CAAC,CAAC;QACpB,QAAQ,CAAC,IAAI,CAAC,CAAC;QAEf,IAAI,CAAC;YACH,OAAO,MAAM,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QAC9C,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC;YACvB,MAAM,GAAG,CAAC;QACZ,CAAC;gBAAS,CAAC;YACT,aAAa,CAAC,KAAK,CAAC,CAAC;QACvB,CAAC;IACH,CAAC,EACD,CAAC,OAAO,CAAC,CACV,CAAC;IAEF,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,KAAK,EAAE,UAAU,EAAE,CAAC;AACnD,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@stigmer/react",
|
|
3
|
-
"version": "0.0.
|
|
3
|
+
"version": "0.0.85",
|
|
4
4
|
"description": "React provider and client hook for the Stigmer platform SDK",
|
|
5
5
|
"license": "Apache-2.0",
|
|
6
6
|
"type": "module",
|
|
@@ -35,7 +35,7 @@
|
|
|
35
35
|
}
|
|
36
36
|
},
|
|
37
37
|
"dependencies": {
|
|
38
|
-
"@stigmer/theme": "0.0.
|
|
38
|
+
"@stigmer/theme": "0.0.85",
|
|
39
39
|
"react-markdown": "^10.1.0",
|
|
40
40
|
"remark-gfm": "^4.0.1",
|
|
41
41
|
"yaml": "^2.8.2"
|
|
@@ -43,8 +43,8 @@
|
|
|
43
43
|
"peerDependencies": {
|
|
44
44
|
"@base-ui/react": "^1.0.0",
|
|
45
45
|
"@bufbuild/protobuf": "^2.0.0",
|
|
46
|
-
"@stigmer/protos": "0.0.
|
|
47
|
-
"@stigmer/sdk": "0.0.
|
|
46
|
+
"@stigmer/protos": "0.0.85",
|
|
47
|
+
"@stigmer/sdk": "0.0.85",
|
|
48
48
|
"react": "^19.0.0",
|
|
49
49
|
"react-dom": "^19.0.0"
|
|
50
50
|
}
|
package/src/demo/fixtures.ts
CHANGED
|
@@ -238,6 +238,14 @@ export const fixtures = {
|
|
|
238
238
|
/** Hooks: `useUpdateVisibility` (when kind is McpServer) */
|
|
239
239
|
updateVisibility: (handler: UnaryFixtureHandler): FixtureSpec =>
|
|
240
240
|
unarySpec(McpServerCommandController, "updateVisibility", handler),
|
|
241
|
+
|
|
242
|
+
/** Hooks: `useOAuthGrantStatus` */
|
|
243
|
+
getOAuthGrantStatus: (handler: UnaryFixtureHandler): FixtureSpec =>
|
|
244
|
+
unarySpec(McpServerQueryController, "getOAuthGrantStatus", handler),
|
|
245
|
+
|
|
246
|
+
/** Hooks: `useOrgOAuthApp` */
|
|
247
|
+
getOrgOAuthApp: (handler: UnaryFixtureHandler): FixtureSpec =>
|
|
248
|
+
unarySpec(McpServerQueryController, "getOrgOAuthApp", handler),
|
|
241
249
|
},
|
|
242
250
|
|
|
243
251
|
// ---- Environment ----
|
package/src/index.ts
CHANGED
|
@@ -227,6 +227,7 @@ export {
|
|
|
227
227
|
McpServerPicker,
|
|
228
228
|
McpServerConfigPanel,
|
|
229
229
|
McpServerDetailView,
|
|
230
|
+
McpServerConnectDialog,
|
|
230
231
|
McpToolSelector,
|
|
231
232
|
toServerKey,
|
|
232
233
|
} from "./mcp-server";
|
|
@@ -249,6 +250,7 @@ export type {
|
|
|
249
250
|
McpServerCredentialsProps,
|
|
250
251
|
McpServerOAuthSignInProps,
|
|
251
252
|
McpServerDetailViewProps,
|
|
253
|
+
McpServerConnectDialogProps,
|
|
252
254
|
CapabilityTab,
|
|
253
255
|
McpToolSelectorProps,
|
|
254
256
|
UseMcpServerConnectReturn,
|
|
@@ -446,6 +448,26 @@ export type {
|
|
|
446
448
|
ApiKeyCreatedAlertProps,
|
|
447
449
|
} from "./api-key";
|
|
448
450
|
|
|
451
|
+
// OAuth App — data hooks, mutation hooks, and styled components for OAuth app management
|
|
452
|
+
export {
|
|
453
|
+
useOAuthAppList,
|
|
454
|
+
useCreateOAuthApp,
|
|
455
|
+
useUpdateOAuthApp,
|
|
456
|
+
useDeleteOAuthApp,
|
|
457
|
+
OAuthAppListPanel,
|
|
458
|
+
CreateOAuthAppForm,
|
|
459
|
+
OAuthAppDetailPanel,
|
|
460
|
+
} from "./oauth-app";
|
|
461
|
+
export type {
|
|
462
|
+
UseOAuthAppListReturn,
|
|
463
|
+
UseCreateOAuthAppReturn,
|
|
464
|
+
UseUpdateOAuthAppReturn,
|
|
465
|
+
UseDeleteOAuthAppReturn,
|
|
466
|
+
OAuthAppListPanelProps,
|
|
467
|
+
CreateOAuthAppFormProps,
|
|
468
|
+
OAuthAppDetailPanelProps,
|
|
469
|
+
} from "./oauth-app";
|
|
470
|
+
|
|
449
471
|
// Identity Provider — data hooks, mutation hooks, styled components, presets, and guided wizard for IdP management and SSO discovery
|
|
450
472
|
export {
|
|
451
473
|
useIdentityProviderList,
|
|
@@ -537,14 +537,9 @@ function DefaultResourceCard({
|
|
|
537
537
|
<div className="flex items-start gap-3">
|
|
538
538
|
<ResourceIcon kind={item.kind} iconUrl={item.iconUrl} />
|
|
539
539
|
<div className="min-w-0 flex-1">
|
|
540
|
-
<
|
|
541
|
-
|
|
542
|
-
|
|
543
|
-
</span>
|
|
544
|
-
{item.visibility === ApiResourceVisibility.visibility_public && (
|
|
545
|
-
<VisibilityBadge />
|
|
546
|
-
)}
|
|
547
|
-
</div>
|
|
540
|
+
<span className="line-clamp-2 text-sm font-semibold leading-snug text-foreground">
|
|
541
|
+
{displayName}
|
|
542
|
+
</span>
|
|
548
543
|
<span className="mt-0.5 block text-xs text-muted-foreground">
|
|
549
544
|
{item.org}
|
|
550
545
|
</span>
|
|
@@ -556,6 +551,11 @@ function DefaultResourceCard({
|
|
|
556
551
|
{item.description}
|
|
557
552
|
</p>
|
|
558
553
|
)}
|
|
554
|
+
{item.visibility === ApiResourceVisibility.visibility_public && (
|
|
555
|
+
<div className="mt-auto">
|
|
556
|
+
<VisibilityBadge />
|
|
557
|
+
</div>
|
|
558
|
+
)}
|
|
559
559
|
</div>
|
|
560
560
|
);
|
|
561
561
|
}
|