zudoku 0.26.0 → 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/config.d.ts +1 -0
- package/dist/config/validators/InputSidebarSchema.d.ts +2 -2
- package/dist/config/validators/common.d.ts +78 -0
- package/dist/config/validators/common.js +6 -0
- package/dist/config/validators/common.js.map +1 -1
- package/dist/config/validators/validate.d.ts +34 -0
- package/dist/lib/authentication/providers/auth0.js +1 -1
- package/dist/lib/authentication/providers/auth0.js.map +1 -1
- package/dist/lib/authentication/providers/openid.d.ts +1 -1
- package/dist/lib/authentication/providers/openid.js +10 -6
- package/dist/lib/authentication/providers/openid.js.map +1 -1
- package/dist/lib/components/AnchorLink.js +5 -2
- package/dist/lib/components/AnchorLink.js.map +1 -1
- package/dist/lib/components/Autocomplete.d.ts +12 -0
- package/dist/lib/components/Autocomplete.js +47 -0
- package/dist/lib/components/Autocomplete.js.map +1 -0
- package/dist/lib/components/Header.js +4 -4
- 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 +5 -2
- 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/markdown/MdxPage.js +8 -2
- package/dist/lib/plugins/markdown/MdxPage.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/PlaygroundDialogWrapper.d.ts +3 -1
- package/dist/lib/plugins/openapi/PlaygroundDialogWrapper.js +3 -2
- package/dist/lib/plugins/openapi/PlaygroundDialogWrapper.js.map +1 -1
- package/dist/lib/plugins/openapi/Sidecar.js +3 -3
- 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.d.ts +6 -0
- package/dist/lib/plugins/openapi/playground/ExamplesDropdown.js +12 -0
- package/dist/lib/plugins/openapi/playground/ExamplesDropdown.js.map +1 -0
- package/dist/lib/plugins/openapi/playground/Headers.js +67 -4
- 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 +18 -1
- package/dist/lib/plugins/openapi/playground/Playground.js +53 -40
- 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 +21 -30
- 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/post-processors/removeExtensions.d.ts +2 -1
- package/dist/lib/plugins/openapi/post-processors/removeExtensions.js +5 -3
- package/dist/lib/plugins/openapi/post-processors/removeExtensions.js.map +1 -1
- package/dist/lib/plugins/openapi/post-processors/removeExtensions.test.js +49 -0
- package/dist/lib/plugins/openapi/post-processors/removeExtensions.test.js.map +1 -1
- package/dist/lib/plugins/openapi/post-processors/removeParameters.d.ts +10 -0
- package/dist/lib/plugins/openapi/post-processors/removeParameters.js +66 -0
- package/dist/lib/plugins/openapi/post-processors/removeParameters.js.map +1 -0
- package/dist/lib/plugins/openapi/post-processors/removeParameters.test.d.ts +1 -0
- package/dist/lib/plugins/openapi/post-processors/removeParameters.test.js +131 -0
- package/dist/lib/plugins/openapi/post-processors/removeParameters.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.d.ts +9 -1
- package/dist/lib/ui/Command.js +5 -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/joinUrl.d.ts +1 -0
- package/dist/lib/util/joinUrl.js +40 -0
- package/dist/lib/util/joinUrl.js.map +1 -0
- 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/build.js +10 -10
- package/dist/vite/build.js.map +1 -1
- package/dist/vite/config.js +4 -1
- package/dist/vite/config.js.map +1 -1
- package/dist/vite/dev-server.js +4 -1
- package/dist/vite/dev-server.js.map +1 -1
- package/dist/vite/plugin-api.d.ts +1 -1
- package/dist/vite/plugin-api.js +31 -7
- package/dist/vite/plugin-api.js.map +1 -1
- package/dist/vite/plugin-auth.js +4 -1
- package/dist/vite/plugin-auth.js.map +1 -1
- package/dist/vite/plugin-mdx.js +9 -4
- package/dist/vite/plugin-mdx.js.map +1 -1
- package/dist/vite/prerender.d.ts +2 -2
- package/dist/vite/prerender.js +5 -4
- package/dist/vite/prerender.js.map +1 -1
- package/dist/zuplo/enrich-with-zuplo.d.ts +5 -0
- package/dist/zuplo/enrich-with-zuplo.js +184 -0
- package/dist/zuplo/enrich-with-zuplo.js.map +1 -0
- package/dist/zuplo/env.d.ts +1 -0
- package/dist/zuplo/env.js +3 -0
- package/dist/zuplo/env.js.map +1 -1
- package/dist/zuplo/policy-types.d.ts +33 -0
- package/dist/zuplo/policy-types.js +8 -0
- package/dist/zuplo/policy-types.js.map +1 -0
- package/dist/zuplo/with-zuplo-processors.d.ts +3 -0
- package/dist/zuplo/with-zuplo-processors.js +26 -0
- package/dist/zuplo/with-zuplo-processors.js.map +1 -0
- package/dist/zuplo/with-zuplo.d.ts +1 -1
- package/dist/zuplo/with-zuplo.js +7 -26
- package/dist/zuplo/with-zuplo.js.map +1 -1
- package/lib/{AuthenticationPlugin-DNXBcsVN.js → AuthenticationPlugin-CO_YCd2x.js} +3 -3
- package/lib/{AuthenticationPlugin-DNXBcsVN.js.map → AuthenticationPlugin-CO_YCd2x.js.map} +1 -1
- package/lib/{Markdown-BrfrjEk_.js → Markdown-B8o9Qz4q.js} +1197 -1186
- package/lib/{Markdown-BrfrjEk_.js.map → Markdown-B8o9Qz4q.js.map} +1 -1
- package/lib/{MdxPage-LNZLj_A5.js → MdxPage-BxRt3Ly7.js} +63 -58
- package/lib/MdxPage-BxRt3Ly7.js.map +1 -0
- package/lib/OperationList-DH-zIgtq.js +5160 -0
- package/lib/OperationList-DH-zIgtq.js.map +1 -0
- package/lib/{Route-Pzk6qwIk.js → Route-DJ0ZlVq1.js} +3 -3
- package/lib/{Route-Pzk6qwIk.js.map → Route-DJ0ZlVq1.js.map} +1 -1
- package/lib/{Select-DkOpAG0c.js → Select-B7UXR0SB.js} +61 -61
- package/lib/Select-B7UXR0SB.js.map +1 -0
- package/lib/{SlotletProvider-DPbx9KdU.js → SlotletProvider-CtIp8rP3.js} +4 -4
- package/lib/{SlotletProvider-DPbx9KdU.js.map → SlotletProvider-CtIp8rP3.js.map} +1 -1
- package/lib/{Button-oroWHXAy.js → Spinner-BlzrEEk1.js} +15 -12
- package/lib/Spinner-BlzrEEk1.js.map +1 -0
- 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-D3ayHjP-.js → ZudokuContext-8jts0fF3.js} +259 -248
- package/lib/ZudokuContext-8jts0fF3.js.map +1 -0
- package/lib/{chunk-SYFQ2XB5-KWlHsT7t.js → chunk-SYFQ2XB5-BPvC-soB.js} +6 -5
- package/lib/{chunk-SYFQ2XB5-KWlHsT7t.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-DUyACbIK.js → hook-BG02esyv.js} +2 -2
- package/lib/{hook-DUyACbIK.js.map → hook-BG02esyv.js.map} +1 -1
- package/lib/index-B7mqiOei.js +509 -0
- package/lib/index-B7mqiOei.js.map +1 -0
- package/lib/index-DmqsUPcm.js +1915 -0
- package/lib/index-DmqsUPcm.js.map +1 -0
- package/lib/joinUrl-BTy9bvoK.js +20 -0
- package/lib/joinUrl-BTy9bvoK.js.map +1 -0
- package/lib/post-processors/removeExtensions.js +7 -7
- package/lib/post-processors/removeExtensions.js.map +1 -1
- package/lib/post-processors/removeParameters.js +48 -0
- package/lib/post-processors/removeParameters.js.map +1 -0
- package/lib/ui/ActionButton.js +10 -11
- package/lib/ui/ActionButton.js.map +1 -1
- package/lib/ui/Command.js +125 -13
- 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-BBHR7aLM.js → useExposedProps-BLKFBylA.js} +2 -2
- package/lib/{useExposedProps-BBHR7aLM.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-auth0.js +7 -9
- package/lib/zudoku.auth-auth0.js.map +1 -1
- package/lib/zudoku.auth-clerk.js +1 -1
- package/lib/zudoku.auth-openid.js +223 -219
- package/lib/zudoku.auth-openid.js.map +1 -1
- package/lib/zudoku.components.js +754 -992
- 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.css +50 -50
- package/src/app/main.tsx +26 -7
- package/src/lib/authentication/providers/auth0.tsx +1 -4
- package/src/lib/authentication/providers/openid.tsx +12 -5
- package/src/lib/components/AnchorLink.tsx +5 -2
- package/src/lib/components/Autocomplete.tsx +111 -0
- package/src/lib/components/Header.tsx +4 -4
- 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 +9 -2
- 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/markdown/MdxPage.tsx +9 -1
- package/src/lib/plugins/openapi/OperationListItem.tsx +0 -2
- package/src/lib/plugins/openapi/ParameterListItem.tsx +1 -0
- package/src/lib/plugins/openapi/PlaygroundDialogWrapper.tsx +5 -0
- package/src/lib/plugins/openapi/Sidecar.tsx +4 -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 +54 -0
- package/src/lib/plugins/openapi/playground/Headers.tsx +136 -39
- 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 +219 -177
- package/src/lib/plugins/openapi/playground/PlaygroundDialog.tsx +1 -1
- package/src/lib/plugins/openapi/playground/QueryParams.tsx +90 -122
- 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/post-processors/removeExtensions.test.ts +58 -0
- package/src/lib/plugins/openapi/post-processors/removeExtensions.ts +7 -4
- package/src/lib/plugins/openapi/post-processors/removeParameters.test.ts +148 -0
- package/src/lib/plugins/openapi/post-processors/removeParameters.ts +101 -0
- package/src/lib/plugins/openapi/schema/SchemaComponents.tsx +1 -1
- package/src/lib/ui/Command.tsx +20 -0
- package/src/lib/ui/Select.tsx +1 -1
- package/src/lib/util/MdxComponents.tsx +2 -1
- package/src/lib/util/joinUrl.ts +57 -0
- package/src/lib/util/useScrollToAnchor.ts +32 -15
- package/dist/lib/plugins/openapi/playground/EnumSelector.d.ts +0 -8
- package/dist/lib/plugins/openapi/playground/EnumSelector.js +0 -21
- package/dist/lib/plugins/openapi/playground/EnumSelector.js.map +0 -1
- 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-_Vu02ceN.js +0 -34
- package/lib/AnchorLink-_Vu02ceN.js.map +0 -1
- package/lib/Button-oroWHXAy.js.map +0 -1
- package/lib/Command-D5DE0DD7.js +0 -611
- package/lib/Command-D5DE0DD7.js.map +0 -1
- package/lib/MdxPage-LNZLj_A5.js.map +0 -1
- package/lib/OperationList-PCwzTp1r.js +0 -5144
- package/lib/OperationList-PCwzTp1r.js.map +0 -1
- package/lib/Select-DkOpAG0c.js.map +0 -1
- package/lib/Spinner-C5gHXrVz.js +0 -7
- package/lib/Spinner-C5gHXrVz.js.map +0 -1
- package/lib/ZudokuContext-D3ayHjP-.js.map +0 -1
- package/lib/createServer-BcaswoFO.js.map +0 -1
- package/lib/index-CaILD1AV.js +0 -1292
- package/lib/index-CaILD1AV.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/EnumSelector.tsx +0 -86
- package/src/lib/plugins/openapi/playground/ResponseTab.tsx +0 -76
package/dist/vite/plugin-api.js
CHANGED
|
@@ -1,10 +1,13 @@
|
|
|
1
1
|
import fs from "node:fs/promises";
|
|
2
2
|
import path from "node:path";
|
|
3
|
+
import { tsImport } from "tsx/esm/api";
|
|
3
4
|
import yaml from "yaml";
|
|
4
5
|
import { upgradeSchema } from "../lib/oas/parser/upgrade/index.js";
|
|
5
6
|
import { generateCode } from "./api/schema-codegen.js";
|
|
6
7
|
const schemaMap = new Map();
|
|
7
|
-
async function processSchemas(config
|
|
8
|
+
async function processSchemas(config,
|
|
9
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
10
|
+
zuploProcessors = []) {
|
|
8
11
|
const tmpDir = path.posix.join(config.rootDir, "node_modules/.zudoku/processed");
|
|
9
12
|
await fs.rm(tmpDir, { recursive: true, force: true });
|
|
10
13
|
await fs.mkdir(tmpDir, { recursive: true });
|
|
@@ -16,8 +19,12 @@ async function processSchemas(config) {
|
|
|
16
19
|
if (apiConfig.type !== "file" || !apiConfig.navigationId) {
|
|
17
20
|
continue;
|
|
18
21
|
}
|
|
19
|
-
const postProcessors =
|
|
20
|
-
|
|
22
|
+
const postProcessors = [
|
|
23
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
24
|
+
(schema) => upgradeSchema(schema),
|
|
25
|
+
...(apiConfig.postProcessors ?? []),
|
|
26
|
+
...zuploProcessors,
|
|
27
|
+
];
|
|
21
28
|
const inputs = Array.isArray(apiConfig.input)
|
|
22
29
|
? apiConfig.input
|
|
23
30
|
: [apiConfig.input];
|
|
@@ -44,14 +51,25 @@ async function processSchemas(config) {
|
|
|
44
51
|
}
|
|
45
52
|
return processedSchemas;
|
|
46
53
|
}
|
|
47
|
-
const viteApiPlugin = (getConfig) => {
|
|
54
|
+
const viteApiPlugin = async (getConfig) => {
|
|
48
55
|
const virtualModuleId = "virtual:zudoku-api-plugins";
|
|
49
56
|
const resolvedVirtualModuleId = "\0" + virtualModuleId;
|
|
57
|
+
const initialConfig = getConfig();
|
|
58
|
+
// Load Zuplo-specific processors if in Zuplo environment
|
|
59
|
+
const zuploProcessors = initialConfig.isZuplo
|
|
60
|
+
? await tsImport("../zuplo/with-zuplo-processors.js", import.meta.url)
|
|
61
|
+
.then((m) => m.default(initialConfig.rootDir))
|
|
62
|
+
.catch((e) => {
|
|
63
|
+
// eslint-disable-next-line no-console
|
|
64
|
+
console.warn("Failed to load Zuplo processors", e);
|
|
65
|
+
return [];
|
|
66
|
+
})
|
|
67
|
+
: [];
|
|
50
68
|
let processedSchemas;
|
|
51
69
|
return {
|
|
52
70
|
name: "zudoku-api-plugins",
|
|
53
71
|
async buildStart() {
|
|
54
|
-
processedSchemas = await processSchemas(getConfig());
|
|
72
|
+
processedSchemas = await processSchemas(getConfig(), zuploProcessors);
|
|
55
73
|
},
|
|
56
74
|
resolveId(id) {
|
|
57
75
|
if (id === virtualModuleId) {
|
|
@@ -67,12 +85,18 @@ const viteApiPlugin = (getConfig) => {
|
|
|
67
85
|
"export const configuredApiCatalogPlugins = [];",
|
|
68
86
|
].join("\n");
|
|
69
87
|
}
|
|
88
|
+
const apiPluginOptions = {
|
|
89
|
+
options: {
|
|
90
|
+
examplesDefaultLanguage: config.defaults?.examplesLanguage,
|
|
91
|
+
},
|
|
92
|
+
};
|
|
70
93
|
const code = [
|
|
71
94
|
`import config from "virtual:zudoku-config";`,
|
|
72
95
|
`import { openApiPlugin } from "zudoku/plugins/openapi";`,
|
|
73
96
|
`import { apiCatalogPlugin } from "zudoku/plugins/api-catalog";`,
|
|
74
97
|
`const configuredApiPlugins = [];`,
|
|
75
98
|
`const configuredApiCatalogPlugins = [];`,
|
|
99
|
+
`const apiPluginOptions = ${JSON.stringify(apiPluginOptions)};`,
|
|
76
100
|
];
|
|
77
101
|
if (config.apis) {
|
|
78
102
|
const apis = Array.isArray(config.apis) ? config.apis : [config.apis];
|
|
@@ -108,10 +132,10 @@ const viteApiPlugin = (getConfig) => {
|
|
|
108
132
|
!versionMaps[apiConfig.navigationId]) {
|
|
109
133
|
continue;
|
|
110
134
|
}
|
|
111
|
-
code.push("configuredApiPlugins.push(openApiPlugin({", ` type: "file",`, ` input: ${JSON.stringify(versionMaps[apiConfig.navigationId])},`, ` navigationId: ${JSON.stringify(apiConfig.navigationId)},`, ` schemaImports: {`, ...Array.from(schemaMap.entries()).map(([key, schemaPath]) => ` "${key}": () => import("${schemaPath.replace(/\\/g, "/")}"),`), ` },`, "}));");
|
|
135
|
+
code.push("configuredApiPlugins.push(openApiPlugin({", ` ...apiPluginOptions,`, ` type: "file",`, ` input: ${JSON.stringify(versionMaps[apiConfig.navigationId])},`, ` navigationId: ${JSON.stringify(apiConfig.navigationId)},`, ` schemaImports: {`, ...Array.from(schemaMap.entries()).map(([key, schemaPath]) => ` "${key}": () => import("${schemaPath.replace(/\\/g, "/")}"),`), ` },`, "}));");
|
|
112
136
|
}
|
|
113
137
|
else {
|
|
114
|
-
code.push(`configuredApiPlugins.push(openApiPlugin(${JSON.stringify(apiConfig)}));`);
|
|
138
|
+
code.push(`configuredApiPlugins.push(openApiPlugin(${JSON.stringify({ ...apiConfig, ...apiPluginOptions })}));`);
|
|
115
139
|
}
|
|
116
140
|
}
|
|
117
141
|
if (config.catalogs) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"plugin-api.js","sourceRoot":"","sources":["../../src/vite/plugin-api.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,kBAAkB,CAAC;AAClC,OAAO,IAAI,MAAM,WAAW,CAAC;
|
|
1
|
+
{"version":3,"file":"plugin-api.js","sourceRoot":"","sources":["../../src/vite/plugin-api.ts"],"names":[],"mappings":"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"}
|
package/dist/vite/plugin-auth.js
CHANGED
|
@@ -16,7 +16,10 @@ const viteAuthPlugin = (getConfig) => {
|
|
|
16
16
|
}
|
|
17
17
|
// TODO: Validate that the authConfig.type is a valid authentication provider
|
|
18
18
|
return [
|
|
19
|
-
`const config =
|
|
19
|
+
`const config = {
|
|
20
|
+
...${JSON.stringify(config.authentication, null, 2)},
|
|
21
|
+
basePath: ${config.basePath ? JSON.stringify(config.basePath) : "undefined"},
|
|
22
|
+
};`,
|
|
20
23
|
config.mode === "internal"
|
|
21
24
|
? `import authProvider from "${config.moduleDir}/src/lib/authentication/providers/${config.authentication.type}.tsx";`
|
|
22
25
|
: `import authProvider from "zudoku/auth/${config.authentication.type}";`,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"plugin-auth.js","sourceRoot":"","sources":["../../src/vite/plugin-auth.ts"],"names":[],"mappings":"AAGA,MAAM,cAAc,GAAG,CAAC,SAAoC,EAAU,EAAE;IACtE,MAAM,eAAe,GAAG,qBAAqB,CAAC;IAC9C,MAAM,uBAAuB,GAAG,IAAI,GAAG,eAAe,CAAC;IAEvD,OAAO;QACL,IAAI,EAAE,oBAAoB,EAAE,gDAAgD;QAC5E,SAAS,CAAC,EAAE;YACV,IAAI,EAAE,KAAK,eAAe,EAAE,CAAC;gBAC3B,OAAO,uBAAuB,CAAC;YACjC,CAAC;QACH,CAAC;QACD,KAAK,CAAC,IAAI,CAAC,EAAE;YACX,IAAI,EAAE,KAAK,uBAAuB,EAAE,CAAC;gBACnC,MAAM,MAAM,GAAG,SAAS,EAAE,CAAC;gBAE3B,IAAI,CAAC,MAAM,CAAC,cAAc,IAAI,MAAM,CAAC,IAAI,KAAK,YAAY,EAAE,CAAC;oBAC3D,OAAO,kDAAkD,CAAC;gBAC5D,CAAC;gBACD,6EAA6E;gBAC7E,OAAO;oBACL,
|
|
1
|
+
{"version":3,"file":"plugin-auth.js","sourceRoot":"","sources":["../../src/vite/plugin-auth.ts"],"names":[],"mappings":"AAGA,MAAM,cAAc,GAAG,CAAC,SAAoC,EAAU,EAAE;IACtE,MAAM,eAAe,GAAG,qBAAqB,CAAC;IAC9C,MAAM,uBAAuB,GAAG,IAAI,GAAG,eAAe,CAAC;IAEvD,OAAO;QACL,IAAI,EAAE,oBAAoB,EAAE,gDAAgD;QAC5E,SAAS,CAAC,EAAE;YACV,IAAI,EAAE,KAAK,eAAe,EAAE,CAAC;gBAC3B,OAAO,uBAAuB,CAAC;YACjC,CAAC;QACH,CAAC;QACD,KAAK,CAAC,IAAI,CAAC,EAAE;YACX,IAAI,EAAE,KAAK,uBAAuB,EAAE,CAAC;gBACnC,MAAM,MAAM,GAAG,SAAS,EAAE,CAAC;gBAE3B,IAAI,CAAC,MAAM,CAAC,cAAc,IAAI,MAAM,CAAC,IAAI,KAAK,YAAY,EAAE,CAAC;oBAC3D,OAAO,kDAAkD,CAAC;gBAC5D,CAAC;gBACD,6EAA6E;gBAC7E,OAAO;oBACL;iBACO,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,cAAc,EAAE,IAAI,EAAE,CAAC,CAAC;wBACvC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,WAAW;aAC1E;oBACH,MAAM,CAAC,IAAI,KAAK,UAAU;wBACxB,CAAC,CAAC,6BAA6B,MAAM,CAAC,SAAS,qCAAqC,MAAM,CAAC,cAAc,CAAC,IAAI,QAAQ;wBACtH,CAAC,CAAC,yCAAyC,MAAM,CAAC,cAAc,CAAC,IAAI,IAAI;oBAC3E,6DAA6D;iBAC9D,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YACf,CAAC;QACH,CAAC;KACF,CAAC;AACJ,CAAC,CAAC;AAEF,eAAe,cAAc,CAAC"}
|
package/dist/vite/plugin-mdx.js
CHANGED
|
@@ -12,6 +12,7 @@ import remarkFrontmatter from "remark-frontmatter";
|
|
|
12
12
|
import remarkGfm from "remark-gfm";
|
|
13
13
|
import remarkMdxFrontmatter from "remark-mdx-frontmatter";
|
|
14
14
|
import { EXIT, visit } from "unist-util-visit";
|
|
15
|
+
import { joinUrl } from "../lib/util/joinUrl.js";
|
|
15
16
|
import { remarkStaticGeneration } from "./remarkStaticGeneration.js";
|
|
16
17
|
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
17
18
|
const rehypeCodeBlockPlugin = () => (tree) => {
|
|
@@ -38,16 +39,16 @@ const remarkLinkRewritePlugin = (basePath = "") => (tree) => {
|
|
|
38
39
|
node.url = node.url.replace(/\.mdx?(#.*?)?/, "$1");
|
|
39
40
|
});
|
|
40
41
|
};
|
|
41
|
-
const
|
|
42
|
+
const rehypeMediaBase = (base = "") =>
|
|
42
43
|
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
43
44
|
(tree) => {
|
|
44
|
-
if (!
|
|
45
|
+
if (!base)
|
|
45
46
|
return;
|
|
46
47
|
visit(tree, "element", (node) => {
|
|
47
48
|
if (node.tagName !== "img" && node.tagName !== "video")
|
|
48
49
|
return;
|
|
49
50
|
if (node.properties.src && !node.properties.src.startsWith("http")) {
|
|
50
|
-
node.properties.src =
|
|
51
|
+
node.properties.src = joinUrl(base, node.properties.src);
|
|
51
52
|
}
|
|
52
53
|
});
|
|
53
54
|
};
|
|
@@ -98,8 +99,12 @@ const rehypeExcerptWithMdxExport = () => (tree, _vfile) => {
|
|
|
98
99
|
};
|
|
99
100
|
const viteMdxPlugin = (getConfig) => {
|
|
100
101
|
const config = getConfig();
|
|
102
|
+
let base;
|
|
101
103
|
return {
|
|
102
104
|
enforce: "pre",
|
|
105
|
+
configResolved: (v) => {
|
|
106
|
+
base = v.base;
|
|
107
|
+
},
|
|
103
108
|
...mdx({
|
|
104
109
|
providerImportSource: config.mode === "internal" || config.mode === "standalone"
|
|
105
110
|
? "@mdx-js/react"
|
|
@@ -123,7 +128,7 @@ const viteMdxPlugin = (getConfig) => {
|
|
|
123
128
|
rehypeSlug,
|
|
124
129
|
rehypeCodeBlockPlugin,
|
|
125
130
|
rehypeMetaAsAttributes,
|
|
126
|
-
[
|
|
131
|
+
[rehypeMediaBase, base],
|
|
127
132
|
withToc,
|
|
128
133
|
withTocExport,
|
|
129
134
|
rehypeExcerptWithMdxExport,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"plugin-mdx.js","sourceRoot":"","sources":["../../src/vite/plugin-mdx.ts"],"names":[],"mappings":"AAAA,OAAO,sBAAsB,MAAM,qCAAqC,CAAC;AACzE,OAAO,GAAG,MAAM,gBAAgB,CAAC;AACjC,OAAO,OAAO,MAAM,kCAAkC,CAAC;AACvD,OAAO,aAAa,MAAM,sCAAsC,CAAC;AACjE,OAAO,EAAE,QAAQ,IAAI,YAAY,EAAE,MAAM,qBAAqB,CAAC;AAE/D,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,UAAU,MAAM,aAAa,CAAC;AACrC,OAAO,aAAa,MAAM,gBAAgB,CAAC;AAC3C,OAAO,eAAe,MAAM,kBAAkB,CAAC;AAC/C,OAAO,qBAAqB,MAAM,yBAAyB,CAAC;AAC5D,OAAO,iBAAiB,MAAM,oBAAoB,CAAC;AACnD,OAAO,SAAS,MAAM,YAAY,CAAC;AACnC,OAAO,oBAAoB,MAAM,wBAAwB,CAAC;AAC1D,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,kBAAkB,CAAC;AAG/C,OAAO,EAAE,sBAAsB,EAAE,MAAM,6BAA6B,CAAC;AAErE,8DAA8D;AAC9D,MAAM,qBAAqB,GAAG,GAAG,EAAE,CAAC,CAAC,IAAS,EAAE,EAAE;IAChD,KAAK,CAAC,IAAI,EAAE,SAAS,EAAE,CAAC,IAAI,EAAE,KAAK,EAAE,MAAM,EAAE,EAAE;QAC7C,IAAI,IAAI,CAAC,IAAI,KAAK,SAAS,IAAI,IAAI,CAAC,OAAO,KAAK,MAAM,EAAE,CAAC;YACvD,IAAI,CAAC,UAAU,CAAC,MAAM,GAAG,MAAM,EAAE,OAAO,KAAK,KAAK,CAAC;QACrD,CAAC;IACH,CAAC,CAAC,CAAC;AACL,CAAC,CAAC;AAEF,MAAM,uBAAuB,GAC3B,CAAC,QAAQ,GAAG,EAAE,EAAE,EAAE,CAClB,CAAC,IAAU,EAAE,EAAE;IACb,KAAK,CAAC,IAAI,EAAE,MAAM,EAAE,CAAC,IAAI,EAAE,EAAE;QAC3B,IAAI,CAAC,IAAI,CAAC,GAAG;YAAE,OAAO;QAEtB,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QACjC,IAAI,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC;YAC9B,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QACzC,CAAC;aAAM,IACL,CAAC,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,MAAM,CAAC;YAC5B,CAAC,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,SAAS,CAAC;YAC/B,CAAC,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,GAAG,CAAC;YACzB,CAAC,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,GAAG,CAAC,EACzB,CAAC;YACD,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC;QACxC,CAAC;QAED,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,eAAe,EAAE,IAAI,CAAC,CAAC;IACrD,CAAC,CAAC,CAAC;AACL,CAAC,CAAC;AAEJ,MAAM,
|
|
1
|
+
{"version":3,"file":"plugin-mdx.js","sourceRoot":"","sources":["../../src/vite/plugin-mdx.ts"],"names":[],"mappings":"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"}
|
package/dist/vite/prerender.d.ts
CHANGED
|
@@ -14,9 +14,9 @@ export declare class FileWritingResponse {
|
|
|
14
14
|
end(chunk?: string): Promise<void>;
|
|
15
15
|
isSent(): Promise<void>;
|
|
16
16
|
}
|
|
17
|
-
export declare const prerender: ({ html, dir,
|
|
17
|
+
export declare const prerender: ({ html, dir, basePath, serverConfigFilename, }: {
|
|
18
18
|
html: string;
|
|
19
19
|
dir: string;
|
|
20
|
-
|
|
20
|
+
basePath?: string;
|
|
21
21
|
serverConfigFilename: string;
|
|
22
22
|
}) => Promise<string[]>;
|
package/dist/vite/prerender.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import fs from "node:fs/promises";
|
|
2
2
|
import path from "node:path";
|
|
3
3
|
import { pathToFileURL } from "node:url";
|
|
4
|
-
import {
|
|
4
|
+
import { joinUrl } from "../lib/util/joinUrl.js";
|
|
5
5
|
import { generateSitemap } from "./sitemap.js";
|
|
6
6
|
export class FileWritingResponse {
|
|
7
7
|
fileName;
|
|
@@ -57,19 +57,20 @@ const routesToPaths = (routes) => {
|
|
|
57
57
|
addPaths(routes);
|
|
58
58
|
return paths;
|
|
59
59
|
};
|
|
60
|
-
export const prerender = async ({ html, dir,
|
|
60
|
+
export const prerender = async ({ html, dir, basePath = "", serverConfigFilename, }) => {
|
|
61
61
|
// eslint-disable-next-line no-console
|
|
62
62
|
console.log("Prerendering...");
|
|
63
|
-
const distDir = path.join(dir, "dist",
|
|
63
|
+
const distDir = path.join(dir, "dist", basePath);
|
|
64
64
|
const config = await import(pathToFileURL(path.join(distDir, "server", serverConfigFilename)).href).then((m) => m.default);
|
|
65
65
|
const module = await import(pathToFileURL(path.join(distDir, "server/entry.server.js")).href);
|
|
66
66
|
const render = module.render;
|
|
67
67
|
const getRoutes = module.getRoutesByConfig;
|
|
68
68
|
const routes = getRoutes(config);
|
|
69
|
+
console.log("routes", routes);
|
|
69
70
|
const paths = routesToPaths(routes);
|
|
70
71
|
const writtenFiles = [];
|
|
71
72
|
for (const urlPath of paths) {
|
|
72
|
-
const req = new Request(
|
|
73
|
+
const req = new Request(joinUrl("http://localhost", config.basePath, urlPath));
|
|
73
74
|
const filename = urlPath === "/" ? "/index.html" : `${urlPath}.html`;
|
|
74
75
|
const response = new FileWritingResponse(path.join(distDir, filename));
|
|
75
76
|
await render({ template: html, request: req, response, config });
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"prerender.js","sourceRoot":"","sources":["../../src/vite/prerender.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,kBAAkB,CAAC;AAClC,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAMzC,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"prerender.js","sourceRoot":"","sources":["../../src/vite/prerender.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,184 @@
|
|
|
1
|
+
const API_KEY_REPLACEMENT_STRING = "YOUR_KEY_HERE";
|
|
2
|
+
const enrichWithApiKeyData = (operationObject, apiKeyPolicies) => {
|
|
3
|
+
if (apiKeyPolicies.length === 0) {
|
|
4
|
+
return operationObject;
|
|
5
|
+
}
|
|
6
|
+
const firstPolicy = apiKeyPolicies[0];
|
|
7
|
+
const authorizationHeader = firstPolicy?.handler.options?.["authHeader"] || "Authorization";
|
|
8
|
+
const authorizationScheme = (firstPolicy?.handler.options?.["authScheme"] ??
|
|
9
|
+
"Bearer");
|
|
10
|
+
const authSchemeExample = authorizationScheme !== ""
|
|
11
|
+
? `${authorizationScheme} ${API_KEY_REPLACEMENT_STRING}`
|
|
12
|
+
: API_KEY_REPLACEMENT_STRING;
|
|
13
|
+
// Add API key header parameter
|
|
14
|
+
const apiKeyHeader = {
|
|
15
|
+
name: authorizationHeader,
|
|
16
|
+
in: "header",
|
|
17
|
+
required: true,
|
|
18
|
+
example: authSchemeExample,
|
|
19
|
+
schema: {
|
|
20
|
+
type: "string",
|
|
21
|
+
},
|
|
22
|
+
description: `The \`${authorizationHeader}\` header is used to authenticate with the API using your API key. Value is of the format \`${authSchemeExample}\`.`,
|
|
23
|
+
};
|
|
24
|
+
const parameters = operationObject.parameters || [];
|
|
25
|
+
if (!parameters.some((param) => param.name === authorizationHeader)) {
|
|
26
|
+
operationObject.parameters = [apiKeyHeader, ...parameters];
|
|
27
|
+
}
|
|
28
|
+
// Add security scheme and requirement
|
|
29
|
+
const apiSecuritySchemeId = "api_key";
|
|
30
|
+
const apiKeySecurityRequirement = { [apiSecuritySchemeId]: [] };
|
|
31
|
+
if (!operationObject.security) {
|
|
32
|
+
operationObject.security = [apiKeySecurityRequirement];
|
|
33
|
+
}
|
|
34
|
+
else if (!operationObject.security.some((req) => req[apiSecuritySchemeId])) {
|
|
35
|
+
operationObject.security = [
|
|
36
|
+
apiKeySecurityRequirement,
|
|
37
|
+
...operationObject.security,
|
|
38
|
+
];
|
|
39
|
+
}
|
|
40
|
+
return operationObject;
|
|
41
|
+
};
|
|
42
|
+
const enrichWithRateLimitData = (operationObject, rateLimitPolicies) => {
|
|
43
|
+
if (rateLimitPolicies.length === 0) {
|
|
44
|
+
return operationObject;
|
|
45
|
+
}
|
|
46
|
+
const shouldIncludeHeader = rateLimitPolicies.some((policy) => policy.handler.options?.headerMode !== "none");
|
|
47
|
+
if (!operationObject.responses) {
|
|
48
|
+
operationObject.responses = {};
|
|
49
|
+
}
|
|
50
|
+
if (!operationObject.responses["429"]) {
|
|
51
|
+
operationObject.responses["429"] = {
|
|
52
|
+
$ref: shouldIncludeHeader
|
|
53
|
+
? "#/components/responses/RateLimitWithRetryAfter"
|
|
54
|
+
: "#/components/responses/RateLimitNoRetryAfter",
|
|
55
|
+
};
|
|
56
|
+
}
|
|
57
|
+
return operationObject;
|
|
58
|
+
};
|
|
59
|
+
// prettier-ignore
|
|
60
|
+
const operations = [
|
|
61
|
+
"get", "put", "post", "delete",
|
|
62
|
+
"options", "head", "patch", "trace",
|
|
63
|
+
];
|
|
64
|
+
const rateLimitingResponse = {
|
|
65
|
+
description: "Rate Limiting Response",
|
|
66
|
+
content: {
|
|
67
|
+
"application/json": {
|
|
68
|
+
schema: {
|
|
69
|
+
type: "object",
|
|
70
|
+
required: ["type", "title", "status"],
|
|
71
|
+
examples: [
|
|
72
|
+
{
|
|
73
|
+
type: "https://httpproblems.com/http-status/429",
|
|
74
|
+
title: "Too Many Requests",
|
|
75
|
+
status: 429,
|
|
76
|
+
instance: "/foo/bar",
|
|
77
|
+
},
|
|
78
|
+
],
|
|
79
|
+
properties: {
|
|
80
|
+
type: {
|
|
81
|
+
type: "string",
|
|
82
|
+
example: "https://httpproblems.com/http-status/429",
|
|
83
|
+
description: "A URI reference that identifies the problem.",
|
|
84
|
+
},
|
|
85
|
+
title: {
|
|
86
|
+
type: "string",
|
|
87
|
+
example: "Too Many Requests",
|
|
88
|
+
description: "A short, human-readable summary of the problem.",
|
|
89
|
+
},
|
|
90
|
+
status: {
|
|
91
|
+
type: "number",
|
|
92
|
+
example: 429,
|
|
93
|
+
description: "The HTTP status code.",
|
|
94
|
+
},
|
|
95
|
+
instance: {
|
|
96
|
+
type: "string",
|
|
97
|
+
example: "/foo/bar",
|
|
98
|
+
},
|
|
99
|
+
},
|
|
100
|
+
},
|
|
101
|
+
},
|
|
102
|
+
},
|
|
103
|
+
};
|
|
104
|
+
const rateLimitingResponseWithHeader = {
|
|
105
|
+
...rateLimitingResponse,
|
|
106
|
+
headers: {
|
|
107
|
+
"retry-after": {
|
|
108
|
+
description: "The number of seconds to wait before making a new request.",
|
|
109
|
+
schema: {
|
|
110
|
+
type: "integer",
|
|
111
|
+
example: 60,
|
|
112
|
+
},
|
|
113
|
+
},
|
|
114
|
+
},
|
|
115
|
+
};
|
|
116
|
+
export const enrichWithZuploData = ({ policiesConfig, }) => {
|
|
117
|
+
return (spec) => {
|
|
118
|
+
if (!spec.paths)
|
|
119
|
+
return spec;
|
|
120
|
+
let hasRateLimitPolicies = false;
|
|
121
|
+
for (const [, pathItem] of Object.entries(spec.paths)) {
|
|
122
|
+
for (const method of operations) {
|
|
123
|
+
const operation = pathItem[method];
|
|
124
|
+
if (!operation?.["x-zuplo-route"])
|
|
125
|
+
continue;
|
|
126
|
+
const inboundPolicies = operation["x-zuplo-route"]?.policies?.inbound?.reduce((acc, policyName) => {
|
|
127
|
+
const policy = policiesConfig.policies?.find(({ name }) => name === policyName);
|
|
128
|
+
if (!policy)
|
|
129
|
+
return acc;
|
|
130
|
+
// Handle composite policies
|
|
131
|
+
if (policy.handler.export === "CompositeInboundPolicy") {
|
|
132
|
+
const childPolicies = policy.handler.options?.policies;
|
|
133
|
+
return childPolicies ? [...acc, ...childPolicies] : acc;
|
|
134
|
+
}
|
|
135
|
+
return [...acc, policyName];
|
|
136
|
+
}, []);
|
|
137
|
+
if (!inboundPolicies)
|
|
138
|
+
continue;
|
|
139
|
+
// Find API key policies
|
|
140
|
+
const apiKeyPolicies = policiesConfig.policies?.filter((policy) => inboundPolicies.includes(policy.name) &&
|
|
141
|
+
(policy.handler.export === "ApiAuthKeyInboundPolicy" ||
|
|
142
|
+
policy.handler.export === "ApiKeyInboundPolicy") &&
|
|
143
|
+
!policy.handler.options
|
|
144
|
+
?.disableAutomaticallyAddingKeyHeaderToOpenApi) ?? [];
|
|
145
|
+
// Find rate limit policies
|
|
146
|
+
const rateLimitPolicies = policiesConfig.policies?.filter((policy) => inboundPolicies.includes(policy.name) &&
|
|
147
|
+
(policy.handler.export === "RateLimitInboundPolicy" ||
|
|
148
|
+
policy.handler.export === "ComplexRateLimitInboundPolicy")) ?? [];
|
|
149
|
+
if (rateLimitPolicies.length > 0) {
|
|
150
|
+
hasRateLimitPolicies = true;
|
|
151
|
+
}
|
|
152
|
+
// Apply enrichments directly to the operation
|
|
153
|
+
pathItem[method] = enrichWithApiKeyData(operation, apiKeyPolicies);
|
|
154
|
+
pathItem[method] = enrichWithRateLimitData(pathItem[method], rateLimitPolicies);
|
|
155
|
+
}
|
|
156
|
+
}
|
|
157
|
+
// Add security scheme if we have API key policies
|
|
158
|
+
if (policiesConfig.policies?.some((policy) => policy.handler.export === "ApiAuthKeyInboundPolicy" ||
|
|
159
|
+
policy.handler.export === "ApiKeyInboundPolicy")) {
|
|
160
|
+
if (!spec.components)
|
|
161
|
+
spec.components = {};
|
|
162
|
+
if (!spec.components.securitySchemes)
|
|
163
|
+
spec.components.securitySchemes = {};
|
|
164
|
+
if (!spec.components.securitySchemes.api_key) {
|
|
165
|
+
spec.components.securitySchemes.api_key = {
|
|
166
|
+
type: "http",
|
|
167
|
+
scheme: "bearer",
|
|
168
|
+
};
|
|
169
|
+
}
|
|
170
|
+
}
|
|
171
|
+
// Add rate limiting responses only if we found rate limiting policies
|
|
172
|
+
if (hasRateLimitPolicies) {
|
|
173
|
+
if (!spec.components)
|
|
174
|
+
spec.components = {};
|
|
175
|
+
if (!spec.components.responses)
|
|
176
|
+
spec.components.responses = {};
|
|
177
|
+
spec.components.responses.RateLimitNoRetryAfter = rateLimitingResponse;
|
|
178
|
+
spec.components.responses.RateLimitWithRetryAfter =
|
|
179
|
+
rateLimitingResponseWithHeader;
|
|
180
|
+
}
|
|
181
|
+
return spec;
|
|
182
|
+
};
|
|
183
|
+
};
|
|
184
|
+
//# sourceMappingURL=enrich-with-zuplo.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"enrich-with-zuplo.js","sourceRoot":"","sources":["../../src/zuplo/enrich-with-zuplo.ts"],"names":[],"mappings":"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"}
|
package/dist/zuplo/env.d.ts
CHANGED
package/dist/zuplo/env.js
CHANGED
package/dist/zuplo/env.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"env.js","sourceRoot":"","sources":["../../src/zuplo/env.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,QAAQ,GAAG;IACtB;;OAEG;IACH,IAAI,OAAO;QACT,OAAO,OAAO,CAAC,GAAG,CAAC,KAAK,KAAK,GAAG,CAAC;IACnC,CAAC;CACF,CAAC"}
|
|
1
|
+
{"version":3,"file":"env.js","sourceRoot":"","sources":["../../src/zuplo/env.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,QAAQ,GAAG;IACtB;;OAEG;IACH,IAAI,OAAO;QACT,OAAO,OAAO,CAAC,GAAG,CAAC,KAAK,KAAK,GAAG,CAAC;IACnC,CAAC;IAED,IAAI,SAAS;QACX,OAAO,OAAO,CAAC,GAAG,CAAC,gBAAgB,CAAC;IACtC,CAAC;CACF,CAAC"}
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* This file was automatically generated by json-schema-to-typescript.
|
|
3
|
+
* DO NOT MODIFY IT BY HAND. Instead, modify the source JSONSchema file,
|
|
4
|
+
* and run json-schema-to-typescript to regenerate this file.
|
|
5
|
+
*/
|
|
6
|
+
export interface PoliciesConfigFile {
|
|
7
|
+
policies?: PolicyConfigurationFragment[];
|
|
8
|
+
corsPolicies?: CorsPolicyConfiguration[];
|
|
9
|
+
}
|
|
10
|
+
export interface PolicyConfigurationFragment {
|
|
11
|
+
name: string;
|
|
12
|
+
policyType: string;
|
|
13
|
+
handler: HandlerDefinition;
|
|
14
|
+
options?: {
|
|
15
|
+
[k: string]: unknown;
|
|
16
|
+
};
|
|
17
|
+
}
|
|
18
|
+
export interface HandlerDefinition {
|
|
19
|
+
module: string;
|
|
20
|
+
export: string;
|
|
21
|
+
options?: {
|
|
22
|
+
[k: string]: unknown;
|
|
23
|
+
};
|
|
24
|
+
}
|
|
25
|
+
export interface CorsPolicyConfiguration {
|
|
26
|
+
name: string;
|
|
27
|
+
allowCredentials?: boolean;
|
|
28
|
+
maxAge?: number;
|
|
29
|
+
allowedOrigins: string[] | string;
|
|
30
|
+
allowedMethods?: ("GET" | "HEAD" | "POST" | "PUT" | "DELETE" | "CONNECT" | "OPTIONS" | "TRACE" | "PATCH")[] | string;
|
|
31
|
+
allowedHeaders?: string[] | string;
|
|
32
|
+
exposeHeaders?: string[] | string;
|
|
33
|
+
}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
/* eslint-disable */
|
|
2
|
+
/**
|
|
3
|
+
* This file was automatically generated by json-schema-to-typescript.
|
|
4
|
+
* DO NOT MODIFY IT BY HAND. Instead, modify the source JSONSchema file,
|
|
5
|
+
* and run json-schema-to-typescript to regenerate this file.
|
|
6
|
+
*/
|
|
7
|
+
export {};
|
|
8
|
+
//# sourceMappingURL=policy-types.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"policy-types.js","sourceRoot":"","sources":["../../src/zuplo/policy-types.ts"],"names":[],"mappings":"AAAA,oBAAoB;AACpB;;;;GAIG"}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import fs from "node:fs/promises";
|
|
2
|
+
import path from "node:path";
|
|
3
|
+
import { removeExtensions } from "../lib/plugins/openapi/post-processors/removeExtensions.js";
|
|
4
|
+
import { removeParameters } from "../lib/plugins/openapi/post-processors/removeParameters.js";
|
|
5
|
+
import { removePaths } from "../lib/plugins/openapi/post-processors/removePaths.js";
|
|
6
|
+
import { enrichWithZuploData } from "./enrich-with-zuplo.js";
|
|
7
|
+
import { ZuploEnv } from "./env.js";
|
|
8
|
+
export const getProcessors = async (rootDir) => {
|
|
9
|
+
const policiesConfig = JSON.parse(await fs.readFile(path.join(rootDir, "../config/policies.json"), "utf-8"));
|
|
10
|
+
return [
|
|
11
|
+
removePaths({ shouldRemove: ({ operation }) => operation["x-internal"] }),
|
|
12
|
+
removeParameters({
|
|
13
|
+
shouldRemove: ({ parameter }) => parameter["x-internal"],
|
|
14
|
+
}),
|
|
15
|
+
enrichWithZuploData({ policiesConfig }),
|
|
16
|
+
(spec) => {
|
|
17
|
+
const url = ZuploEnv.serverUrl;
|
|
18
|
+
if (!url)
|
|
19
|
+
return spec;
|
|
20
|
+
return { ...spec, servers: [{ url }] };
|
|
21
|
+
},
|
|
22
|
+
removeExtensions({ shouldRemove: (key) => key.startsWith("x-zuplo") }),
|
|
23
|
+
];
|
|
24
|
+
};
|
|
25
|
+
export default getProcessors;
|
|
26
|
+
//# sourceMappingURL=with-zuplo-processors.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"with-zuplo-processors.js","sourceRoot":"","sources":["../../src/zuplo/with-zuplo-processors.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,kBAAkB,CAAC;AAClC,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EAAE,gBAAgB,EAAE,MAAM,4DAA4D,CAAC;AAC9F,OAAO,EAAE,gBAAgB,EAAE,MAAM,4DAA4D,CAAC;AAC9F,OAAO,EAAE,WAAW,EAAE,MAAM,uDAAuD,CAAC;AAEpF,OAAO,EAAE,mBAAmB,EAAE,MAAM,wBAAwB,CAAC;AAC7D,OAAO,EAAE,QAAQ,EAAE,MAAM,UAAU,CAAC;AAEpC,MAAM,CAAC,MAAM,aAAa,GAAG,KAAK,EAAE,OAAe,EAAE,EAAE;IACrD,MAAM,cAAc,GAAG,IAAI,CAAC,KAAK,CAC/B,MAAM,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,yBAAyB,CAAC,EAAE,OAAO,CAAC,CAC1E,CAAC;IAEF,OAAO;QACL,WAAW,CAAC,EAAE,YAAY,EAAE,CAAC,EAAE,SAAS,EAAE,EAAE,EAAE,CAAC,SAAS,CAAC,YAAY,CAAC,EAAE,CAAC;QACzE,gBAAgB,CAAC;YACf,YAAY,EAAE,CAAC,EAAE,SAAS,EAAE,EAAE,EAAE,CAAC,SAAS,CAAC,YAAY,CAAC;SACzD,CAAC;QACF,mBAAmB,CAAC,EAAE,cAAc,EAAE,CAAC;QACvC,CAAC,IAAe,EAAE,EAAE;YAClB,MAAM,GAAG,GAAG,QAAQ,CAAC,SAAS,CAAC;YAC/B,IAAI,CAAC,GAAG;gBAAE,OAAO,IAAI,CAAC;YACtB,OAAO,EAAE,GAAG,IAAI,EAAE,OAAO,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC;QACzC,CAAC;QACD,gBAAgB,CAAC,EAAE,YAAY,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,UAAU,CAAC,SAAS,CAAC,EAAE,CAAC;KACvE,CAAC;AACJ,CAAC,CAAC;AAEF,eAAe,aAAa,CAAC"}
|