zudoku 0.26.1 → 0.27.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/app/main.d.ts +1 -1
- package/dist/app/main.js +19 -7
- package/dist/app/main.js.map +1 -1
- package/dist/config/loader.js +1 -1
- package/dist/config/loader.js.map +1 -1
- package/dist/config/validators/InputSidebarSchema.d.ts +2 -2
- package/dist/config/validators/common.d.ts +67 -0
- package/dist/config/validators/common.js +5 -0
- package/dist/config/validators/common.js.map +1 -1
- package/dist/config/validators/validate.d.ts +29 -0
- package/dist/lib/components/AnchorLink.js +5 -2
- package/dist/lib/components/AnchorLink.js.map +1 -1
- package/dist/lib/components/Header.js +1 -1
- package/dist/lib/components/Header.js.map +1 -1
- package/dist/lib/components/Heading.d.ts +1 -1
- package/dist/lib/components/Markdown.d.ts +2 -2
- package/dist/lib/components/Markdown.js +3 -1
- package/dist/lib/components/Markdown.js.map +1 -1
- package/dist/lib/components/StatusPage.d.ts +7 -0
- package/dist/lib/components/StatusPage.js +71 -0
- package/dist/lib/components/StatusPage.js.map +1 -0
- package/dist/lib/components/SyntaxHighlight.d.ts +2 -1
- package/dist/lib/components/SyntaxHighlight.js +2 -2
- package/dist/lib/components/SyntaxHighlight.js.map +1 -1
- package/dist/lib/components/ThemeSwitch.js +4 -4
- package/dist/lib/components/ThemeSwitch.js.map +1 -1
- package/dist/lib/components/cache.d.ts +6 -0
- package/dist/lib/components/cache.js +13 -0
- package/dist/lib/components/cache.js.map +1 -0
- package/dist/lib/components/context/ViewportAnchorContext.js +16 -4
- package/dist/lib/components/context/ViewportAnchorContext.js.map +1 -1
- package/dist/lib/components/context/ZudokuContext.js +2 -1
- package/dist/lib/components/context/ZudokuContext.js.map +1 -1
- package/dist/lib/components/index.d.ts +9 -2
- package/dist/lib/components/index.js +3 -0
- package/dist/lib/components/index.js.map +1 -1
- package/dist/lib/core/RouteGuard.d.ts +1 -0
- package/dist/lib/core/RouteGuard.js +28 -0
- package/dist/lib/core/RouteGuard.js.map +1 -0
- package/dist/lib/core/ZudokuContext.d.ts +4 -2
- package/dist/lib/core/ZudokuContext.js +9 -7
- package/dist/lib/core/ZudokuContext.js.map +1 -1
- package/dist/lib/oas/graphql/circular.d.ts +3 -0
- package/dist/lib/oas/graphql/circular.js +27 -0
- package/dist/lib/oas/graphql/circular.js.map +1 -0
- package/dist/lib/oas/graphql/index.js +5 -6
- package/dist/lib/oas/graphql/index.js.map +1 -1
- package/dist/lib/oas/parser/dereference/index.d.ts +0 -1
- package/dist/lib/oas/parser/dereference/index.js +1 -1
- package/dist/lib/oas/parser/dereference/index.js.map +1 -1
- package/dist/lib/plugins/openapi/OperationListItem.js +1 -1
- package/dist/lib/plugins/openapi/OperationListItem.js.map +1 -1
- package/dist/lib/plugins/openapi/ParameterListItem.js +1 -1
- package/dist/lib/plugins/openapi/ParameterListItem.js.map +1 -1
- package/dist/lib/plugins/openapi/Sidecar.js +2 -2
- package/dist/lib/plugins/openapi/Sidecar.js.map +1 -1
- package/dist/lib/plugins/openapi/index.js +4 -11
- package/dist/lib/plugins/openapi/index.js.map +1 -1
- package/dist/lib/plugins/openapi/interfaces.d.ts +7 -2
- package/dist/lib/plugins/openapi/playground/ExamplesDropdown.js +5 -5
- package/dist/lib/plugins/openapi/playground/ExamplesDropdown.js.map +1 -1
- package/dist/lib/plugins/openapi/playground/Headers.js +17 -16
- package/dist/lib/plugins/openapi/playground/Headers.js.map +1 -1
- package/dist/lib/plugins/openapi/playground/ParamsGrid.d.ts +5 -0
- package/dist/lib/plugins/openapi/playground/ParamsGrid.js +4 -0
- package/dist/lib/plugins/openapi/playground/ParamsGrid.js.map +1 -0
- package/dist/lib/plugins/openapi/playground/PathParams.js +4 -12
- package/dist/lib/plugins/openapi/playground/PathParams.js.map +1 -1
- package/dist/lib/plugins/openapi/playground/Playground.d.ts +13 -0
- package/dist/lib/plugins/openapi/playground/Playground.js +19 -31
- package/dist/lib/plugins/openapi/playground/Playground.js.map +1 -1
- package/dist/lib/plugins/openapi/playground/PlaygroundDialog.js +1 -1
- package/dist/lib/plugins/openapi/playground/PlaygroundDialog.js.map +1 -1
- package/dist/lib/plugins/openapi/playground/QueryParams.js +4 -3
- package/dist/lib/plugins/openapi/playground/QueryParams.js.map +1 -1
- package/dist/lib/plugins/openapi/playground/SubmitButton.d.ts +7 -0
- package/dist/lib/plugins/openapi/playground/SubmitButton.js +22 -0
- package/dist/lib/plugins/openapi/playground/SubmitButton.js.map +1 -0
- package/dist/lib/plugins/openapi/playground/result-panel/RequestTab.d.ts +7 -0
- package/dist/lib/plugins/openapi/playground/result-panel/RequestTab.js +11 -0
- package/dist/lib/plugins/openapi/playground/result-panel/RequestTab.js.map +1 -0
- package/dist/lib/plugins/openapi/playground/result-panel/ResponseTab.d.ts +8 -0
- package/dist/lib/plugins/openapi/playground/result-panel/ResponseTab.js +95 -0
- package/dist/lib/plugins/openapi/playground/result-panel/ResponseTab.js.map +1 -0
- package/dist/lib/plugins/openapi/playground/result-panel/ResultPanel.d.ts +7 -0
- package/dist/lib/plugins/openapi/playground/result-panel/ResultPanel.js +16 -0
- package/dist/lib/plugins/openapi/playground/result-panel/ResultPanel.js.map +1 -0
- package/dist/lib/plugins/openapi/playground/result-panel/convertToTypes.d.ts +10 -0
- package/dist/lib/plugins/openapi/playground/result-panel/convertToTypes.js +32 -0
- package/dist/lib/plugins/openapi/playground/result-panel/convertToTypes.js.map +1 -0
- package/dist/lib/plugins/openapi/playground/result-panel/convertToTypes.test.d.ts +1 -0
- package/dist/lib/plugins/openapi/playground/result-panel/convertToTypes.test.js +56 -0
- package/dist/lib/plugins/openapi/playground/result-panel/convertToTypes.test.js.map +1 -0
- package/dist/lib/plugins/openapi/schema/SchemaComponents.js +1 -1
- package/dist/lib/plugins/openapi/schema/SchemaComponents.js.map +1 -1
- package/dist/lib/ui/Command.js +1 -1
- package/dist/lib/ui/Command.js.map +1 -1
- package/dist/lib/ui/Select.js +2 -2
- package/dist/lib/ui/Select.js.map +1 -1
- package/dist/lib/util/MdxComponents.js +2 -2
- package/dist/lib/util/MdxComponents.js.map +1 -1
- package/dist/lib/util/useScrollToAnchor.d.ts +1 -0
- package/dist/lib/util/useScrollToAnchor.js +26 -15
- package/dist/lib/util/useScrollToAnchor.js.map +1 -1
- package/dist/vite/plugin-api.js +9 -3
- package/dist/vite/plugin-api.js.map +1 -1
- package/dist/vite/prerender.js +1 -0
- package/dist/vite/prerender.js.map +1 -1
- package/dist/zuplo/enrich-with-zuplo.js +1 -1
- package/dist/zuplo/enrich-with-zuplo.js.map +1 -1
- package/dist/zuplo/with-zuplo.d.ts +2 -1
- package/dist/zuplo/with-zuplo.js +3 -1
- package/dist/zuplo/with-zuplo.js.map +1 -1
- package/lib/{AuthenticationPlugin-C9SwOxkc.js → AuthenticationPlugin-CO_YCd2x.js} +3 -3
- package/lib/{AuthenticationPlugin-C9SwOxkc.js.map → AuthenticationPlugin-CO_YCd2x.js.map} +1 -1
- package/lib/{Markdown-DFN6p0J-.js → Markdown-B8o9Qz4q.js} +1197 -1186
- package/lib/{Markdown-DFN6p0J-.js.map → Markdown-B8o9Qz4q.js.map} +1 -1
- package/lib/{MdxPage-D9c4z09Q.js → MdxPage-BxRt3Ly7.js} +5 -5
- package/lib/{MdxPage-D9c4z09Q.js.map → MdxPage-BxRt3Ly7.js.map} +1 -1
- package/lib/OperationList-DH-zIgtq.js +5160 -0
- package/lib/OperationList-DH-zIgtq.js.map +1 -0
- package/lib/{Route-VdmEyOD0.js → Route-DJ0ZlVq1.js} +3 -3
- package/lib/{Route-VdmEyOD0.js.map → Route-DJ0ZlVq1.js.map} +1 -1
- package/lib/{Select-D3O7wISy.js → Select-B7UXR0SB.js} +61 -61
- package/lib/Select-B7UXR0SB.js.map +1 -0
- package/lib/{SlotletProvider-_3zzX_g_.js → SlotletProvider-CtIp8rP3.js} +4 -4
- package/lib/{SlotletProvider-_3zzX_g_.js.map → SlotletProvider-CtIp8rP3.js.map} +1 -1
- package/lib/{SyntaxHighlight-CJCSPG1F.js → SyntaxHighlight-C1w1QPdY.js} +300 -295
- package/lib/{SyntaxHighlight-CJCSPG1F.js.map → SyntaxHighlight-C1w1QPdY.js.map} +1 -1
- package/lib/{ZudokuContext-DeQZEp-x.js → ZudokuContext-8jts0fF3.js} +259 -248
- package/lib/ZudokuContext-8jts0fF3.js.map +1 -0
- package/lib/{chunk-SYFQ2XB5-BF5IDYrB.js → chunk-SYFQ2XB5-BPvC-soB.js} +5 -5
- package/lib/{chunk-SYFQ2XB5-BF5IDYrB.js.map → chunk-SYFQ2XB5-BPvC-soB.js.map} +1 -1
- package/lib/circular-Dgpd6AN-.js +15397 -0
- package/lib/circular-Dgpd6AN-.js.map +1 -0
- package/lib/{createServer-BcaswoFO.js → createServer-BV0tHzLK.js} +3450 -5577
- package/lib/createServer-BV0tHzLK.js.map +1 -0
- package/lib/{hook-BRQEDRbn.js → hook-BG02esyv.js} +2 -2
- package/lib/{hook-BRQEDRbn.js.map → hook-BG02esyv.js.map} +1 -1
- package/lib/index-DmqsUPcm.js +1915 -0
- package/lib/index-DmqsUPcm.js.map +1 -0
- package/lib/ui/Command.js +27 -27
- package/lib/ui/Command.js.map +1 -1
- package/lib/ui/Select.js +2 -2
- package/lib/ui/Select.js.map +1 -1
- package/lib/{useExposedProps-CetwhZpP.js → useExposedProps-BLKFBylA.js} +2 -2
- package/lib/{useExposedProps-CetwhZpP.js.map → useExposedProps-BLKFBylA.js.map} +1 -1
- package/lib/useScrollToAnchor-Bl6mz9_x.js +288 -0
- package/lib/useScrollToAnchor-Bl6mz9_x.js.map +1 -0
- package/lib/zudoku.auth-clerk.js +1 -1
- package/lib/zudoku.auth-openid.js +3 -3
- package/lib/zudoku.components.js +753 -991
- package/lib/zudoku.components.js.map +1 -1
- package/lib/zudoku.plugin-api-catalog.js +3 -3
- package/lib/zudoku.plugin-api-keys.js +5 -5
- package/lib/zudoku.plugin-custom-pages.js +2 -2
- package/lib/zudoku.plugin-markdown.js +1 -1
- package/lib/zudoku.plugin-openapi.js +4 -4
- package/lib/zudoku.plugin-redirect.js +1 -1
- package/package.json +2 -2
- package/src/app/main.tsx +26 -7
- package/src/lib/components/AnchorLink.tsx +5 -2
- package/src/lib/components/Header.tsx +1 -1
- package/src/lib/components/Markdown.tsx +14 -15
- package/src/lib/components/StatusPage.tsx +91 -0
- package/src/lib/components/SyntaxHighlight.tsx +14 -0
- package/src/lib/components/ThemeSwitch.tsx +14 -15
- package/src/lib/components/cache.ts +15 -0
- package/src/lib/components/context/ViewportAnchorContext.tsx +20 -6
- package/src/lib/components/context/ZudokuContext.ts +3 -1
- package/src/lib/components/index.ts +7 -0
- package/src/lib/core/RouteGuard.tsx +35 -0
- package/src/lib/core/ZudokuContext.ts +9 -8
- package/src/lib/oas/graphql/circular.ts +29 -0
- package/src/lib/oas/graphql/index.ts +9 -9
- package/src/lib/oas/parser/dereference/index.ts +1 -2
- package/src/lib/plugins/openapi/OperationListItem.tsx +0 -2
- package/src/lib/plugins/openapi/ParameterListItem.tsx +1 -0
- package/src/lib/plugins/openapi/Sidecar.tsx +3 -2
- package/src/lib/plugins/openapi/index.tsx +9 -15
- package/src/lib/plugins/openapi/interfaces.ts +10 -2
- package/src/lib/plugins/openapi/playground/ExamplesDropdown.tsx +30 -27
- package/src/lib/plugins/openapi/playground/Headers.tsx +65 -65
- package/src/lib/plugins/openapi/playground/ParamsGrid.tsx +8 -0
- package/src/lib/plugins/openapi/playground/PathParams.tsx +34 -74
- package/src/lib/plugins/openapi/playground/Playground.tsx +64 -116
- package/src/lib/plugins/openapi/playground/PlaygroundDialog.tsx +1 -1
- package/src/lib/plugins/openapi/playground/QueryParams.tsx +46 -45
- package/src/lib/plugins/openapi/playground/SubmitButton.tsx +75 -0
- package/src/lib/plugins/openapi/playground/result-panel/RequestTab.tsx +73 -0
- package/src/lib/plugins/openapi/playground/result-panel/ResponseTab.tsx +210 -0
- package/src/lib/plugins/openapi/playground/result-panel/ResultPanel.tsx +101 -0
- package/src/lib/plugins/openapi/playground/result-panel/convertToTypes.test.ts +64 -0
- package/src/lib/plugins/openapi/playground/result-panel/convertToTypes.ts +36 -0
- package/src/lib/plugins/openapi/schema/SchemaComponents.tsx +1 -1
- package/src/lib/ui/Command.tsx +1 -1
- package/src/lib/ui/Select.tsx +1 -1
- package/src/lib/util/MdxComponents.tsx +2 -1
- package/src/lib/util/useScrollToAnchor.ts +32 -15
- package/dist/lib/plugins/openapi/playground/ResponseTab.d.ts +0 -4
- package/dist/lib/plugins/openapi/playground/ResponseTab.js +0 -42
- package/dist/lib/plugins/openapi/playground/ResponseTab.js.map +0 -1
- package/lib/AnchorLink-bObQitZv.js +0 -34
- package/lib/AnchorLink-bObQitZv.js.map +0 -1
- package/lib/OperationList-DGJWDx1G.js +0 -5148
- package/lib/OperationList-DGJWDx1G.js.map +0 -1
- package/lib/Select-D3O7wISy.js.map +0 -1
- package/lib/ZudokuContext-DeQZEp-x.js.map +0 -1
- package/lib/createServer-BcaswoFO.js.map +0 -1
- package/lib/index-CXRrqOIl.js +0 -1750
- package/lib/index-CXRrqOIl.js.map +0 -1
- package/lib/index-TaRXY2w1.js +0 -43
- package/lib/index-TaRXY2w1.js.map +0 -1
- package/src/lib/plugins/openapi/playground/ResponseTab.tsx +0 -76
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Markdown.js","sourceRoot":"","sources":["../../../src/lib/components/Markdown.tsx"],"names":[],"mappings":";AAAA,OAAO,SAAS,MAAM,YAAY,CAAC;AACnC,OAAO,SAAS,MAAM,YAAY,CAAC;AACnC,OAAO,EAAE,KAAK,EAAE,MAAM,kBAAkB,CAAC;AACzC,OAAO,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AACzD,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAEnD,mDAAmD;AACnD,8DAA8D;AAC9D,MAAM,qBAAqB,GAAG,GAAG,EAAE,CAAC,CAAC,IAAS,EAAE,EAAE;IAChD,KAAK,CAAC,IAAI,EAAE,SAAS,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,EAAE;QAC9C,IAAI,IAAI,CAAC,OAAO,KAAK,MAAM,EAAE,CAAC;YAC5B,IAAI,CAAC,UAAU,CAAC,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,KAAK,KAAK,CAAC,CAAC;QAC7D,CAAC;IACH,CAAC,CAAC,CAAC;AACL,CAAC,CAAC;AAEF,MAAM,aAAa,GAAG,CAAC,SAAS,CAAC,CAAC;AAClC,MAAM,aAAa,GAAG,CAAC,qBAAqB,EAAE,SAAS,CAAC,CAAC;AAEzD,8CAA8C;AAC9C,MAAM,CAAC,MAAM,YAAY,GAAG,uCAAuC,CAAC;AAEpE,MAAM,CAAC,MAAM,QAAQ,GAAG,CAAC,
|
|
1
|
+
{"version":3,"file":"Markdown.js","sourceRoot":"","sources":["../../../src/lib/components/Markdown.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,OAAO,CAAC;AAC7B,OAAO,SAAS,MAAM,YAAY,CAAC;AACnC,OAAO,SAAS,MAAM,YAAY,CAAC;AACnC,OAAO,EAAE,KAAK,EAAE,MAAM,kBAAkB,CAAC;AACzC,OAAO,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AACzD,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAEnD,mDAAmD;AACnD,8DAA8D;AAC9D,MAAM,qBAAqB,GAAG,GAAG,EAAE,CAAC,CAAC,IAAS,EAAE,EAAE;IAChD,KAAK,CAAC,IAAI,EAAE,SAAS,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,EAAE;QAC9C,IAAI,IAAI,CAAC,OAAO,KAAK,MAAM,EAAE,CAAC;YAC5B,IAAI,CAAC,UAAU,CAAC,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,KAAK,KAAK,CAAC,CAAC;QAC7D,CAAC;IACH,CAAC,CAAC,CAAC;AACL,CAAC,CAAC;AAEF,MAAM,aAAa,GAAG,CAAC,SAAS,CAAC,CAAC;AAClC,MAAM,aAAa,GAAG,CAAC,qBAAqB,EAAE,SAAS,CAAC,CAAC;AAEzD,8CAA8C;AAC9C,MAAM,CAAC,MAAM,YAAY,GAAG,uCAAuC,CAAC;AAEpE,MAAM,CAAC,MAAM,QAAQ,GAAG,IAAI,CAC1B,CAAC,EAAE,OAAO,EAAE,SAAS,EAA2C,EAAE,EAAE,CAAC,CACnE,KAAC,aAAa,IACZ,aAAa,EAAE,aAAa,EAC5B,aAAa,EAAE,aAAa,EAC5B,UAAU,EAAE,aAAa,EACzB,SAAS,EAAE,SAAS,YAEnB,OAAO,GACM,CACjB,CACF,CAAC;AAEF,QAAQ,CAAC,WAAW,GAAG,UAAU,CAAC"}
|
|
@@ -0,0 +1,71 @@
|
|
|
1
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
2
|
+
import { ErrorPage } from "./ErrorPage.js";
|
|
3
|
+
const getDefaultContent = (statusCode) => {
|
|
4
|
+
switch (statusCode) {
|
|
5
|
+
case 400:
|
|
6
|
+
return {
|
|
7
|
+
title: "Bad Request",
|
|
8
|
+
message: "The request could not be understood by the server due to malformed syntax.",
|
|
9
|
+
};
|
|
10
|
+
case 403:
|
|
11
|
+
return {
|
|
12
|
+
title: "Forbidden",
|
|
13
|
+
message: "You don't have permission to access this resource.",
|
|
14
|
+
};
|
|
15
|
+
case 404:
|
|
16
|
+
return {
|
|
17
|
+
title: "Not Found",
|
|
18
|
+
message: "The requested resource could not be found.",
|
|
19
|
+
};
|
|
20
|
+
case 405:
|
|
21
|
+
return {
|
|
22
|
+
title: "Method Not Allowed",
|
|
23
|
+
message: "The request method is not supported for the requested resource.",
|
|
24
|
+
};
|
|
25
|
+
case 414:
|
|
26
|
+
return {
|
|
27
|
+
title: "Request URI Too Large",
|
|
28
|
+
message: "The request URI is too large.",
|
|
29
|
+
};
|
|
30
|
+
case 416:
|
|
31
|
+
return {
|
|
32
|
+
title: "Range Not Satisfiable",
|
|
33
|
+
message: "The server cannot satisfy the request range.",
|
|
34
|
+
};
|
|
35
|
+
case 500:
|
|
36
|
+
return {
|
|
37
|
+
title: "Internal Server Error",
|
|
38
|
+
message: "An unexpected error occurred while processing your request.",
|
|
39
|
+
};
|
|
40
|
+
case 501:
|
|
41
|
+
return {
|
|
42
|
+
title: "Not Implemented",
|
|
43
|
+
message: "The server does not support the functionality required to fulfill the request.",
|
|
44
|
+
};
|
|
45
|
+
case 502:
|
|
46
|
+
return {
|
|
47
|
+
title: "Bad Gateway",
|
|
48
|
+
message: "The server received an invalid response from the upstream server.",
|
|
49
|
+
};
|
|
50
|
+
case 503:
|
|
51
|
+
return {
|
|
52
|
+
title: "Service Unavailable",
|
|
53
|
+
message: "The server is temporarily unable to handle the request.",
|
|
54
|
+
};
|
|
55
|
+
case 504:
|
|
56
|
+
return {
|
|
57
|
+
title: "Gateway Timeout",
|
|
58
|
+
message: "The server did not receive a timely response from the upstream server.",
|
|
59
|
+
};
|
|
60
|
+
default:
|
|
61
|
+
return {
|
|
62
|
+
title: "An error occurred",
|
|
63
|
+
message: "Something went wrong while processing your request.",
|
|
64
|
+
};
|
|
65
|
+
}
|
|
66
|
+
};
|
|
67
|
+
export const StatusPage = ({ statusCode, message }) => {
|
|
68
|
+
const defaultContent = getDefaultContent(statusCode);
|
|
69
|
+
return (_jsx(ErrorPage, { title: defaultContent.title, message: message ?? defaultContent.message, category: statusCode }));
|
|
70
|
+
};
|
|
71
|
+
//# sourceMappingURL=StatusPage.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"StatusPage.js","sourceRoot":"","sources":["../../../src/lib/components/StatusPage.tsx"],"names":[],"mappings":";AACA,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAO3C,MAAM,iBAAiB,GAAG,CACxB,UAAkB,EACkB,EAAE;IACtC,QAAQ,UAAU,EAAE,CAAC;QACnB,KAAK,GAAG;YACN,OAAO;gBACL,KAAK,EAAE,aAAa;gBACpB,OAAO,EACL,4EAA4E;aAC/E,CAAC;QACJ,KAAK,GAAG;YACN,OAAO;gBACL,KAAK,EAAE,WAAW;gBAClB,OAAO,EAAE,oDAAoD;aAC9D,CAAC;QACJ,KAAK,GAAG;YACN,OAAO;gBACL,KAAK,EAAE,WAAW;gBAClB,OAAO,EAAE,4CAA4C;aACtD,CAAC;QACJ,KAAK,GAAG;YACN,OAAO;gBACL,KAAK,EAAE,oBAAoB;gBAC3B,OAAO,EACL,iEAAiE;aACpE,CAAC;QACJ,KAAK,GAAG;YACN,OAAO;gBACL,KAAK,EAAE,uBAAuB;gBAC9B,OAAO,EAAE,+BAA+B;aACzC,CAAC;QACJ,KAAK,GAAG;YACN,OAAO;gBACL,KAAK,EAAE,uBAAuB;gBAC9B,OAAO,EAAE,8CAA8C;aACxD,CAAC;QACJ,KAAK,GAAG;YACN,OAAO;gBACL,KAAK,EAAE,uBAAuB;gBAC9B,OAAO,EAAE,6DAA6D;aACvE,CAAC;QACJ,KAAK,GAAG;YACN,OAAO;gBACL,KAAK,EAAE,iBAAiB;gBACxB,OAAO,EACL,gFAAgF;aACnF,CAAC;QACJ,KAAK,GAAG;YACN,OAAO;gBACL,KAAK,EAAE,aAAa;gBACpB,OAAO,EACL,mEAAmE;aACtE,CAAC;QACJ,KAAK,GAAG;YACN,OAAO;gBACL,KAAK,EAAE,qBAAqB;gBAC5B,OAAO,EAAE,yDAAyD;aACnE,CAAC;QACJ,KAAK,GAAG;YACN,OAAO;gBACL,KAAK,EAAE,iBAAiB;gBACxB,OAAO,EACL,wEAAwE;aAC3E,CAAC;QACJ;YACE,OAAO;gBACL,KAAK,EAAE,mBAAmB;gBAC1B,OAAO,EAAE,qDAAqD;aAC/D,CAAC;IACN,CAAC;AACH,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,UAAU,GAAG,CAAC,EAAE,UAAU,EAAE,OAAO,EAAmB,EAAE,EAAE;IACrE,MAAM,cAAc,GAAG,iBAAiB,CAAC,UAAU,CAAC,CAAC;IAErD,OAAO,CACL,KAAC,SAAS,IACR,KAAK,EAAE,cAAc,CAAC,KAAK,EAC3B,OAAO,EAAE,OAAO,IAAI,cAAc,CAAC,OAAO,EAC1C,QAAQ,EAAE,UAAU,GACpB,CACH,CAAC;AACJ,CAAC,CAAC"}
|
|
@@ -6,6 +6,7 @@ type SyntaxHighlightProps = {
|
|
|
6
6
|
copyable?: boolean;
|
|
7
7
|
showLanguageIndicator?: boolean;
|
|
8
8
|
language?: string;
|
|
9
|
+
title?: string;
|
|
9
10
|
} & Omit<HighlightProps, "children" | "language">;
|
|
10
|
-
export declare const SyntaxHighlight: ({ copyable, language, ...props }: SyntaxHighlightProps) => import("react/jsx-runtime").JSX.Element | null;
|
|
11
|
+
export declare const SyntaxHighlight: ({ copyable, language, title, ...props }: SyntaxHighlightProps) => import("react/jsx-runtime").JSX.Element | null;
|
|
11
12
|
export {};
|
|
@@ -29,7 +29,7 @@ import { ClientOnly } from "./ClientOnly.js";
|
|
|
29
29
|
const remapLang = {
|
|
30
30
|
mdx: "md",
|
|
31
31
|
};
|
|
32
|
-
export const SyntaxHighlight = ({ copyable = true, language = "plain", ...props }) => {
|
|
32
|
+
export const SyntaxHighlight = ({ copyable = true, language = "plain", title, ...props }) => {
|
|
33
33
|
const { resolvedTheme } = useTheme();
|
|
34
34
|
const [isCopied, setIsCopied] = useState(false);
|
|
35
35
|
if (!props.code) {
|
|
@@ -38,7 +38,7 @@ export const SyntaxHighlight = ({ copyable = true, language = "plain", ...props
|
|
|
38
38
|
const highlightTheme = resolvedTheme === "dark" ? themes.vsDark : themes.github;
|
|
39
39
|
// hardcoded values from the themes to avoid color flash in SSR
|
|
40
40
|
const themeColorClasses = "bg-[#f6f8fa] text-[#393a34] dark:bg-[#1e1e1e] dark:text-[#9cdcfe]";
|
|
41
|
-
return (_jsx(ClientOnly, { fallback: _jsxs("div", { className: "relative group", children: [_jsx("pre", { className: cn("relative scrollbar overflow-x-auto", props.className, props.noBackground ? "!bg-transparent" : themeColorClasses, props.wrapLines && "whitespace-pre-wrap break-words"), children: props.code }), props.showLanguageIndicator && (_jsx("span", { className: "absolute top-1.5 right-3 text-[11px] font-mono text-muted-foreground transition group-hover:opacity-0", children: language }))] }), children: _jsx(Highlight, { theme: highlightTheme, language: remapLang[language] ?? language, ...props, children: ({ className, style, tokens, getLineProps, getTokenProps }) => (_jsxs("div", { className: "relative group", children: [_jsx("pre", { className: cn("relative scrollbar overflow-x-auto", className, props.className, props.noBackground && "!bg-transparent", props.wrapLines && "whitespace-pre-wrap break-words"), style: style, children: tokens.map((line, i) => (
|
|
41
|
+
return (_jsx(ClientOnly, { fallback: _jsxs("div", { className: "relative group", children: [title && (_jsx("div", { className: "text-xs text-muted-foreground absolute top-2 font-mono border-b w-full pb-2 px-4 ", children: title })), _jsx("pre", { className: cn("relative scrollbar overflow-x-auto", props.className, props.noBackground ? "!bg-transparent" : themeColorClasses, props.wrapLines && "whitespace-pre-wrap break-words", title && "pt-10"), children: props.code }), props.showLanguageIndicator && (_jsx("span", { className: "absolute top-1.5 right-3 text-[11px] font-mono text-muted-foreground transition group-hover:opacity-0", children: language }))] }), children: _jsx(Highlight, { theme: highlightTheme, language: remapLang[language] ?? language, ...props, children: ({ className, style, tokens, getLineProps, getTokenProps }) => (_jsxs("div", { className: "relative group", children: [title && (_jsx("div", { className: "text-xs text-muted-foreground absolute top-2 font-mono border-b w-full pb-2 px-4 ", children: title })), _jsx("pre", { className: cn("relative scrollbar overflow-x-auto", className, props.className, props.noBackground && "!bg-transparent", props.wrapLines && "whitespace-pre-wrap break-words", title && "pt-10"), style: style, children: tokens.map((line, i) => (
|
|
42
42
|
// eslint-disable-next-line react/no-array-index-key
|
|
43
43
|
_jsx("div", { ...getLineProps({ line }), children: line.map((token, key) => (
|
|
44
44
|
// eslint-disable-next-line react/no-array-index-key
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SyntaxHighlight.js","sourceRoot":"","sources":["../../../src/lib/components/SyntaxHighlight.tsx"],"names":[],"mappings":";AAAA,OAAO,EACL,SAAS,EACT,KAAK,EACL,MAAM,GAEP,MAAM,sBAAsB,CAAC;AAE9B,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,cAAc,CAAC;AAEnD,UAAU,CAAC,KAAK,GAAG,KAAK,CAAC;AACzB,mCAAmC;AACnC,KAAK,MAAM,CAAC,sCAAsC,CAAC,CAAC;AACpD,mCAAmC;AACnC,KAAK,MAAM,CAAC,sCAAsC,CAAC,CAAC;AACpD,mCAAmC;AACnC,KAAK,MAAM,CAAC,oCAAoC,CAAC,CAAC;AAClD,mCAAmC;AACnC,KAAK,MAAM,CAAC,sCAAsC,CAAC,CAAC;AACpD,mCAAmC;AACnC,KAAK,MAAM,CAAC,sCAAsC,CAAC,CAAC;AACpD,mCAAmC;AACnC,KAAK,MAAM,CAAC,wCAAwC,CAAC,CAAC;AACtD,mCAAmC;AACnC,KAAK,MAAM,CAAC,4CAA4C,CAAC,CAAC;AAC1D,mCAAmC;AACnC,KAAK,MAAM,CAAC,0CAA0C,CAAC,CAAC;AACxD,mCAAmC;AACnC,KAAK,MAAM,CAAC,4CAA4C,CAAC,CAAC;AAC1D,mCAAmC;AACnC,KAAK,MAAM,CAAC,4CAA4C,CAAC,CAAC;AAE1D,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AACvC,OAAO,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AACjC,OAAO,EAAE,EAAE,EAAE,MAAM,eAAe,CAAC;AACnC,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;
|
|
1
|
+
{"version":3,"file":"SyntaxHighlight.js","sourceRoot":"","sources":["../../../src/lib/components/SyntaxHighlight.tsx"],"names":[],"mappings":"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"}
|
|
@@ -2,12 +2,12 @@ import { jsx as _jsx } from "react/jsx-runtime";
|
|
|
2
2
|
import { MoonStarIcon, SunIcon } from "lucide-react";
|
|
3
3
|
import { useTheme } from "next-themes";
|
|
4
4
|
import { Button } from "zudoku/ui/Button.js";
|
|
5
|
-
import {
|
|
5
|
+
import { cn } from "../util/cn.js";
|
|
6
6
|
export const ThemeSwitch = () => {
|
|
7
7
|
const { resolvedTheme, setTheme } = useTheme();
|
|
8
8
|
const ThemeIcon = resolvedTheme === "dark" ? MoonStarIcon : SunIcon;
|
|
9
|
-
return (_jsx(
|
|
10
|
-
|
|
11
|
-
|
|
9
|
+
return (_jsx(Button, { variant: "ghost", size: "icon", "aria-label": resolvedTheme === "dark"
|
|
10
|
+
? "Switch to light mode"
|
|
11
|
+
: "Switch to dark mode", className: cn(resolvedTheme ? "opacity-100" : "opacity-0"), onClick: () => setTheme(resolvedTheme === "dark" ? "light" : "dark"), children: _jsx(ThemeIcon, { size: 18 }) }));
|
|
12
12
|
};
|
|
13
13
|
//# sourceMappingURL=ThemeSwitch.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ThemeSwitch.js","sourceRoot":"","sources":["../../../src/lib/components/ThemeSwitch.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,YAAY,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AACrD,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AACvC,OAAO,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAC;AAC7C,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"ThemeSwitch.js","sourceRoot":"","sources":["../../../src/lib/components/ThemeSwitch.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,YAAY,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AACrD,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AACvC,OAAO,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAC;AAC7C,OAAO,EAAE,EAAE,EAAE,MAAM,eAAe,CAAC;AAEnC,MAAM,CAAC,MAAM,WAAW,GAAG,GAAG,EAAE;IAC9B,MAAM,EAAE,aAAa,EAAE,QAAQ,EAAE,GAAG,QAAQ,EAAE,CAAC;IAC/C,MAAM,SAAS,GAAG,aAAa,KAAK,MAAM,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,OAAO,CAAC;IAEpE,OAAO,CACL,KAAC,MAAM,IACL,OAAO,EAAC,OAAO,EACf,IAAI,EAAC,MAAM,gBAET,aAAa,KAAK,MAAM;YACtB,CAAC,CAAC,sBAAsB;YACxB,CAAC,CAAC,qBAAqB,EAE3B,SAAS,EAAE,EAAE,CAAC,aAAa,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,WAAW,CAAC,EAC1D,OAAO,EAAE,GAAG,EAAE,CAAC,QAAQ,CAAC,aAAa,KAAK,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,YAEpE,KAAC,SAAS,IAAC,IAAI,EAAE,EAAE,GAAI,GAChB,CACV,CAAC;AACJ,CAAC,CAAC"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { useQueryClient } from "@tanstack/react-query";
|
|
2
|
+
export const CACHE_KEYS = Object.freeze({
|
|
3
|
+
API_IDENTITIES: ["api-identities"],
|
|
4
|
+
});
|
|
5
|
+
export const useCache = () => {
|
|
6
|
+
const queryClient = useQueryClient();
|
|
7
|
+
return {
|
|
8
|
+
invalidateCache: async (key) => {
|
|
9
|
+
await queryClient.invalidateQueries({ queryKey: CACHE_KEYS[key] });
|
|
10
|
+
},
|
|
11
|
+
};
|
|
12
|
+
};
|
|
13
|
+
//# sourceMappingURL=cache.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cache.js","sourceRoot":"","sources":["../../../src/lib/components/cache.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAEvD,MAAM,CAAC,MAAM,UAAU,GAAG,MAAM,CAAC,MAAM,CAAC;IACtC,cAAc,EAAE,CAAC,gBAAgB,CAAC;CACnC,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,QAAQ,GAAG,GAAG,EAAE;IAC3B,MAAM,WAAW,GAAG,cAAc,EAAE,CAAC;IAErC,OAAO;QACL,eAAe,EAAE,KAAK,EAAE,GAA4B,EAAE,EAAE;YACtD,MAAM,WAAW,CAAC,iBAAiB,CAAC,EAAE,QAAQ,EAAE,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QACrE,CAAC;KACF,CAAC;AACJ,CAAC,CAAC"}
|
|
@@ -29,6 +29,7 @@ export const ViewportAnchorProvider = ({ children, }) => {
|
|
|
29
29
|
const [activeAnchor, setActiveAnchor] = useState("");
|
|
30
30
|
const observerRef = useRef(null);
|
|
31
31
|
const registeredElements = useRef(new Set());
|
|
32
|
+
const pendingElements = useRef(new Set());
|
|
32
33
|
useEffect(() => {
|
|
33
34
|
observerRef.current = new IntersectionObserver((entries) => {
|
|
34
35
|
for (const entry of entries) {
|
|
@@ -42,6 +43,12 @@ export const ViewportAnchorProvider = ({ children, }) => {
|
|
|
42
43
|
rootMargin: "115px 0px -80% 0px",
|
|
43
44
|
threshold: 0.75,
|
|
44
45
|
});
|
|
46
|
+
// Process any elements that tried to register before observer was ready
|
|
47
|
+
pendingElements.current.forEach((element) => {
|
|
48
|
+
registeredElements.current.add(element);
|
|
49
|
+
observerRef.current?.observe(element);
|
|
50
|
+
});
|
|
51
|
+
pendingElements.current.clear();
|
|
45
52
|
return () => observerRef.current?.disconnect();
|
|
46
53
|
}, []);
|
|
47
54
|
useEffect(() => {
|
|
@@ -70,20 +77,25 @@ export const ViewportAnchorProvider = ({ children, }) => {
|
|
|
70
77
|
const observeFns = useMemo(() => {
|
|
71
78
|
return {
|
|
72
79
|
observe: (element) => {
|
|
73
|
-
if (!element
|
|
80
|
+
if (!element)
|
|
81
|
+
return;
|
|
82
|
+
if (!observerRef.current) {
|
|
83
|
+
pendingElements.current.add(element);
|
|
74
84
|
return;
|
|
85
|
+
}
|
|
75
86
|
registeredElements.current.add(element);
|
|
76
87
|
observerRef.current.observe(element);
|
|
77
88
|
},
|
|
78
89
|
unobserve: (element) => {
|
|
79
|
-
if (!element
|
|
90
|
+
if (!element)
|
|
80
91
|
return;
|
|
92
|
+
pendingElements.current.delete(element);
|
|
81
93
|
registeredElements.current.delete(element);
|
|
82
|
-
observerRef.current
|
|
94
|
+
observerRef.current?.unobserve(element);
|
|
83
95
|
},
|
|
84
96
|
};
|
|
85
97
|
}, []);
|
|
86
98
|
const value = useMemo(() => ({ activeAnchor, setActiveAnchor, ...observeFns }), [activeAnchor, setActiveAnchor, observeFns]);
|
|
87
|
-
return (_jsx(ViewportAnchorContext
|
|
99
|
+
return (_jsx(ViewportAnchorContext, { value: value, children: children }));
|
|
88
100
|
};
|
|
89
101
|
//# sourceMappingURL=ViewportAnchorContext.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ViewportAnchorContext.js","sourceRoot":"","sources":["../../../../src/lib/components/context/ViewportAnchorContext.tsx"],"names":[],"mappings":";AAAA,OAAO,EAEL,aAAa,EACb,WAAW,EACX,UAAU,EACV,SAAS,EACT,OAAO,EACP,MAAM,EACN,QAAQ,GACT,MAAM,OAAO,CAAC;AASf,MAAM,qBAAqB,GAAG,aAAa,CACzC,SAAS,CACV,CAAC;AAEF,MAAM,CAAC,MAAM,iBAAiB,GAAG,GAAG,EAAE;IACpC,MAAM,OAAO,GAAG,UAAU,CAAC,qBAAqB,CAAC,CAAC;IAElD,IAAI,CAAC,OAAO,EAAE,CAAC;QACb,MAAM,IAAI,KAAK,CACb,+DAA+D,CAChE,CAAC;IACJ,CAAC;IAED,OAAO,OAAO,CAAC;AACjB,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,wBAAwB,GAAG,GAAG,EAAE;IAC3C,MAAM,UAAU,GAAG,MAAM,CAAqB,IAAI,CAAC,CAAC;IAEpD,MAAM,EAAE,OAAO,EAAE,SAAS,EAAE,GAAG,iBAAiB,EAAE,CAAC;IAEnD,SAAS,CAAC,GAAG,EAAE;QACb,MAAM,OAAO,GAAG,UAAU,CAAC,OAAO,CAAC;QAEnC,IAAI,CAAC,OAAO;YAAE,OAAO;QAErB,OAAO,CAAC,OAAO,CAAC,CAAC;QAEjB,OAAO,GAAG,EAAE,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC;IAClC,CAAC,EAAE,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC,CAAC;IAEzB,MAAM,MAAM,GAAG,WAAW,CAAC,CAAC,EAAsB,EAAE,EAAE;QACpD,IAAI,CAAC,EAAE;YAAE,OAAO;QAChB,UAAU,CAAC,OAAO,GAAG,EAAE,CAAC;IAC1B,CAAC,EAAE,EAAE,CAAC,CAAC;IAEP,OAAO,EAAE,GAAG,EAAE,MAAM,EAAE,CAAC;AACzB,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,sBAAsB,GAAG,CAAC,EACrC,QAAQ,GAGT,EAAE,EAAE;IACH,MAAM,CAAC,YAAY,EAAE,eAAe,CAAC,GAAG,QAAQ,CAAC,EAAE,CAAC,CAAC;IACrD,MAAM,WAAW,GAAG,MAAM,CAA8B,IAAI,CAAC,CAAC;IAC9D,MAAM,kBAAkB,GAAG,MAAM,CAAC,IAAI,GAAG,EAAe,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"ViewportAnchorContext.js","sourceRoot":"","sources":["../../../../src/lib/components/context/ViewportAnchorContext.tsx"],"names":[],"mappings":"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"}
|
|
@@ -2,6 +2,7 @@ import { useQuery, useSuspenseQuery } from "@tanstack/react-query";
|
|
|
2
2
|
import { createContext, useContext } from "react";
|
|
3
3
|
import { matchPath, useLocation } from "react-router";
|
|
4
4
|
import { joinPath } from "../../util/joinPath.js";
|
|
5
|
+
import { CACHE_KEYS } from "../cache.js";
|
|
5
6
|
import { traverseSidebar } from "../navigation/utils.js";
|
|
6
7
|
export const ZudokuReactContext = createContext(undefined);
|
|
7
8
|
export const useZudoku = () => {
|
|
@@ -15,7 +16,7 @@ export const useApiIdentities = () => {
|
|
|
15
16
|
const { getApiIdentities } = useZudoku();
|
|
16
17
|
return useQuery({
|
|
17
18
|
queryFn: getApiIdentities,
|
|
18
|
-
queryKey: [
|
|
19
|
+
queryKey: [CACHE_KEYS.API_IDENTITIES],
|
|
19
20
|
});
|
|
20
21
|
};
|
|
21
22
|
export const useCurrentNavigation = () => {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ZudokuContext.js","sourceRoot":"","sources":["../../../../src/lib/components/context/ZudokuContext.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AACnE,OAAO,EAAE,aAAa,EAAE,UAAU,EAAE,MAAM,OAAO,CAAC;AAClD,OAAO,EAAE,SAAS,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAEtD,OAAO,EAAE,QAAQ,EAAE,MAAM,wBAAwB,CAAC;AAClD,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AAEzD,MAAM,CAAC,MAAM,kBAAkB,GAAG,aAAa,CAC7C,SAAS,CACV,CAAC;AAEF,MAAM,CAAC,MAAM,SAAS,GAAG,GAAG,EAAE;IAC5B,MAAM,OAAO,GAAG,UAAU,CAAC,kBAAkB,CAAC,CAAC;IAE/C,IAAI,CAAC,OAAO,EAAE,CAAC;QACb,MAAM,IAAI,KAAK,CAAC,iDAAiD,CAAC,CAAC;IACrE,CAAC;IAED,OAAO,OAAO,CAAC;AACjB,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,gBAAgB,GAAG,GAAG,EAAE;IACnC,MAAM,EAAE,gBAAgB,EAAE,GAAG,SAAS,EAAE,CAAC;
|
|
1
|
+
{"version":3,"file":"ZudokuContext.js","sourceRoot":"","sources":["../../../../src/lib/components/context/ZudokuContext.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AACnE,OAAO,EAAE,aAAa,EAAE,UAAU,EAAE,MAAM,OAAO,CAAC;AAClD,OAAO,EAAE,SAAS,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAEtD,OAAO,EAAE,QAAQ,EAAE,MAAM,wBAAwB,CAAC;AAClD,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AAEzD,MAAM,CAAC,MAAM,kBAAkB,GAAG,aAAa,CAC7C,SAAS,CACV,CAAC;AAEF,MAAM,CAAC,MAAM,SAAS,GAAG,GAAG,EAAE;IAC5B,MAAM,OAAO,GAAG,UAAU,CAAC,kBAAkB,CAAC,CAAC;IAE/C,IAAI,CAAC,OAAO,EAAE,CAAC;QACb,MAAM,IAAI,KAAK,CAAC,iDAAiD,CAAC,CAAC;IACrE,CAAC;IAED,OAAO,OAAO,CAAC;AACjB,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,gBAAgB,GAAG,GAAG,EAAE;IACnC,MAAM,EAAE,gBAAgB,EAAE,GAAG,SAAS,EAAE,CAAC;IAEzC,OAAO,QAAQ,CAAC;QACd,OAAO,EAAE,gBAAgB;QACzB,QAAQ,EAAE,CAAC,UAAU,CAAC,cAAc,CAAC;KACtC,CAAC,CAAC;AACL,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,oBAAoB,GAAG,GAAG,EAAE;IACvC,MAAM,EAAE,gBAAgB,EAAE,QAAQ,EAAE,aAAa,EAAE,GAAG,SAAS,EAAE,CAAC;IAClE,MAAM,QAAQ,GAAG,WAAW,EAAE,CAAC;IAE/B,MAAM,kBAAkB,GAAG,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,OAAO,CAAC,EAAE,EAAE;QACvE,OAAO,eAAe,CAAC,OAAO,EAAE,CAAC,IAAI,EAAE,EAAE;YACvC,MAAM,MAAM,GACV,IAAI,CAAC,IAAI,KAAK,KAAK;gBACjB,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC;gBACnB,CAAC,CAAC,IAAI,CAAC,IAAI,KAAK,UAAU,IAAI,IAAI,CAAC,IAAI;oBACrC,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;oBACxB,CAAC,CAAC,SAAS,CAAC;YAElB,IAAI,MAAM,KAAK,QAAQ,CAAC,QAAQ,EAAE,CAAC;gBACjC,OAAO,IAAI,CAAC;YACd,CAAC;QACH,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IACH,MAAM,iBAAiB,GACrB,aAAa,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,kBAAkB,EAAE,CAAC,CAAC,CAAC,CAAC;QAC3D,aAAa,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,EAAE,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAC;IAEtE,MAAM,EAAE,IAAI,EAAE,GAAG,gBAAgB,CAAC;QAChC,OAAO,EAAE,GAAG,EAAE,CAAC,gBAAgB,CAAC,QAAQ,CAAC,QAAQ,CAAC;QAClD,QAAQ,EAAE,CAAC,gBAAgB,EAAE,QAAQ,CAAC,QAAQ,CAAC;KAChD,CAAC,CAAC;IAEH,OAAO;QACL,OAAO,EAAE,CAAC,GAAG,CAAC,kBAAkB,CAAC,CAAC,CAAC,kBAAkB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,GAAG,IAAI,CAAC;QACxE,UAAU,EAAE,iBAAiB;KAC9B,CAAC;AACJ,CAAC,CAAC"}
|
|
@@ -2,6 +2,7 @@ import { useMDXComponents as useMDXComponentsImport } from "@mdx-js/react";
|
|
|
2
2
|
import { Helmet } from "@zudoku/react-helmet-async";
|
|
3
3
|
import { RouterError as RouterErrorImport } from "../errors/RouterError.js";
|
|
4
4
|
import { ServerError as ServerErrorImport } from "../errors/ServerError.js";
|
|
5
|
+
import { CACHE_KEYS as CACHE_KEYS_IMPORT } from "./cache.js";
|
|
5
6
|
export declare const useMDXComponents: typeof useMDXComponentsImport;
|
|
6
7
|
export declare const Layout: ({ children }: {
|
|
7
8
|
children?: import("react").ReactNode;
|
|
@@ -29,6 +30,12 @@ export declare const useAuth: () => {
|
|
|
29
30
|
providerData: unknown;
|
|
30
31
|
isAuthEnabled: boolean;
|
|
31
32
|
};
|
|
33
|
+
export declare const useCache: () => {
|
|
34
|
+
invalidateCache: (key: keyof typeof CACHE_KEYS_IMPORT) => Promise<void>;
|
|
35
|
+
};
|
|
36
|
+
export declare const CACHE_KEYS: Readonly<{
|
|
37
|
+
API_IDENTITIES: string[];
|
|
38
|
+
}>;
|
|
32
39
|
export declare const Zudoku: {
|
|
33
40
|
(props: import("../core/ZudokuContext.js").ZudokuContextOptions): import("react/jsx-runtime").JSX.Element;
|
|
34
41
|
displayName: string;
|
|
@@ -39,10 +46,10 @@ export declare const Callout: ({ type, children, title, className }: {
|
|
|
39
46
|
children: import("react").ReactNode;
|
|
40
47
|
className?: string;
|
|
41
48
|
}) => import("react/jsx-runtime").JSX.Element;
|
|
42
|
-
export declare const Markdown: ({ content, className
|
|
49
|
+
export declare const Markdown: import("react").MemoExoticComponent<({ content, className }: {
|
|
43
50
|
content: string;
|
|
44
51
|
className?: string;
|
|
45
|
-
}) => import("react/jsx-runtime").JSX.Element
|
|
52
|
+
}) => import("react/jsx-runtime").JSX.Element>;
|
|
46
53
|
export declare const Spinner: ({ size }: {
|
|
47
54
|
size?: number;
|
|
48
55
|
}) => import("react/jsx-runtime").JSX.Element;
|
|
@@ -12,6 +12,7 @@ import { Layout as LayoutImport } from "./Layout.js";
|
|
|
12
12
|
import { Markdown as MarkdownImport } from "./Markdown.js";
|
|
13
13
|
import { Spinner as SpinnerImport } from "./Spinner.js";
|
|
14
14
|
import { Zudoku as ZudokuImport } from "./Zudoku.js";
|
|
15
|
+
import { CACHE_KEYS as CACHE_KEYS_IMPORT, useCache as useCacheImport, } from "./cache.js";
|
|
15
16
|
import { useZudoku as useZudokuImport } from "./context/ZudokuContext.js";
|
|
16
17
|
export const useMDXComponents = /*@__PURE__*/ useMDXComponentsImport;
|
|
17
18
|
export const Layout = /*@__PURE__*/ LayoutImport;
|
|
@@ -22,6 +23,8 @@ export const BootstrapStatic = /*@__PURE__*/ BootstrapStaticImport;
|
|
|
22
23
|
export const Head = /*@__PURE__*/ Helmet;
|
|
23
24
|
export const useZudoku = /*@__PURE__*/ useZudokuImport;
|
|
24
25
|
export const useAuth = /*@__PURE__*/ useAuthImport;
|
|
26
|
+
export const useCache = /*@__PURE__*/ useCacheImport;
|
|
27
|
+
export const CACHE_KEYS = /*@__PURE__*/ CACHE_KEYS_IMPORT;
|
|
25
28
|
export const Zudoku = /*@__PURE__*/ ZudokuImport;
|
|
26
29
|
export const Callout = /*@__PURE__*/ CalloutImport;
|
|
27
30
|
export const Markdown = /*@__PURE__*/ MarkdownImport;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/lib/components/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,IAAI,sBAAsB,EAAE,MAAM,eAAe,CAAC;AAC3E,OAAO,EAAE,MAAM,EAAE,MAAM,4BAA4B,CAAC;AACpD,OAAO,EAAE,IAAI,IAAI,UAAU,EAAE,MAAM,cAAc,CAAC;AAClD,OAAO,EAAE,OAAO,IAAI,aAAa,EAAE,MAAM,2BAA2B,CAAC;AACrE,OAAO,EAAE,WAAW,IAAI,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAC5E,OAAO,EAAE,WAAW,IAAI,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAC5E,OAAO,EAAE,MAAM,IAAI,YAAY,EAAE,MAAM,iBAAiB,CAAC;AACzD,OAAO,EAAE,OAAO,IAAI,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAC5D,OAAO,EACL,SAAS,IAAI,eAAe,EAC5B,eAAe,IAAI,qBAAqB,GACzC,MAAM,gBAAgB,CAAC;AACxB,OAAO,EAAE,UAAU,IAAI,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AACjE,OAAO,EAAE,MAAM,IAAI,YAAY,EAAE,MAAM,aAAa,CAAC;AACrD,OAAO,EAAE,QAAQ,IAAI,cAAc,EAAE,MAAM,eAAe,CAAC;AAC3D,OAAO,EAAE,OAAO,IAAI,aAAa,EAAE,MAAM,cAAc,CAAC;AACxD,OAAO,EAAE,MAAM,IAAI,YAAY,EAAE,MAAM,aAAa,CAAC;AACrD,OAAO,EAAE,SAAS,IAAI,eAAe,EAAE,MAAM,4BAA4B,CAAC;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/lib/components/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,IAAI,sBAAsB,EAAE,MAAM,eAAe,CAAC;AAC3E,OAAO,EAAE,MAAM,EAAE,MAAM,4BAA4B,CAAC;AACpD,OAAO,EAAE,IAAI,IAAI,UAAU,EAAE,MAAM,cAAc,CAAC;AAClD,OAAO,EAAE,OAAO,IAAI,aAAa,EAAE,MAAM,2BAA2B,CAAC;AACrE,OAAO,EAAE,WAAW,IAAI,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAC5E,OAAO,EAAE,WAAW,IAAI,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAC5E,OAAO,EAAE,MAAM,IAAI,YAAY,EAAE,MAAM,iBAAiB,CAAC;AACzD,OAAO,EAAE,OAAO,IAAI,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAC5D,OAAO,EACL,SAAS,IAAI,eAAe,EAC5B,eAAe,IAAI,qBAAqB,GACzC,MAAM,gBAAgB,CAAC;AACxB,OAAO,EAAE,UAAU,IAAI,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AACjE,OAAO,EAAE,MAAM,IAAI,YAAY,EAAE,MAAM,aAAa,CAAC;AACrD,OAAO,EAAE,QAAQ,IAAI,cAAc,EAAE,MAAM,eAAe,CAAC;AAC3D,OAAO,EAAE,OAAO,IAAI,aAAa,EAAE,MAAM,cAAc,CAAC;AACxD,OAAO,EAAE,MAAM,IAAI,YAAY,EAAE,MAAM,aAAa,CAAC;AACrD,OAAO,EACL,UAAU,IAAI,iBAAiB,EAC/B,QAAQ,IAAI,cAAc,GAC3B,MAAM,YAAY,CAAC;AACpB,OAAO,EAAE,SAAS,IAAI,eAAe,EAAE,MAAM,4BAA4B,CAAC;AAE1E,MAAM,CAAC,MAAM,gBAAgB,GAAG,aAAa,CAAC,sBAAsB,CAAC;AACrE,MAAM,CAAC,MAAM,MAAM,GAAG,aAAa,CAAC,YAAY,CAAC;AACjD,MAAM,CAAC,MAAM,WAAW,GAAG,aAAa,CAAC,iBAAiB,CAAC;AAC3D,MAAM,CAAC,MAAM,WAAW,GAAG,aAAa,CAAC,iBAAiB,CAAC;AAC3D,MAAM,CAAC,MAAM,SAAS,GAAG,aAAa,CAAC,eAAe,CAAC;AACvD,MAAM,CAAC,MAAM,eAAe,GAAG,aAAa,CAAC,qBAAqB,CAAC;AAEnE,MAAM,CAAC,MAAM,IAAI,GAAG,aAAa,CAAC,MAAM,CAAC;AAEzC,MAAM,CAAC,MAAM,SAAS,GAAG,aAAa,CAAC,eAAe,CAAC;AACvD,MAAM,CAAC,MAAM,OAAO,GAAG,aAAa,CAAC,aAAa,CAAC;AACnD,MAAM,CAAC,MAAM,QAAQ,GAAG,aAAa,CAAC,cAAc,CAAC;AACrD,MAAM,CAAC,MAAM,UAAU,GAAG,aAAa,CAAC,iBAAiB,CAAC;AAC1D,MAAM,CAAC,MAAM,MAAM,GAAG,aAAa,CAAC,YAAY,CAAC;AAEjD,MAAM,CAAC,MAAM,OAAO,GAAG,aAAa,CAAC,aAAa,CAAC;AACnD,MAAM,CAAC,MAAM,QAAQ,GAAG,aAAa,CAAC,cAAc,CAAC;AACrD,MAAM,CAAC,MAAM,OAAO,GAAG,aAAa,CAAC,aAAa,CAAC;AACnD,MAAM,CAAC,MAAM,UAAU,GAAG,aAAa,CAAC,gBAAgB,CAAC;AACzD,MAAM,CAAC,MAAM,MAAM,GAAG,aAAa,CAAC,YAAY,CAAC;AACjD,MAAM,CAAC,MAAM,IAAI,GAAG,aAAa,CAAC,UAAU,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare const RouteGuard: () => import("react/jsx-runtime").JSX.Element | null;
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
2
|
+
import { useEffect } from "react";
|
|
3
|
+
import { matchPath, Outlet, useLocation } from "react-router";
|
|
4
|
+
import { useAuth } from "../authentication/hook.js";
|
|
5
|
+
import { useZudoku } from "../components/context/ZudokuContext.js";
|
|
6
|
+
import { ZudokuError } from "../util/invariant.js";
|
|
7
|
+
export const RouteGuard = () => {
|
|
8
|
+
const auth = useAuth();
|
|
9
|
+
const zudoku = useZudoku();
|
|
10
|
+
const location = useLocation();
|
|
11
|
+
const isProtected = zudoku.options.protectedRoutes?.some((path) => matchPath({ path, end: true }, location.pathname));
|
|
12
|
+
useEffect(() => {
|
|
13
|
+
if (isProtected && !auth.isAuthenticated) {
|
|
14
|
+
void zudoku.authentication?.signIn();
|
|
15
|
+
}
|
|
16
|
+
}, [isProtected, auth.isAuthenticated, zudoku.authentication]);
|
|
17
|
+
if (isProtected && !auth.isAuthenticated) {
|
|
18
|
+
return null;
|
|
19
|
+
}
|
|
20
|
+
if (isProtected && !auth.isAuthEnabled) {
|
|
21
|
+
throw new ZudokuError("Authentication is not enabled", {
|
|
22
|
+
title: "Authentication is not enabled",
|
|
23
|
+
developerHint: "To use protectedRoutes you need authentication to be enabled",
|
|
24
|
+
});
|
|
25
|
+
}
|
|
26
|
+
return _jsx(Outlet, {});
|
|
27
|
+
};
|
|
28
|
+
//# sourceMappingURL=RouteGuard.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"RouteGuard.js","sourceRoot":"","sources":["../../../src/lib/core/RouteGuard.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAClC,OAAO,EAAE,SAAS,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAC9D,OAAO,EAAE,OAAO,EAAE,MAAM,2BAA2B,CAAC;AACpD,OAAO,EAAE,SAAS,EAAE,MAAM,wCAAwC,CAAC;AACnE,OAAO,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AAEnD,MAAM,CAAC,MAAM,UAAU,GAAG,GAAG,EAAE;IAC7B,MAAM,IAAI,GAAG,OAAO,EAAE,CAAC;IACvB,MAAM,MAAM,GAAG,SAAS,EAAE,CAAC;IAC3B,MAAM,QAAQ,GAAG,WAAW,EAAE,CAAC;IAE/B,MAAM,WAAW,GAAG,MAAM,CAAC,OAAO,CAAC,eAAe,EAAE,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAChE,SAAS,CAAC,EAAE,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,EAAE,QAAQ,CAAC,QAAQ,CAAC,CAClD,CAAC;IAEF,SAAS,CAAC,GAAG,EAAE;QACb,IAAI,WAAW,IAAI,CAAC,IAAI,CAAC,eAAe,EAAE,CAAC;YACzC,KAAK,MAAM,CAAC,cAAc,EAAE,MAAM,EAAE,CAAC;QACvC,CAAC;IACH,CAAC,EAAE,CAAC,WAAW,EAAE,IAAI,CAAC,eAAe,EAAE,MAAM,CAAC,cAAc,CAAC,CAAC,CAAC;IAE/D,IAAI,WAAW,IAAI,CAAC,IAAI,CAAC,eAAe,EAAE,CAAC;QACzC,OAAO,IAAI,CAAC;IACd,CAAC;IAED,IAAI,WAAW,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE,CAAC;QACvC,MAAM,IAAI,WAAW,CAAC,+BAA+B,EAAE;YACrD,KAAK,EAAE,+BAA+B;YACtC,aAAa,EACX,8DAA8D;SACjE,CAAC,CAAC;IACL,CAAC;IAED,OAAO,KAAC,MAAM,KAAG,CAAC;AACpB,CAAC,CAAC"}
|
|
@@ -53,16 +53,18 @@ export type ZudokuContextOptions = {
|
|
|
53
53
|
components?: MdxComponentsType;
|
|
54
54
|
};
|
|
55
55
|
overrides?: ComponentsContextType;
|
|
56
|
+
protectedRoutes?: string[];
|
|
56
57
|
};
|
|
57
58
|
export declare class ZudokuContext {
|
|
59
|
+
readonly options: ZudokuContextOptions;
|
|
58
60
|
plugins: NonNullable<ZudokuContextOptions["plugins"]>;
|
|
59
61
|
sidebars: SidebarConfig;
|
|
60
62
|
topNavigation: NonNullable<ZudokuContextOptions["topNavigation"]>;
|
|
61
63
|
meta: ZudokuContextOptions["metadata"];
|
|
62
64
|
page: ZudokuContextOptions["page"];
|
|
63
65
|
authentication?: ZudokuContextOptions["authentication"];
|
|
64
|
-
private navigationPlugins;
|
|
65
|
-
constructor(
|
|
66
|
+
private readonly navigationPlugins;
|
|
67
|
+
constructor(options: ZudokuContextOptions);
|
|
66
68
|
initialize: () => Promise<void>;
|
|
67
69
|
getApiIdentities: () => Promise<ApiIdentity[]>;
|
|
68
70
|
getPluginSidebar: (path: string) => Promise<import("../../config/validators/SidebarSchema.js").SidebarItem[]>;
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { joinPath } from "../util/joinPath.js";
|
|
2
2
|
import { isApiIdentityPlugin, isNavigationPlugin, needsInitialization, } from "./plugins.js";
|
|
3
3
|
export class ZudokuContext {
|
|
4
|
+
options;
|
|
4
5
|
plugins;
|
|
5
6
|
sidebars;
|
|
6
7
|
topNavigation;
|
|
@@ -8,14 +9,15 @@ export class ZudokuContext {
|
|
|
8
9
|
page;
|
|
9
10
|
authentication;
|
|
10
11
|
navigationPlugins;
|
|
11
|
-
constructor(
|
|
12
|
-
this.
|
|
13
|
-
this.
|
|
14
|
-
this.
|
|
12
|
+
constructor(options) {
|
|
13
|
+
this.options = options;
|
|
14
|
+
this.plugins = options.plugins ?? [];
|
|
15
|
+
this.topNavigation = options.topNavigation ?? [];
|
|
16
|
+
this.sidebars = options.sidebars ?? {};
|
|
15
17
|
this.navigationPlugins = this.plugins.filter(isNavigationPlugin);
|
|
16
|
-
this.authentication =
|
|
17
|
-
this.meta =
|
|
18
|
-
this.page =
|
|
18
|
+
this.authentication = options.authentication;
|
|
19
|
+
this.meta = options.metadata;
|
|
20
|
+
this.page = options.page;
|
|
19
21
|
}
|
|
20
22
|
initialize = async () => {
|
|
21
23
|
await Promise.all(this.plugins
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ZudokuContext.js","sourceRoot":"","sources":["../../../src/lib/core/ZudokuContext.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAC;AAE/C,OAAO,EACL,mBAAmB,EACnB,kBAAkB,EAElB,mBAAmB,GAEpB,MAAM,cAAc,CAAC;
|
|
1
|
+
{"version":3,"file":"ZudokuContext.js","sourceRoot":"","sources":["../../../src/lib/core/ZudokuContext.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAC;AAE/C,OAAO,EACL,mBAAmB,EACnB,kBAAkB,EAElB,mBAAmB,GAEpB,MAAM,cAAc,CAAC;AAwDtB,MAAM,OAAO,aAAa;IASI;IARrB,OAAO,CAA+C;IACtD,QAAQ,CAAgB;IACxB,aAAa,CAAqD;IAClE,IAAI,CAAmC;IACvC,IAAI,CAA+B;IACnC,cAAc,CAA0C;IAC9C,iBAAiB,CAAqB;IAEvD,YAA4B,OAA6B;QAA7B,YAAO,GAAP,OAAO,CAAsB;QACvD,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC,OAAO,IAAI,EAAE,CAAC;QACrC,IAAI,CAAC,aAAa,GAAG,OAAO,CAAC,aAAa,IAAI,EAAE,CAAC;QACjD,IAAI,CAAC,QAAQ,GAAG,OAAO,CAAC,QAAQ,IAAI,EAAE,CAAC;QACvC,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,kBAAkB,CAAC,CAAC;QACjE,IAAI,CAAC,cAAc,GAAG,OAAO,CAAC,cAAc,CAAC;QAC7C,IAAI,CAAC,IAAI,GAAG,OAAO,CAAC,QAAQ,CAAC;QAC7B,IAAI,CAAC,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC;IAC3B,CAAC;IAED,UAAU,GAAG,KAAK,IAAmB,EAAE;QACrC,MAAM,OAAO,CAAC,GAAG,CACf,IAAI,CAAC,OAAO;aACT,MAAM,CAAC,mBAAmB,CAAC;aAC3B,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,UAAU,EAAE,CAAC,IAAI,CAAC,CAAC,CAC9C,CAAC;IACJ,CAAC,CAAC;IAEF,gBAAgB,GAAG,KAAK,IAAI,EAAE;QAC5B,MAAM,IAAI,GAAG,MAAM,OAAO,CAAC,GAAG,CAC5B,IAAI,CAAC,OAAO;aACT,MAAM,CAAC,mBAAmB,CAAC;aAC3B,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC,CAC/C,CAAC;QAEF,OAAO,IAAI,CAAC,IAAI,EAAE,CAAC;IACrB,CAAC,CAAC;IAEF,gBAAgB,GAAG,KAAK,EAAE,IAAY,EAAE,EAAE;QACxC,MAAM,WAAW,GAAG,MAAM,OAAO,CAAC,GAAG,CACnC,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CACpC,MAAM,CAAC,UAAU,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CACpC,CACF,CAAC;QAEF,OAAO,WAAW,CAAC,OAAO,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,IAAI,EAAE,CAAC,CAAC;IACjD,CAAC,CAAC;IAEF,WAAW,GAAG,KAAK,EAAE,OAAgB,EAAE,EAAE;QACvC,IAAI,CAAC,IAAI,CAAC,cAAc,EAAE,CAAC;YACzB,MAAM,IAAI,KAAK,CAAC,uCAAuC,CAAC,CAAC;QAC3D,CAAC;QAED,MAAM,WAAW,GAAG,MAAM,IAAI,CAAC,cAAc,CAAC,cAAc,EAAE,CAAC;QAE/D,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,eAAe,EAAE,UAAU,WAAW,EAAE,CAAC,CAAC;QAE9D,OAAO,OAAO,CAAC;IACjB,CAAC,CAAC;CACH"}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import { GraphQLJSON } from "graphql-type-json";
|
|
2
|
+
import { GraphQLScalarType } from "graphql/index.js";
|
|
3
|
+
export const CIRCULAR_REF = "$[Circular Reference]";
|
|
4
|
+
const handleCircularRefs = (obj, visited = new WeakSet()) => {
|
|
5
|
+
if (obj === CIRCULAR_REF)
|
|
6
|
+
return CIRCULAR_REF;
|
|
7
|
+
if (obj === null || typeof obj !== "object")
|
|
8
|
+
return obj;
|
|
9
|
+
if (visited.has(obj))
|
|
10
|
+
return CIRCULAR_REF;
|
|
11
|
+
visited.add(obj);
|
|
12
|
+
if (Array.isArray(obj)) {
|
|
13
|
+
return obj.map((item) => handleCircularRefs(item, visited));
|
|
14
|
+
}
|
|
15
|
+
const result = {};
|
|
16
|
+
for (const [key, value] of Object.entries(obj)) {
|
|
17
|
+
result[key] = handleCircularRefs(value, visited);
|
|
18
|
+
}
|
|
19
|
+
return result;
|
|
20
|
+
};
|
|
21
|
+
export const GraphQLJSONSchema = new GraphQLScalarType({
|
|
22
|
+
...GraphQLJSON,
|
|
23
|
+
name: "JSONSchema",
|
|
24
|
+
description: "OpenAPI schema scalar type that handles circular references",
|
|
25
|
+
serialize: (value) => GraphQLJSON.serialize(handleCircularRefs(value)),
|
|
26
|
+
});
|
|
27
|
+
//# sourceMappingURL=circular.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"circular.js","sourceRoot":"","sources":["../../../../src/lib/oas/graphql/circular.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAChD,OAAO,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AAErD,MAAM,CAAC,MAAM,YAAY,GAAG,uBAAuB,CAAC;AACpD,MAAM,kBAAkB,GAAG,CAAC,GAAQ,EAAE,OAAO,GAAG,IAAI,OAAO,EAAE,EAAO,EAAE;IACpE,IAAI,GAAG,KAAK,YAAY;QAAE,OAAO,YAAY,CAAC;IAC9C,IAAI,GAAG,KAAK,IAAI,IAAI,OAAO,GAAG,KAAK,QAAQ;QAAE,OAAO,GAAG,CAAC;IAExD,IAAI,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC;QAAE,OAAO,YAAY,CAAC;IAE1C,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IAEjB,IAAI,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC;QACvB,OAAO,GAAG,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,kBAAkB,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC,CAAC;IAC9D,CAAC;IAED,MAAM,MAAM,GAAwB,EAAE,CAAC;IACvC,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC;QAC/C,MAAM,CAAC,GAAG,CAAC,GAAG,kBAAkB,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;IACnD,CAAC;IACD,OAAO,MAAM,CAAC;AAChB,CAAC,CAAC;AACF,MAAM,CAAC,MAAM,iBAAiB,GAAG,IAAI,iBAAiB,CAAC;IACrD,GAAG,WAAW;IACd,IAAI,EAAE,YAAY;IAClB,WAAW,EAAE,6DAA6D;IAC1E,SAAS,EAAE,CAAC,KAAc,EAAE,EAAE,CAC5B,WAAW,CAAC,SAAS,CAAC,kBAAkB,CAAC,KAAK,CAAC,CAAC;CACnD,CAAC,CAAC"}
|
|
@@ -4,18 +4,17 @@ import { slugifyWithCounter, } from "@sindresorhus/slugify";
|
|
|
4
4
|
import { GraphQLJSON, GraphQLJSONObject } from "graphql-type-json";
|
|
5
5
|
import { createYoga } from "graphql-yoga";
|
|
6
6
|
import { HttpMethods, validate, } from "../parser/index.js";
|
|
7
|
+
import { GraphQLJSONSchema } from "./circular.js";
|
|
7
8
|
export const createOperationSlug = (slugify, operation, tag) => {
|
|
8
9
|
const summary = (operation.summary ?? "") +
|
|
9
|
-
(operation.operationId
|
|
10
|
-
? "-" +
|
|
11
|
-
operation.operationId.slice(0, operation.summary ? Infinity : Infinity)
|
|
12
|
-
: "");
|
|
10
|
+
(operation.operationId ? "-" + operation.operationId : "");
|
|
13
11
|
return slugify((tag ? tag + "-" : "") +
|
|
14
12
|
(summary || `${operation.method}-${operation.path}`));
|
|
15
13
|
};
|
|
16
14
|
const builder = new SchemaBuilder({});
|
|
17
15
|
const JSONScalar = builder.addScalarType("JSON", GraphQLJSON);
|
|
18
16
|
const JSONObjectScalar = builder.addScalarType("JSONObject", GraphQLJSONObject);
|
|
17
|
+
const JSONSchemaScalar = builder.addScalarType("JSONSchema", GraphQLJSONSchema);
|
|
19
18
|
const getAllTags = (schema) => {
|
|
20
19
|
const tags = schema.tags ?? [];
|
|
21
20
|
// Extract tags from operations
|
|
@@ -147,7 +146,7 @@ const ParameterItem = builder
|
|
|
147
146
|
})),
|
|
148
147
|
nullable: true,
|
|
149
148
|
}),
|
|
150
|
-
schema: t.expose("schema", { type:
|
|
149
|
+
schema: t.expose("schema", { type: JSONSchemaScalar, nullable: true }),
|
|
151
150
|
}),
|
|
152
151
|
});
|
|
153
152
|
const MediaTypeItem = builder
|
|
@@ -155,7 +154,7 @@ const MediaTypeItem = builder
|
|
|
155
154
|
.implement({
|
|
156
155
|
fields: (t) => ({
|
|
157
156
|
mediaType: t.exposeString("mediaType"),
|
|
158
|
-
schema: t.expose("schema", { type:
|
|
157
|
+
schema: t.expose("schema", { type: JSONSchemaScalar, nullable: true }),
|
|
159
158
|
examples: t.expose("examples", { type: [ExampleItem], nullable: true }),
|
|
160
159
|
encoding: t.expose("encoding", { type: [EncodingItem], nullable: true }),
|
|
161
160
|
}),
|