@redocly/openapi-docs 3.24.0-next.11 → 3.24.0-next.13

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (35) hide show
  1. package/dist/{redocly-openapi-docs.min.AiChatProvider-B6qZxoKI.js → redocly-openapi-docs.min.AiChatProvider-Yov31DEU.js} +3 -3
  2. package/dist/{redocly-openapi-docs.min.AiChatSqliteDBStorage-Cy4k7pUw.js → redocly-openapi-docs.min.AiChatSqliteDBStorage-B_dB-lOJ.js} +1 -1
  3. package/dist/{redocly-openapi-docs.min.AiPanel-Bwuv-ZH_.js → redocly-openapi-docs.min.AiPanel-CtKN6hFm.js} +103 -103
  4. package/dist/redocly-openapi-docs.min.FileWatcher-BwK7sE0m.js +1 -0
  5. package/dist/redocly-openapi-docs.min.Observable-D6wKbFwB.js +1 -0
  6. package/dist/redocly-openapi-docs.min.SemanticSearchService-DjseXm_c.js +1 -0
  7. package/dist/{redocly-openapi-docs.min.SqliteDBStorage-DlCxvBqX.js → redocly-openapi-docs.min.SqliteDBStorage-Bx9UaSKL.js} +1 -1
  8. package/dist/redocly-openapi-docs.min.TauriFileSystemAdapter-yrGOe3h5.js +1 -0
  9. package/dist/redocly-openapi-docs.min.TauriRootStorage-ClZi76Q1.js +1 -0
  10. package/dist/redocly-openapi-docs.min.ai-chat-mappers-CWZZ9F5q.js +1 -0
  11. package/dist/redocly-openapi-docs.min.core-BYyFOtMX.js +1 -0
  12. package/dist/redocly-openapi-docs.min.external-resolver-CbvAhf_l.js +2 -0
  13. package/dist/redocly-openapi-docs.min.index--MWWlmDA.js +1 -0
  14. package/dist/redocly-openapi-docs.min.index-DcsZXkNR.js +1 -0
  15. package/dist/{redocly-openapi-docs.min.index-DWajc5Ac.js → redocly-openapi-docs.min.index-DtttP3cc.js} +3372 -3372
  16. package/dist/redocly-openapi-docs.min.index-WycsPyMc.js +1 -0
  17. package/dist/redocly-openapi-docs.min.index-YnvLQkG_.js +1 -0
  18. package/dist/redocly-openapi-docs.min.index-xl_tBaHD.js +1 -0
  19. package/dist/redocly-openapi-docs.min.js +1 -1
  20. package/dist/{redocly-openapi-docs.min.lint-DMpx1vvZ.js → redocly-openapi-docs.min.lint-CEV6icUl.js} +2 -2
  21. package/dist/{redocly-openapi-docs.min.lint-graphql-DH0N_7pS.js → redocly-openapi-docs.min.lint-graphql-CiN1693v.js} +1 -1
  22. package/dist/redocly-openapi-docs.min.periodic-revalidation-Dsp-n7ui.js +1 -0
  23. package/dist/redocly-openapi-docs.min.promise-map-limit-Db_42GvV.js +1 -0
  24. package/dist/{redocly-openapi-docs.min.respect-run-JH1Xd21R.js → redocly-openapi-docs.min.respect-run-ChOfDjwj.js} +1 -1
  25. package/dist/redocly-openapi-docs.min.standalone-B1SVJ6KL.js +11995 -0
  26. package/dist/redocly-openapi-docs.min.tauri-path-MSCTrFm2.js +1 -0
  27. package/dist/{redocly-openapi-docs.min.useAiChatQueries-RJxlmgfo.js → redocly-openapi-docs.min.useAiChatQueries-DbOWonop.js} +74 -74
  28. package/package.json +5 -5
  29. package/dist/redocly-openapi-docs.min.ai-chat-mappers-C8DaS6ge.js +0 -1
  30. package/dist/redocly-openapi-docs.min.external-resolver-CKkEKWzQ.js +0 -2
  31. package/dist/redocly-openapi-docs.min.index-BsXv-Pjz.js +0 -1
  32. package/dist/redocly-openapi-docs.min.index-We3Hmt3m.js +0 -1
  33. package/dist/redocly-openapi-docs.min.index-bTUZhh-q.js +0 -1
  34. package/dist/redocly-openapi-docs.min.standalone-DMeytWE9.js +0 -12112
  35. package/dist/redocly-openapi-docs.min.tauri-path-TzmCcPBx.js +0 -1
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@redocly/openapi-docs",
3
- "version": "3.24.0-next.11",
3
+ "version": "3.24.0-next.13",
4
4
  "description": "Redocly OpenAPI Docs",
5
5
  "type": "module",
6
6
  "main": "lib/index.js",
@@ -24,7 +24,7 @@
24
24
  "@markdoc/markdoc": "0.5.2",
25
25
  "@redocly/openapi-core": "2.45.0",
26
26
  "deepmerge": "^4.2.2",
27
- "dompurify": "3.4.12",
27
+ "dompurify": "3.4.13",
28
28
  "fast-deep-equal": "^3.1.3",
29
29
  "fast-xml-parser": "5.7.3",
30
30
  "jotai": "^2.12.5",
@@ -41,7 +41,7 @@
41
41
  "web-vitals": "3.3.1",
42
42
  "@redocly/config": "0.53.1",
43
43
  "@redocly/redoc-opentelemetry": "0.2.2",
44
- "@redocly/replay": "0.27.0-next.10"
44
+ "@redocly/replay": "0.27.0-next.12"
45
45
  },
46
46
  "devDependencies": {
47
47
  "@shikijs/transformers": "3.21.0",
@@ -57,7 +57,7 @@
57
57
  "@vitest/coverage-v8": "4.1.10",
58
58
  "esbuild": "0.28.1",
59
59
  "jest-styled-components": "7.2.0",
60
- "js-yaml": "4.3.0",
60
+ "js-yaml": "4.3.1",
61
61
  "json-schema": "0.4.0",
62
62
  "outdent": "0.8.0",
63
63
  "path-browserify": "1.0.1",
@@ -71,7 +71,7 @@
71
71
  "url": "~0.11.0",
72
72
  "vite": "7.3.6",
73
73
  "vitest": "4.1.10",
74
- "@redocly/theme": "0.68.0-next.8"
74
+ "@redocly/theme": "0.68.0-next.9"
75
75
  },
76
76
  "scripts": {
77
77
  "start": "pnpm run copy-highlight-hook && vite",
@@ -1 +0,0 @@
1
- import{Q as i}from"./redocly-openapi-docs.min.standalone-DMeytWE9.js";import{R as u,U as n}from"./redocly-openapi-docs.min.index-DWajc5Ac.js";function m(){return`aichat_${i()}`}function l(){return`aimsg_${i()}`}function c(){return`aimpt_${i()}`}function f(t){return{id:t.id,title:t.title??void 0,modelConfig:t.modelConfig,messages:t.messages.map(p),createdAt:new Date(t.createdAt),updatedAt:new Date(t.updatedAt)}}function p(t){return{id:t.uiId,role:t.role,metadata:t.metadata,parts:t.parts.map(g)}}function g(t){return t.self}function I(t){const a=t.id;return{id:a,title:t.title,modelConfig:t.modelConfig,messages:t.messages.map((e,r)=>d(a,r,e))}}function d(t,a,e,r=l()){return{id:r,uiId:e.id,role:e.role,metadata:e.metadata,aiChatId:t,indexWithinInsertBatch:a,parts:e.parts.map((o,s)=>C(r,s,o))}}function C(t,a,e){return{id:c(),text:e.type==="text"?e.text:null,index:a,self:e,aiMessageId:t}}function h(t){return{id:t.id,title:t.title,modelConfig:v(t.model),messages:t.messages.map(x)}}function v(t){switch(t.provider){case n.OPENAI:case n.ANTHROPIC:case n.GEMINI:return{provider:t.provider,modelId:t.modelId};case u:return{provider:t.provider,baseUrl:t.baseUrl};default:throw new Error("Cannot create model config")}}function x(t){return{...t,parts:t.parts.filter(a=>a.type!=="file")}}export{I as a,h as b,f as c,d,m as g};
@@ -1,2 +0,0 @@
1
- import{aM as r,a7 as n,aN as i,aO as c,aP as l}from"./redocly-openapi-docs.min.index-DWajc5Ac.js";import{aI as f,ap as s,bl as d,b3 as o}from"./redocly-openapi-docs.min.standalone-DMeytWE9.js";class w extends f{constructor(){super()}resolveExternalRef(e,a){return r(a)?a:e&&r(e)?new URL(a,e).href:e?s.resolve(s.dirname(e),a):a}async loadExternalRef(e){if(r(e)){const{body:a,mimeType:t}=await d(e,{...this.config.http,customFetch:n});return new o(e,a,t)}else{if(!await i(e))throw new Error(`File not found at ${e}.`);try{throw await c(e),new Error(`Expected a file but received a folder at ${e}.`)}catch(t){if(t instanceof Error&&t.message.includes("Expected a file but received a folder"))throw t}const a=await l(e);return new o(e,a.replace(/\r\n/g,`
2
- `))}}}export{w as ExternalResolver};
@@ -1 +0,0 @@
1
- import{aC as T,x as m,aD as v,aE as O,aF as I,aG as w,aH as A,aI as h,aJ as C,aK as b,aL as V}from"./redocly-openapi-docs.min.standalone-DMeytWE9.js";import{aM as M,aN as B,aO as q,aP as J,aQ as Y,aR as W,aS as H,aT as K,aU as Q,aV as X,aW as Z,aX as ee,aY as se,aZ as ae,a_ as te,a$ as re,b0 as ne,b1 as oe,b2 as ie,b3 as le,b4 as ce,b5 as me,b6 as ue,b7 as pe,b8 as ye,b9 as fe,ba as de,bb as ge,bc as he,bd as ve,be,bf as Ee,bg as Re,bh as Se,bi as Te,bj as Oe,bk as Ie,bl as we,bm as Ae,bn as Ce,bo as xe,bp as De,bq as Pe}from"./redocly-openapi-docs.min.standalone-DMeytWE9.js";import{g as x,t as D,A as je,c as E,l as R,S as ke,R as Ne,C as Fe}from"./redocly-openapi-docs.min.lint-DMpx1vvZ.js";import{a as ze,b as _e,d as $e,e as Le,f as Ge,h as Ue,i as Ve,j as Me,k as Be,m as qe,n as Je,o as Ye,p as We,q as He,r as Ke,s as Qe,u as Xe,v as Ze,w as es,x as ss,y as as,z as ts,B as rs,s as ns,D as os}from"./redocly-openapi-docs.min.lint-DMpx1vvZ.js";function is(e){return(T.extname(e)===".yaml"||T.extname(e)===".yml")&&!1}function ls(e){return m(e)&&!v(e)}async function cs(e){return new Promise(s=>setTimeout(s,e))}const S="type",P=["api-description","api-operation","data-schema"];function j(e,s){const{ctx:a}=x("EntityFileDefault",s),{ctx:t,discriminatorResolver:r}=x("EntityFile",e);return{entityTypes:{...a,...t,EntityFileArray:{properties:{},items:n=>{if(m(n)){const i=n[S];if(!i)return"Entity";const o=r?.(n,i);if(o&&typeof o=="string")return o}return"Entity"}}},discriminatorResolver:r}}const ms=e=>({ExternalDocs:{leave(){e.externalDocs.total++}},ref:{enter(s){e.refs.items.add(s.$ref)}},Tag:{leave(s){e.tags.items.add(s.name)}},Link:{leave(s){e.links.items.add(s.operationId)}},WebhooksMap:{Operation:{leave(s){if(e.webhooks.total++,s.tags)for(const a of s.tags)e.tags.items.add(a)}}},Paths:{PathItem:{leave(){e.pathItems.total++},Operation:{leave(s){if(e.operations.total++,s.tags)for(const a of s.tags)e.tags.items.add(a)}},Parameter:{leave(s){e.parameters.items.add(s.name)}}}},NamedSchemas:{Schema:{leave(){e.schemas.total++}}},Root:{leave(){e.parameters.total=e.parameters.items.size,e.refs.total=e.refs.items.size,e.links.total=e.links.items.size,e.tags.total=e.tags.items.size}}}),us=e=>({ExternalDocs:{leave(){e.externalDocs.total++}},ref:{enter(s){e.refs.items.add(s.$ref)}},Tag:{leave(s){e.tags.items.add(s.name)}},ChannelMap:{Channel:{leave(){e.channels.total++},Operation:{leave(s){if(e.operations.total++,s.tags)for(const a of s.tags)e.tags.items.add(a)}},Parameter:{leave(s){s.name&&e.parameters.items.add(s.name)}}}},NamedSchemas:{Schema:{leave(){e.schemas.total++}}},Root:{leave(){e.parameters.total=e.parameters.items.size,e.refs.total=e.refs.items.size,e.tags.total=e.tags.items.size}}}),ps=e=>({ExternalDocs:{leave(){e.externalDocs.total++}},ref:{enter(s){e.refs.items.add(s.$ref)}},Tag:{leave(s){e.tags.items.add(s.name)}},NamedChannels:{Channel:{leave(){e.channels.total++},Parameter:{leave(s){s.name&&e.parameters.items.add(s.name)}}}},NamedOperations:{Operation:{leave(s){if(e.operations.total++,s.tags)for(const a of s.tags)e.tags.items.add(a)}}},NamedSchemas:{Schema:{leave(){e.schemas.total++}}},Root:{leave(){e.parameters.total=e.parameters.items.size,e.refs.total=e.refs.items.size,e.tags.total=e.tags.items.size}}}),ys=/^[a-z0-9]+(?:-[a-z0-9]+)*$/,k=2,N=150,fs=()=>({any(e,{report:s,location:a}){if(m(e)&&"key"in e){const t=e.key;if(typeof t!="string"){s({message:"Entity `key` must be a string.",location:a.child(["key"])});return}t.length<k&&s({message:`Entity 'key' must be at least ${k} characters long.`,location:a.child(["key"])}),t.length>N&&s({message:`Entity 'key' must not exceed ${N} characters.`,location:a.child(["key"])}),ys.test(t)||s({message:"Entity `key` must contain only lowercase letters, numbers, and hyphens, and cannot start or end with a hyphen.",location:a.child(["key"])})}}});function F(e,s){const a=s.split("-").map(t=>t.charAt(0).toUpperCase()+t.slice(1)).join("")+e;return Object.values(D).includes(a)?a:e}function ds(e,s){const a={};for(const[t,r]of Object.entries(s))if(z(t,r)){if(r.severity==="off")continue;a[t]={...bs(e,t,r)}}else a[t]=r;return a}function gs(e){const s={},a={};for(const[t,r]of Object.entries(e))if(z(t,r)){const n=r;vs(n)?s[t]=n:a[t]=n}else a[t]=r;return{entityRules:s,apiRules:a}}function hs(e,s,a){if(!m(a.parsed)||!m(a.parsed.components))return null;const t=a.parsed.components,r="schemas"in t?t.schemas:void 0;if(!r||!(e in r))return null;const n=r[e];try{const i=JSON.parse(s);if(O(n,i))return n}catch{return null}return null}function z(e,s){return e.startsWith("rule/")&&m(s)}function vs(e){return Object.values(D).some(s=>e.subject.type===s)}function bs(e,s,a){const t=F(a.subject.type,e),r=a.where?.map(n=>({...n,subject:{...n.subject,type:F(n.subject.type,e)}}));return{assertionId:s,subject:{...a.subject,type:t},assertions:a.assertions,...r&&{where:r},...a.message&&{message:a.message},...a.severity&&{severity:a.severity}}}async function _(e){const{document:s,entitySchema:a,entityDefaultSchema:t,severity:r,externalRefResolver:n=new h,assertionConfig:i={}}=e,o={problems:[],specVersion:"entity",visitorsData:{}},{entityTypes:u,discriminatorResolver:p}=j(a,t),l=I(u);let c=l.Entity;if(Array.isArray(s.parsed))c=l.EntityFileArray;else if(m(s.parsed)){const d=s.parsed[S];if(!d)c=l.Entity;else{const g=p?.(s.parsed,d);g&&typeof g=="string"&&l[g]&&(c=l[g])}}const y=je(i),f=Array.isArray(y)?y.map(d=>({severity:r||"error",ruleId:"entity assertions",visitor:d})):[{severity:r||"error",ruleId:"entity assertions",visitor:y}],L=[{severity:r||"error",ruleId:"entity struct",visitor:ke()},{severity:r||"error",ruleId:"entity no-unresolved-refs",visitor:V()},{severity:r||"error",ruleId:"entity key-valid",visitor:fs()},...f],G=w(L,l),U=await A({rootDocument:s,rootType:c,externalRefResolver:n});return C({document:s,rootType:c,normalizedVisitors:G,resolvedRefMap:U,ctx:o}),o.problems}async function Es(e,s,a){if(!s.rules)throw new Error(`Scorecard level "${s.name}" has no rules defined.`);const t=new h,r=b(JSON.stringify(e,null,2),"entity"),n=r.parsed[S],i=ds(n||"unknown",s.rules),{entityRules:o,apiRules:u}=gs(i),p=await _({document:r,entitySchema:Fe,entityDefaultSchema:Ne,externalRefResolver:t,assertionConfig:o});if(P.includes(e.type)){if(Object.keys(u).length===0)return p;if(!a)throw new Error(`Document is required for entity type "${e.type}". Provide the source API document to lint API rules.`);if(e.type==="data-schema"&&e.metadata?.schema){Object.values(u).forEach(f=>{if(m(f)&&m(f.subject)&&f.subject.type!=="Schema")throw new Error(`API rules for "data-schema" entity must target Schema subject, but found "${f.subject.type}".`)});const c=hs(e.title,e.metadata.schema,a);if(!c)throw new Error(`Schema "${e.title}" not found in the document. Ensure the schema exists in components.schemas.`);const y=await $({schema:c,schemaKey:e.title,config:await E({rules:u}),specType:e.metadata.specType,sourceDocument:a,externalRefResolver:t});return[...p,...y]}const l=await R({document:a,externalRefResolver:t,config:await E({rules:u})});return[...p,...l]}else if(!v(u))throw new Error(`API rules are not supported for entity type "${e.type}". Only ${P.join(", ")} support API rules.`);return p}async function $(e){const{schema:s,schemaKey:a,config:t,sourceDocument:r,specType:n,externalRefResolver:i=new h(t.resolve)}=e,o=r.parsed,u=o[n],p=o.info,l=b(JSON.stringify({[n]:u,info:p,components:{schemas:{[a]:s}}},null,2),r?.source.absoluteRef||`schema:${a}`);return(await R({document:l,config:t,externalRefResolver:i})).filter(c=>c.location.some(y=>y.pointer?.includes(`/components/schemas/${a}`)))}class Rs extends Error{}export{M as Arazzo1Types,B as Arazzo1_1Types,q as AsyncApi2Types,J as AsyncApi3Types,h as BaseResolver,Y as CONFIG_BUNDLER_VISITOR_ID,W as CONFIG_FILE_NAME,H as Config,ze as ConfigTypes,_e as ConfigValidationError,K as DEFAULT_CONFIG,Q as DEFAULT_PROJECT_PLUGIN_PATHS,Rs as HandledError,X as IGNORE_BANNER,Z as IGNORE_FILE,ee as Oas2Types,se as Oas3Types,ae as Oas3_1Types,te as Oas3_2Types,re as OpenRpcTypes,ne as Overlay1Types,oe as PLUGINS_COLLECTOR_VISITOR_ID,ie as ResolveError,le as Source,us as StatsAsync2,ps as StatsAsync3,ms as StatsOAS,ce as YamlParseError,$e as bundle,me as bundleDocument,Le as bundleFromString,Ge as clearPluginsCache,E as createConfig,Ue as createConfigTypes,j as createEntityTypes,O as dequal,ue as detectSpec,is as doesYamlFileExist,pe as escapePointerFragment,Ve as findConfig,Me as formatProblems,Be as getAstNodeByPointer,qe as getCodeframe,ye as getDir,Je as getLineColLocation,fe as getMajorSpecVersion,Ye as getPluginCacheVersion,We as getTotals,de as getTypes,ge as isAbsoluteUrl,he as isBrowser,v as isEmptyObject,ve as isGraphqlRef,be as isMappingRef,He as isNotEmptyArray,ls as isNotEmptyObject,m as isPlainObject,Ee as isRef,Re as isString,Se as isSupportedExtension,Te as isTruthy,Ke as keysOf,Qe as lint,Xe as lintConfig,R as lintDocument,_ as lintEntityFile,Es as lintEntityWithScorecardLevel,Ze as lintFromString,$ as lintSchema,es as loadConfig,ss as loadIgnoreConfig,as as logger,b as makeDocumentFromString,Oe as mapTypeToComponent,I as normalizeTypes,w as normalizeVisitors,Ie as parseYaml,cs as pause,ts as pluralize,we as readFileFromUrl,Ae as regexFromString,A as resolveDocument,Ce as resolvePath,rs as resolvePlugins,xe as slash,De as stringifyYaml,Pe as unescapePointerFragment,ns as validate,C as walkDocument,os as xmlEscape};
@@ -1 +0,0 @@
1
- import{aK as a}from"./redocly-openapi-docs.min.index-DWajc5Ac.js";async function t(n,e){await a("plugin:opener|open_url",{url:n,with:e})}async function i(n,e){await a("plugin:opener|open_path",{path:n,with:e})}async function p(n){return a("plugin:opener|reveal_item_in_dir",{paths:typeof n=="string"?[n]:n})}export{i as openPath,t as openUrl,p as revealItemInDir};
@@ -1 +0,0 @@
1
- import{aK as t}from"./redocly-openapi-docs.min.index-DWajc5Ac.js";async function a(o={}){return typeof o=="object"&&Object.freeze(o),await t("plugin:dialog|open",{options:o})}export{a as open};