@redocly/replay 0.28.0-next.7 → 0.28.0-next.9

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 (69) hide show
  1. package/dist/{replay-AiChatProvider-Dib77evR.js → replay-AiChatProvider-B_f9Wn8a.js} +1 -1
  2. package/dist/{replay-AiChatProvider-CL61KEj-.js → replay-AiChatProvider-DuTK5g1N.js} +41 -41
  3. package/dist/{replay-AiChatSqliteDBStorage-CAB-uQ_2.js → replay-AiChatSqliteDBStorage-CHfMo6M6.js} +1 -1
  4. package/dist/{replay-AiChatSqliteDBStorage-BmHRaty6.js → replay-AiChatSqliteDBStorage-cXsRIQfJ.js} +6 -6
  5. package/dist/{replay-AiPanel-CKf0GTch.js → replay-AiPanel-CGbGwIMX.js} +35 -35
  6. package/dist/{replay-AiPanel-Co-SG9hy.js → replay-AiPanel-C_C52r20.js} +1 -1
  7. package/dist/replay-FileWatcher-DEOB0_DG.js +1 -0
  8. package/dist/{replay-FileWatcher-BpncVTHg.js → replay-FileWatcher-Z6eygcBI.js} +4 -5
  9. package/dist/{replay-HistorySqliteDBStorage-CtF6-vY8.js → replay-HistorySqliteDBStorage-Bi5vBQ2T.js} +2 -2
  10. package/dist/{replay-SemanticSearchService-B_97hbQZ.js → replay-SemanticSearchService-BLF1oOOu.js} +8 -12
  11. package/dist/replay-SemanticSearchService-DTc0oxN4.js +1 -0
  12. package/dist/{replay-SqliteDBStorage-BYAD4Hdr.js → replay-SqliteDBStorage-B_kyJ0a3.js} +1 -1
  13. package/dist/{replay-SqliteDBStorage-C4jv_awl.js → replay-SqliteDBStorage-DF9kKplR.js} +49 -49
  14. package/dist/{replay-StepContextSqliteDBStorage-BfAAKDwA.js → replay-StepContextSqliteDBStorage-BkB2NM27.js} +2 -2
  15. package/dist/{replay-TauriFileSystemAdapter-DNp7rTwA.js → replay-TauriFileSystemAdapter-CwSMakdJ.js} +1 -1
  16. package/dist/{replay-TauriFileSystemAdapter-dRydQRfd.js → replay-TauriFileSystemAdapter-DcFBYSUW.js} +8 -8
  17. package/dist/{replay-TauriRootStorage-TvtzeQ9x.js → replay-TauriRootStorage-DEGEIJrz.js} +1 -1
  18. package/dist/{replay-TauriRootStorage-BUSjQzb0.js → replay-TauriRootStorage-Den8gI4S.js} +85 -85
  19. package/dist/{replay-agent-loop-Bv3OEM5Y.js → replay-agent-loop-B8Mjb8DU.js} +9 -9
  20. package/dist/{replay-agent-loop-FONgy9Lo.js → replay-agent-loop-Z_nrrmg_.js} +1 -1
  21. package/dist/{replay-ai-chat-mappers-Kj9YEXwF.js → replay-ai-chat-mappers-D7e8buTk.js} +3 -3
  22. package/dist/{replay-ai-chat-mappers-CknwkJ22.js → replay-ai-chat-mappers-aJ_VMb6Z.js} +1 -1
  23. package/dist/{replay-ai-message-parts.schema-E9u9-nqr.js → replay-ai-message-parts.schema-DKLf0SiG.js} +1 -1
  24. package/dist/{replay-create-model-DgfhU1ps.js → replay-create-model-Be3vPVDb.js} +3 -3
  25. package/dist/{replay-create-model-Bq8Fl5Ai.js → replay-create-model-Bw20x80b.js} +3 -3
  26. package/dist/{replay-db-DjHsvWMQ.js → replay-db-BQXljNM0.js} +1 -1
  27. package/dist/{replay-db-D3MZ3YVw.js → replay-db-BmZNrdZM.js} +5 -5
  28. package/dist/{replay-external-resolver-DgcgzfRI.js → replay-external-resolver-BLzbbtnT.js} +1 -1
  29. package/dist/{replay-external-resolver-SsE1pZoq.js → replay-external-resolver-BQvSDNfH.js} +7 -7
  30. package/dist/{replay-history.schema-5ce6X0R1.js → replay-history.schema-B0lLwmdG.js} +3 -3
  31. package/dist/{replay-index-l3GM4sbc.js → replay-index-B-uZhXHj.js} +1 -1
  32. package/dist/{replay-index-B-Z3hRlH.js → replay-index-BCz452N6.js} +16025 -15956
  33. package/dist/{replay-index-DzrZDRUX.js → replay-index-C0kvTxxm.js} +38 -38
  34. package/dist/{replay-index-eABpOyfi.js → replay-index-C7y4K4Cr.js} +1 -1
  35. package/dist/replay-index-DAIwC3ls.js +1 -0
  36. package/dist/{replay-index-AEsPADo_.js → replay-index-DYtXcqDk.js} +1014 -1010
  37. package/dist/replay-index-gM6vL6iT.js +4 -0
  38. package/dist/{replay-index-BJ5jmb2F.js → replay-index-wBHsAQEV.js} +1 -1
  39. package/dist/{replay-indexes-CfsvVMi_.js → replay-indexes-B3PJtgeh.js} +43 -43
  40. package/dist/replay-lint-BzkTeXqI.js +177 -0
  41. package/dist/{replay-lint-BHwuW5sm.js → replay-lint-CqDMOMQt.js} +11038 -10749
  42. package/dist/{replay-lint-graphql-taKxgtqM.js → replay-lint-graphql-BDBGJSir.js} +1 -1
  43. package/dist/{replay-lint-graphql-CcbpryHy.js → replay-lint-graphql-BZF2eLiZ.js} +1 -1
  44. package/dist/replay-periodic-revalidation-C7SkB1vs.js +1 -0
  45. package/dist/{replay-periodic-revalidation-CEMQo8s1.js → replay-periodic-revalidation-orCv_JoF.js} +4 -5
  46. package/dist/{replay-resolve-DJdvx14A.js → replay-resolve-0e5f8I7b.js} +18 -18
  47. package/dist/{replay-resolve-CSzH6SDp.js → replay-resolve-DZMWoig2.js} +176 -176
  48. package/dist/replay-respect-run-CLW3wGhx.js +8392 -0
  49. package/dist/replay-respect-run-ChP63WzG.js +82 -0
  50. package/dist/replay-step-context.schema-BOprzd6Z.js +21 -0
  51. package/dist/{replay-tauri-path-D_hXMLdc.js → replay-tauri-path-DBt1dqkG.js} +1 -1
  52. package/dist/replay-tauri-path-DvLF4Z8f.js +22 -0
  53. package/dist/{replay-useAiChatQueries-DVCG23XB.js → replay-useAiChatQueries-Bypgnkwa.js} +2 -2
  54. package/dist/{replay-useAiChatQueries-DFd8ZJQG.js → replay-useAiChatQueries-S6v5duiJ.js} +131 -137
  55. package/dist/{replay-validate-key-fIEjvAUc.js → replay-validate-key-CMJODIH6.js} +2 -2
  56. package/dist/{replay-validate-key-qqV8ZWzl.js → replay-validate-key-CNl7BV_v.js} +1 -1
  57. package/dist/replay.cjs +1 -1
  58. package/dist/replay.js +10 -10
  59. package/package.json +4 -4
  60. package/dist/replay-FileWatcher-BpsHu7xD.js +0 -1
  61. package/dist/replay-SemanticSearchService-B9YYS_s4.js +0 -1
  62. package/dist/replay-index-B3h5Szid.js +0 -25
  63. package/dist/replay-index-C04sCExL.js +0 -1
  64. package/dist/replay-lint-7nMI-JAv.js +0 -177
  65. package/dist/replay-periodic-revalidation-Cg2y1tgz.js +0 -1
  66. package/dist/replay-respect-run-DTUpcIOb.js +0 -78
  67. package/dist/replay-respect-run-gVY8_9EV.js +0 -8200
  68. package/dist/replay-step-context.schema-DBk4jufr.js +0 -21
  69. package/dist/replay-tauri-path-C-oZvov6.js +0 -22
@@ -1,4 +1,4 @@
1
- import { ah as i, b3 as c, b4 as m } from "./replay-index-B-Z3hRlH.js";
1
+ import { S as i, v as c, x as m } from "./replay-index-BCz452N6.js";
2
2
  const C = 4e3;
3
3
  function l(t, e = `
4
4
  `) {
@@ -89,12 +89,12 @@ function z(t) {
89
89
  `) : "";
90
90
  }
91
91
  const y = /^\$(?:inputs|steps|outputs|workflows|sourceDescriptions|components|request|response|message|url|method|statusCode)(?:[.#[]|$)/;
92
- function b(t) {
92
+ function g(t) {
93
93
  const e = t.trim(), s = e.startsWith("{") && e.endsWith("}") ? e.slice(1, -1) : e;
94
94
  return y.test(s);
95
95
  }
96
96
  function r(t) {
97
- return t == null || t === "" ? "empty" : b(t) ? t : "set";
97
+ return t == null || t === "" ? "empty" : g(t) ? t : "set";
98
98
  }
99
99
  function d(t) {
100
100
  const e = [];
@@ -138,7 +138,7 @@ function d(t) {
138
138
  }
139
139
  return e;
140
140
  }
141
- function g(t) {
141
+ function b(t) {
142
142
  const e = ` type=${t.securityType} schemeId=${t.securitySchemeId ?? "null"}`, s = [];
143
143
  switch (t.securityType) {
144
144
  case i.NoAuth:
@@ -178,7 +178,7 @@ ${s.map((o) => ` ${o}`).join(`
178
178
  }
179
179
  function q(t) {
180
180
  return t?.length ? `Security:
181
- ${t.map((s) => g(s)).join(`
181
+ ${t.map((s) => b(s)).join(`
182
182
  `)}` : "";
183
183
  }
184
184
  function L(t, e) {
@@ -1,2 +1,2 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const r=require("./replay-index-AEsPADo_.js"),n=require("./replay-resolve-DJdvx14A.js");class c extends n.BaseResolver{constructor(){super()}resolveExternalRef(e,t){return r.isAbsoluteUrl(t)?t:e&&r.isAbsoluteUrl(e)?new URL(t,e).href:e?r.path.resolve(r.path.dirname(e),t):t}async loadExternalRef(e){if(r.isAbsoluteUrl(e)){const{body:t,mimeType:i}=await n.readFileFromUrl(e,{...this.config.http,customFetch:r.fetch});return new n.Source(e,t,i)}else{if(!await r.exists(e))throw new Error(`File not found at ${e}.`);try{throw await r.readDir(e),new Error(`Expected a file but received a folder at ${e}.`)}catch(o){if(o instanceof Error&&o.message.includes("Expected a file but received a folder"))throw o}const i=await r.readTextFile(e);return new n.Source(e,i.replace(/\r\n/g,`
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const r=require("./replay-index-DYtXcqDk.js"),n=require("./replay-resolve-0e5f8I7b.js");class c extends n.BaseResolver{constructor(){super()}resolveExternalRef(e,t){return r.isAbsoluteUrl(t)?t:e&&r.isAbsoluteUrl(e)?new URL(t,e).href:e?r.path.resolve(r.path.dirname(e),t):t}async loadExternalRef(e){if(r.isAbsoluteUrl(e)){const{body:t,mimeType:i}=await n.readFileFromUrl(e,{...this.config.http,customFetch:r.fetch});return new n.Source(e,t,i)}else{if(!await r.exists(e))throw new Error(`File not found at ${e}.`);try{throw await r.readDir(e),new Error(`Expected a file but received a folder at ${e}.`)}catch(o){if(o instanceof Error&&o.message.includes("Expected a file but received a folder"))throw o}const i=await r.readTextFile(e);return new n.Source(e,i.replace(/\r\n/g,`
2
2
  `))}}}exports.ExternalResolver=c;
@@ -1,14 +1,14 @@
1
- import { ba as n, bb as i, b5 as s, a7 as c, a4 as d, a6 as l } from "./replay-index-B-Z3hRlH.js";
2
- import { B as h, j as p, S as o } from "./replay-resolve-CSzH6SDp.js";
1
+ import { g as a, p as i, h as s, e as c, r as d, b as l } from "./replay-index-BCz452N6.js";
2
+ import { B as h, r as p, S as o } from "./replay-resolve-DZMWoig2.js";
3
3
  class E extends h {
4
4
  constructor() {
5
5
  super();
6
6
  }
7
7
  resolveExternalRef(r, e) {
8
- return n(e) ? e : r && n(r) ? new URL(e, r).href : r ? i.resolve(i.dirname(r), e) : e;
8
+ return a(e) ? e : r && a(r) ? new URL(e, r).href : r ? i.resolve(i.dirname(r), e) : e;
9
9
  }
10
10
  async loadExternalRef(r) {
11
- if (n(r)) {
11
+ if (a(r)) {
12
12
  const { body: e, mimeType: t } = await p(r, {
13
13
  ...this.config.http,
14
14
  customFetch: s
@@ -19,9 +19,9 @@ class E extends h {
19
19
  throw new Error(`File not found at ${r}.`);
20
20
  try {
21
21
  throw await d(r), new Error(`Expected a file but received a folder at ${r}.`);
22
- } catch (a) {
23
- if (a instanceof Error && a.message.includes("Expected a file but received a folder"))
24
- throw a;
22
+ } catch (n) {
23
+ if (n instanceof Error && n.message.includes("Expected a file but received a folder"))
24
+ throw n;
25
25
  }
26
26
  const t = await l(r);
27
27
  return new o(r, t.replace(/\r\n/g, `
@@ -1,5 +1,5 @@
1
- import { R as d, U as e, X as o, Y as s } from "./replay-indexes-CfsvVMi_.js";
2
- const r = d(
1
+ import { s as d, i as e, t as o, a as s } from "./replay-indexes-B3PJtgeh.js";
2
+ const i = d(
3
3
  "history",
4
4
  {
5
5
  id: o("id").primaryKey().notNull(),
@@ -24,5 +24,5 @@ const r = d(
24
24
  })
25
25
  );
26
26
  export {
27
- r as h
27
+ i as h
28
28
  };
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const p=require("./replay-index-AEsPADo_.js"),s=require("./replay-lint-7nMI-JAv.js"),o=require("./replay-resolve-DJdvx14A.js");function j(e){return(p.pathBrowserifyExports.extname(e)===".yaml"||p.pathBrowserifyExports.extname(e)===".yml")&&!1}function k(e){return p.isPlainObject(e)&&!s.isEmptyObject(e)}async function L(e){return new Promise(t=>setTimeout(t,e))}const S="type",v=["api-description","api-operation","data-schema"];function R(e,t){const{ctx:n}=s.getNodeTypesFromJSONSchema("EntityFileDefault",t),{ctx:r,discriminatorResolver:i}=s.getNodeTypesFromJSONSchema("EntityFile",e);return{entityTypes:{...n,...r,EntityFileArray:{properties:{},items:y=>{if(p.isPlainObject(y)){const m=y[S];if(!m)return"Entity";const l=i?.(y,m);if(l&&typeof l=="string")return l}return"Entity"}}},discriminatorResolver:i}}function c(e,t){if(o.isRef(t.parent))return;const n=t.key.toString(),r=e.counts??={};r[n]=(r[n]??0)+1}function O(e){for(const i of Object.values(e))i.items&&(i.total=i.items.size);const{xExtensions:t}=e,n=t.counts??{},r=Object.keys(n).sort();t.total=r.length,t.counts=Object.fromEntries(r.map(i=>[i,n[i]]))}const w=e=>({SpecExtension:{enter(t,n){c(e.xExtensions,n)}},XCodeSampleList:{enter(t,n){c(e.xExtensions,n)}},ExamplesMap:{enter(t,n){n.key.toString()==="x-examples"&&c(e.xExtensions,n)}},EnumDescriptions:{enter(t,n){c(e.xExtensions,n)}},TagGroups:{enter(t,n){c(e.xExtensions,n)}},Logo:{enter(t,n){c(e.xExtensions,n)}},XServerList:{enter(t,n){c(e.xExtensions,n)}},XUsePkce:{enter(t,n){c(e.xExtensions,n)}},Operation:{enter(t,n){n.key.toString()==="x-query"&&c(e.xExtensions,n)}},ExternalDocs:{leave(){e.externalDocs.total++}},ref:{enter(t){e.refs.items.add(t.$ref)}},Tag:{leave(t){e.tags.items.add(t.name)}},Link:{leave(t){e.links.items.add(t.operationId)}},WebhooksMap:{enter(t,n){n.key.toString()==="x-webhooks"&&c(e.xExtensions,n)},Operation:{leave(t){if(e.webhooks.total++,t.tags)for(const n of t.tags)e.tags.items.add(n)}}},Paths:{PathItem:{leave(){e.pathItems.total++},Operation:{leave(t){if(e.operations.total++,t.tags)for(const n of t.tags)e.tags.items.add(n)}},Parameter:{leave(t){e.parameters.items.add(t.name)}}}},NamedSchemas:{Schema:{leave(){e.schemas.total++}}},Root:{leave(){O(e)}}}),z=e=>({SpecExtension:{enter(t,n){c(e.xExtensions,n)}},ExternalDocs:{leave(){e.externalDocs.total++}},ref:{enter(t){e.refs.items.add(t.$ref)}},Tag:{leave(t){e.tags.items.add(t.name)}},ChannelMap:{Channel:{leave(){e.channels.total++},Operation:{leave(t){if(e.operations.total++,t.tags)for(const n of t.tags)e.tags.items.add(n)}},Parameter:{leave(t,{key:n}){e.parameters.items.add(n.toString())}}}},NamedSchemas:{Schema:{leave(){e.schemas.total++}}},Root:{leave(){O(e)}}}),V=e=>({SpecExtension:{enter(t,n){c(e.xExtensions,n)}},ExternalDocs:{leave(){e.externalDocs.total++}},ref:{enter(t){e.refs.items.add(t.$ref)}},Tag:{leave(t){e.tags.items.add(t.name)}},NamedChannels:{Channel:{leave(){e.channels.total++},Parameter:{leave(t,{key:n}){e.parameters.items.add(n.toString())}}}},NamedOperations:{Operation:{leave(t){if(e.operations.total++,t.tags)for(const n of t.tags)e.tags.items.add(n)}}},NamedSchemas:{Schema:{leave(){e.schemas.total++}}},Root:{leave(){O(e)}}}),G=/^[a-z0-9]+(?:-[a-z0-9]+)*$/,b=2,x=150,U=()=>({any(e,{report:t,location:n}){if(p.isPlainObject(e)&&"key"in e){const r=e.key;if(typeof r!="string"){t({message:"Entity `key` must be a string.",location:n.child(["key"])});return}r.length<b&&t({message:`Entity 'key' must be at least ${b} characters long.`,location:n.child(["key"])}),r.length>x&&t({message:`Entity 'key' must not exceed ${x} characters.`,location:n.child(["key"])}),G.test(r)||t({message:"Entity `key` must contain only lowercase letters, numbers, and hyphens, and cannot start or end with a hyphen.",location:n.child(["key"])})}}});function P(e,t){const r=t.split("-").map(i=>i.charAt(0).toUpperCase()+i.slice(1)).join("")+e;return Object.values(s.t).includes(r)?r:e}function B(e,t){const n={};for(const[r,i]of Object.entries(t))if(_(r,i)){if(i.severity==="off")continue;n[r]={...q(e,r,i)}}else n[r]=i;return n}function M(e){const t={},n={};for(const[r,i]of Object.entries(e))if(_(r,i)){const a=i;$(a)?t[r]=a:n[r]=a}else n[r]=i;return{entityRules:t,apiRules:n}}function Y(e,t,n){if(!p.isPlainObject(n.parsed)||!p.isPlainObject(n.parsed.components))return null;const r=n.parsed.components,i="schemas"in r?r.schemas:void 0;if(!i||!(e in i))return null;const a=i[e];try{const y=JSON.parse(t);if(s.dequal(a,y))return a}catch{return null}return null}function _(e,t){return e.startsWith("rule/")&&p.isPlainObject(t)}function $(e){return Object.values(s.t).some(t=>e.subject.type===t)}function q(e,t,n){const r=P(n.subject.type,e),i=n.where?.map(a=>({...a,subject:{...a.subject,type:P(a.subject.type,e)}}));return{assertionId:t,subject:{...n.subject,type:r},assertions:n.assertions,...i&&{where:i},...n.message&&{message:n.message},...n.severity&&{severity:n.severity}}}async function N(e){const{document:t,entitySchema:n,entityDefaultSchema:r,severity:i,externalRefResolver:a=new o.BaseResolver,assertionConfig:y={}}=e,m={problems:[],specVersion:"entity",visitorsData:{}},{entityTypes:l,discriminatorResolver:g}=R(n,r),d=o.normalizeTypes(l);let f=d.Entity;if(Array.isArray(t.parsed))f=d.EntityFileArray;else if(p.isPlainObject(t.parsed)){const h=t.parsed[S];if(!h)f=d.Entity;else{const T=g?.(t.parsed,h);T&&typeof T=="string"&&d[T]&&(f=d[T])}}const E=s.Assertions(y),u=Array.isArray(E)?E.map(h=>({severity:i||"error",ruleId:"entity assertions",visitor:h})):[{severity:i||"error",ruleId:"entity assertions",visitor:E}],C=[{severity:i||"error",ruleId:"entity struct",visitor:s.Struct()},{severity:i||"error",ruleId:"entity no-unresolved-refs",visitor:s.NoUnresolvedRefs()},{severity:i||"error",ruleId:"entity key-valid",visitor:U()},...u],D=s.normalizeVisitors(C,d),F=await o.resolveDocument({rootDocument:t,rootType:f,externalRefResolver:a});return s.walkDocument({document:t,rootType:f,normalizedVisitors:D,resolvedRefMap:F,ctx:m}),m.problems}async function A(e,t,n){if(!t.rules)throw new Error(`Scorecard level "${t.name}" has no rules defined.`);const r=new o.BaseResolver,i=o.makeDocumentFromString(JSON.stringify(e,null,2),"entity"),a=i.parsed[S],y=B(a||"unknown",t.rules),{entityRules:m,apiRules:l}=M(y),g=await N({document:i,entitySchema:s.Cs,entityDefaultSchema:s.Rs,externalRefResolver:r,assertionConfig:m});if(v.includes(e.type)){if(Object.keys(l).length===0)return g;if(!n)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(l).forEach(u=>{if(p.isPlainObject(u)&&p.isPlainObject(u.subject)&&u.subject.type!=="Schema")throw new Error(`API rules for "data-schema" entity must target Schema subject, but found "${u.subject.type}".`)});const f=Y(e.title,e.metadata.schema,n);if(!f)throw new Error(`Schema "${e.title}" not found in the document. Ensure the schema exists in components.schemas.`);const E=await I({schema:f,schemaKey:e.title,config:await s.createConfig({rules:l}),specType:e.metadata.specType,sourceDocument:n,externalRefResolver:r});return[...g,...E]}const d=await s.lintDocument({document:n,externalRefResolver:r,config:await s.createConfig({rules:l})});return[...g,...d]}else if(!s.isEmptyObject(l))throw new Error(`API rules are not supported for entity type "${e.type}". Only ${v.join(", ")} support API rules.`);return g}async function I(e){const{schema:t,schemaKey:n,config:r,sourceDocument:i,specType:a,externalRefResolver:y=new o.BaseResolver(r.resolve)}=e,m=i.parsed,l=m[a],g=m.info,d=o.makeDocumentFromString(JSON.stringify({[a]:l,info:g,components:{schemas:{[n]:t}}},null,2),i?.source.absoluteRef||`schema:${n}`);return(await s.lintDocument({document:d,config:r,externalRefResolver:y})).filter(E=>E.location.some(u=>u.pointer?.includes(`/components/schemas/${n}`)))}class H extends Error{}exports.isPlainObject=p.isPlainObject;exports.Arazzo1Types=s.Arazzo1Types;exports.Arazzo1_1Types=s.Arazzo1_1Types;exports.AsyncApi2Types=s.AsyncApi2Types;exports.AsyncApi3Types=s.AsyncApi3Types;exports.CONFIG_BUNDLER_VISITOR_ID=s.CONFIG_BUNDLER_VISITOR_ID;exports.CONFIG_FILE_NAME=s.CONFIG_FILE_NAME;exports.Config=s.Config;exports.ConfigTypes=s.ConfigTypes;exports.ConfigValidationError=s.ConfigValidationError;exports.DEFAULT_CONFIG=s.DEFAULT_CONFIG;exports.DEFAULT_PROJECT_PLUGIN_PATHS=s.DEFAULT_PROJECT_PLUGIN_PATHS;exports.IGNORE_BANNER=s.IGNORE_BANNER;exports.IGNORE_FILE=s.IGNORE_FILE;exports.Oas2Types=s.Oas2Types;exports.Oas3Types=s.Oas3Types;exports.Oas3_1Types=s.Oas3_1Types;exports.Oas3_2Types=s.Oas3_2Types;exports.OpenRpcTypes=s.OpenRpcTypes;exports.Overlay1Types=s.Overlay1Types;exports.PLUGINS_COLLECTOR_VISITOR_ID=s.PLUGINS_COLLECTOR_VISITOR_ID;exports.bundle=s.bundle;exports.bundleDocument=s.bundleDocument;exports.bundleFromString=s.bundleFromString;exports.clearPluginsCache=s.clearPluginsCache;exports.createConfig=s.createConfig;exports.createConfigTypes=s.createConfigTypes;exports.dequal=s.dequal;exports.detectSpec=s.detectSpec;exports.findConfig=s.findConfig;exports.formatProblems=s.formatProblems;exports.getAstNodeByPointer=s.getAstNodeByPointer;exports.getCodeframe=s.getCodeframe;exports.getLineColLocation=s.getLineColLocation;exports.getMajorSpecVersion=s.getMajorSpecVersion;exports.getPluginCacheVersion=s.getPluginCacheVersion;exports.getTotals=s.getTotals;exports.getTypes=s.getTypes;exports.isEmptyObject=s.isEmptyObject;exports.isNotEmptyArray=s.isNotEmptyArray;exports.isString=s.isString;exports.keysOf=s.keysOf;exports.lint=s.lint;exports.lintConfig=s.lintConfig;exports.lintDocument=s.lintDocument;exports.lintFromString=s.lintFromString;exports.loadConfig=s.loadConfig;exports.loadIgnoreConfig=s.loadIgnoreConfig;exports.logger=s.logger;exports.mapTypeToComponent=s.mapTypeToComponent;exports.normalizeVisitors=s.normalizeVisitors;exports.pluralize=s.pluralize;exports.regexFromString=s.regexFromString;exports.resolvePlugins=s.resolvePlugins;exports.slash=s.slash;exports.validate=s.lint;exports.walkDocument=s.walkDocument;exports.xmlEscape=s.xmlEscape;exports.BaseResolver=o.BaseResolver;exports.ResolveError=o.ResolveError;exports.Source=o.Source;exports.YamlParseError=o.YamlParseError;exports.escapePointerFragment=o.escapePointerFragment;exports.getDir=o.getDir;exports.isAbsoluteUrl=o.isAbsoluteUrl;exports.isBrowser=o.isBrowser;exports.isGraphqlRef=o.isGraphqlRef;exports.isMappingRef=o.isMappingRef;exports.isRef=o.isRef;exports.isSupportedExtension=o.isSupportedExtension;exports.isTruthy=o.isTruthy;exports.makeDocumentFromString=o.makeDocumentFromString;exports.normalizeTypes=o.normalizeTypes;exports.parseYaml=o.parseYaml;exports.readFileFromUrl=o.readFileFromUrl;exports.resolveDocument=o.resolveDocument;exports.resolvePath=o.resolvePath;exports.stringifyYaml=o.stringifyYaml;exports.unescapePointerFragment=o.unescapePointerFragment;exports.HandledError=H;exports.StatsAsync2=z;exports.StatsAsync3=V;exports.StatsOAS=w;exports.createEntityTypes=R;exports.doesYamlFileExist=j;exports.isNotEmptyObject=k;exports.lintEntityFile=N;exports.lintEntityWithScorecardLevel=A;exports.lintSchema=I;exports.pause=L;
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const p=require("./replay-index-DYtXcqDk.js"),s=require("./replay-lint-BzkTeXqI.js"),o=require("./replay-resolve-0e5f8I7b.js");function j(e){return(p.pathBrowserifyExports.extname(e)===".yaml"||p.pathBrowserifyExports.extname(e)===".yml")&&!1}function k(e){return p.isPlainObject(e)&&!s.isEmptyObject(e)}async function L(e){return new Promise(t=>setTimeout(t,e))}const S="type",v=["api-description","api-operation","data-schema"];function R(e,t){const{ctx:n}=s.getNodeTypesFromJSONSchema("EntityFileDefault",t),{ctx:r,discriminatorResolver:i}=s.getNodeTypesFromJSONSchema("EntityFile",e);return{entityTypes:{...n,...r,EntityFileArray:{properties:{},items:y=>{if(p.isPlainObject(y)){const m=y[S];if(!m)return"Entity";const l=i?.(y,m);if(l&&typeof l=="string")return l}return"Entity"}}},discriminatorResolver:i}}function c(e,t){if(o.isRef(t.parent))return;const n=t.key.toString(),r=e.counts??={};r[n]=(r[n]??0)+1}function O(e){for(const i of Object.values(e))i.items&&(i.total=i.items.size);const{xExtensions:t}=e,n=t.counts??{},r=Object.keys(n).sort();t.total=r.length,t.counts=Object.fromEntries(r.map(i=>[i,n[i]]))}const w=e=>({SpecExtension:{enter(t,n){c(e.xExtensions,n)}},XCodeSampleList:{enter(t,n){c(e.xExtensions,n)}},ExamplesMap:{enter(t,n){n.key.toString()==="x-examples"&&c(e.xExtensions,n)}},EnumDescriptions:{enter(t,n){c(e.xExtensions,n)}},TagGroups:{enter(t,n){c(e.xExtensions,n)}},Logo:{enter(t,n){c(e.xExtensions,n)}},XServerList:{enter(t,n){c(e.xExtensions,n)}},XUsePkce:{enter(t,n){c(e.xExtensions,n)}},Operation:{enter(t,n){n.key.toString()==="x-query"&&c(e.xExtensions,n)}},ExternalDocs:{leave(){e.externalDocs.total++}},ref:{enter(t){e.refs.items.add(t.$ref)}},Tag:{leave(t){e.tags.items.add(t.name)}},Link:{leave(t){e.links.items.add(t.operationId)}},WebhooksMap:{enter(t,n){n.key.toString()==="x-webhooks"&&c(e.xExtensions,n)},Operation:{leave(t){if(e.webhooks.total++,t.tags)for(const n of t.tags)e.tags.items.add(n)}}},Paths:{PathItem:{leave(){e.pathItems.total++},Operation:{leave(t){if(e.operations.total++,t.tags)for(const n of t.tags)e.tags.items.add(n)}},Parameter:{leave(t){e.parameters.items.add(t.name)}}}},NamedSchemas:{Schema:{leave(){e.schemas.total++}}},Root:{leave(){O(e)}}}),z=e=>({SpecExtension:{enter(t,n){c(e.xExtensions,n)}},ExternalDocs:{leave(){e.externalDocs.total++}},ref:{enter(t){e.refs.items.add(t.$ref)}},Tag:{leave(t){e.tags.items.add(t.name)}},ChannelMap:{Channel:{leave(){e.channels.total++},Operation:{leave(t){if(e.operations.total++,t.tags)for(const n of t.tags)e.tags.items.add(n)}},Parameter:{leave(t,{key:n}){e.parameters.items.add(n.toString())}}}},NamedSchemas:{Schema:{leave(){e.schemas.total++}}},Root:{leave(){O(e)}}}),V=e=>({SpecExtension:{enter(t,n){c(e.xExtensions,n)}},ExternalDocs:{leave(){e.externalDocs.total++}},ref:{enter(t){e.refs.items.add(t.$ref)}},Tag:{leave(t){e.tags.items.add(t.name)}},NamedChannels:{Channel:{leave(){e.channels.total++},Parameter:{leave(t,{key:n}){e.parameters.items.add(n.toString())}}}},NamedOperations:{Operation:{leave(t){if(e.operations.total++,t.tags)for(const n of t.tags)e.tags.items.add(n)}}},NamedSchemas:{Schema:{leave(){e.schemas.total++}}},Root:{leave(){O(e)}}}),G=/^[a-z0-9]+(?:-[a-z0-9]+)*$/,b=2,P=150,U=()=>({any(e,{report:t,location:n}){if(p.isPlainObject(e)&&"key"in e){const r=e.key;if(typeof r!="string"){t({message:"Entity `key` must be a string.",location:n.child(["key"])});return}r.length<b&&t({message:`Entity 'key' must be at least ${b} characters long.`,location:n.child(["key"])}),r.length>P&&t({message:`Entity 'key' must not exceed ${P} characters.`,location:n.child(["key"])}),G.test(r)||t({message:"Entity `key` must contain only lowercase letters, numbers, and hyphens, and cannot start or end with a hyphen.",location:n.child(["key"])})}}});function x(e,t){const r=t.split("-").map(i=>i.charAt(0).toUpperCase()+i.slice(1)).join("")+e;return Object.values(s.t).includes(r)?r:e}function B(e,t){const n={};for(const[r,i]of Object.entries(t))if(_(r,i)){if(i.severity==="off")continue;n[r]={...q(e,r,i)}}else n[r]=i;return n}function M(e){const t={},n={};for(const[r,i]of Object.entries(e))if(_(r,i)){const a=i;$(a)?t[r]=a:n[r]=a}else n[r]=i;return{entityRules:t,apiRules:n}}function Y(e,t,n){if(!p.isPlainObject(n.parsed)||!p.isPlainObject(n.parsed.components))return null;const r=n.parsed.components,i="schemas"in r?r.schemas:void 0;if(!i||!(e in i))return null;const a=i[e];try{const y=JSON.parse(t);if(s.dequal(a,y))return a}catch{return null}return null}function _(e,t){return e.startsWith("rule/")&&p.isPlainObject(t)}function $(e){return Object.values(s.t).some(t=>e.subject.type===t)}function q(e,t,n){const r=x(n.subject.type,e),i=n.where?.map(a=>({...a,subject:{...a.subject,type:x(a.subject.type,e)}}));return{assertionId:t,subject:{...n.subject,type:r},assertions:n.assertions,...i&&{where:i},...n.message&&{message:n.message},...n.severity&&{severity:n.severity}}}async function N(e){const{document:t,entitySchema:n,entityDefaultSchema:r,severity:i,externalRefResolver:a=new o.BaseResolver,assertionConfig:y={}}=e,m={problems:[],specVersion:"entity",visitorsData:{}},{entityTypes:l,discriminatorResolver:g}=R(n,r),d=o.normalizeTypes(l);let f=d.Entity;if(Array.isArray(t.parsed))f=d.EntityFileArray;else if(p.isPlainObject(t.parsed)){const h=t.parsed[S];if(!h)f=d.Entity;else{const T=g?.(t.parsed,h);T&&typeof T=="string"&&d[T]&&(f=d[T])}}const E=s.Assertions(y),u=Array.isArray(E)?E.map(h=>({severity:i||"error",ruleId:"entity assertions",visitor:h})):[{severity:i||"error",ruleId:"entity assertions",visitor:E}],C=[{severity:i||"error",ruleId:"entity struct",visitor:s.Struct()},{severity:i||"error",ruleId:"entity no-unresolved-refs",visitor:s.NoUnresolvedRefs()},{severity:i||"error",ruleId:"entity key-valid",visitor:U()},...u],D=s.normalizeVisitors(C,d),F=await o.resolveDocument({rootDocument:t,rootType:f,externalRefResolver:a});return s.walkDocument({document:t,rootType:f,normalizedVisitors:D,resolvedRefMap:F,ctx:m}),m.problems}async function A(e,t,n){if(!t.rules)throw new Error(`Scorecard level "${t.name}" has no rules defined.`);const r=new o.BaseResolver,i=o.makeDocumentFromString(JSON.stringify(e,null,2),"entity"),a=i.parsed[S],y=B(a||"unknown",t.rules),{entityRules:m,apiRules:l}=M(y),g=await N({document:i,entitySchema:s.Rs,entityDefaultSchema:s.Ps,externalRefResolver:r,assertionConfig:m});if(v.includes(e.type)){if(Object.keys(l).length===0)return g;if(!n)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(l).forEach(u=>{if(p.isPlainObject(u)&&p.isPlainObject(u.subject)&&u.subject.type!=="Schema")throw new Error(`API rules for "data-schema" entity must target Schema subject, but found "${u.subject.type}".`)});const f=Y(e.title,e.metadata.schema,n);if(!f)throw new Error(`Schema "${e.title}" not found in the document. Ensure the schema exists in components.schemas.`);const E=await I({schema:f,schemaKey:e.title,config:await s.createConfig({rules:l}),specType:e.metadata.specType,sourceDocument:n,externalRefResolver:r});return[...g,...E]}const d=await s.lintDocument({document:n,externalRefResolver:r,config:await s.createConfig({rules:l})});return[...g,...d]}else if(!s.isEmptyObject(l))throw new Error(`API rules are not supported for entity type "${e.type}". Only ${v.join(", ")} support API rules.`);return g}async function I(e){const{schema:t,schemaKey:n,config:r,sourceDocument:i,specType:a,externalRefResolver:y=new o.BaseResolver(r.resolve)}=e,m=i.parsed,l=m[a],g=m.info,d=o.makeDocumentFromString(JSON.stringify({[a]:l,info:g,components:{schemas:{[n]:t}}},null,2),i?.source.absoluteRef||`schema:${n}`);return(await s.lintDocument({document:d,config:r,externalRefResolver:y})).filter(E=>E.location.some(u=>u.pointer?.includes(`/components/schemas/${n}`)))}class H extends Error{}exports.isPlainObject=p.isPlainObject;exports.Arazzo1Types=s.Arazzo1Types;exports.Arazzo1_1Types=s.Arazzo1_1Types;exports.AsyncApi2Types=s.AsyncApi2Types;exports.AsyncApi3Types=s.AsyncApi3Types;exports.CONFIG_BUNDLER_VISITOR_ID=s.CONFIG_BUNDLER_VISITOR_ID;exports.CONFIG_FILE_NAME=s.CONFIG_FILE_NAME;exports.Config=s.Config;exports.ConfigTypes=s.ConfigTypes;exports.ConfigValidationError=s.ConfigValidationError;exports.DEFAULT_CONFIG=s.DEFAULT_CONFIG;exports.DEFAULT_PROJECT_PLUGIN_PATHS=s.DEFAULT_PROJECT_PLUGIN_PATHS;exports.IGNORE_BANNER=s.IGNORE_BANNER;exports.IGNORE_FILE=s.IGNORE_FILE;exports.Oas2Types=s.Oas2Types;exports.Oas3Types=s.Oas3Types;exports.Oas3_1Types=s.Oas3_1Types;exports.Oas3_2Types=s.Oas3_2Types;exports.OpenRpcTypes=s.OpenRpcTypes;exports.Overlay1Types=s.Overlay1Types;exports.PLUGINS_COLLECTOR_VISITOR_ID=s.PLUGINS_COLLECTOR_VISITOR_ID;exports.bundle=s.bundle;exports.bundleDocument=s.bundleDocument;exports.bundleFromString=s.bundleFromString;exports.clearPluginsCache=s.clearPluginsCache;exports.createConfig=s.createConfig;exports.createConfigTypes=s.createConfigTypes;exports.dequal=s.dequal;exports.detectSpec=s.detectSpec;exports.findConfig=s.findConfig;exports.formatProblems=s.formatProblems;exports.getAstNodeByPointer=s.getAstNodeByPointer;exports.getCodeframe=s.getCodeframe;exports.getLineColLocation=s.getLineColLocation;exports.getMajorSpecVersion=s.getMajorSpecVersion;exports.getPluginCacheVersion=s.getPluginCacheVersion;exports.getTotals=s.getTotals;exports.getTypes=s.getTypes;exports.isEmptyObject=s.isEmptyObject;exports.isNotEmptyArray=s.isNotEmptyArray;exports.isString=s.isString;exports.keysOf=s.keysOf;exports.lint=s.lint;exports.lintConfig=s.lintConfig;exports.lintDocument=s.lintDocument;exports.lintFromString=s.lintFromString;exports.loadConfig=s.loadConfig;exports.loadIgnoreConfig=s.loadIgnoreConfig;exports.logger=s.logger;exports.mapTypeToComponent=s.mapTypeToComponent;exports.normalizeVisitors=s.normalizeVisitors;exports.pluralize=s.pluralize;exports.regexFromString=s.regexFromString;exports.resolvePlugins=s.resolvePlugins;exports.slash=s.slash;exports.validate=s.lint;exports.walkDocument=s.walkDocument;exports.xmlEscape=s.xmlEscape;exports.BaseResolver=o.BaseResolver;exports.ResolveError=o.ResolveError;exports.Source=o.Source;exports.YamlParseError=o.YamlParseError;exports.escapePointerFragment=o.escapePointerFragment;exports.getDir=o.getDir;exports.isAbsoluteUrl=o.isAbsoluteUrl;exports.isBrowser=o.isBrowser;exports.isGraphqlRef=o.isGraphqlRef;exports.isMappingRef=o.isMappingRef;exports.isRef=o.isRef;exports.isSupportedExtension=o.isSupportedExtension;exports.isTruthy=o.isTruthy;exports.makeDocumentFromString=o.makeDocumentFromString;exports.normalizeTypes=o.normalizeTypes;exports.parseYaml=o.parseYaml;exports.readFileFromUrl=o.readFileFromUrl;exports.resolveDocument=o.resolveDocument;exports.resolvePath=o.resolvePath;exports.stringifyYaml=o.stringifyYaml;exports.unescapePointerFragment=o.unescapePointerFragment;exports.HandledError=H;exports.StatsAsync2=z;exports.StatsAsync3=V;exports.StatsOAS=w;exports.createEntityTypes=R;exports.doesYamlFileExist=j;exports.isNotEmptyObject=k;exports.lintEntityFile=N;exports.lintEntityWithScorecardLevel=A;exports.lintSchema=I;exports.pause=L;