@motiadev/plugin-endpoint 0.8.2-beta.140-628177 → 0.8.2-beta.140-111855

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.
Files changed (107) hide show
  1. package/README.md +12 -12
  2. package/dist/api/endpoints-stream.d.ts +22 -0
  3. package/dist/api/endpoints-stream.d.ts.map +1 -0
  4. package/dist/api/index.d.ts +3 -0
  5. package/dist/api/index.d.ts.map +1 -0
  6. package/dist/components/configuration-list-item.d.ts.map +1 -1
  7. package/dist/components/endpoint-badge.d.ts +1 -1
  8. package/dist/components/endpoint-badge.d.ts.map +1 -1
  9. package/dist/components/endpoint-item.d.ts.map +1 -1
  10. package/dist/components/endpoint-path-preview.d.ts.map +1 -1
  11. package/dist/components/endpoint-path.d.ts.map +1 -1
  12. package/dist/components/endpoint-tab-label.d.ts +1 -1
  13. package/dist/components/flow-group.d.ts.map +1 -1
  14. package/dist/components/json-editor.d.ts.map +1 -1
  15. package/dist/hooks/use-endpoint-configuration.d.ts +3 -3
  16. package/dist/hooks/use-get-endpoints.d.ts.map +1 -1
  17. package/dist/hooks/use-json-schema-to-json.d.ts +1 -1
  18. package/dist/index.cjs +27 -0
  19. package/dist/index.d.ts +0 -7
  20. package/dist/index.d.ts.map +1 -1
  21. package/dist/index.js +2243 -9
  22. package/dist/play/response-code.d.ts.map +1 -1
  23. package/dist/play/response-content.d.ts +1 -1
  24. package/dist/play/response-content.d.ts.map +1 -1
  25. package/dist/play/side-panel-body-tab.d.ts.map +1 -1
  26. package/dist/play/side-panel-response.d.ts +1 -1
  27. package/dist/play/side-panel.d.ts.map +1 -1
  28. package/dist/play/trigger-button.d.ts +1 -1
  29. package/dist/play/trigger-button.d.ts.map +1 -1
  30. package/dist/plugin-endpoint.css +1 -0
  31. package/dist/plugin.cjs +1 -0
  32. package/dist/plugin.d.ts +3 -0
  33. package/dist/plugin.d.ts.map +1 -0
  34. package/dist/plugin.js +67 -0
  35. package/dist/spec/spec-body-panel.d.ts +0 -2
  36. package/dist/spec/spec-body-panel.d.ts.map +1 -1
  37. package/dist/spec/spec-path-params-panel.d.ts.map +1 -1
  38. package/dist/spec/spec-query-params-panel.d.ts.map +1 -1
  39. package/dist/spec/spec-response-schema.d.ts.map +1 -1
  40. package/dist/spec/spec-side-panel.d.ts.map +1 -1
  41. package/package.json +31 -20
  42. package/dist/components/configuration-list-item.js +0 -36
  43. package/dist/components/configuration-list-item.js.map +0 -1
  44. package/dist/components/endpoint-badge.js +0 -29
  45. package/dist/components/endpoint-badge.js.map +0 -1
  46. package/dist/components/endpoint-item.js +0 -5
  47. package/dist/components/endpoint-item.js.map +0 -1
  48. package/dist/components/endpoint-path-preview.js +0 -22
  49. package/dist/components/endpoint-path-preview.js.map +0 -1
  50. package/dist/components/endpoint-path.js +0 -26
  51. package/dist/components/endpoint-path.js.map +0 -1
  52. package/dist/components/endpoint-tab-label.js +0 -6
  53. package/dist/components/endpoint-tab-label.js.map +0 -1
  54. package/dist/components/endpoints-search.js +0 -10
  55. package/dist/components/endpoints-search.js.map +0 -1
  56. package/dist/components/flow-group.js +0 -13
  57. package/dist/components/flow-group.js.map +0 -1
  58. package/dist/components/json-editor.js +0 -105
  59. package/dist/components/json-editor.js.map +0 -1
  60. package/dist/endpoints-page.js +0 -29
  61. package/dist/endpoints-page.js.map +0 -1
  62. package/dist/hooks/use-endpoint-configuration.js +0 -142
  63. package/dist/hooks/use-endpoint-configuration.js.map +0 -1
  64. package/dist/hooks/use-get-endpoints.js +0 -23
  65. package/dist/hooks/use-get-endpoints.js.map +0 -1
  66. package/dist/hooks/use-json-schema-to-json.js +0 -12
  67. package/dist/hooks/use-json-schema-to-json.js.map +0 -1
  68. package/dist/hooks/use-path-params.js +0 -5
  69. package/dist/hooks/use-path-params.js.map +0 -1
  70. package/dist/hooks/use-path-url.js +0 -15
  71. package/dist/hooks/use-path-url.js.map +0 -1
  72. package/dist/hooks/use-state-stream.js +0 -19
  73. package/dist/hooks/use-state-stream.js.map +0 -1
  74. package/dist/hooks/utils.js +0 -30
  75. package/dist/hooks/utils.js.map +0 -1
  76. package/dist/index.js.map +0 -1
  77. package/dist/play/reponse-code/utils.js +0 -73
  78. package/dist/play/reponse-code/utils.js.map +0 -1
  79. package/dist/play/response-code.js +0 -11
  80. package/dist/play/response-code.js.map +0 -1
  81. package/dist/play/response-content.js +0 -38
  82. package/dist/play/response-content.js.map +0 -1
  83. package/dist/play/side-panel-body-tab.js +0 -23
  84. package/dist/play/side-panel-body-tab.js.map +0 -1
  85. package/dist/play/side-panel-headers-tab.js +0 -26
  86. package/dist/play/side-panel-headers-tab.js.map +0 -1
  87. package/dist/play/side-panel-params-tab.js +0 -39
  88. package/dist/play/side-panel-params-tab.js.map +0 -1
  89. package/dist/play/side-panel-response.js +0 -21
  90. package/dist/play/side-panel-response.js.map +0 -1
  91. package/dist/play/side-panel.js +0 -26
  92. package/dist/play/side-panel.js.map +0 -1
  93. package/dist/play/trigger-button.js +0 -40
  94. package/dist/play/trigger-button.js.map +0 -1
  95. package/dist/spec/spec-body-panel.js +0 -13
  96. package/dist/spec/spec-body-panel.js.map +0 -1
  97. package/dist/spec/spec-path-params-panel.js +0 -11
  98. package/dist/spec/spec-path-params-panel.js.map +0 -1
  99. package/dist/spec/spec-query-params-panel.js +0 -10
  100. package/dist/spec/spec-query-params-panel.js.map +0 -1
  101. package/dist/spec/spec-response-schema.js +0 -18
  102. package/dist/spec/spec-response-schema.js.map +0 -1
  103. package/dist/spec/spec-side-panel.js +0 -22
  104. package/dist/spec/spec-side-panel.js.map +0 -1
  105. package/dist/styles.css +0 -1108
  106. package/dist/types/endpoint.js +0 -2
  107. package/dist/types/endpoint.js.map +0 -1
@@ -1,26 +0,0 @@
1
- import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
- import { Button } from '@motiadev/ui';
3
- import { Plus } from 'lucide-react';
4
- import { useCallback } from 'react';
5
- import { useShallow } from 'zustand/react/shallow';
6
- import { ConfigurationListItem } from '../components/configuration-list-item';
7
- import { getHeadersSelector, useEndpointConfiguration } from '../hooks/use-endpoint-configuration';
8
- export const SidePanelHeadersTab = () => {
9
- const { setHeaders, removeHeaders } = useEndpointConfiguration();
10
- const headers = useEndpointConfiguration(useShallow(getHeadersSelector));
11
- const addHeader = useCallback(() => {
12
- const newHeader = {
13
- name: '',
14
- value: '',
15
- active: true,
16
- };
17
- setHeaders({ ...headers, [new Date().getTime().toString()]: newHeader });
18
- }, [headers, setHeaders]);
19
- const updateHeader = useCallback((key, field, value) => {
20
- if (!key)
21
- return;
22
- setHeaders({ ...headers, [key]: { ...headers[key], [field]: value } });
23
- }, [headers, setHeaders]);
24
- return (_jsxs("div", { className: "h-full max-h-full grid grid-rows-[auto_1fr]", children: [_jsx("div", { className: "grid px-4 border-b h-10 items-center grid-cols-[auto_1fr]", children: _jsxs(Button, { size: "sm", onClick: addHeader, children: [_jsx(Plus, { className: "h-3 w-3" }), "Add"] }) }), _jsxs("div", { className: "p-2", children: [Object.entries(headers).map(([key, header]) => (_jsx(ConfigurationListItem, { value: header, id: key, onUpdate: updateHeader, onRemove: removeHeaders }, key))), Object.entries(headers).length === 0 && (_jsx("div", { className: "grid grid-cols-1 items-center h-full", children: _jsx("div", { className: "text-sm text-muted-foreground text-center", children: "There are no headers in this endpoint" }) }))] })] }));
25
- };
26
- //# sourceMappingURL=side-panel-headers-tab.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"side-panel-headers-tab.js","sourceRoot":"","sources":["../../src/play/side-panel-headers-tab.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,cAAc,CAAA;AACrC,OAAO,EAAE,IAAI,EAAE,MAAM,cAAc,CAAA;AACnC,OAAO,EAAE,WAAW,EAAE,MAAM,OAAO,CAAA;AACnC,OAAO,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAA;AAClD,OAAO,EAAE,qBAAqB,EAAE,MAAM,uCAAuC,CAAA;AAC7E,OAAO,EAAE,kBAAkB,EAAE,wBAAwB,EAAE,MAAM,qCAAqC,CAAA;AAElG,MAAM,CAAC,MAAM,mBAAmB,GAAG,GAAG,EAAE;IACtC,MAAM,EAAE,UAAU,EAAE,aAAa,EAAE,GAAG,wBAAwB,EAAE,CAAA;IAChE,MAAM,OAAO,GAAG,wBAAwB,CAAC,UAAU,CAAC,kBAAkB,CAAC,CAAC,CAAA;IAExE,MAAM,SAAS,GAAG,WAAW,CAAC,GAAG,EAAE;QACjC,MAAM,SAAS,GAAG;YAChB,IAAI,EAAE,EAAE;YACR,KAAK,EAAE,EAAE;YACT,MAAM,EAAE,IAAI;SACb,CAAA;QACD,UAAU,CAAC,EAAE,GAAG,OAAO,EAAE,CAAC,IAAI,IAAI,EAAE,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE,CAAC,EAAE,SAAS,EAAE,CAAC,CAAA;IAC1E,CAAC,EAAE,CAAC,OAAO,EAAE,UAAU,CAAC,CAAC,CAAA;IAEzB,MAAM,YAAY,GAAG,WAAW,CAC9B,CAAC,GAAW,EAAE,KAAkC,EAAE,KAAuB,EAAE,EAAE;QAC3E,IAAI,CAAC,GAAG;YAAE,OAAM;QAChB,UAAU,CAAC,EAAE,GAAG,OAAO,EAAE,CAAC,GAAG,CAAC,EAAE,EAAE,GAAG,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,KAAK,CAAC,EAAE,KAAK,EAAE,EAAE,CAAC,CAAA;IACxE,CAAC,EACD,CAAC,OAAO,EAAE,UAAU,CAAC,CACtB,CAAA;IAED,OAAO,CACL,eAAK,SAAS,EAAC,6CAA6C,aAC1D,cAAK,SAAS,EAAC,2DAA2D,YACxE,MAAC,MAAM,IAAC,IAAI,EAAC,IAAI,EAAC,OAAO,EAAE,SAAS,aAClC,KAAC,IAAI,IAAC,SAAS,EAAC,SAAS,GAAG,WAErB,GACL,EAEN,eAAK,SAAS,EAAC,KAAK,aACjB,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,MAAM,CAAC,EAAE,EAAE,CAAC,CAC9C,KAAC,qBAAqB,IAAW,KAAK,EAAE,MAAM,EAAE,EAAE,EAAE,GAAG,EAAE,QAAQ,EAAE,YAAY,EAAE,QAAQ,EAAE,aAAa,IAA5E,GAAG,CAA6E,CAC7G,CAAC,EAED,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,MAAM,KAAK,CAAC,IAAI,CACvC,cAAK,SAAS,EAAC,sCAAsC,YACnD,cAAK,SAAS,EAAC,2CAA2C,sDAA4C,GAClG,CACP,IACG,IACF,CACP,CAAA;AACH,CAAC,CAAA"}
@@ -1,39 +0,0 @@
1
- import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
- import { Button } from '@motiadev/ui';
3
- import { Plus } from 'lucide-react';
4
- import { useCallback, useMemo } from 'react';
5
- import { useShallow } from 'zustand/react/shallow';
6
- import { ConfigurationListItem } from '../components/configuration-list-item';
7
- import { EndpointPathPreview } from '../components/endpoint-path-preview';
8
- import { getPathParamsSelector, getQueryParamsSelector, useEndpointConfiguration, } from '../hooks/use-endpoint-configuration';
9
- export const SidePanelParamsTab = ({ path }) => {
10
- const { setQueryParams, removeQueryParams, setPathParams } = useEndpointConfiguration();
11
- const queryParams = useEndpointConfiguration(useShallow(getQueryParamsSelector));
12
- const pathParams = useEndpointConfiguration(useShallow(getPathParamsSelector));
13
- const pathParamsConfig = useMemo(() => {
14
- const params = path.match(/:(\w+)/g);
15
- return (params?.map((param) => {
16
- return { name: param.slice(1), value: pathParams[param.slice(1)]?.value ?? '', active: true };
17
- }) ?? []);
18
- }, [path]);
19
- const addParam = useCallback(() => {
20
- const newParam = {
21
- name: '',
22
- value: '',
23
- active: true,
24
- };
25
- setQueryParams({ ...queryParams, [new Date().getTime().toString()]: newParam });
26
- }, [queryParams, setQueryParams]);
27
- const updateParam = useCallback((key, field, value) => {
28
- if (!key)
29
- return;
30
- setQueryParams({ ...queryParams, [key]: { ...queryParams[key], [field]: value } });
31
- }, [queryParams, setQueryParams]);
32
- const updatePathParam = useCallback((key, field, value) => {
33
- if (!key)
34
- return;
35
- setPathParams({ ...pathParams, [key]: { ...pathParams[key], [field]: value } });
36
- }, [pathParams, setPathParams]);
37
- return (_jsxs("div", { className: "h-full grid grid-rows-[auto_auto_1fr]", children: [_jsx("div", { className: "grid px-4 border-b h-10 items-center grid-cols-[auto_1fr]", children: _jsxs(Button, { size: "sm", onClick: addParam, children: [_jsx(Plus, { className: "h-3 w-3" }), "Add"] }) }), _jsx(EndpointPathPreview, { path: path }), _jsxs("div", { className: "grid grid-rows-[1fr_1fr]", children: [pathParamsConfig.length > 0 && (_jsxs("div", { className: "p-2", children: [_jsx("div", { className: "text-sm font-medium pl-3", children: "Path variables" }), pathParamsConfig.map((pathName) => (_jsx(ConfigurationListItem, { value: { name: pathName.name, value: pathName.value, active: pathName.active }, id: pathName.name, required: true, onUpdate: updatePathParam }, pathName.name)))] })), _jsxs("div", { className: "p-2 border-b border-border", children: [_jsx("div", { className: "text-sm font-medium pl-3", children: "Query parameters" }), Object.entries(queryParams).map(([key, param]) => (_jsx(ConfigurationListItem, { value: param, id: key, onUpdate: updateParam, onRemove: removeQueryParams }, key))), Object.entries(queryParams).length === 0 && (_jsx("div", { className: "grid grid-cols-1 items-center h-full", children: _jsx("div", { className: "text-sm text-muted-foreground text-center", children: "There are no query params in this endpoint" }) }))] })] })] }));
38
- };
39
- //# sourceMappingURL=side-panel-params-tab.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"side-panel-params-tab.js","sourceRoot":"","sources":["../../src/play/side-panel-params-tab.tsx"],"names":[],"mappings":"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"}
@@ -1,21 +0,0 @@
1
- import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
2
- import { Button, Tabs, TabsContent, TabsList, TabsTrigger } from '@motiadev/ui';
3
- import { X } from 'lucide-react';
4
- import { memo, useState } from 'react';
5
- import { getResponseSelector, useEndpointConfiguration } from '../hooks/use-endpoint-configuration';
6
- import { useStateStream } from '../hooks/use-state-stream';
7
- import { ResponseCode } from './response-code';
8
- import { ResponseContent } from './response-content';
9
- export const SidePanelResponse = memo(() => {
10
- const { setResponse } = useEndpointConfiguration();
11
- const response = useEndpointConfiguration(getResponseSelector);
12
- const { data } = useStateStream(response?.body instanceof Blob ? undefined : response?.body);
13
- const [activeTab, setActiveTab] = useState('preview');
14
- const onClose = () => setResponse(undefined);
15
- if (!response) {
16
- return null;
17
- }
18
- return (_jsxs(Tabs, { value: activeTab, onValueChange: (value) => setActiveTab(value), className: "border-l border-border", "data-testid": "endpoint-response-container", children: [_jsxs("div", { className: "grid grid-cols-[1fr_auto] items-center h-10 border-b px-5 bg-card", children: [_jsxs(TabsList, { children: [_jsx(TabsTrigger, { value: "preview", className: "cursor-pointer", children: "Preview" }), _jsx(TabsTrigger, { value: "headers", className: "grid grid-cols-[auto_auto] gap-2 items-center cursor-pointer", children: "Headers" })] }), _jsx(Button, { variant: "ghost", size: "icon", onClick: onClose, children: _jsx(X, { className: "h-4 w-4" }) })] }), _jsx("div", { className: "sticky bottom-0 border-b border-border p-3 text-sm flex items-center gap-1 font-medium", children: _jsxs("div", { className: "flex flex-row items-center flex-1 gap-3", children: [_jsx(ResponseCode, { statusCode: response.statusCode }), !!response.executionTime && (_jsxs("div", { className: "text-muted-foreground bg-muted-foreground/10 px-2 py-1 rounded-sm", children: [response.executionTime, "ms"] }))] }) }), _jsx(TabsContent, { value: "preview", children: _jsx(ResponseContent, { code: data, blob: response?.body instanceof Blob ? response.body : undefined, contentType: response.headers['content-type'] }) }), _jsx(TabsContent, { value: "headers", children: _jsx("div", { className: "grid grid-cols-[auto_minmax(0,1fr)] gap-4 p-4 overflow-auto auto-rows-max h-full", children: response.headers &&
19
- Object.entries(response.headers).map(([key, value]) => (_jsxs(_Fragment, { children: [_jsx("span", { className: "font-bold text-sm h-8 items-center grid whitespace-nowrap", children: key }), _jsx("span", { className: "text-sm text-muted-foreground h-8 items-center grid whitespace-nowrap", children: value })] }))) }) })] }));
20
- });
21
- //# sourceMappingURL=side-panel-response.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"side-panel-response.js","sourceRoot":"","sources":["../../src/play/side-panel-response.tsx"],"names":[],"mappings":"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"}
@@ -1,26 +0,0 @@
1
- import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
- import { BackgroundEffect, Badge, Button, cn, Tabs, TabsContent, TabsList, TabsTrigger } from '@motiadev/ui';
3
- import { Book, X } from 'lucide-react';
4
- import { memo, useState } from 'react';
5
- import { useShallow } from 'zustand/react/shallow';
6
- import { EndpointPath } from '../components/endpoint-path';
7
- import { getHeadersSelector, getQueryParamsSelector, getResponseSelector, useEndpointConfiguration, } from '../hooks/use-endpoint-configuration';
8
- import { SpecSidePanel } from '../spec/spec-side-panel';
9
- import { SidePanelBodyTab } from './side-panel-body-tab';
10
- import { SidePanelHeadersTab } from './side-panel-headers-tab';
11
- import { SidePanelParamsTab } from './side-panel-params-tab';
12
- import { SidePanelResponse } from './side-panel-response';
13
- import { TriggerButton } from './trigger-button';
14
- const headersCountSelector = (state) => Object.keys(getHeadersSelector(state)).length;
15
- const hasResponseSelector = (state) => getResponseSelector(state) !== undefined;
16
- const paramsCountSelector = (state) => Object.keys(getQueryParamsSelector(state)).length;
17
- export const SidePanel = memo(({ endpoint, onClose }) => {
18
- const isGetOrDelete = endpoint.method === 'GET' || endpoint.method === 'DELETE';
19
- const [activeTab, setActiveTab] = useState(isGetOrDelete ? 'params' : 'body');
20
- const [isSpecOpen, setIsSpecOpen] = useState(false);
21
- const headersCount = useEndpointConfiguration(useShallow(headersCountSelector));
22
- const hasResponse = useEndpointConfiguration(useShallow(hasResponseSelector));
23
- const paramsCount = useEndpointConfiguration(useShallow(paramsCountSelector));
24
- return (_jsxs("div", { className: "isolate grid grid-cols-1 overflow-y-auto min-w-0 grid-rows-[auto_1fr] border-l border-border", "data-testid": "endpoint-details-panel", children: [_jsx(BackgroundEffect, {}), _jsxs("div", { className: "grid grid-cols-[1fr_1fr_auto] items-start gap-4 px-5 py-4 border-b bg-card w-full", children: [_jsxs("div", { className: "grid grid-rows-2 gap-2", children: [_jsx(EndpointPath, { method: endpoint.method, path: endpoint.path }), endpoint.description && _jsx("p", { className: "text-sm text-muted-foreground", children: endpoint.description })] }), _jsx("div", { className: "flex items-end justify-end", children: _jsx(Button, { variant: "icon", size: "icon", onClick: () => setIsSpecOpen(!isSpecOpen), "data-testid": "endpoint-spec-button", children: _jsx(Book, {}) }) }), _jsx(Button, { variant: "icon", size: "icon", onClick: onClose, children: _jsx(X, {}) })] }), _jsxs("div", { className: cn('grid grid-cols-[minmax(350px,1fr)_minmax(auto,1fr)]', !hasResponse && 'grid-cols-1'), children: [_jsxs(Tabs, { value: activeTab, onValueChange: (value) => setActiveTab(value), children: [_jsxs("div", { className: "grid grid-cols-[1fr_auto] items-center h-10 border-b px-5 bg-card", children: [_jsxs(TabsList, { children: [_jsxs(TabsTrigger, { value: "params", className: "grid grid-cols-[auto_auto] gap-2 items-center cursor-pointer", "data-testid": "endpoint-params-tab", children: ["Params", _jsx(Badge, { variant: "outline", className: "h-4 px-1.5 text-xs", children: paramsCount })] }), _jsx(TabsTrigger, { value: "body", className: "cursor-pointer", "data-testid": "endpoint-body-tab", children: "Body" }), _jsxs(TabsTrigger, { value: "headers", className: "grid grid-cols-[auto_auto] gap-2 items-center cursor-pointer", "data-testid": "endpoint-headers-tab", children: ["Headers", _jsx(Badge, { variant: "outline", className: "h-4 px-1.5 text-xs", children: headersCount })] })] }), _jsx(TriggerButton, { method: endpoint.method, path: endpoint.path.toString() })] }), _jsx(TabsContent, { value: "params", children: _jsx(SidePanelParamsTab, { path: endpoint.path }) }), _jsx(TabsContent, { value: "body", children: _jsx(SidePanelBodyTab, { schema: endpoint.bodySchema }) }), _jsx(TabsContent, { value: "headers", children: _jsx(SidePanelHeadersTab, {}) })] }), _jsx(SidePanelResponse, {})] }), isSpecOpen && _jsx(SpecSidePanel, { endpoint: endpoint, onClose: () => setIsSpecOpen(false) })] }));
25
- });
26
- //# sourceMappingURL=side-panel.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"side-panel.js","sourceRoot":"","sources":["../../src/play/side-panel.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,gBAAgB,EAAE,KAAK,EAAE,MAAM,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,QAAQ,EAAE,WAAW,EAAE,MAAM,cAAc,CAAA;AAC5G,OAAO,EAAE,IAAI,EAAE,CAAC,EAAE,MAAM,cAAc,CAAA;AACtC,OAAO,EAAM,IAAI,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAA;AAC1C,OAAO,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAA;AAClD,OAAO,EAAE,YAAY,EAAE,MAAM,6BAA6B,CAAA;AAC1D,OAAO,EACL,kBAAkB,EAClB,sBAAsB,EACtB,mBAAmB,EAEnB,wBAAwB,GACzB,MAAM,qCAAqC,CAAA;AAC5C,OAAO,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAA;AAEvD,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAA;AACxD,OAAO,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAA;AAC9D,OAAO,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAA;AAC5D,OAAO,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAA;AACzD,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAA;AAMhD,MAAM,oBAAoB,GAAG,CAAC,KAA+B,EAAE,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,kBAAkB,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,CAAA;AAC/G,MAAM,mBAAmB,GAAG,CAAC,KAA+B,EAAE,EAAE,CAAC,mBAAmB,CAAC,KAAK,CAAC,KAAK,SAAS,CAAA;AACzG,MAAM,mBAAmB,GAAG,CAAC,KAA+B,EAAE,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,sBAAsB,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,CAAA;AAElH,MAAM,CAAC,MAAM,SAAS,GAA+B,IAAI,CAAC,CAAC,EAAE,QAAQ,EAAE,OAAO,EAAE,EAAE,EAAE;IAClF,MAAM,aAAa,GAAG,QAAQ,CAAC,MAAM,KAAK,KAAK,IAAI,QAAQ,CAAC,MAAM,KAAK,QAAQ,CAAA;IAE/E,MAAM,CAAC,SAAS,EAAE,YAAY,CAAC,GAAG,QAAQ,CAAY,aAAa,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,CAAA;IACxF,MAAM,CAAC,UAAU,EAAE,aAAa,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAA;IACnD,MAAM,YAAY,GAAG,wBAAwB,CAAC,UAAU,CAAC,oBAAoB,CAAC,CAAC,CAAA;IAC/E,MAAM,WAAW,GAAG,wBAAwB,CAAC,UAAU,CAAC,mBAAmB,CAAC,CAAC,CAAA;IAC7E,MAAM,WAAW,GAAG,wBAAwB,CAAC,UAAU,CAAC,mBAAmB,CAAC,CAAC,CAAA;IAE7E,OAAO,CACL,eACE,SAAS,EAAC,8FAA8F,iBAC5F,wBAAwB,aAEpC,KAAC,gBAAgB,KAAG,EACpB,eAAK,SAAS,EAAC,mFAAmF,aAChG,eAAK,SAAS,EAAC,wBAAwB,aACrC,KAAC,YAAY,IAAC,MAAM,EAAE,QAAQ,CAAC,MAAM,EAAE,IAAI,EAAE,QAAQ,CAAC,IAAI,GAAI,EAC7D,QAAQ,CAAC,WAAW,IAAI,YAAG,SAAS,EAAC,+BAA+B,YAAE,QAAQ,CAAC,WAAW,GAAK,IAC5F,EACN,cAAK,SAAS,EAAC,4BAA4B,YACzC,KAAC,MAAM,IACL,OAAO,EAAC,MAAM,EACd,IAAI,EAAC,MAAM,EACX,OAAO,EAAE,GAAG,EAAE,CAAC,aAAa,CAAC,CAAC,UAAU,CAAC,iBAC7B,sBAAsB,YAElC,KAAC,IAAI,KAAG,GACD,GACL,EACN,KAAC,MAAM,IAAC,OAAO,EAAC,MAAM,EAAC,IAAI,EAAC,MAAM,EAAC,OAAO,EAAE,OAAO,YACjD,KAAC,CAAC,KAAG,GACE,IACL,EACN,eAAK,SAAS,EAAE,EAAE,CAAC,qDAAqD,EAAE,CAAC,WAAW,IAAI,aAAa,CAAC,aACtG,MAAC,IAAI,IAAC,KAAK,EAAE,SAAS,EAAE,aAAa,EAAE,CAAC,KAAa,EAAE,EAAE,CAAC,YAAY,CAAC,KAAkB,CAAC,aACxF,eAAK,SAAS,EAAC,mEAAmE,aAChF,MAAC,QAAQ,eACP,MAAC,WAAW,IACV,KAAK,EAAC,QAAQ,EACd,SAAS,EAAC,8DAA8D,iBAC5D,qBAAqB,uBAGjC,KAAC,KAAK,IAAC,OAAO,EAAC,SAAS,EAAC,SAAS,EAAC,oBAAoB,YACpD,WAAW,GACN,IACI,EACd,KAAC,WAAW,IAAC,KAAK,EAAC,MAAM,EAAC,SAAS,EAAC,gBAAgB,iBAAa,mBAAmB,qBAEtE,EACd,MAAC,WAAW,IACV,KAAK,EAAC,SAAS,EACf,SAAS,EAAC,8DAA8D,iBAC5D,sBAAsB,wBAGlC,KAAC,KAAK,IAAC,OAAO,EAAC,SAAS,EAAC,SAAS,EAAC,oBAAoB,YACpD,YAAY,GACP,IACI,IACL,EACX,KAAC,aAAa,IAAC,MAAM,EAAE,QAAQ,CAAC,MAAM,EAAE,IAAI,EAAE,QAAQ,CAAC,IAAI,CAAC,QAAQ,EAAE,GAAI,IACtE,EAEN,KAAC,WAAW,IAAC,KAAK,EAAC,QAAQ,YACzB,KAAC,kBAAkB,IAAC,IAAI,EAAE,QAAQ,CAAC,IAAI,GAAI,GAC/B,EACd,KAAC,WAAW,IAAC,KAAK,EAAC,MAAM,YACvB,KAAC,gBAAgB,IAAC,MAAM,EAAE,QAAQ,CAAC,UAAU,GAAI,GACrC,EAEd,KAAC,WAAW,IAAC,KAAK,EAAC,SAAS,YAC1B,KAAC,mBAAmB,KAAG,GACX,IACT,EACP,KAAC,iBAAiB,KAAG,IACjB,EAEL,UAAU,IAAI,KAAC,aAAa,IAAC,QAAQ,EAAE,QAAQ,EAAE,OAAO,EAAE,GAAG,EAAE,CAAC,aAAa,CAAC,KAAK,CAAC,GAAI,IACrF,CACP,CAAA;AACH,CAAC,CAAC,CAAA"}
@@ -1,40 +0,0 @@
1
- import { jsx as _jsx } from "react/jsx-runtime";
2
- import { Button } from '@motiadev/ui';
3
- import { Loader2, Play } from 'lucide-react';
4
- import { memo, useState } from 'react';
5
- import { useShallow } from 'zustand/react/shallow';
6
- import { getBodySelector, getHeadersSelector, useEndpointConfiguration, } from '../hooks/use-endpoint-configuration';
7
- import { usePathUrl } from '../hooks/use-path-url';
8
- export const TriggerButton = memo(({ method, path }) => {
9
- const { setResponse } = useEndpointConfiguration();
10
- const headers = useEndpointConfiguration(useShallow(getHeadersSelector));
11
- const body = useEndpointConfiguration(useShallow(getBodySelector));
12
- const pathUrl = usePathUrl(path);
13
- const [isLoading, setIsLoading] = useState(false);
14
- const onClick = async () => {
15
- try {
16
- setIsLoading(true);
17
- const _headers = Object.values(headers)
18
- .filter((header) => header.active && header.name !== '' && header.value !== '')
19
- .reduce((acc, header) => {
20
- acc[header.name.toLowerCase()] = header.value;
21
- return acc;
22
- }, {});
23
- const startTime = Date.now();
24
- const response = await fetch(pathUrl, {
25
- method: method,
26
- headers: _headers,
27
- body: ['GET', 'DELETE', 'HEAD', 'OPTIONS'].includes(method) ? null : body,
28
- });
29
- setResponse(response, startTime);
30
- }
31
- catch (error) {
32
- console.error('Error triggering endpoint:', error);
33
- }
34
- finally {
35
- setIsLoading(false);
36
- }
37
- };
38
- return (_jsx(Button, { variant: "ghost", size: "icon", onClick: onClick, disabled: isLoading, "data-testid": "endpoint-play-button", children: isLoading ? _jsx(Loader2, { className: "animate-spin" }) : _jsx(Play, { className: "h-4 w-4" }) }));
39
- });
40
- //# sourceMappingURL=trigger-button.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"trigger-button.js","sourceRoot":"","sources":["../../src/play/trigger-button.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,cAAc,CAAA;AACrC,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,cAAc,CAAA;AAC5C,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAA;AACtC,OAAO,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAA;AAClD,OAAO,EAEL,eAAe,EACf,kBAAkB,EAClB,wBAAwB,GACzB,MAAM,qCAAqC,CAAA;AAC5C,OAAO,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAA;AAOlD,MAAM,CAAC,MAAM,aAAa,GAAG,IAAI,CAAC,CAAC,EAAE,MAAM,EAAE,IAAI,EAAsB,EAAE,EAAE;IACzE,MAAM,EAAE,WAAW,EAAE,GAAG,wBAAwB,EAAE,CAAA;IAClD,MAAM,OAAO,GAAG,wBAAwB,CAAC,UAAU,CAAC,kBAAkB,CAAC,CAAC,CAAA;IACxE,MAAM,IAAI,GAAG,wBAAwB,CAAC,UAAU,CAAC,eAAe,CAAC,CAAC,CAAA;IAClE,MAAM,OAAO,GAAG,UAAU,CAAC,IAAI,CAAC,CAAA;IAEhC,MAAM,CAAC,SAAS,EAAE,YAAY,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAA;IAEjD,MAAM,OAAO,GAAG,KAAK,IAAI,EAAE;QACzB,IAAI,CAAC;YACH,YAAY,CAAC,IAAI,CAAC,CAAA;YAElB,MAAM,QAAQ,GAAG,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC;iBACpC,MAAM,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,MAAM,IAAI,MAAM,CAAC,IAAI,KAAK,EAAE,IAAI,MAAM,CAAC,KAAK,KAAK,EAAE,CAAC;iBAC9E,MAAM,CACL,CAAC,GAAG,EAAE,MAAM,EAAE,EAAE;gBACd,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,GAAG,MAAM,CAAC,KAAK,CAAA;gBAC7C,OAAO,GAAG,CAAA;YACZ,CAAC,EACD,EAA4B,CAC7B,CAAA;YAEH,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,CAAA;YAC5B,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,OAAO,EAAE;gBACpC,MAAM,EAAE,MAAM;gBACd,OAAO,EAAE,QAAQ;gBACjB,IAAI,EAAE,CAAC,KAAK,EAAE,QAAQ,EAAE,MAAM,EAAE,SAAS,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI;aAC1E,CAAC,CAAA;YAEF,WAAW,CAAC,QAAQ,EAAE,SAAS,CAAC,CAAA;QAClC,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO,CAAC,KAAK,CAAC,4BAA4B,EAAE,KAAK,CAAC,CAAA;QACpD,CAAC;gBAAS,CAAC;YACT,YAAY,CAAC,KAAK,CAAC,CAAA;QACrB,CAAC;IACH,CAAC,CAAA;IAED,OAAO,CACL,KAAC,MAAM,IAAC,OAAO,EAAC,OAAO,EAAC,IAAI,EAAC,MAAM,EAAC,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,SAAS,iBAAc,sBAAsB,YAC1G,SAAS,CAAC,CAAC,CAAC,KAAC,OAAO,IAAC,SAAS,EAAC,cAAc,GAAG,CAAC,CAAC,CAAC,KAAC,IAAI,IAAC,SAAS,EAAC,SAAS,GAAG,GACzE,CACV,CAAA;AACH,CAAC,CAAC,CAAA"}
@@ -1,13 +0,0 @@
1
- import { jsx as _jsx } from "react/jsx-runtime";
2
- import { Panel } from '@motiadev/ui';
3
- import ReactJson from 'react18-json-view';
4
- import 'react18-json-view/src/dark.css';
5
- import 'react18-json-view/src/style.css';
6
- export const EndpointBodyPanel = ({ endpoint, panelName, value }) => {
7
- const shouldHaveBody = ['post', 'put', 'patch'].includes(endpoint.method.toLowerCase());
8
- if (!shouldHaveBody) {
9
- return null;
10
- }
11
- return (_jsx(Panel, { title: "Body", size: "sm", contentClassName: "p-0", "data-testid": `endpoint-body-panel__${panelName}`, children: _jsx(ReactJson, { src: value ? JSON.parse(value) : {}, theme: "default", enableClipboard: false, style: { backgroundColor: 'transparent' } }) }));
12
- };
13
- //# sourceMappingURL=spec-body-panel.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"spec-body-panel.js","sourceRoot":"","sources":["../../src/spec/spec-body-panel.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,cAAc,CAAA;AAEpC,OAAO,SAAS,MAAM,mBAAmB,CAAA;AACzC,OAAO,gCAAgC,CAAA;AACvC,OAAO,iCAAiC,CAAA;AASxC,MAAM,CAAC,MAAM,iBAAiB,GAAc,CAAC,EAAE,QAAQ,EAAE,SAAS,EAAE,KAAK,EAAE,EAAE,EAAE;IAC7E,MAAM,cAAc,GAAG,CAAC,MAAM,EAAE,KAAK,EAAE,OAAO,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,MAAM,CAAC,WAAW,EAAE,CAAC,CAAA;IAEvF,IAAI,CAAC,cAAc,EAAE,CAAC;QACpB,OAAO,IAAI,CAAA;IACb,CAAC;IAED,OAAO,CACL,KAAC,KAAK,IAAC,KAAK,EAAC,MAAM,EAAC,IAAI,EAAC,IAAI,EAAC,gBAAgB,EAAC,KAAK,iBAAc,wBAAwB,SAAS,EAAE,YACnG,KAAC,SAAS,IACR,GAAG,EAAE,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,EACnC,KAAK,EAAC,SAAS,EACf,eAAe,EAAE,KAAK,EACtB,KAAK,EAAE,EAAE,eAAe,EAAE,aAAa,EAAE,GACzC,GACI,CACT,CAAA;AACH,CAAC,CAAA"}
@@ -1,11 +0,0 @@
1
- import { jsx as _jsx } from "react/jsx-runtime";
2
- import { Panel } from '@motiadev/ui';
3
- import { usePathParams } from '../hooks/use-path-params';
4
- export const EndpointPathParamsPanel = ({ endpoint }) => {
5
- const pathParams = usePathParams(endpoint.path);
6
- if (!pathParams.length) {
7
- return null;
8
- }
9
- return (_jsx(Panel, { title: "Path params", size: "sm", variant: "default", children: _jsx("div", { className: "grid gap-3", style: { gridTemplateColumns: '1fr 2fr' }, children: pathParams.map((param) => (_jsx("div", { className: "font-bold leading-[36px] flex text-xs", children: param }, param))) }) }));
10
- };
11
- //# sourceMappingURL=spec-path-params-panel.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"spec-path-params-panel.js","sourceRoot":"","sources":["../../src/spec/spec-path-params-panel.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,cAAc,CAAA;AAEpC,OAAO,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAA;AAOxD,MAAM,CAAC,MAAM,uBAAuB,GAAc,CAAC,EAAE,QAAQ,EAAE,EAAE,EAAE;IACjE,MAAM,UAAU,GAAG,aAAa,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAA;IAE/C,IAAI,CAAC,UAAU,CAAC,MAAM,EAAE,CAAC;QACvB,OAAO,IAAI,CAAA;IACb,CAAC;IAED,OAAO,CACL,KAAC,KAAK,IAAC,KAAK,EAAC,aAAa,EAAC,IAAI,EAAC,IAAI,EAAC,OAAO,EAAC,SAAS,YACpD,cAAK,SAAS,EAAC,YAAY,EAAC,KAAK,EAAE,EAAE,mBAAmB,EAAE,SAAS,EAAE,YAClE,UAAU,CAAC,GAAG,CAAC,CAAC,KAAa,EAAE,EAAE,CAAC,CACjC,cAAiB,SAAS,EAAC,uCAAuC,YAC/D,KAAK,IADE,KAAK,CAET,CACP,CAAC,GACE,GACA,CACT,CAAA;AACH,CAAC,CAAA"}
@@ -1,10 +0,0 @@
1
- import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
- import { Panel } from '@motiadev/ui';
3
- import { Fragment } from 'react';
4
- export const EndpointQueryParamsPanel = ({ endpoint }) => {
5
- if (!endpoint.queryParams?.length) {
6
- return null;
7
- }
8
- return (_jsx(Panel, { title: "Query params", size: "sm", variant: "outlined", children: _jsx("div", { className: "grid gap-3", style: { gridTemplateColumns: '1fr 2fr', gridTemplateRows: '1fr 1fr' }, children: endpoint.queryParams.map((param) => (_jsxs(Fragment, { children: [_jsx("div", { className: "font-bold leading-[36px] flex text-xs", children: param.name }), _jsx("div", { className: "flex items-center text-xs ", children: _jsx("span", { children: param.description }) })] }, param.name))) }) }));
9
- };
10
- //# sourceMappingURL=spec-query-params-panel.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"spec-query-params-panel.js","sourceRoot":"","sources":["../../src/spec/spec-query-params-panel.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,cAAc,CAAA;AACpC,OAAO,EAAM,QAAQ,EAAE,MAAM,OAAO,CAAA;AAOpC,MAAM,CAAC,MAAM,wBAAwB,GAAc,CAAC,EAAE,QAAQ,EAAE,EAAE,EAAE;IAClE,IAAI,CAAC,QAAQ,CAAC,WAAW,EAAE,MAAM,EAAE,CAAC;QAClC,OAAO,IAAI,CAAA;IACb,CAAC;IAED,OAAO,CACL,KAAC,KAAK,IAAC,KAAK,EAAC,cAAc,EAAC,IAAI,EAAC,IAAI,EAAC,OAAO,EAAC,UAAU,YACtD,cAAK,SAAS,EAAC,YAAY,EAAC,KAAK,EAAE,EAAE,mBAAmB,EAAE,SAAS,EAAE,gBAAgB,EAAE,SAAS,EAAE,YAC/F,QAAQ,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,KAA4C,EAAE,EAAE,CAAC,CAC1E,MAAC,QAAQ,eACP,cAAK,SAAS,EAAC,uCAAuC,YAAE,KAAK,CAAC,IAAI,GAAO,EACzE,cAAK,SAAS,EAAC,4BAA4B,YACzC,yBAAO,KAAK,CAAC,WAAW,GAAQ,GAC5B,KAJO,KAAK,CAAC,IAAI,CAKd,CACZ,CAAC,GACE,GACA,CACT,CAAA;AACH,CAAC,CAAA"}
@@ -1,18 +0,0 @@
1
- import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
- import { Tabs, TabsContent, TabsList, TabsTrigger, useThemeStore } from '@motiadev/ui';
3
- import { useMemo } from 'react';
4
- import ReactJson from 'react18-json-view';
5
- import { convertJsonSchemaToJson } from '../hooks/utils';
6
- const EndpointResponseSchemaItem = ({ responseCode, bodySchema }) => {
7
- const theme = useThemeStore((store) => store.theme);
8
- const schema = useMemo(() => convertJsonSchemaToJson(bodySchema), [bodySchema]);
9
- const description = typeof bodySchema.description === 'string' ? bodySchema.description : '';
10
- return (_jsx(TabsContent, { value: responseCode, className: "border-t", children: _jsx("div", { className: "text-xs font-mono rounded-lg whitespace-pre-wrap", children: schema ? (_jsx(ReactJson, { src: schema, dark: theme === 'dark', enableClipboard: false, style: { backgroundColor: 'transparent' } })) : (_jsx("div", { className: "text-xs font-mono rounded-lg whitespace-pre-wrap p-4", children: description })) }) }, responseCode));
11
- };
12
- export const EndpointResponseSchema = ({ items }) => {
13
- if (items.length === 0) {
14
- return null;
15
- }
16
- return (_jsx("div", { className: "flex flex-col rounded-lg border", children: _jsxs(Tabs, { defaultValue: items[0].responseCode, children: [_jsx("div", { className: "flex items-center justify-between bg-card", children: _jsx(TabsList, { className: "bg-transparent p-0", children: items.map((item) => (_jsx(TabsTrigger, { value: item.responseCode, className: "text-xs font-bold cursor-pointer", children: item.responseCode }, item.responseCode))) }) }), items.map((props) => (_jsx(EndpointResponseSchemaItem, { ...props }, props.responseCode)))] }) }));
17
- };
18
- //# sourceMappingURL=spec-response-schema.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"spec-response-schema.js","sourceRoot":"","sources":["../../src/spec/spec-response-schema.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,IAAI,EAAE,WAAW,EAAE,QAAQ,EAAE,WAAW,EAAE,aAAa,EAAE,MAAM,cAAc,CAAA;AACtF,OAAO,EAAM,OAAO,EAAE,MAAM,OAAO,CAAA;AACnC,OAAO,SAAS,MAAM,mBAAmB,CAAA;AACzC,OAAO,EAAE,uBAAuB,EAAE,MAAM,gBAAgB,CAAA;AAYxD,MAAM,0BAA0B,GAA6B,CAAC,EAAE,YAAY,EAAE,UAAU,EAAE,EAAE,EAAE;IAC5F,MAAM,KAAK,GAAG,aAAa,CAAC,CAAC,KAAwB,EAAE,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,CAAA;IACtE,MAAM,MAAM,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC,uBAAuB,CAAC,UAAU,CAAC,EAAE,CAAC,UAAU,CAAC,CAAC,CAAA;IAC/E,MAAM,WAAW,GAAG,OAAO,UAAU,CAAC,WAAW,KAAK,QAAQ,CAAC,CAAC,CAAC,UAAU,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,CAAA;IAE5F,OAAO,CACL,KAAC,WAAW,IAAC,KAAK,EAAE,YAAY,EAAqB,SAAS,EAAC,UAAU,YACvE,cAAK,SAAS,EAAC,kDAAkD,YAC9D,MAAM,CAAC,CAAC,CAAC,CACR,KAAC,SAAS,IACR,GAAG,EAAE,MAAM,EACX,IAAI,EAAE,KAAK,KAAK,MAAM,EACtB,eAAe,EAAE,KAAK,EACtB,KAAK,EAAE,EAAE,eAAe,EAAE,aAAa,EAAE,GACzC,CACH,CAAC,CAAC,CAAC,CACF,cAAK,SAAS,EAAC,sDAAsD,YAAE,WAAW,GAAO,CAC1F,GACG,IAZ+B,YAAY,CAarC,CACf,CAAA;AACH,CAAC,CAAA;AAED,MAAM,CAAC,MAAM,sBAAsB,GAA8B,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE;IAC7E,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACvB,OAAO,IAAI,CAAA;IACb,CAAC;IAED,OAAO,CACL,cAAK,SAAS,EAAC,iCAAiC,YAC9C,MAAC,IAAI,IAAC,YAAY,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,YAAY,aACvC,cAAK,SAAS,EAAC,2CAA2C,YACxD,KAAC,QAAQ,IAAC,SAAS,EAAC,oBAAoB,YACrC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CACnB,KAAC,WAAW,IACV,KAAK,EAAE,IAAI,CAAC,YAAY,EAExB,SAAS,EAAC,kCAAkC,YAE3C,IAAI,CAAC,YAAY,IAHb,IAAI,CAAC,YAAY,CAIV,CACf,CAAC,GACO,GACP,EAEL,KAAK,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CACpB,KAAC,0BAA0B,OAA8B,KAAK,IAA7B,KAAK,CAAC,YAAY,CAAe,CACnE,CAAC,IACG,GACH,CACP,CAAA;AACH,CAAC,CAAA"}
@@ -1,22 +0,0 @@
1
- import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
- import { Sidebar } from '@motiadev/ui';
3
- import { X } from 'lucide-react';
4
- import { EndpointPath } from '../components/endpoint-path';
5
- import { useJsonSchemaToJson } from '../hooks/use-json-schema-to-json';
6
- import { EndpointBodyPanel } from './spec-body-panel';
7
- import { EndpointPathParamsPanel } from './spec-path-params-panel';
8
- import { EndpointQueryParamsPanel } from './spec-query-params-panel';
9
- import { EndpointResponseSchema } from './spec-response-schema';
10
- export const SpecSidePanel = ({ endpoint, onClose }) => {
11
- const { body } = useJsonSchemaToJson(endpoint.bodySchema);
12
- return (_jsxs(Sidebar, { initialWidth: 600, subtitle: endpoint.description, title: _jsx(EndpointPath, { method: endpoint.method, path: endpoint.path }), onClose: onClose, actions: [
13
- {
14
- icon: _jsx(X, { className: "cursor-pointer w-4 h-4", onClick: onClose }),
15
- onClick: onClose,
16
- },
17
- ], children: [_jsx(EndpointPathParamsPanel, { endpoint: endpoint }), _jsx(EndpointQueryParamsPanel, { endpoint: endpoint }), _jsx(EndpointBodyPanel, { endpoint: endpoint, panelName: "details", value: body }), _jsx(EndpointResponseSchema, { items: Object.entries(endpoint?.responseSchema ?? {}).map(([status, schema]) => ({
18
- responseCode: status,
19
- bodySchema: schema,
20
- })) })] }));
21
- };
22
- //# sourceMappingURL=spec-side-panel.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"spec-side-panel.js","sourceRoot":"","sources":["../../src/spec/spec-side-panel.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAA;AACtC,OAAO,EAAE,CAAC,EAAE,MAAM,cAAc,CAAA;AAEhC,OAAO,EAAE,YAAY,EAAE,MAAM,6BAA6B,CAAA;AAC1D,OAAO,EAAE,mBAAmB,EAAE,MAAM,kCAAkC,CAAA;AAEtE,OAAO,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAA;AACrD,OAAO,EAAE,uBAAuB,EAAE,MAAM,0BAA0B,CAAA;AAClE,OAAO,EAAE,wBAAwB,EAAE,MAAM,2BAA2B,CAAA;AACpE,OAAO,EAAE,sBAAsB,EAAE,MAAM,wBAAwB,CAAA;AAI/D,MAAM,CAAC,MAAM,aAAa,GAAc,CAAC,EAAE,QAAQ,EAAE,OAAO,EAAE,EAAE,EAAE;IAChE,MAAM,EAAE,IAAI,EAAE,GAAG,mBAAmB,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAA;IAEzD,OAAO,CACL,MAAC,OAAO,IACN,YAAY,EAAE,GAAG,EACjB,QAAQ,EAAE,QAAQ,CAAC,WAAW,EAC9B,KAAK,EAAE,KAAC,YAAY,IAAC,MAAM,EAAE,QAAQ,CAAC,MAAM,EAAE,IAAI,EAAE,QAAQ,CAAC,IAAI,GAAI,EACrE,OAAO,EAAE,OAAO,EAChB,OAAO,EAAE;YACP;gBACE,IAAI,EAAE,KAAC,CAAC,IAAC,SAAS,EAAC,wBAAwB,EAAC,OAAO,EAAE,OAAO,GAAI;gBAChE,OAAO,EAAE,OAAO;aACjB;SACF,aAED,KAAC,uBAAuB,IAAC,QAAQ,EAAE,QAAQ,GAAI,EAC/C,KAAC,wBAAwB,IAAC,QAAQ,EAAE,QAAQ,GAAI,EAChD,KAAC,iBAAiB,IAAC,QAAQ,EAAE,QAAQ,EAAE,SAAS,EAAC,SAAS,EAAC,KAAK,EAAE,IAAI,GAAI,EAC1E,KAAC,sBAAsB,IACrB,KAAK,EAAE,MAAM,CAAC,OAAO,CAAC,QAAQ,EAAE,cAAc,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM,EAAE,MAAM,CAAC,EAAE,EAAE,CAAC,CAAC;oBAC/E,YAAY,EAAE,MAAM;oBACpB,UAAU,EAAE,MAAM;iBACnB,CAAC,CAAC,GACH,IACM,CACX,CAAA;AACH,CAAC,CAAA"}