@redocly/reef 0.132.0-next.1 → 0.132.0-next.2
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/CHANGELOG.md +39 -0
- package/dist/client/App.js +1 -1
- package/dist/client/TestProvider.js +1 -1
- package/dist/client/app/hooks/catalog/useCatalogSort.d.ts +3 -4
- package/dist/client/app/hooks/catalog/useFetchCatalogEntities.js +1 -1
- package/dist/client/app/hooks/catalog/useFetchCatalogEntitiesRelations.js +1 -1
- package/dist/client/app/hooks/index.d.ts +1 -0
- package/dist/client/app/hooks/index.js +1 -1
- package/dist/client/app/hooks/markdown/useMarkdocRenderer.d.ts +3 -0
- package/dist/client/app/hooks/markdown/useMarkdocRenderer.js +1 -0
- package/dist/client/app/hooks/useBanner.d.ts +3 -5
- package/dist/client/app/hooks/useBanner.js +1 -1
- package/dist/client/app/hooks/utils/match-banner-target.d.ts +2 -2
- package/dist/client/app/hooks/utils/match-banner-target.js +1 -1
- package/dist/client/app/utils/loadAndNavigate.js +1 -1
- package/dist/client/app/utils/scroll-to-anchor.d.ts +3 -0
- package/dist/client/app/utils/scroll-to-anchor.js +1 -0
- package/dist/client/providers/theme/ThemeDataProvider.js +1 -1
- package/dist/constants/common.js +1 -1
- package/dist/server/config/env-schema.d.ts +3 -0
- package/dist/server/config/env-schemas/auth.d.ts +3 -0
- package/dist/server/config/env-schemas/auth.js +1 -1
- package/dist/server/plugins/arazzo-docs/index.js +1 -1
- package/dist/server/plugins/asyncapi-docs/index.js +1 -1
- package/dist/server/plugins/asyncapi-docs/search/get-ai-search-documents.js +3 -3
- package/dist/server/plugins/catalog-entities/database/mappers/create-bff-related-entity.js +1 -1
- package/dist/server/plugins/catalog-entities/database/mappers/field-transformations.d.ts +2 -2
- package/dist/server/plugins/catalog-entities/database/mappers/field-transformations.js +1 -1
- package/dist/server/plugins/catalog-entities/database/repositories/utils/create-merged-entity-fields-for-select.d.ts +1 -0
- package/dist/server/plugins/catalog-entities/database/repositories/utils/create-merged-entity-fields-for-select.js +8 -8
- package/dist/server/plugins/catalog-entities/database/repositories/utils.d.ts +4 -0
- package/dist/server/plugins/catalog-entities/database/repositories/utils.js +1 -1
- package/dist/server/plugins/catalog-entities/extensions/extractors/api-description/arazzo-entities-extractor.js +1 -1
- package/dist/server/plugins/catalog-entities/extensions/extractors/api-description/asyncapi-entities-extractor.js +1 -1
- package/dist/server/plugins/catalog-entities/extensions/extractors/api-description/base.d.ts +13 -1
- package/dist/server/plugins/catalog-entities/extensions/extractors/api-description/base.js +1 -1
- package/dist/server/plugins/catalog-entities/extensions/extractors/api-description/graphql-entities-extractor.js +2 -2
- package/dist/server/plugins/catalog-entities/extensions/extractors/api-description/openapi-entities-extractor.js +1 -1
- package/dist/server/plugins/catalog-entities/get-server-props.js +1 -1
- package/dist/server/plugins/catalog-entities/plugin.js +1 -1
- package/dist/server/plugins/catalog-entities/schemas/database-schemas.d.ts +6 -6
- package/dist/server/plugins/catalog-entities/schemas/database-schemas.js +1 -1
- package/dist/server/plugins/config-parser/index.js +1 -1
- package/dist/server/plugins/config-parser/loaders/redocly-config-loader.js +1 -1
- package/dist/server/plugins/config-parser/loaders/utils/read-and-validate-config.d.ts +1 -0
- package/dist/server/plugins/config-parser/loaders/utils/read-and-validate-config.js +1 -1
- package/dist/server/plugins/default-theme/index.js +1 -1
- package/dist/server/plugins/dev-onboarding/index.js +1 -1
- package/dist/server/plugins/enforce-login/index.d.ts +3 -0
- package/dist/server/plugins/enforce-login/index.js +1 -0
- package/dist/server/plugins/graphql-docs/spec-download.api.js +1 -1
- package/dist/server/plugins/lifecycle.js +2 -2
- package/dist/server/plugins/markdown/compiler.d.ts +1 -1
- package/dist/server/plugins/markdown/compiler.js +1 -1
- package/dist/server/plugins/markdown/get-server-props.js +1 -1
- package/dist/server/plugins/markdown/index.js +1 -1
- package/dist/server/plugins/markdown/markdoc/partials.js +1 -1
- package/dist/server/plugins/markdown/markdown-static-data-loader.js +1 -1
- package/dist/server/plugins/markdown/search/get-ai-search-documents.js +10 -10
- package/dist/server/plugins/mcp/handlers/docs-mcp-handler.js +1 -1
- package/dist/server/plugins/openapi-docs/index.js +1 -1
- package/dist/server/plugins/openapi-docs/load-definition.js +3 -3
- package/dist/server/plugins/openapi-docs/search/get-ai-search-documents.js +32 -32
- package/dist/server/plugins/openapi-docs/spec-download.api.js +1 -1
- package/dist/server/plugins/scorecard-classic/compute-scorecard.js +4 -4
- package/dist/server/plugins/scorecard-classic/loaders/scorecard-config.js +1 -1
- package/dist/server/plugins/scorecard-classic/loaders/scorecard.js +1 -1
- package/dist/server/plugins/search/ai-indexer/prepare-semantic-documents.js +1 -1
- package/dist/server/plugins/search/documents/search-documents.js +1 -1
- package/dist/server/plugins/search/index.js +1 -1
- package/dist/server/plugins/search/llmstxt/index.d.ts +0 -1
- package/dist/server/plugins/search/llmstxt/index.js +4 -4
- package/dist/server/plugins/sso/index.js +1 -1
- package/dist/server/ssr/index.js +1 -1
- package/dist/server/store.d.ts +2 -3
- package/dist/server/store.js +1 -1
- package/dist/server/tools/notifiers/terminal-manager.js +5 -5
- package/dist/server/types/plugins/common.d.ts +4 -4
- package/dist/server/types/plugins/markdown.d.ts +7 -1
- package/dist/server/utils/llmstxt/get-llms-txt-md-path-by-slug.d.ts +19 -0
- package/dist/server/utils/llmstxt/get-llms-txt-md-path-by-slug.js +1 -0
- package/dist/server/utils/rbac/is-rbac-scope-items.d.ts +3 -0
- package/dist/server/utils/rbac/is-rbac-scope-items.js +1 -0
- package/dist/server/utils/rbac.js +1 -1
- package/dist/server/web-server/routes/api-routes/api-routes.js +1 -1
- package/dist/server/web-server/routes/app-data.js +1 -1
- package/dist/server/web-server/routes/ask-ai.js +1 -1
- package/dist/server/web-server/routes/auth.d.ts +2 -1
- package/dist/server/web-server/routes/auth.js +1 -1
- package/dist/server/web-server/routes/catalog/bff-catalog-related-entities.js +1 -1
- package/dist/server/web-server/routes/catalog/bff-catalog.js +1 -1
- package/dist/server/web-server/routes/catalog/helpers/has-access-to-entity.js +1 -1
- package/dist/server/web-server/routes/dynamic-route.js +1 -1
- package/dist/server/web-server/routes/feedback.js +1 -1
- package/dist/server/web-server/routes/helpers/get-rbac-restrictions-data-for-catalog.js +1 -1
- package/dist/server/web-server/routes/page-data.js +1 -1
- package/dist/server/web-server/routes/search.js +1 -1
- package/dist/server/web-server/routes/static-content.js +1 -1
- package/package.json +10 -10
- package/dist/server/web-server/routes/helpers/get-md-asset-pathname.d.ts +0 -2
- package/dist/server/web-server/routes/helpers/get-md-asset-pathname.js +0 -1
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,31 @@
|
|
|
1
1
|
# @redocly/reef
|
|
2
2
|
|
|
3
|
+
## 0.132.0-next.2
|
|
4
|
+
|
|
5
|
+
### Patch Changes
|
|
6
|
+
|
|
7
|
+
- a09344768fc: Fixed an issue where pressing the `Q` key in the terminal in preview mode would not stop the preview.
|
|
8
|
+
- e9058cf9add: Fixed security vulnerability `CVE-2026-0540` by upgrading `dompurify` to version `3.3.3`.
|
|
9
|
+
- e9058cf9add: Fixed security vulnerabilities `CVE-2026-29085`, `CVE-2026-29045`, and `GHSA-v8w9-8mx6-g223` by upgrading `hono` to version `4.12.8`.
|
|
10
|
+
- 19e40b5dbbd: Fixed agent and crawler requests so static files such as `sitemap.xml` are served instead of a non-existent Markdown path, and the site root resolved `index.html.md` correctly instead of a hidden `.index.html.md` path.
|
|
11
|
+
- bc50b469cf5: Fixed an issue where rules in `targets` were not applied correctly to `scorecardClassic` levels.
|
|
12
|
+
- e9058cf9add: Fixed security vulnerabilities `CVE-2026-27904` and `CVE-2026-27903` by upgrading `minimatch` to version `10.2.4`.
|
|
13
|
+
- 9db8221b3f0: Updated `@redocly/openapi-core` to version `2.24.0`.
|
|
14
|
+
- a09344768fc: Fixed an issue where the process did not terminate after certain short-lived CLI commands were executed.
|
|
15
|
+
- d54ca044f01: Fixed an issue where filters on code walkthrough pages overlapped the **Search** dialog.
|
|
16
|
+
- 1f95c1a87f6: Improved performance when building AI search documents for Markdown by avoiding repeated work while merging content chunks.
|
|
17
|
+
- f156e274867: Fixed an issue where navigating to a page with a hash anchor from another page occasionally failed to scroll to the anchor.
|
|
18
|
+
- Updated dependencies [8f8430a807c]
|
|
19
|
+
- Updated dependencies [e9058cf9add]
|
|
20
|
+
- Updated dependencies [ed553fa1387]
|
|
21
|
+
- Updated dependencies [9db8221b3f0]
|
|
22
|
+
- Updated dependencies [d54ca044f01]
|
|
23
|
+
- @redocly/theme@0.64.0-next.2
|
|
24
|
+
- @redocly/openapi-docs@3.20.0-next.2
|
|
25
|
+
- @redocly/asyncapi-docs@1.9.0-next.2
|
|
26
|
+
- @redocly/graphql-docs@1.9.0-next.2
|
|
27
|
+
- @redocly/portal-plugin-mock-server@0.17.0-next.2
|
|
28
|
+
|
|
3
29
|
## 0.132.0-next.1
|
|
4
30
|
|
|
5
31
|
### Minor Changes
|
|
@@ -44,6 +70,19 @@
|
|
|
44
70
|
- @redocly/openapi-docs@3.20.0-next.0
|
|
45
71
|
- @redocly/theme@0.64.0-next.0
|
|
46
72
|
|
|
73
|
+
## 0.131.1
|
|
74
|
+
|
|
75
|
+
### Patch Changes
|
|
76
|
+
|
|
77
|
+
- 3ec346dba7: Fixed security vulnerability `CVE-2026-0540` by upgrading `dompurify` to version `3.3.3`.
|
|
78
|
+
- 3ec346dba7: Fixed security vulnerabilities `CVE-2026-29085`, `CVE-2026-29045`, and `GHSA-v8w9-8mx6-g223` by upgrading `hono` to version `4.12.8`.
|
|
79
|
+
- 3ec346dba7: Fixed security vulnerabilities `CVE-2026-27904` and `CVE-2026-27903` by upgrading `minimatch` to version `10.2.4`.
|
|
80
|
+
- 180aa06763: Fixed security vulnerability `CVE-2026-28292` by upgrading `simple-git` to version `3.32.3`.
|
|
81
|
+
- Updated dependencies [3ec346dba7]
|
|
82
|
+
- @redocly/openapi-docs@3.19.1
|
|
83
|
+
- @redocly/asyncapi-docs@1.8.1
|
|
84
|
+
- @redocly/portal-plugin-mock-server@0.16.1
|
|
85
|
+
|
|
47
86
|
## 0.131.0
|
|
48
87
|
|
|
49
88
|
### Minor Changes
|
package/dist/client/App.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
import*as o from"react";import{useEffect as l}from"react";import{Outlet as
|
|
1
|
+
import*as o from"react";import{useEffect as l}from"react";import{Outlet as f,useLocation as E,useNavigate as g}from"react-router-dom";import{withoutPathPrefix as d}from"@redocly/theme/core/utils";import{InternalServerErrorLayout as P}from"@redocly/theme/layouts/InternalServerErrorLayout";import{RootLayout as h}from"@redocly/theme/layouts/RootLayout";import{PageLayout as D}from"@redocly/theme/layouts/PageLayout";import{components as S}from"@redocly/theme/markdoc/default";import{Sidebar as T}from"./app/Sidebar/Sidebar";import{loadAndNavigate as L}from"./app/utils/loadAndNavigate";import{useActions as v}from"./app/Sidebar/useActions";import{useScrollTracker as _}from"./app/hooks/useScrollTracker";import{useAutoScroll as C}from"./app/hooks/useAutoScroll";import{OPENAPI_DOCS_TEMPLATE_ID as A,ASYNC_API_DOCS_TEMPLATE_ID as N,GRAPHQL_TEMPLATE_ID as O}from"../constants/common";import{removeTrailingSlash as R}from"../utils/url/remove-trailing-slash";import{removeLeadingSlash as y}from"../utils/url/remove-leading-slash";import*as I from"./app/markdoc/custom-components/index";import{DefaultStyles as b}from"./styling/default-styles";import{ThemeDataProvider as k}from"./providers/theme/ThemeDataProvider";import{PageDataContext as M}from"./providers/page-data/PageDataContext";import{SeoTags as x}from"./app/seo/SeoTags";import{useRouterForLocalLinks as B,useRunningEnvironmentCheck as G}from"./providers/hooks";import{usePageData as V,usePageDataLoader as F}from"./providers/page-data/hooks";import{ErrorBoundary as w}from"./ErrorBoundary";import{ErrorDetails as i,Loader as H}from"./server-entry";import"@styles";import{useRouteChangeTracker as Q}from"./app/hooks/useRouteChangeTracker";import{isInIframe as U}from"./utils";import{useL10n as Y}from"./app/l10n";import{PostMessageProvider as j}from"./providers/post-message/PostMessageProvider";import{ScriptLoader as q}from"./ScriptLoader";import{clientRoutes as z}from"./runtime/generated/routes.js";import{DevModeFloatingBar as J}from"./app/DevModeFloatingBar";import{usePageTimeTracker as K}from"./app/hooks/usePageTimeTracker";import{useMarkdocRenderer as W}from"./app/hooks/markdown/useMarkdocRenderer";import{globalData as X}from"./runtime/loader";globalThis.__LOADER.markdocComponents={...I,...S};function ke(){const e=F(),[t,n]=o.useState(e),r=E(),m=g();Y(),l(()=>{e?n(e):L({navigate:m,to:r.pathname+r.search+r.hash}).then(()=>n(H.loadSync(r.pathname)))},[r,m]),B();const a=G();return a?(console.log(a),o.createElement(i,{error:{message:a,name:""}})):t?o.createElement(w,null,o.createElement(b,{palette:X?.palette}),o.createElement(M.Provider,{value:e||t},o.createElement(k,null,o.createElement(j,{enabled:process.env.NODE_ENV==="development"||U()},o.createElement(f,null))))):null}function c(){Q(),K(),_(),C();const e=V(),t=v(),{layout:n}=t,r={layout:n},m=process.env.NODE_ENV!=="production",a=globalThis.SSR_OMIT_SUSPENSE,s=W(e?.props?.ast),u=R(e?.slug||"");if(l(()=>{document.documentElement.classList.add("ready")},[]),e?.props.pagePropGetterError?.message)return m?o.createElement(i,{error:{...e?.props?.pagePropGetterError}}):o.createElement(P,null);if(!!e?.props?.compilationErrors?.length)return e?.Template?o.createElement(e.Template,{pageProps:e?.props,children:s}):null;const p=()=>o.createElement(h,null,o.createElement(D,{sidebar:o.createElement(T,{layoutControls:t})},o.createElement(x,{seo:e?.props.seo,slug:u}),e?.Template?o.createElement(e.Template,{pageProps:[A,N,O].includes(e.templateId)?{...e.props,apiOptions:r}:e?.props,children:s}):null),process.env.NODE_ENV!=="production"&&o.createElement(J,null),o.createElement(q,null));return a?p():o.createElement(o.Suspense,null,p())}const Me=[...z.map(e=>({Component:c,path:y(d(e).substring(1)+"/*")})),{Component:c,path:"*"}];export{ke as App,c as Page,Me as routes};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import e from"react";import{BrowserRouter as o}from"react-router-dom";import{ThemeDataContext as n,SearchSessionProvider as i}from"@redocly/theme/core/contexts";import u from"@redocly/theme/core/templates/Markdown";import{useAnchorPositioning as m,useBreadcrumbs as d,useBanner as l,useCatalogClassic as c,useCurrentProduct as p,useGlobalData as g,useI18n as h,useI18nConfig as f,useL10n as b,useL10nConfig as C,usePageData as T,usePageSharedData as k,usePageVersions as v,usePreloadHistory as P,useProducts as w,useUserMenu as S,useSubmitFeedback as y,useTranslate as D,useSidebarSiblingsData as $,usePageProps as E,useUserTeams as I,useMarkdownText as L,useCodeHighlight as x,useLoadAndNavigate as F,useCatalog as H,useCatalogSort as
|
|
1
|
+
import e from"react";import{BrowserRouter as o}from"react-router-dom";import{ThemeDataContext as n,SearchSessionProvider as i}from"@redocly/theme/core/contexts";import u from"@redocly/theme/core/templates/Markdown";import{useAnchorPositioning as m,useBreadcrumbs as d,useBanner as l,useCatalogClassic as c,useCurrentProduct as p,useGlobalData as g,useI18n as h,useI18nConfig as f,useL10n as b,useL10nConfig as C,usePageData as T,usePageSharedData as k,usePageVersions as v,usePreloadHistory as P,useProducts as w,useUserMenu as S,useSubmitFeedback as y,useTranslate as D,useSidebarSiblingsData as $,usePageProps as E,useUserTeams as I,useMarkdownText as L,useMarkdocRenderer as M,useCodeHighlight as x,useLoadAndNavigate as F,useCatalog as H,useCatalogSort as R,useCatalogSearch as A,useFetchCatalogEntities as B,useFetchCatalogEntitiesRelations as G,useTelemetry as r,useMcpData as O,useFetchCatalogEntityRevisions as U}from"./app/hooks";import{Link as N}from"./app/Link";import{useFacetQuery as Q,useSearch as V,useAiSearch as j}from"./app/search";import{useSidebarItems as q}from"./app/Sidebar/useSidebarItems";import{PageDataContext as z}from"./providers/page-data/PageDataContext";const s={Template:({pageProps:a,children:t})=>e.createElement(u,{pageProps:{...a,metadata:{...a.metadata,markdoc:{tagList:[]}}}},t),templateId:"markdown",isPublic:!0,props:{seo:{title:"Test"},ast:{$$mdtype:"Tag",name:"div",children:[{$$mdtype:"Tag",name:"Heading",attributes:{id:"github-flavored-markdown",level:1},children:["GitHub-flavored markdown"]},{$$mdtype:"Tag",name:"p",attributes:{},children:["These exercises assume you have",{$$mdtype:"Tag",name:"a",attributes:{href:"https://docs.redoc.ly/"},children:["basic markdown knowledge"]},"."]},{$$mdtype:"Tag",name:"Heading",attributes:{id:"create-a-new-plain-markdown-page",level:2},children:["Create a new plain markdown page"]}]},lastModified:new Date("2022-01-01").toISOString()},slug:"",userData:{isAuthenticated:!1,name:"test name",picture:""},sidebar:null,sharedData:{},sharedDataIds:{}},J={useAnchorPositioning:m,useBreadcrumbs:d,useBanner:l,useCatalog:H,useCatalogSort:R,useCatalogSearch:A,useFetchCatalogEntities:B,useFetchCatalogEntitiesRelations:G,useFetchCatalogEntityRevisions:U,useCatalogClassic:c,useCurrentProduct:p,useGlobalData:g,useSearch:V,useAiSearch:j,useFacetQuery:Q,useI18n:h,useI18nConfig:f,useL10n:b,useL10nConfig:C,usePageData:T,usePageSharedData:k,usePageVersions:v,usePreloadHistory:P,useProducts:w,useUserMenu:S,useSidebarItems:q,useSidebarSiblingsData:$,useSubmitFeedback:y,useTranslate:D,useUserTeams:I,usePageProps:E,useMarkdownText:L,useMarkdocRenderer:M,useCodeHighlight:x,useLoadAndNavigate:F,useTelemetry:r,useOtelTelemetry:r,useMcpData:O},K={LinkComponent:N},W={hooks:J,components:K,config:{}};function oe({children:a,customPageData:t}){return e.createElement(o,null,e.createElement(i,null,e.createElement(z.Provider,{value:{...s,...t,props:{...s.props,...t?.props}}},e.createElement(n.Provider,{value:W},a))))}export{oe as TestProvider};
|
|
@@ -1,7 +1,6 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
setSortOption: import("react").Dispatch<import("react").SetStateAction<SortOption | null>>;
|
|
1
|
+
export declare function useCatalogSort(defaultSortOption?: string | null): {
|
|
2
|
+
sortOption: string | null;
|
|
3
|
+
setSortOption: import("react").Dispatch<import("react").SetStateAction<string | null>>;
|
|
5
4
|
handleSortClick: (sortKey: string, direction: "asc" | "desc") => void;
|
|
6
5
|
isColumnSorted: (sortKey: string, direction: "asc" | "desc") => boolean;
|
|
7
6
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{useInfiniteQuery as y}from"@tanstack/react-query";import{useMemo as
|
|
1
|
+
import{useInfiniteQuery as y}from"@tanstack/react-query";import{useMemo as d,useRef as w}from"react";import{withPathPrefix as R}from"@redocly/theme/core/utils";import{getNextPageParam as S}from"../../../utils/catalog/get-next-page-param";import{useSearchTracker as F}from"./useSearchTracker";function x({limit:o=20,filter:i,sort:s="updated_at",search:n}={},r){const m=r?r.items.map(e=>e.key).join("-"):[],c=w(!0),l=c.current&&r;c.current&&(c.current=!1);const a=y({queryFn:async e=>{const t=new URLSearchParams;i&&t.append("filter",i),s&&t.append("sort",s),o&&t.append("limit",o.toString()),n&&t.append("search",n),e.pageParam&&Object.entries(e.pageParam).forEach(([P,f])=>{f!=null&&t.append(P,f.toString())});const p=new URL(R("/bff/catalog-entities"),window.location.origin);p.search=t.toString();const u=await fetch(p.toString());if(!u.ok)throw new Error(`Failed to fetch catalog entities from ${p.pathname}`);return u.json()},queryKey:["bff/catalog-entities",{limit:o,filter:i,sort:s,search:n,initialDataKeys:m}],initialData:l?{pages:[r],pageParams:[null]}:void 0,initialPageParam:null,getNextPageParam:S,refetchOnMount:!0,placeholderData:e=>e}),h=d(()=>{const e=a.data?.pages||[];return e[e.length-1]?.page.total},[a.data?.pages]),g=d(()=>(a.data?.pages||[]).flatMap(e=>e.items||[]),[a.data?.pages]);return F({isLoading:a.isLoading||a.isFetching,items:g,apiResource:"entities",searchQuery:n??""}),{query:a,items:g,total:h}}export{x as useFetchCatalogEntities};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{useInfiniteQuery as y}from"@tanstack/react-query";import{useMemo as
|
|
1
|
+
import{useInfiniteQuery as y}from"@tanstack/react-query";import{useMemo as m,useRef as S}from"react";import{withPathPrefix as F}from"@redocly/theme/core/utils";import{getNextPageParam as R}from"../../../utils/catalog/get-next-page-param";import{useSearchTracker as b}from"./useSearchTracker";function E({entityKey:g,limit:o=20,filter:i,sort:s="updated_at",search:r},n){const l=n?n.items.map(e=>e.key).join("-"):[],c=S(!0),h=c.current&&n;c.current&&(c.current=!1);const t=y({queryFn:async e=>{const a=new URLSearchParams;i&&a.append("filter",i),s&&a.append("sort",s),o&&a.append("limit",o.toString()),r&&a.append("search",r),e.pageParam&&Object.entries(e.pageParam).forEach(([w,f])=>{f!=null&&a.append(w,f.toString())});const p=new URL(F(`/bff/catalog-related-entities/${g}`),window.location.origin);p.search=a.toString();const d=await fetch(p.toString());if(!d.ok)throw new Error(`Failed to fetch catalog entity relations from ${p.pathname}`);return d.json()},queryKey:["bff/catalog-entities-relations",{limit:o,filter:i,sort:s,search:r,entityKey:g,initialDataKeys:l}],initialPageParam:null,initialData:h?{pages:[n],pageParams:[null]}:void 0,refetchOnMount:!0,getNextPageParam:R}),P=m(()=>{const e=t.data?.pages||[];return e[e.length-1]?.page?.total},[t.data?.pages]),u=m(()=>(t.data?.pages||[]).flatMap(e=>e.items||[]),[t.data?.pages]);return b({isLoading:t.isLoading||t.isFetching,items:u,apiResource:"related_entities",searchQuery:r??""}),{query:t,items:u,total:P}}export{E as useFetchCatalogEntitiesRelations};
|
|
@@ -25,6 +25,7 @@ export { useCatalogClassic } from './catalog/useCatalogClassic';
|
|
|
25
25
|
export { useTelemetry } from './useTelemetry';
|
|
26
26
|
export { useUserTeams } from './useUserTeams';
|
|
27
27
|
export { useMarkdownText } from './markdown/useMarkdownText';
|
|
28
|
+
export { useMarkdocRenderer } from './markdown/useMarkdocRenderer';
|
|
28
29
|
export { useCodeHighlight } from './codeHighlight/useCodeHighlight';
|
|
29
30
|
export { useLoadAndNavigate } from './useLoadAndNavigate';
|
|
30
31
|
export { useUserClaims } from './useUserClaims';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
export*from"../../providers/page-data/hooks";import{usePageSharedData as t}from"../../providers/hooks";import{useLoginUrl as a}from"./useLoginUrl";import{useGlobalData as f}from"../useGlobalData";import{useL10n as p}from"../l10n/hooks";import{useL10nConfig as n}from"./useL10nConfig";import{useL10n as g}from"../l10n/hooks";import{useTranslate as C}from"../l10n/hooks";import{useL10nConfig as d}from"./useL10nConfig";export*from"./useCurrentUserTeams";export*from"./products";import{usePageVersions as F}from"../../providers/page-data/hooks";import{useUserMenu as
|
|
1
|
+
export*from"../../providers/page-data/hooks";import{usePageSharedData as t}from"../../providers/hooks";import{useLoginUrl as a}from"./useLoginUrl";import{useGlobalData as f}from"../useGlobalData";import{useL10n as p}from"../l10n/hooks";import{useL10nConfig as n}from"./useL10nConfig";import{useL10n as g}from"../l10n/hooks";import{useTranslate as C}from"../l10n/hooks";import{useL10nConfig as d}from"./useL10nConfig";export*from"./useCurrentUserTeams";export*from"./products";import{usePageVersions as F}from"../../providers/page-data/hooks";import{useUserMenu as P}from"../UserMenu/useUserMenu";import{useSubmitFeedback as T}from"../Feedback/useSubmitFeedback";import{usePreloadHistory as k}from"../usePreloadHistory";import{useBreadcrumbs as D}from"../Sidebar/useBreadcrumbs";import{useBanner as R}from"./useBanner";import{useCatalog as A}from"./catalog/useCatalog";import{useCatalogSort as H}from"./catalog/useCatalogSort";import{useCatalogSearch as w}from"./catalog/useCatalogSearch";import{useFetchCatalogEntities as N}from"./catalog/useFetchCatalogEntities";import{useFetchCatalogEntitiesRelations as j}from"./catalog/useFetchCatalogEntitiesRelations";import{useFetchCatalogEntityRevisions as z}from"./catalog/useFetchCatalogEntityRevisions";import{useCatalogClassic as K}from"./catalog/useCatalogClassic";import{useTelemetry as Q}from"./useTelemetry";import{useUserTeams as X}from"./useUserTeams";import{useMarkdownText as Z}from"./markdown/useMarkdownText";import{useMarkdocRenderer as $}from"./markdown/useMarkdocRenderer";import{useCodeHighlight as oe}from"./codeHighlight/useCodeHighlight";import{useLoadAndNavigate as te}from"./useLoadAndNavigate";import{useUserClaims as ae}from"./useUserClaims";import{useMcpData as fe}from"./useMcpData";import{useAnchorPositioning as pe}from"./useAnchorPositioning";export{pe as useAnchorPositioning,R as useBanner,D as useBreadcrumbs,A as useCatalog,K as useCatalogClassic,w as useCatalogSearch,H as useCatalogSort,oe as useCodeHighlight,N as useFetchCatalogEntities,j as useFetchCatalogEntitiesRelations,z as useFetchCatalogEntityRevisions,f as useGlobalData,p as useI18n,n as useI18nConfig,g as useL10n,d as useL10nConfig,te as useLoadAndNavigate,a as useLoginUrl,$ as useMarkdocRenderer,Z as useMarkdownText,fe as useMcpData,t as usePageSharedData,F as usePageVersions,k as usePreloadHistory,T as useSubmitFeedback,Q as useTelemetry,C as useTranslate,ae as useUserClaims,P as useUserMenu,X as useUserTeams};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import*as t from"react";import{useMemo as n}from"react";import m from"@markdoc/markdoc";import{components as s}from"@redocly-markdoc/components";import{components as p}from"@redocly/theme/markdoc/default";import{isTag as c}from"../../../../markdoc/helpers/guards/is-tag";const d=r=>n(()=>{if(!r)return null;let o;if(typeof r=="string")try{o=JSON.parse(r)}catch(e){return console.error("Error parsing AST string:",e),null}else o=r;return c(o)?m.renderers.react(o,t,{components:{...globalThis.__LOADER?.markdocComponents,...p,...s}}):null},[r]);export{d as useMarkdocRenderer};
|
|
@@ -1,12 +1,10 @@
|
|
|
1
|
-
import type {
|
|
1
|
+
import type { ResolvedBannerConfig } from '@redocly/config';
|
|
2
2
|
type BannerResult = {
|
|
3
|
-
banner:
|
|
4
|
-
dismissBanner: (
|
|
3
|
+
banner: ResolvedBannerConfig | undefined;
|
|
4
|
+
dismissBanner: (hash: string) => void;
|
|
5
5
|
};
|
|
6
6
|
export declare const STORAGE_KEY = "redocly-dismissed-banners";
|
|
7
|
-
export declare const STORAGE_KEY_PER_SLUG = "redocly-dismissed-banners-per-slug";
|
|
8
7
|
export declare function getDismissedBannersFromStorage(): Set<string>;
|
|
9
|
-
export declare function getDismissedSlugsFromStorage(): Set<string>;
|
|
10
8
|
export declare function useBanner(): BannerResult;
|
|
11
9
|
export {};
|
|
12
10
|
//# sourceMappingURL=useBanner.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{useMemo as
|
|
1
|
+
import{useMemo as f,useState as u}from"react";import{useLocation as d}from"react-router-dom";import{useThemeConfig as p}from"@redocly/theme/core/hooks";import{usePageData as g}from"../../providers/page-data/hooks";import{getBannerForSlug as S}from"./utils/match-banner-target.js";const i="redocly-dismissed-banners";function y(){if(typeof window>"u")return new Set;const r=localStorage.getItem(i);if(r){const s=JSON.parse(r);if(Array.isArray(s))return new Set(s)}return new Set}function x(){const{banner:r}=p()||{},o=g()?.props?.frontmatter?.banner,m=d(),[n,c]=u(y()),a=m.pathname;return{banner:f(()=>{const t=(Array.isArray(o)?o:[]).find(e=>!n.has(e.hash));if(t)return t;if(!(!r||!Array.isArray(r)||r.length===0))return S(r,a,n)},[r,o,a,n]),dismissBanner:t=>{const e=new Set(n);e.add(t),c(e),localStorage.setItem(i,JSON.stringify(Array.from(e)))}}}export{i as STORAGE_KEY,y as getDismissedBannersFromStorage,x as useBanner};
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type {
|
|
1
|
+
import type { ResolvedBannerConfig } from '@redocly/config';
|
|
2
2
|
/**
|
|
3
3
|
* Checks if a slug matches a target pattern
|
|
4
4
|
*/
|
|
@@ -6,5 +6,5 @@ export declare function matchesBannerTarget(slug: string, target: string | undef
|
|
|
6
6
|
/**
|
|
7
7
|
* Returns the first matching banner for a slug, or undefined if none match
|
|
8
8
|
*/
|
|
9
|
-
export declare function getBannerForSlug(banners:
|
|
9
|
+
export declare function getBannerForSlug(banners: ResolvedBannerConfig[], slug: string, dismissedBanners?: Set<string>): ResolvedBannerConfig | undefined;
|
|
10
10
|
//# sourceMappingURL=match-banner-target.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import a from"picomatch";import{removeTrailingSlash as s}from"../../../../utils/url/remove-trailing-slash";import{normalizeRouteSlug as f}from"../../../../utils/path/normalize-route-slug";const u={};function c(t){if(!t)return!0;const r=t.trim();return r===""||r==="**"||r==="/**"}function l(t){const r=t.trim();if(c(r))return"**";let e=r.toLowerCase();return e.startsWith("/")&&(e=e.slice(1)),e.endsWith("/")&&!e.endsWith("*/")&&(e=e.slice(0,-1)),e}function
|
|
1
|
+
import a from"picomatch";import{removeTrailingSlash as s}from"../../../../utils/url/remove-trailing-slash";import{normalizeRouteSlug as f}from"../../../../utils/path/normalize-route-slug";const u={};function c(t){if(!t)return!0;const r=t.trim();return r===""||r==="**"||r==="/**"}function l(t){const r=t.trim();if(c(r))return"**";let e=r.toLowerCase();return e.startsWith("/")&&(e=e.slice(1)),e.endsWith("/")&&!e.endsWith("*/")&&(e=e.slice(0,-1)),e}function h(t){return u[t]||(u[t]=a(t,{nocase:!0})),u[t]}function m(t,r){if(c(r)||!r)return!0;const e=s(f(t)).toLowerCase(),i=e.startsWith("/")?e.slice(1):e,n=l(r);if(!n.includes("*")){const o=n.startsWith("/")?n.slice(1):n;return i===s(o)}if(n.endsWith("**")){const o=s(n.slice(0,-2));if(i===o)return!0}return h(n)(i)}function S(t,r,e=new Set){if(!(!t||t.length===0)){for(const i of t)if(!e.has(i.hash)&&m(r,i.target))return i}}export{S as getBannerForSlug,m as matchesBannerTarget};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{withPathPrefix as
|
|
1
|
+
import{withPathPrefix as f}from"@redocly/theme/core/utils";import{isLocalLink as m}from"../../../utils/path/is-local-link.js";import{withLoadProgress as u}from"./withLoadProgress";import{scrollToAnchor as p}from"./scroll-to-anchor";let s;async function L({navigate:n,to:o,origin:a="browser",options:c}){o===""&&(o="/"),s=o;const{pathname:e,hash:d,search:i}=new URL(o,window.location.origin+window.location.pathname),t=decodeURIComponent(d),l=decodeURIComponent(window.location.hash),w=window.__LOADER,r=await u(w.tryLoad(e,void 0,i));if(r?.redirectTo){if(!m(r.redirectTo)){window.location.href=r.redirectTo;return}return L({navigate:n,to:r.redirectTo,origin:a,options:c})}if(o.startsWith(f("/_auth/"))){window.location.href=o;return}if(r&&s===o){if((e!==window.location.pathname||i!==window.location.search||t!==l)&&n({pathname:e,search:i,hash:t},{...c,state:{origin:a},unstable_flushSync:!0}),r.props?.disableAutoScroll)return;requestAnimationFrame(()=>{if(t){const h=t.slice(1);p(h)}else window.scrollTo(0,0)})}}export{L as loadAndNavigate};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{getNavbarElement as l}from"@redocly/theme/core/utils";const r=3;function s(e,o=0){const t=document.getElementById(e)||document.getElementsByName(e)[0];if(t){const n=l()?.offsetHeight??0,i=t.getBoundingClientRect().top+window.scrollY;window.scrollTo({top:i-n,behavior:"smooth"})}else o<r&&requestAnimationFrame(()=>s(e,o+1))}export{r as MAX_ANCHOR_ATTEMPTS,s as scrollToAnchor};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import e from"react";import{ThemeDataContext as m,SearchSessionProvider as l}from"@redocly/theme/core/contexts";import{useAnchorPositioning as d,useBreadcrumbs as g,useBanner as p,useCatalogClassic as f,useCurrentProduct as b,useGlobalData as
|
|
1
|
+
import e from"react";import{ThemeDataContext as m,SearchSessionProvider as l}from"@redocly/theme/core/contexts";import{useAnchorPositioning as d,useBreadcrumbs as g,useBanner as p,useCatalogClassic as f,useCurrentProduct as b,useGlobalData as a,useI18n as h,useI18nConfig as C,useL10n as P,useL10nConfig as S,usePageData as r,usePageSharedData as T,usePageVersions as D,usePreloadHistory as k,useProducts as v,useUserMenu as F,useSubmitFeedback as M,useTranslate as E,useSidebarSiblingsData as L,usePageProps as R,useUserTeams as O,useMarkdownText as y,useMarkdocRenderer as A,useCodeHighlight as w,useLoadAndNavigate as x,useCatalog as I,useCatalogSort as j,useCatalogSearch as B,useFetchCatalogEntities as H,useFetchCatalogEntitiesRelations as N,useFetchCatalogEntityRevisions as U,useTelemetry as s,useMcpData as _}from"../../app/hooks";import{Link as G}from"../../app/Link";import{useFacetQuery as Q,useSearch as V,useAiSearch as W}from"../../app/search";import{useSidebarItems as q}from"../../app/Sidebar/useSidebarItems";import{deepMerge as z}from"../../../utils/object/deep-merge";import{allowlistObject as J}from"../../../utils/object/allowlist-object";const K=["title","description","seo","sidebar","excludeFromSearch","template","redirects","rbac","metadata","slug","codeSnippet","breadcrumbs","markdown","seo","navbar","footer","colorMode","feedback","navigation"],X={useAnchorPositioning:d,useBreadcrumbs:g,useBanner:p,useCatalog:I,useCatalogSort:j,useCatalogSearch:B,useFetchCatalogEntities:H,useFetchCatalogEntitiesRelations:N,useFetchCatalogEntityRevisions:U,useCatalogClassic:f,useCurrentProduct:b,useGlobalData:a,useSearch:V,useAiSearch:W,useFacetQuery:Q,useI18n:h,useI18nConfig:C,useL10n:P,useL10nConfig:S,usePageData:r,usePageSharedData:T,usePageVersions:D,usePreloadHistory:k,useProducts:v,useUserMenu:F,useSidebarItems:q,useSidebarSiblingsData:L,useSubmitFeedback:M,useTranslate:E,useUserTeams:O,usePageProps:R,useMarkdownText:y,useMarkdocRenderer:A,useCodeHighlight:w,useLoadAndNavigate:x,useTelemetry:s,useOtelTelemetry:s,useMcpData:_},Y={LinkComponent:G};function ne({children:n}){const{props:t}=r()||{},o=a()||{},u=e.useMemo(()=>{const c=J(t?.frontmatter||{},K);return z(o,c)},[o,t?.frontmatter]),i={hooks:X,components:Y,config:u};return e.createElement(l,null,e.createElement(m.Provider,{value:i},n))}export{ne as ThemeDataProvider};
|
package/dist/constants/common.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
const E="openapi_docs",n="asyncapi_docs",A="graphql_docs",T="/_spec-gql",O="markdoc",
|
|
1
|
+
const E="openapi_docs",n="asyncapi_docs",A="graphql_docs",T="/_spec-gql",O="markdoc",p="tags",i="*",L={"*":"read"},C=["openid","email"],R=1440*60,I="anonymous",l="authenticated",S="**",d="Reunite",N="translations.yaml",u="redocly.yaml",P="@redocly/theme",D="@theme",h="/app-data.json",x="/eject-component";var e;(function(t){t.BUILD="build",t.DEVELOP="develop",t.PREPARE="prepare"})(e||(e={}));var a;(function(t){t.RATING="rating",t.SENTIMENT="sentiment",t.COMMENT="comment",t.MOOD="mood",t.PROBLEM="problem",t.SCALE="scale"})(a||(a={}));const o="entityKey",_="entityId",c="entityRelationId",g={CORS_PROXY:"/_api/cors",INFO:"/_info",EJECT_COMPONENT:"/eject-component/:componentName",SHARED_PAGE_DATA:"/page-data/shared/*",PAGE_DATA:"/page-data/*",APP_DATA:"/app-data.json",AUTHORIZATION:"/authorize",OIDC_CALLBACK:"/_auth/oidc",SAML_CALLBACK:"/_auth/saml2",REDOCLY_CALLBACK:"/_auth/redocly",REPLAY_OAUTH2_CALLBACK:"/_auth/replay-oauth2",REDOCLY_LOGIN_CALLBACK:"/_auth/redocly/redocly-login",REDOCLY_TOKEN_LOGIN:"/_auth/redocly-token-login",SEARCH:"/_search",SEARCH_FACETS:"/_search-facets",SEMANTIC_SEARCH:"/_semantic-search",LOGOUT:"/logout",POST_LOGOUT:"/post-logout",LOGIN:"/login",IDP_LOGIN:"/_auth/idp-login",INVITE:"/invite/:code",RESOLVE_ROUTE_BY_PATH:"/resolve-route-by-path",RESOLVE_ROUTES_BY_PATHS:"/resolve-routes-by-paths",RESOLVE_ROUTE_BY_SLUG:"/resolve-route-by-slug",GET_ROUTES_BY_LINE:"/get-routes-by-line",FEEDBACK:"/feedback",TELEMETRY:"/_events",OTEL_TRACES:"/_otel/v1/traces",HEALTH:"/_health",ASK_AI:"/_ask-ai",CATALOG_ENTITIES:`/catalog-entities/:${_}?`,CATALOG_ENTITIES_RELATIONS:`/catalog-entities-relations/:${c}?`,BFF_CATALOG_ENTITIES:`/bff/catalog-entities/:${o}?`,BFF_CATALOG_RELATED_ENTITIES:`/bff/catalog-related-entities/:${o}`,BFF_CATALOG_REVISIONS:`/bff/catalog-revisions/:${o}`,MCP_OAUTH_AUTHORIZATION_SERVER:"/.well-known/oauth-authorization-server",MCP_OAUTH_PROTECTED_RESOURCE:"/.well-known/oauth-protected-resource",MCP_DYNAMIC_CLIENT_REGISTRATION:"/_mcp/register",MCP_AUTHORIZATION:"/_mcp/oauth2/auth",MCP_TOKEN_PORTAL:"/_mcp/oauth2/token-portal",MCP_CALLBACK:"/_mcp/oauth/callback",SCORECARDS:"/scorecards"};var r;(function(t){t.AI_SEARCH="aiSearch"})(r||(r={}));const U="/login",m="/invite",M={AUTH0_PASS:"/auth/auth0-pass"},b={NotExist:"ENOENT"},G="default_locale",H="sidebar-",F="PUBLIC_",y="branch.",v=["BROKEN_LINK","MARKDOC","RESOLVE"],B=["logo","navbar","products","footer","sidebar","scripts","links","feedback","search","aiAssistant","colorMode","palette","navigation","codeSnippet","markdown","openapi","graphql","analytics","userMenu","versionPicker","breadcrumbs","catalog","entitiesCatalog","scorecard","scorecards","scorecardClassic","mcp","banner"],s="redocly_category",k="redocly_product",f="redocly_version",K="redocly_teams",Y=s,V={asyncapi:"asyncapi",apiFunctions:"apiFunctions",reactPages:"reactPages",catalog:"catalog",catalogClassic:"catalogClassic",lint:"lint",scorecard:"scorecard",scorecards:"scorecards",l10n:"l10n",openapi:"openapi",graphql:"graphql",markdown:"markdown",devOnboarding:"devOnboarding",seo:"seo",redirects:"redirects",customPlugins:"customPlugins",themeEjecting:"themeEjecting",products:"products",breadcrumbs:"breadcrumbs",mockServer:"mockServer",sso:"sso",rbac:"rbac",analytics:"analytics",removeAttribution:"removeAttribution",advancedSearch:"advancedSearch",soap:"soap",ssoDirect:"ssoDirect",codeWalkthrough:"codeWalkthrough",aiSearchLimit:"aiSearchLimit",mcp:"mcp",banner:"banner"};export{n as ASYNC_API_DOCS_TEMPLATE_ID,y as BRANCH_ENV_PREFIX,_ as CATALOG_ENTITY_ID,o as CATALOG_ENTITY_KEY,c as CATALOG_ENTITY_RELATION_ID,u as CONFIG_FILE_NAME,O as CUSTOM_MARKDOC_OPTIONS_PATH,p as CUSTOM_MARKDOC_TAGS_PATH,I as DEFAULT_ANONYMOUS_VISITOR_TEAM,l as DEFAULT_AUTHENTICATED_TEAM,R as DEFAULT_COOKIE_EXPIRATION,G as DEFAULT_LOCALE_PLACEHOLDER,S as DEFAULT_RBAC_SCOPE,d as DEFAULT_SSO_IDP_TITLE,P as DEFAULT_THEME_NAME,U as DEV_LOGIN_SLUG,x as EJECT_COMPONENT_URL,M as ExternalRoutes,V as FEATURE,a as FEEDBACK_TYPES,b as FsErrors,h as GLOBAL_DATA_URL,T as GRAPHQL_SPEC_SLUG,A as GRAPHQL_TEMPLATE_ID,m as INVITE_SLUG,v as MARKDOC_ERROR_TYPES,E as OPENAPI_DOCS_TEMPLATE_ID,F as PUBLIC_ENV_PREFIX,L as PUBLIC_RBAC_SCOPE_ITEM,i as RBAC_ALL_OTHER_TEAMS,C as REQUIRED_OIDC_SCOPES,r as RbacFeatures,s as SEARCH_CATEGORY_FIELD,Y as SEARCH_GROUP_FACET_FIELD,k as SEARCH_PRODUCT_FIELD,K as SEARCH_RBAC_FIELD,f as SEARCH_VERSION_FIELD,H as SIDEBAR_PREFIX,g as ServerRoutes,N as TRANSLATIONS_FILE_NAME,B as UI_ACCESSIBLE_CONFIG_PROPS,D as USER_THEME_ALIAS,e as cliCommandNames};
|
|
@@ -41,6 +41,7 @@ export declare const envSchema: z.ZodObject<{
|
|
|
41
41
|
OIDC_ISSUER_URL: z.ZodOptional<z.ZodString>;
|
|
42
42
|
LOCALHOST_LOGIN: z.ZodOptional<z.ZodEnum<["true", "false"]>>;
|
|
43
43
|
REDOCLY_OAUTH_USE_INTROSPECT: z.ZodOptional<z.ZodString>;
|
|
44
|
+
REDOCLY_ENFORCE_LOGIN: z.ZodOptional<z.ZodEnum<["true", "false"]>>;
|
|
44
45
|
} & {
|
|
45
46
|
REDOCLY_SSR_RENDER_MODE: z.ZodOptional<z.ZodEnum<["worker", "main"]>>;
|
|
46
47
|
REDOCLY_SSR_WORKERS_MIN: z.ZodOptional<z.ZodNumber>;
|
|
@@ -121,6 +122,7 @@ export declare const envSchema: z.ZodObject<{
|
|
|
121
122
|
OIDC_ISSUER_URL: z.ZodOptional<z.ZodString>;
|
|
122
123
|
LOCALHOST_LOGIN: z.ZodOptional<z.ZodEnum<["true", "false"]>>;
|
|
123
124
|
REDOCLY_OAUTH_USE_INTROSPECT: z.ZodOptional<z.ZodString>;
|
|
125
|
+
REDOCLY_ENFORCE_LOGIN: z.ZodOptional<z.ZodEnum<["true", "false"]>>;
|
|
124
126
|
} & {
|
|
125
127
|
REDOCLY_SSR_RENDER_MODE: z.ZodOptional<z.ZodEnum<["worker", "main"]>>;
|
|
126
128
|
REDOCLY_SSR_WORKERS_MIN: z.ZodOptional<z.ZodNumber>;
|
|
@@ -201,6 +203,7 @@ export declare const envSchema: z.ZodObject<{
|
|
|
201
203
|
OIDC_ISSUER_URL: z.ZodOptional<z.ZodString>;
|
|
202
204
|
LOCALHOST_LOGIN: z.ZodOptional<z.ZodEnum<["true", "false"]>>;
|
|
203
205
|
REDOCLY_OAUTH_USE_INTROSPECT: z.ZodOptional<z.ZodString>;
|
|
206
|
+
REDOCLY_ENFORCE_LOGIN: z.ZodOptional<z.ZodEnum<["true", "false"]>>;
|
|
204
207
|
} & {
|
|
205
208
|
REDOCLY_SSR_RENDER_MODE: z.ZodOptional<z.ZodEnum<["worker", "main"]>>;
|
|
206
209
|
REDOCLY_SSR_WORKERS_MIN: z.ZodOptional<z.ZodNumber>;
|
|
@@ -14,6 +14,7 @@ export declare const authSchema: z.ZodObject<{
|
|
|
14
14
|
OIDC_ISSUER_URL: z.ZodOptional<z.ZodString>;
|
|
15
15
|
LOCALHOST_LOGIN: z.ZodOptional<z.ZodEnum<["true", "false"]>>;
|
|
16
16
|
REDOCLY_OAUTH_USE_INTROSPECT: z.ZodOptional<z.ZodString>;
|
|
17
|
+
REDOCLY_ENFORCE_LOGIN: z.ZodOptional<z.ZodEnum<["true", "false"]>>;
|
|
17
18
|
}, "strip", z.ZodTypeAny, {
|
|
18
19
|
JWT_SECRET_KEY?: string | undefined;
|
|
19
20
|
AUTH_URL?: string | undefined;
|
|
@@ -26,6 +27,7 @@ export declare const authSchema: z.ZodObject<{
|
|
|
26
27
|
OIDC_ISSUER_URL?: string | undefined;
|
|
27
28
|
LOCALHOST_LOGIN?: "true" | "false" | undefined;
|
|
28
29
|
REDOCLY_OAUTH_USE_INTROSPECT?: string | undefined;
|
|
30
|
+
REDOCLY_ENFORCE_LOGIN?: "true" | "false" | undefined;
|
|
29
31
|
}, {
|
|
30
32
|
JWT_SECRET_KEY?: string | undefined;
|
|
31
33
|
AUTH_URL?: string | undefined;
|
|
@@ -38,5 +40,6 @@ export declare const authSchema: z.ZodObject<{
|
|
|
38
40
|
OIDC_ISSUER_URL?: string | undefined;
|
|
39
41
|
LOCALHOST_LOGIN?: "true" | "false" | undefined;
|
|
40
42
|
REDOCLY_OAUTH_USE_INTROSPECT?: string | undefined;
|
|
43
|
+
REDOCLY_ENFORCE_LOGIN?: "true" | "false" | undefined;
|
|
41
44
|
}>;
|
|
42
45
|
//# sourceMappingURL=auth.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{z as o}from"zod";const n=o.object({JWT_SECRET_KEY:o.string().optional(),AUTH_URL:o.string().url().optional(),BH_API_URL:o.string().url().optional(),ENTITLEMENTS_JWKS_CDN_URL:o.string().url().optional(),OAUTH_CLIENT_ID:o.string().optional(),OAUTH_CLIENT_SECRET:o.string().optional(),OIDC_CLIENT_ID:o.string().optional(),OIDC_CLIENT_SECRET:o.string().optional(),OIDC_ISSUER_URL:o.string().url().optional(),LOCALHOST_LOGIN:o.enum(["true","false"]).optional(),REDOCLY_OAUTH_USE_INTROSPECT:o.string().optional()});export{n as authSchema};
|
|
1
|
+
import{z as o}from"zod";const n=o.object({JWT_SECRET_KEY:o.string().optional(),AUTH_URL:o.string().url().optional(),BH_API_URL:o.string().url().optional(),ENTITLEMENTS_JWKS_CDN_URL:o.string().url().optional(),OAUTH_CLIENT_ID:o.string().optional(),OAUTH_CLIENT_SECRET:o.string().optional(),OIDC_CLIENT_ID:o.string().optional(),OIDC_CLIENT_SECRET:o.string().optional(),OIDC_ISSUER_URL:o.string().url().optional(),LOCALHOST_LOGIN:o.enum(["true","false"]).optional(),REDOCLY_OAUTH_USE_INTROSPECT:o.string().optional(),REDOCLY_ENFORCE_LOGIN:o.enum(["true","false"]).optional()});export{n as authSchema};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{simplifyAstStructure as h}from"@redocly/openapi-docs/lib/utils/simplifyAstStructure.js";import{storeDefinitionBundles as p}from"./store-definition-bundles.js";import{arazzoDocLoader as y,arazzoDocsLoader as P}from"./arazzo-doc-loader.js";import{telemetryTraceStep as k}from"../../../cli/telemetry/helpers/trace-step.js";const u="arazzo-docs-";async function $(w){let l=[];return{id:"arazzo",loaders:{"arazzo-doc":y,"arazzo-docs":P},processContent:async(e,o)=>{await k("build.plugin.arazzo_docs",async()=>{for(const t of await o.fs.scan(/(\.ya?ml|\.json)$/))if(!await o.isPathIgnored(t.relativePath))try{const{data:a,compoundHash:
|
|
1
|
+
import{simplifyAstStructure as h}from"@redocly/openapi-docs/lib/utils/simplifyAstStructure.js";import{storeDefinitionBundles as p}from"./store-definition-bundles.js";import{arazzoDocLoader as y,arazzoDocsLoader as P}from"./arazzo-doc-loader.js";import{telemetryTraceStep as k}from"../../../cli/telemetry/helpers/trace-step.js";const u="arazzo-docs-";async function $(w){let l=[];return{id:"arazzo",loaders:{"arazzo-doc":y,"arazzo-docs":P},processContent:async(e,o)=>{await k("build.plugin.arazzo_docs",async()=>{for(const t of await o.fs.scan(/(\.ya?ml|\.json)$/))if(!await o.isPathIgnored(t.relativePath))try{const{data:a,compoundHash:c}=await o.cache.load(t.realRelativePath,"arazzo-doc");if(!a?.length)continue;l=a.map(({markdocChunks:r,relativePath:n,isVirtual:i,customOutputRelativeFile:s,realRelativePath:d})=>({chunks:r,relativePath:n,realRelativePath:d,isVirtual:s!=null||t.isVirtual||i})),p(a,e.outdir,c);for(const r of a){const n=`${u}${r.relativePath}`;await e.createSharedData(n,{document:r.document})}}catch(a){console.error(a)}})},afterRoutesCreated:async(e,o)=>{for(const{chunks:t,relativePath:a,isVirtual:c,realRelativePath:r}of l)await o.cache.load(a,{loader:async function(){await o.cache.load(r,"arazzo-doc");for(const{node:i,markdown:s,pointer:d,key:z,relativePath:m}of t){const{ast:f}=await e.parseMarkdoc({input:{content:s,relativePath:d,isVirtual:c},context:o,deps:{sharedDataIds:[`${u}${m}`]}});i[`x-parsed-md-${z}`]={result:h(f)}}},name:"arazzo-markdoc-inline-parser"})}}}export{$ as arazzoDocsPlugin};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import A from"path";import{simplifyAstStructure as E}from"@redocly/openapi-docs/lib/utils/simplifyAstStructure.js";import{buildMenuItems as $}from"@redocly/asyncapi-docs/lib/utils/build-menu-items.js";import{findFirstBinding as T}from"@redocly/asyncapi-docs/lib/utils/find-first-binding.js";import{ASYNC_API_DOCS_TEMPLATE_ID as v}from"../../../constants/common.js";import{combineUrls as D}from"@redocly/theme/core/utils";import{PUBLIC_API_DEFINITIONS_FOLDER as R}from"../../constants/common.js";import{logger as x}from"../../tools/notifiers/logger.js";import{getRouteSlugsForPath as F}from"../utils.js";import{getTemplatePath as b}from"./get-template-path.js";import{storeDefinitionBundles as O}from"./store-definition-bundles.js";import{asyncapiDocLoader as N,asyncapiDocsLoader as j}from"./asyncapi-doc-loader.js";import{searchResolver as L}from"./search/search-resolver.js";import{getAiDocumentsStore as G}from"./search/get-ai-search-documents.js";import{telemetryTraceStep as M}from"../../../cli/telemetry/helpers/trace-step.js";const _="asyncapi-docs-";async function ot(d){let p=[],u=new Set;return{id:"asyncapi",requiredEntitlements:["asyncapi"],loaders:{"asyncapi-doc":N,"asyncapi-docs":j},processContent:async(e,o)=>{await M("build.plugin.asyncapi_docs",async()=>{if((await o.getConfig()).plugins?.some(l=>l.startsWith("@redocly/portal-plugin-async-api/"))){x.warn("The plugin '@redocly/portal-plugin-async-api' is deprecated. Please remove it from your config to use built-in AsyncAPI docs.");return}const c=e.createTemplate(v,b("../../../client/templates/asyncapi-docs/template.js")),g=e.registerServerPropsGetter(v,b("./get-server-props.js"));for(const l of await o.fs.scan(/(\.ya?ml|\.json)$/))if(!await o.isPathIgnored(l.relativePath))try{const{data:r,compoundHash:w}=await o.cache.load(l.realRelativePath,"asyncapi-doc");if(!r?.length)continue;p=r.map(({markdocChunks:t,relativePath:s,isVirtual:m,customOutputRelativeFile:f,realRelativePath:y})=>({chunks:t,relativePath:s,realRelativePath:y,isVirtual:f!=null||l.isVirtual||m})),O(r,e.outdir,w);for(const t of r){const s=`${_}${t.relativePath}`,m=T(t.document),{navItems:f,apiItems:y}=$({asyncApiDoc:t.document,protocol:m||""}),I=[{url:D(R,`${C(t.relativePath,".json")}?download`)},{url:D(R,`${C(t.relativePath,".yaml")}?download`)}];await e.createSharedData(s,{document:t.document,apiItems:y,protocol:m,downloadUrls:I}),f.forEach(i=>{const n={fsPath:t.relativePath,slugSuffix:`/${i.link}`,templateId:c,sharedData:[{key:"AsyncApiDefinition",id:s}],getStaticData:S(o.withPathPrefix,i.label),serverPropsGetterIds:[g]};e.addRoute(n),i.items&&i.items.forEach(a=>{e.addRoute({...n,slugSuffix:`/${a.link}`,getStaticData:S(o.withPathPrefix,a.label)}),a.items&&a.items.forEach(h=>{e.addRoute({...n,slugSuffix:`/${h.link}`,getStaticData:S(o.withPathPrefix,a.label)})})})}),e.addRoute({fsPath:t.customOutputRelativeFile||t.relativePath,templateId:c,hasClientRoutes:!0,getSidebar:i=>{const n=a=>{const h={...a};return a.link&&(h.routeSlug=D(i.slug,a.link),h.link=D(i.slug,a.link)),a.items&&(h.items=a.items.map(n)),h};return[{type:"link",label:t.document.info?.title??"AsyncAPI Overview",routeSlug:i.slug,link:i.slug},...f.map(n)]},getSearchDocuments:L(e,t.document),getStaticData:S(o.withPathPrefix,t.document.info?.title??"AsyncAPI Docs"),getAiDocumentsStore:G({actions:e,document:t.document,metadata:{type:"asyncapi",title:t.document.info?.title??"AsyncAPI Docs",description:t.document.info?.description??"",...t.document.info?.["x-metadata"]??{}}}),metadata:{type:"asyncapi",title:t.document.info?.title??"AsyncAPI Docs",description:t.document.info?.description??"",...t.document.info?.["x-metadata"]??{}},sharedData:[{key:"AsyncApiDefinition",id:s}]})}}catch(r){console.error(r)}})},afterRoutesCreated:async(e,o)=>{const P=new Set;for(const{chunks:c,relativePath:g,isVirtual:l,realRelativePath:r}of p){const w=F(e.getAllRoutes(),g),t=(await o.cache.load(r,"asyncapi-doc")).compoundHash;await o.cache.load(g,{loader:async function(){for(const{node:m,markdown:f,pointer:y,key:I,relativePath:i}of c){const{ast:n}=await e.parseMarkdoc({content:f,relativePath:y,isVirtual:l},o,{sharedDataIds:[`${_}${i}`],routeSlugs:w});m[`x-parsed-md-${I}`]={result:E(n)}}},name:"asyncapi-markdoc-inline-parser"},[t]);for(const{pointer:s}of c)P.add(s)}const k=u.difference(P);for(const c of k)o.cache.delete(c);u=P}}}function S(d,p){return async function(u,e){return{props:{settings:{baseUrlPath:d(u.baseSlug)},disableAutoScroll:!0,seo:{title:p}}}}}function C(d,p){const u=A.posix.dirname(d),e=A.posix.basename(d,A.posix.extname(d))+p;return A.posix.join(u,e)}export{ot as asyncAPIDocsPlugin};
|
|
1
|
+
import A from"path";import{simplifyAstStructure as E}from"@redocly/openapi-docs/lib/utils/simplifyAstStructure.js";import{buildMenuItems as $}from"@redocly/asyncapi-docs/lib/utils/build-menu-items.js";import{findFirstBinding as T}from"@redocly/asyncapi-docs/lib/utils/find-first-binding.js";import{ASYNC_API_DOCS_TEMPLATE_ID as v}from"../../../constants/common.js";import{combineUrls as D}from"@redocly/theme/core/utils";import{PUBLIC_API_DEFINITIONS_FOLDER as R}from"../../constants/common.js";import{logger as x}from"../../tools/notifiers/logger.js";import{getRouteSlugsForPath as F}from"../utils.js";import{getTemplatePath as b}from"./get-template-path.js";import{storeDefinitionBundles as O}from"./store-definition-bundles.js";import{asyncapiDocLoader as N,asyncapiDocsLoader as j}from"./asyncapi-doc-loader.js";import{searchResolver as L}from"./search/search-resolver.js";import{getAiDocumentsStore as G}from"./search/get-ai-search-documents.js";import{telemetryTraceStep as M}from"../../../cli/telemetry/helpers/trace-step.js";const _="asyncapi-docs-";async function ot(d){let p=[],u=new Set;return{id:"asyncapi",requiredEntitlements:["asyncapi"],loaders:{"asyncapi-doc":N,"asyncapi-docs":j},processContent:async(e,o)=>{await M("build.plugin.asyncapi_docs",async()=>{if((await o.getConfig()).plugins?.some(l=>l.startsWith("@redocly/portal-plugin-async-api/"))){x.warn("The plugin '@redocly/portal-plugin-async-api' is deprecated. Please remove it from your config to use built-in AsyncAPI docs.");return}const c=e.createTemplate(v,b("../../../client/templates/asyncapi-docs/template.js")),g=e.registerServerPropsGetter(v,b("./get-server-props.js"));for(const l of await o.fs.scan(/(\.ya?ml|\.json)$/))if(!await o.isPathIgnored(l.relativePath))try{const{data:r,compoundHash:w}=await o.cache.load(l.realRelativePath,"asyncapi-doc");if(!r?.length)continue;p=r.map(({markdocChunks:t,relativePath:s,isVirtual:m,customOutputRelativeFile:f,realRelativePath:y})=>({chunks:t,relativePath:s,realRelativePath:y,isVirtual:f!=null||l.isVirtual||m})),O(r,e.outdir,w);for(const t of r){const s=`${_}${t.relativePath}`,m=T(t.document),{navItems:f,apiItems:y}=$({asyncApiDoc:t.document,protocol:m||""}),I=[{url:D(R,`${C(t.relativePath,".json")}?download`)},{url:D(R,`${C(t.relativePath,".yaml")}?download`)}];await e.createSharedData(s,{document:t.document,apiItems:y,protocol:m,downloadUrls:I}),f.forEach(i=>{const n={fsPath:t.relativePath,slugSuffix:`/${i.link}`,templateId:c,sharedData:[{key:"AsyncApiDefinition",id:s}],getStaticData:S(o.withPathPrefix,i.label),serverPropsGetterIds:[g]};e.addRoute(n),i.items&&i.items.forEach(a=>{e.addRoute({...n,slugSuffix:`/${a.link}`,getStaticData:S(o.withPathPrefix,a.label)}),a.items&&a.items.forEach(h=>{e.addRoute({...n,slugSuffix:`/${h.link}`,getStaticData:S(o.withPathPrefix,a.label)})})})}),e.addRoute({fsPath:t.customOutputRelativeFile||t.relativePath,templateId:c,hasClientRoutes:!0,getSidebar:i=>{const n=a=>{const h={...a};return a.link&&(h.routeSlug=D(i.slug,a.link),h.link=D(i.slug,a.link)),a.items&&(h.items=a.items.map(n)),h};return[{type:"link",label:t.document.info?.title??"AsyncAPI Overview",routeSlug:i.slug,link:i.slug},...f.map(n)]},getSearchDocuments:L(e,t.document),getStaticData:S(o.withPathPrefix,t.document.info?.title??"AsyncAPI Docs"),getAiDocumentsStore:G({actions:e,document:t.document,metadata:{type:"asyncapi",title:t.document.info?.title??"AsyncAPI Docs",description:t.document.info?.description??"",...t.document.info?.["x-metadata"]??{}}}),metadata:{type:"asyncapi",title:t.document.info?.title??"AsyncAPI Docs",description:t.document.info?.description??"",...t.document.info?.["x-metadata"]??{}},sharedData:[{key:"AsyncApiDefinition",id:s}]})}}catch(r){console.error(r)}})},afterRoutesCreated:async(e,o)=>{const P=new Set;for(const{chunks:c,relativePath:g,isVirtual:l,realRelativePath:r}of p){const w=F(e.getAllRoutes(),g),t=(await o.cache.load(r,"asyncapi-doc")).compoundHash;await o.cache.load(g,{loader:async function(){for(const{node:m,markdown:f,pointer:y,key:I,relativePath:i}of c){const{ast:n}=await e.parseMarkdoc({input:{content:f,relativePath:y,isVirtual:l},context:o,deps:{sharedDataIds:[`${_}${i}`],routeSlugs:w}});m[`x-parsed-md-${I}`]={result:E(n)}}},name:"asyncapi-markdoc-inline-parser"},[t]);for(const{pointer:s}of c)P.add(s)}const k=u.difference(P);for(const c of k)o.cache.delete(c);u=P}}}function S(d,p){return async function(u,e){return{props:{settings:{baseUrlPath:d(u.baseSlug)},disableAutoScroll:!0,seo:{title:p}}}}}function C(d,p){const u=A.posix.dirname(d),e=A.posix.basename(d,A.posix.extname(d))+p;return A.posix.join(u,e)}export{ot as asyncAPIDocsPlugin};
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{basename as
|
|
1
|
+
import{basename as S}from"node:path";import{REDOCLY_TEAMS_RBAC as y}from"@redocly/config";import{isResourcePubliclyAccessible as C}from"../../../utils/rbac.js";import{getLlmsTxtMdPathBySlug as A}from"../../../utils/llmstxt/get-llms-txt-md-path-by-slug.js";import{getLocaleFromRelativePath as L}from"../../../fs/utils/get-locale-from-relative-path.js";import{extractDocumentSearchFacets as j}from"./search-facets.js";import{removeMarkdownLinks as m}from"../../openapi-docs/utils.js";import{processSchema as d}from"./schema-processor.js";import{llmsTxtLink as k}from"../../search/llmstxt/index.js";const Z=({actions:n,document:e,metadata:i})=>async(t,s,r)=>{const a=t.getSidebar?.(t)||[],c=await r.getConfig(),{allSearchDocuments:o,publiclyAccessibleSearchDocuments:l}=b(t,a,e,n,i,c);if(o.length)return{async getLLMsTxts(){return l.map(f=>({slug:f.url,fsPath:t.fsPath,title:f.title,content:f.content,includeInLLMsTxt:f.includeInLLMsTxt}))},async getSearchDocuments(){return o}}};function b(n,e,i,t,s,r,a){const c=[],o=[];for(const l of e){if(l.type==="group"){const h=l.apiItemData?.type==="channel"?l:a,{allSearchDocuments:D,publiclyAccessibleSearchDocuments:P}=b(n,l.items||[],i,t,s,r,h);c.push(...D),o.push(...P)}const f=I(n,l,i,t,s,r);f&&(c.push(f),B(l,r,a)&&o.push(f))}return{allSearchDocuments:c,publiclyAccessibleSearchDocuments:o}}function I(n,e,i,t,s,r){const a=F(e,i);if(!a)return null;const c=e.link||"",o=e.httpVerb||"",l=L(n.fsPath),f=j(t,s),h=M(n,e,i,a,o,c,r);return{url:c||n.slug,fsPath:n.fsPath,content:h.trim(),title:m(a.title||"")||S(n.fsPath),locale:l,product:n.product?.name,facets:f,includeInLLMsTxt:!e.apiItemData}}function M(n,e,i,t,s,r,a){let c="";const o=m(t.title||""),l=m(t.description||"")+m(t.summary||"");return o&&(c+=`# ${o}
|
|
2
2
|
|
|
3
3
|
`),l&&(c+=`${l}
|
|
4
4
|
|
|
@@ -17,7 +17,7 @@ import{basename as C}from"node:path";import{REDOCLY_TEAMS_RBAC as y}from"@redocl
|
|
|
17
17
|
`),e+=`
|
|
18
18
|
`;return e}function T(n,e){const i=n.getSidebar?.(n)||[],t=$(i,e);if(Object.keys(t).length===0)return"";let s="";for(const[,r]of Object.entries(t))if(r.length>0)for(const a of r){const c=a.label||"Untitled",o=a.link||a.routeSlug||"";s+=`#### ${c}
|
|
19
19
|
|
|
20
|
-
`,o&&(s+=` - ${
|
|
20
|
+
`,o&&(s+=` - ${k({title:c,description:void 0,slug:A(o)})}
|
|
21
21
|
|
|
22
22
|
`)}return s}function x(n,e,i,t){const s=n.apiItemData?.id;if(!s)return"";const r=e.channels?.[s];if(!r)return"";let a="";if(r.parameters&&Object.keys(r.parameters).length>0){a+=`## Parameters
|
|
23
23
|
|
|
@@ -53,4 +53,4 @@ import{basename as C}from"node:path";import{REDOCLY_TEAMS_RBAC as y}from"@redocl
|
|
|
53
53
|
`,r.description&&(s+=`${r.description}
|
|
54
54
|
`),r.summary&&(s+=`${r.summary}
|
|
55
55
|
`),s+=`
|
|
56
|
-
`}}return s}function $(n,e){const i={};for(const t of n)t.type==="group"?t.apiItemData?.type==="channel"?
|
|
56
|
+
`}}return s}function $(n,e){const i={};for(const t of n)t.type==="group"?t.apiItemData?.type==="channel"?q(t,i,e):V(t,i,e):t.apiItemData?.type==="channel"&&E(t,i,e);return i}function q(n,e,i){const t=n.label||"Channel";if(p(u(n),i)&&(e[t]||(e[t]=[]),e[t].push(n),n.items))for(const s of n.items)s.apiItemData?.type==="operation"&&p(u(s),i)&&e[t].push(s)}function V(n,e,i){if(n.items){const t=$(n.items,i);for(const[s,r]of Object.entries(t))e[s]||(e[s]=[]),e[s].push(...r)}}function E(n,e,i){const t=n.label||"Channel";if(p(u(n),i)&&(e[t]||(e[t]=[]),e[t].push(n),n.items))for(const s of n.items)s.apiItemData?.type==="operation"&&p(u(s),i)&&e[t].push(s)}function F(n,e){const{apiItemData:i,type:t}=n;return i?.type?w(i,e):t==="link"?_(e):null}function w(n,e){switch(n.type){case"channel":return e.channels?.[n.id]||null;case"operation":return e.operations?.[n.id]||null;default:return null}}function _(n){return{description:n.info?.description||"",title:n.info?.title||"",summary:""}}function B(n,e,i){const t=p(u(n),e);if(n.apiItemData?.type==="operation"&&i){const s=p(u(i),e);return t&&s}return t}function u(n){return{slug:n.link||"",[y]:n[y]}}function p(n,e){return e.access?.requiresLogin?!0:C(n,e)}export{Z as getAiDocumentsStore};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{logger as i}from"../../../../tools/notifiers/logger.js";import{relatedEntityDatabaseSchema as y,relatedEntityQueryRowDatabaseSchema as s}from"../../schemas/database-schemas.js";import{validateWithResult as
|
|
1
|
+
import{logger as i}from"../../../../tools/notifiers/logger.js";import{relatedEntityDatabaseSchema as y,relatedEntityQueryRowDatabaseSchema as s}from"../../schemas/database-schemas.js";import{validateWithResult as o}from"../../utils/ajv-validator.js";import{readString as t}from"../../utils/read-string.js";function u(e){return!e.id||!e.type||!e.key||!e.title?(i.warn(`Invalid database bff catalog related entity: missing required fields (id: ${e.id}, type: ${e.type}, key: ${e.key}, title: ${e.title})`),null):{id:e.id,type:e.type,key:e.key,title:e.title,summary:e.summary,source:e.source,sourceFile:e.sourceFile,relationRole:e.relationRole,relationType:e.relationType,createdAt:e.createdAt,updatedAt:e.updatedAt,metadata:e.metadata,version:e.version,...e.revision!==null&&{revision:e.revision}}}function l(e){if(e){if(typeof e=="string")try{return e?JSON.parse(e):void 0}catch{return}if(typeof e=="object"&&e!==null)return e}}function p(e){return typeof e=="string"||e===null||typeof e=="object"&&e!==null&&!Array.isArray(e)?e:null}function m(e){const a=t(e.source_to_target_relation)??t(e.target_to_source_relation)??t(e.relationType)??t(e.relation_type)??t(e.relationName)??t(e.relation_name)??"";return{id:t(e.id)??"",type:t(e.type)??"",key:t(e.key)??"",title:t(e.title)??"",summary:t(e.summary,!0)??null,source:t(e.source)??"",source_file:t(e.source_file,!0)??t(e.sourceFile,!0)??null,direction:t(e.direction)??"",relation_field:a,created_at:t(e.created_at,!0)??"",updated_at:t(e.updated_at,!0)??"",metadata:p(e.metadata),version:t(e.version,!0)??null,revision:t(e.revision,!0)??null}}function k(e){const a=o(y,e);if(!a.success)return i.warn(`Invalid database bff catalog related entity, error: ${a.error}`),null;const r=a.data||{};return u({id:r.id,type:r.type,key:r.key,title:r.title,summary:r.summary||null,source:r.source,sourceFile:r.source_file||null,relationRole:r.relation_role||"source",relationType:r.relation_type||"",createdAt:r.created_at,updatedAt:r.updated_at,metadata:l(r.metadata),version:r.version||null,revision:null})}function R(e){const a=m(e),r=o(s,a);if(!r.success)return i.warn(`Invalid database bff catalog related entity query row (key: ${a.key||"unknown"}), error: ${r.error}`),null;const n=r.data||{},c=n.direction==="outgoing"?"source":"target",d=n.relation_field.replace("reverse:","");return u({id:n.id,type:n.type,key:n.key,title:n.title,summary:n.summary??null,source:n.source,sourceFile:n.source_file??null,relationRole:c,relationType:d,createdAt:n.created_at,updatedAt:n.updated_at,metadata:l(n.metadata),version:n.version??null,revision:n.revision??null})}export{k as createBffRelatedEntity,R as createBffRelatedEntityFromQueryRow};
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
export declare const ENTITY_RELATION_TO_DATABASE: {
|
|
2
|
-
readonly
|
|
2
|
+
readonly relation_type: "source_to_target_relation";
|
|
3
3
|
};
|
|
4
4
|
export declare const ENTITY_RELATION_FROM_DATABASE: {
|
|
5
|
-
readonly source_to_target_relation: "
|
|
5
|
+
readonly source_to_target_relation: "relationType";
|
|
6
6
|
};
|
|
7
7
|
//# sourceMappingURL=field-transformations.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
const t={
|
|
1
|
+
const t={relation_type:"source_to_target_relation"},_={source_to_target_relation:"relationType"};export{_ as ENTITY_RELATION_FROM_DATABASE,t as ENTITY_RELATION_TO_DATABASE};
|
|
@@ -1,13 +1,13 @@
|
|
|
1
|
-
import{sql as u}from"drizzle-orm";function p(t="r",d="l"){return{id
|
|
1
|
+
import{sql as u}from"drizzle-orm";function p(t="r",d="l"){return{id:n("id","id",t,d),organizationId:n("organization_id","organization_id",t,d),projectId:n("project_id","project_id",t,d),key:u.raw(`${t}.key AS key`),type:n("type","type",t,d),title:n("title","title",t,d),summary:n("summary","summary",t,d),tags:_("tags","tags",t,d),metadata:_("metadata","metadata",t,d),git:_("git","git",t,d),contact:_("contact","contact",t,d),links:_("links","links",t,d),createdAt:u.raw(`MIN(${t}.created_at, ${d}.created_at) AS created_at`),updatedAt:u.raw(`MAX(${t}.updated_at, ${d}.updated_at) AS updated_at`),source:n("source","source",t,d),sourceFile:n("source_file","source_file",t,d),fileHash:n("file_hash","file_hash",t,d),version:u.raw(`${t}.version AS version`),revision:u.raw(`${t}.revision AS revision`),hash:n("hash","hash",t,d),isCurrent:n("is_current","is_current",t,d),isDefaultVersion:n("is_default_version","is_default_version",t,d),isDeleted:n("is_deleted","is_deleted",t,d),scorecardsStatus:n("scorecards_status","scorecards_status",t,d)}}function _(t,d,$="r",r="l"){return u.raw(`
|
|
2
2
|
CASE
|
|
3
|
-
WHEN ${
|
|
4
|
-
WHEN ${r}.${t} IS NULL THEN ${
|
|
5
|
-
WHEN ${
|
|
6
|
-
ELSE json_patch(${
|
|
3
|
+
WHEN ${$}.${t} IS NULL THEN ${r}.${t}
|
|
4
|
+
WHEN ${r}.${t} IS NULL THEN ${$}.${t}
|
|
5
|
+
WHEN ${$}.updated_at >= ${r}.updated_at THEN json_patch(${r}.${t}, ${$}.${t})
|
|
6
|
+
ELSE json_patch(${$}.${t}, ${r}.${t})
|
|
7
7
|
END AS ${d}
|
|
8
|
-
`)}function
|
|
8
|
+
`)}function n(t,d,$="r",r="l"){return u.raw(`
|
|
9
9
|
CASE
|
|
10
|
-
WHEN ${
|
|
11
|
-
ELSE COALESCE(${r}.${t}, ${
|
|
10
|
+
WHEN ${$}.updated_at >= ${r}.updated_at THEN COALESCE(${$}.${t}, ${r}.${t})
|
|
11
|
+
ELSE COALESCE(${r}.${t}, ${$}.${t})
|
|
12
12
|
END AS ${d}
|
|
13
13
|
`)}export{p as createMergedEntityFieldsForSelect};
|
|
@@ -20,6 +20,7 @@ export declare const createEntityFieldsForSelect: (tableAlias?: string, idAlias?
|
|
|
20
20
|
revision: import("drizzle-orm").SQL<unknown>;
|
|
21
21
|
hash: import("drizzle-orm").SQL<unknown>;
|
|
22
22
|
isCurrent: import("drizzle-orm").SQL<unknown>;
|
|
23
|
+
isDefaultVersion: import("drizzle-orm").SQL<unknown>;
|
|
23
24
|
isDeleted: import("drizzle-orm").SQL<unknown>;
|
|
24
25
|
scorecardsStatus: import("drizzle-orm").SQL<unknown>;
|
|
25
26
|
};
|
|
@@ -61,6 +62,7 @@ export declare const createQualifiedEntityFieldsForSelect: (tableAlias?: string)
|
|
|
61
62
|
revision: import("drizzle-orm").SQL<unknown>;
|
|
62
63
|
hash: import("drizzle-orm").SQL<unknown>;
|
|
63
64
|
isCurrent: import("drizzle-orm").SQL<unknown>;
|
|
65
|
+
isDefaultVersion: import("drizzle-orm").SQL<unknown>;
|
|
64
66
|
isDeleted: import("drizzle-orm").SQL<unknown>;
|
|
65
67
|
};
|
|
66
68
|
export declare const createQualifiedEntityFieldsForSelectWithAliases: (tableAlias?: string) => {
|
|
@@ -85,6 +87,7 @@ export declare const createQualifiedEntityFieldsForSelectWithAliases: (tableAlia
|
|
|
85
87
|
revision: import("drizzle-orm").SQL.Aliased<unknown>;
|
|
86
88
|
hash: import("drizzle-orm").SQL.Aliased<unknown>;
|
|
87
89
|
isCurrent: import("drizzle-orm").SQL.Aliased<unknown>;
|
|
90
|
+
isDefaultVersion: import("drizzle-orm").SQL.Aliased<unknown>;
|
|
88
91
|
isDeleted: import("drizzle-orm").SQL.Aliased<unknown>;
|
|
89
92
|
};
|
|
90
93
|
export declare const FIELDS_TO_SELECT_FOR_ENTITY: {
|
|
@@ -109,6 +112,7 @@ export declare const FIELDS_TO_SELECT_FOR_ENTITY: {
|
|
|
109
112
|
revision: import("drizzle-orm").SQL<unknown>;
|
|
110
113
|
hash: import("drizzle-orm").SQL<unknown>;
|
|
111
114
|
isCurrent: import("drizzle-orm").SQL<unknown>;
|
|
115
|
+
isDefaultVersion: import("drizzle-orm").SQL<unknown>;
|
|
112
116
|
isDeleted: import("drizzle-orm").SQL<unknown>;
|
|
113
117
|
scorecardsStatus: import("drizzle-orm").SQL<unknown>;
|
|
114
118
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{sql as a}from"drizzle-orm";const i=(t="",r)=>{const e=t?`${t}.`:"";return{id:r?a.raw(e+"id").as(r):a.raw(e+"id"),organizationId:a.raw(e+"organization_id"),projectId:a.raw(e+"project_id"),key:a.raw(e+"key"),type:a.raw(e+"type"),title:a.raw(e+"title"),summary:a.raw(e+"summary"),tags:a.raw(e+"tags"),metadata:a.raw(e+"metadata"),git:a.raw(e+"git"),contact:a.raw(e+"contact"),links:a.raw(e+"links"),createdAt:a.raw(e+"created_at"),updatedAt:a.raw(e+"updated_at"),source:a.raw(e+"source"),sourceFile:a.raw(e+"source_file"),fileHash:a.raw(e+"file_hash"),version:a.raw(e+"version"),revision:a.raw(e+"revision"),hash:a.raw(e+"hash"),isCurrent:a.raw(e+"is_current"),isDeleted:a.raw(e+"is_deleted"),scorecardsStatus:a.raw(e+"scorecards_status")}},s=(t="",r)=>{const e=t?`${t}.`:"";return{id:r?a.raw(e+"id").as(r):a.raw(e+"id"),organizationId:a.raw(e+"organization_id"),projectId:a.raw(e+"project_id"),sourceKey:a.raw(e+"source_key"),sourceVersion:a.raw(e+"source_version"),sourceRevision:a.raw(e+"source_revision"),sourceToTargetRelation:a.raw(e+"source_to_target_relation"),targetKey:a.raw(e+"target_key"),targetVersion:a.raw(e+"target_version"),targetRevision:a.raw(e+"target_revision"),targetToSourceRelation:a.raw(e+"target_to_source_relation"),fileHash:a.raw(e+"file_hash"),createdAt:a.raw(e+"created_at"),updatedAt:a.raw(e+"updated_at")}},n=(t="")=>{const r=t?`${t}.`:"";return{id:a.raw(r+"entity_id"),organizationId:a.raw(r+"organization_id"),projectId:a.raw(r+"project_id"),key:a.raw(r+"key"),type:a.raw(r+"type"),title:a.raw(r+"title"),summary:a.raw(r+"summary"),tags:a.raw(r+"tags"),metadata:a.raw(r+"metadata"),git:a.raw(r+"git"),contact:a.raw(r+"contact"),links:a.raw(r+"links"),createdAt:a.raw(r+"created_at"),updatedAt:a.raw(r+"updated_at"),source:a.raw(r+"source"),sourceFile:a.raw(r+"source_file"),fileHash:a.raw(r+"file_hash"),version:a.raw(r+"version"),revision:a.raw(r+"revision"),hash:a.raw(r+"hash"),isCurrent:a.raw(r+"is_current"),isDeleted:a.raw(r+"is_deleted")}},w=(t="")=>{const r=t?`${t}.`:"";return{id:a.raw(r+"entity_id").as("id"),organizationId:a.raw(r+"organization_id").as("organization_id"),projectId:a.raw(r+"project_id").as("project_id"),key:a.raw(r+"key").as("key"),type:a.raw(r+"type").as("type"),title:a.raw(r+"title").as("title"),summary:a.raw(r+"summary").as("summary"),tags:a.raw(r+"tags").as("tags"),metadata:a.raw(r+"metadata").as("metadata"),git:a.raw(r+"git").as("git"),contact:a.raw(r+"contact").as("contact"),links:a.raw(r+"links").as("links"),createdAt:a.raw(r+"created_at").as("created_at"),updatedAt:a.raw(r+"updated_at").as("updated_at"),source:a.raw(r+"source").as("source"),sourceFile:a.raw(r+"source_file").as("source_file"),fileHash:a.raw(r+"file_hash").as("file_hash"),version:a.raw(r+"version").as("version"),revision:a.raw(r+"revision").as("revision"),hash:a.raw(r+"hash").as("hash"),isCurrent:a.raw(r+"is_current").as("is_current"),isDeleted:a.raw(r+"is_deleted").as("is_deleted")}},
|
|
1
|
+
import{sql as a}from"drizzle-orm";const i=(t="",r)=>{const e=t?`${t}.`:"";return{id:r?a.raw(e+"id").as(r):a.raw(e+"id"),organizationId:a.raw(e+"organization_id"),projectId:a.raw(e+"project_id"),key:a.raw(e+"key"),type:a.raw(e+"type"),title:a.raw(e+"title"),summary:a.raw(e+"summary"),tags:a.raw(e+"tags"),metadata:a.raw(e+"metadata"),git:a.raw(e+"git"),contact:a.raw(e+"contact"),links:a.raw(e+"links"),createdAt:a.raw(e+"created_at"),updatedAt:a.raw(e+"updated_at"),source:a.raw(e+"source"),sourceFile:a.raw(e+"source_file"),fileHash:a.raw(e+"file_hash"),version:a.raw(e+"version"),revision:a.raw(e+"revision"),hash:a.raw(e+"hash"),isCurrent:a.raw(e+"is_current"),isDefaultVersion:a.raw(e+"is_default_version"),isDeleted:a.raw(e+"is_deleted"),scorecardsStatus:a.raw(e+"scorecards_status")}},s=(t="",r)=>{const e=t?`${t}.`:"";return{id:r?a.raw(e+"id").as(r):a.raw(e+"id"),organizationId:a.raw(e+"organization_id"),projectId:a.raw(e+"project_id"),sourceKey:a.raw(e+"source_key"),sourceVersion:a.raw(e+"source_version"),sourceRevision:a.raw(e+"source_revision"),sourceToTargetRelation:a.raw(e+"source_to_target_relation"),targetKey:a.raw(e+"target_key"),targetVersion:a.raw(e+"target_version"),targetRevision:a.raw(e+"target_revision"),targetToSourceRelation:a.raw(e+"target_to_source_relation"),fileHash:a.raw(e+"file_hash"),createdAt:a.raw(e+"created_at"),updatedAt:a.raw(e+"updated_at")}},n=(t="")=>{const r=t?`${t}.`:"";return{id:a.raw(r+"entity_id"),organizationId:a.raw(r+"organization_id"),projectId:a.raw(r+"project_id"),key:a.raw(r+"key"),type:a.raw(r+"type"),title:a.raw(r+"title"),summary:a.raw(r+"summary"),tags:a.raw(r+"tags"),metadata:a.raw(r+"metadata"),git:a.raw(r+"git"),contact:a.raw(r+"contact"),links:a.raw(r+"links"),createdAt:a.raw(r+"created_at"),updatedAt:a.raw(r+"updated_at"),source:a.raw(r+"source"),sourceFile:a.raw(r+"source_file"),fileHash:a.raw(r+"file_hash"),version:a.raw(r+"version"),revision:a.raw(r+"revision"),hash:a.raw(r+"hash"),isCurrent:a.raw(r+"is_current"),isDefaultVersion:a.raw(r+"is_default_version"),isDeleted:a.raw(r+"is_deleted")}},w=(t="")=>{const r=t?`${t}.`:"";return{id:a.raw(r+"entity_id").as("id"),organizationId:a.raw(r+"organization_id").as("organization_id"),projectId:a.raw(r+"project_id").as("project_id"),key:a.raw(r+"key").as("key"),type:a.raw(r+"type").as("type"),title:a.raw(r+"title").as("title"),summary:a.raw(r+"summary").as("summary"),tags:a.raw(r+"tags").as("tags"),metadata:a.raw(r+"metadata").as("metadata"),git:a.raw(r+"git").as("git"),contact:a.raw(r+"contact").as("contact"),links:a.raw(r+"links").as("links"),createdAt:a.raw(r+"created_at").as("created_at"),updatedAt:a.raw(r+"updated_at").as("updated_at"),source:a.raw(r+"source").as("source"),sourceFile:a.raw(r+"source_file").as("source_file"),fileHash:a.raw(r+"file_hash").as("file_hash"),version:a.raw(r+"version").as("version"),revision:a.raw(r+"revision").as("revision"),hash:a.raw(r+"hash").as("hash"),isCurrent:a.raw(r+"is_current").as("is_current"),isDefaultVersion:a.raw(r+"is_default_version").as("is_default_version"),isDeleted:a.raw(r+"is_deleted").as("is_deleted")}},d=i(),c=s();export{d as FIELDS_TO_SELECT_FOR_ENTITY,c as FIELDS_TO_SELECT_FOR_ENTITY_RELATION,i as createEntityFieldsForSelect,s as createEntityRelationFieldsForSelect,n as createQualifiedEntityFieldsForSelect,w as createQualifiedEntityFieldsForSelectWithAliases};
|