@redocly/replay 0.29.0-next.1 → 0.29.0-next.11

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 (76) hide show
  1. package/dist/oauth2-redirect.cjs +1 -1
  2. package/dist/oauth2-redirect.js +1 -1
  3. package/dist/{replay-AiChatProvider-B1_-wlJK.js → replay-AiChatProvider-DiP6ztPt.js} +1 -1
  4. package/dist/{replay-AiChatProvider-Z_799APd.js → replay-AiChatProvider-KaBd7DIg.js} +6 -6
  5. package/dist/{replay-AiChatSqliteDBStorage-B9waB0dA.js → replay-AiChatSqliteDBStorage-BiW2AzpT.js} +1 -1
  6. package/dist/{replay-AiChatSqliteDBStorage-C_-_P0T7.js → replay-AiChatSqliteDBStorage-CYG917_g.js} +1 -1
  7. package/dist/{replay-AiPanel-DvSoNrnz.js → replay-AiPanel-CRTgsNm-.js} +31 -19
  8. package/dist/{replay-AiPanel-IRetnmbM.js → replay-AiPanel-J_LTAvrH.js} +2 -2
  9. package/dist/{replay-FileWatcher-CZZXT8GC.js → replay-FileWatcher-BgvK_4Af.js} +2 -2
  10. package/dist/replay-FileWatcher-DB6V5Z_m.js +1 -0
  11. package/dist/{replay-SemanticSearchService-BzE8FK8a.js → replay-SemanticSearchService-CkCWaX7m.js} +1 -1
  12. package/dist/{replay-SemanticSearchService-B8R-ATMA.js → replay-SemanticSearchService-DkXA39F0.js} +21 -21
  13. package/dist/{replay-SqliteDBStorage-CPOEQnSp.js → replay-SqliteDBStorage-B6X43P-l.js} +1 -1
  14. package/dist/{replay-SqliteDBStorage-DVQZek3n.js → replay-SqliteDBStorage-CaEZatJm.js} +2 -2
  15. package/dist/{replay-TauriFileSystemAdapter-BfE1TXkK.js → replay-TauriFileSystemAdapter-CTnsZgpn.js} +1 -1
  16. package/dist/{replay-TauriFileSystemAdapter-Zb6LTS_-.js → replay-TauriFileSystemAdapter-jXGkDtit.js} +1 -1
  17. package/dist/{replay-TauriRootStorage-CUGppZsY.js → replay-TauriRootStorage-C8Kth7fG.js} +18 -18
  18. package/dist/{replay-TauriRootStorage-BY7MGWGe.js → replay-TauriRootStorage-DldWoidz.js} +1 -1
  19. package/dist/{replay-agent-loop-BxPUGZq1.js → replay-agent-loop-CSQDyF19.js} +5 -5
  20. package/dist/{replay-agent-loop-BB-UIrKo.js → replay-agent-loop-CSkpuh-a.js} +1 -1
  21. package/dist/{replay-ai-chat-mappers-C4L8p2zl.js → replay-ai-chat-mappers-Bn5y3wfP.js} +1 -1
  22. package/dist/{replay-ai-chat-mappers-DAyPOhQn.js → replay-ai-chat-mappers-yFYjzino.js} +1 -1
  23. package/dist/{replay-create-model-ebcSRl3r.js → replay-create-model-B4AguBah.js} +4 -4
  24. package/dist/{replay-create-model-BnoDQ7OX.js → replay-create-model-DTusc1Ds.js} +3 -3
  25. package/dist/{replay-db-xD_5VGuR.js → replay-db-B4_mvLNp.js} +1 -1
  26. package/dist/{replay-db-og5UtVrp.js → replay-db-DVp8qKD7.js} +1 -1
  27. package/dist/{replay-external-resolver-DtqY6Ddl.js → replay-external-resolver-CzE3SOg1.js} +2 -2
  28. package/dist/{replay-external-resolver-1bxcPBye.js → replay-external-resolver-bSN_suNz.js} +1 -1
  29. package/dist/{replay-index-Clfun2IN.js → replay-index-BbQ0oJ7O.js} +1 -1
  30. package/dist/replay-index-CaxaTt3L.js +1 -0
  31. package/dist/{replay-index-rbCwID24.js → replay-index-Ck5-RWXm.js} +1 -1
  32. package/dist/{replay-index-jkDlU0Lx.js → replay-index-Cm_7fw-J.js} +6 -6
  33. package/dist/replay-index-CtzJut8U.js +1 -0
  34. package/dist/{replay-index-PEthMsJx.js → replay-index-CyD9TpVI.js} +130 -127
  35. package/dist/replay-index-D1qU5mu0.js +4 -0
  36. package/dist/replay-index-DAbsE71J.js +1 -0
  37. package/dist/replay-index-DP_00xWB.js +7219 -0
  38. package/dist/{replay-index-wPsTqXSf.js → replay-index-DU6K6x7I.js} +1 -1
  39. package/dist/{replay-index-C33Z16Rm.js → replay-index-DlFHhZgF.js} +54846 -40750
  40. package/dist/{replay-index-DiSy_1OY.js → replay-index-DzseLquf.js} +1 -1
  41. package/dist/replay-lint-C4JrAlfC.js +130 -0
  42. package/dist/replay-lint-CwWyWkWi.js +24688 -0
  43. package/dist/replay-lint-graphql-3FcAXO3S.js +99 -0
  44. package/dist/replay-lint-graphql-DjFu8XDg.js +1 -0
  45. package/dist/replay-oauth2-redirect-handler-BfZRvm6l.js +4 -0
  46. package/dist/{replay-oauth2-redirect-handler-CqKZB3aV.js → replay-oauth2-redirect-handler-Bq6bpZMm.js} +1 -1
  47. package/dist/{replay-periodic-revalidation-KHXYhF4T.js → replay-periodic-revalidation-ChE98fdS.js} +1 -1
  48. package/dist/{replay-periodic-revalidation-Cuzq23M8.js → replay-periodic-revalidation-Do5NHTEZ.js} +1 -1
  49. package/dist/{replay-resolve-C0VBozxM.js → replay-resolve-2BhmSL2L.js} +8 -8
  50. package/dist/{replay-resolve-C2l91lf8.js → replay-resolve-DLZhNwSz.js} +1 -1
  51. package/dist/replay-respect-run-4blfFaEM.js +73 -0
  52. package/dist/{replay-respect-run-B25T_yI0.js → replay-respect-run-Cqde-SsJ.js} +3840 -5291
  53. package/dist/{replay-tauri-path-9tVlry3g.js → replay-tauri-path-CxsepUAD.js} +1 -1
  54. package/dist/{replay-tauri-path-DpnuyiYr.js → replay-tauri-path-Dlnku8cQ.js} +2 -2
  55. package/dist/{replay-useAiChatQueries-Bi_6G8WU.js → replay-useAiChatQueries-Br7_L25G.js} +43 -43
  56. package/dist/{replay-useAiChatQueries-DLSFwWvn.js → replay-useAiChatQueries-DNT0fI6R.js} +461 -461
  57. package/dist/{replay-validate-key-DnQefCz3.js → replay-validate-key-B5gYUcfA.js} +2 -2
  58. package/dist/{replay-validate-key-BQB45O00.js → replay-validate-key-Btx97_od.js} +1 -1
  59. package/dist/replay.cjs +1 -1
  60. package/dist/replay.d.ts +41 -1
  61. package/dist/replay.js +10 -10
  62. package/package.json +9 -5
  63. package/dist/replay-FileWatcher-CUqV5dPp.js +0 -1
  64. package/dist/replay-core-BJmXmoC5.js +0 -1
  65. package/dist/replay-core-B_hiOZZr.js +0 -10
  66. package/dist/replay-index-3lwhSmvi.js +0 -1
  67. package/dist/replay-index-C7MCjO6i.js +0 -1
  68. package/dist/replay-index-LcDbGH39.js +0 -7026
  69. package/dist/replay-index-Oct6Dygd.js +0 -1
  70. package/dist/replay-index-_srgnXqd.js +0 -4
  71. package/dist/replay-lint-CVXT7IME.js +0 -30232
  72. package/dist/replay-lint-fhGv2lgR.js +0 -177
  73. package/dist/replay-lint-graphql-BhMbXKkF.js +0 -1956
  74. package/dist/replay-lint-graphql-DtQhF_PM.js +0 -3
  75. package/dist/replay-oauth2-redirect-handler-Bqw5UUvl.js +0 -4
  76. package/dist/replay-respect-run-BN4jlLVY.js +0 -82
@@ -1,5 +1,5 @@
1
- import { c as i, g as n } from "./replay-create-model-ebcSRl3r.js";
2
- import { M as s } from "./replay-index-C33Z16Rm.js";
1
+ import { c as i, g as n } from "./replay-create-model-B4AguBah.js";
2
+ import { M as s } from "./replay-index-DlFHhZgF.js";
3
3
  import { V as l } from "./replay-defaults-CzR6jw9a.js";
4
4
  async function g(a, e, t, o) {
5
5
  try {
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const r=require("./replay-create-model-BnoDQ7OX.js"),n=require("./replay-index-LcDbGH39.js"),l=require("./replay-defaults-DVvOnvnR.js");async function s(t,a,o,i){try{const e=r.createModel({provider:t,modelId:o,apiKey:a});return await r.generateText({model:e,prompt:l.VALIDATION_PROMPT,maxOutputTokens:n.MAX_OUTPUT_TOKENS_FOR_VALIDATION,abortSignal:i?.abortSignal}),{valid:!0}}catch(e){if(e instanceof Error&&e.name==="AbortError")throw e;return{valid:!1,error:e instanceof Error&&e.message.length>0?e.message:"Validation failed. Please try again."}}}exports.validateApiKey=s;
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const r=require("./replay-create-model-DTusc1Ds.js"),n=require("./replay-index-DP_00xWB.js"),l=require("./replay-defaults-DVvOnvnR.js");async function s(t,a,o,i){try{const e=r.createModel({provider:t,modelId:o,apiKey:a});return await r.generateText({model:e,prompt:l.VALIDATION_PROMPT,maxOutputTokens:n.MAX_OUTPUT_TOKENS_FOR_VALIDATION,abortSignal:i?.abortSignal}),{valid:!0}}catch(e){if(e instanceof Error&&e.name==="AbortError")throw e;return{valid:!1,error:e instanceof Error&&e.message.length>0?e.message:"Validation failed. Please try again."}}}exports.validateApiKey=s;
package/dist/replay.cjs CHANGED
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("./replay-index-LcDbGH39.js"),t=require("./replay-oauth2-redirect-handler-Bqw5UUvl.js");exports.AI_PROVIDERS=e.AI_PROVIDERS;exports.AiPanelContext=e.AiPanelContext;exports.EmbeddedReplay=e.EmbeddedReplay;exports.Modal=e.Modal;exports.REUNITE_AI_PROVIDER=e.REUNITE_AI_PROVIDER;exports.Replay=e.Replay;exports.ReplayOverlay=e.ReplayOverlay;Object.defineProperty(exports,"SpanStatusCode",{enumerable:!0,get:()=>e.SpanStatusCode});exports.TelemetryClient=e.TelemetryClient;exports.applyThemeToDOM=e.applyThemeToDOM;exports.createResource=e.createResource;exports.getCurrentTheme=e.getCurrentTheme;exports.loadAgentLoop=e.loadAgentLoop;exports.makeProviderRecord=e.makeProviderRecord;exports.resolveTheme=e.resolveTheme;exports.useAiPanel=e.useAiPanel;exports.useTelemetry=e.useTelemetry;exports.useTelemetryClient=e.useTelemetryClient;exports.validateApiKey=e.validateApiKey;exports.OAuth2Error=t.OAuth2Error;exports.handleOAuth2Redirect=t.handleOAuth2Redirect;
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("./replay-index-DP_00xWB.js"),t=require("./replay-oauth2-redirect-handler-BfZRvm6l.js");exports.AI_PROVIDERS=e.AI_PROVIDERS;exports.AiPanelContext=e.AiPanelContext;exports.EmbeddedReplay=e.EmbeddedReplay;exports.Modal=e.Modal;exports.REUNITE_AI_PROVIDER=e.REUNITE_AI_PROVIDER;exports.Replay=e.Replay;exports.ReplayOverlay=e.ReplayOverlay;Object.defineProperty(exports,"SpanStatusCode",{enumerable:!0,get:()=>e.SpanStatusCode});exports.TelemetryClient=e.TelemetryClient;exports.applyThemeToDOM=e.applyThemeToDOM;exports.createResource=e.createResource;exports.getCurrentTheme=e.getCurrentTheme;exports.loadAgentLoop=e.loadAgentLoop;exports.makeProviderRecord=e.makeProviderRecord;exports.resolveTheme=e.resolveTheme;exports.useAiPanel=e.useAiPanel;exports.useTelemetry=e.useTelemetry;exports.useTelemetryClient=e.useTelemetryClient;exports.validateApiKey=e.validateApiKey;exports.OAuth2Error=t.OAuth2Error;exports.handleOAuth2Redirect=t.handleOAuth2Redirect;
package/dist/replay.d.ts CHANGED
@@ -79,6 +79,14 @@ export declare type AiProviderConfig = {
79
79
 
80
80
  export declare type AiProviderName = (typeof AI_PROVIDERS)[keyof typeof AI_PROVIDERS];
81
81
 
82
+ export declare type ApiEntry = {
83
+ kind: 'openapi';
84
+ definition: {
85
+ document: OpenAPIDefinition;
86
+ };
87
+ operation?: OperationEntry;
88
+ };
89
+
82
90
  declare type ApiPath = {
83
91
  path: string;
84
92
  method: string;
@@ -460,6 +468,9 @@ declare type OpenAPIOperation_2 = {
460
468
  };
461
469
  servers: Server[];
462
470
  security?: OperationSecurity[][];
471
+ responses?: {
472
+ [status: string]: OperationResponse;
473
+ };
463
474
  response?: Response_2 | null;
464
475
  };
465
476
 
@@ -686,6 +697,14 @@ declare interface OpenAPIXBadges {
686
697
  position?: 'before' | 'after';
687
698
  }
688
699
 
700
+ declare type OperationEntry = {
701
+ operationId: string;
702
+ pointer?: string;
703
+ } | {
704
+ operationId?: string;
705
+ pointer: string;
706
+ };
707
+
689
708
  export declare type OperationIn = 'query' | 'header' | 'path' | 'cookie';
690
709
 
691
710
  declare type OperationParameter = {
@@ -711,6 +730,12 @@ declare type OperationParameterSchema = {
711
730
  enum?: string[];
712
731
  };
713
732
 
733
+ declare type OperationResponse = {
734
+ mediaTypes?: {
735
+ [name: string]: Pick<MediaType, 'schema'>;
736
+ };
737
+ };
738
+
714
739
  declare type OperationSecurity = {
715
740
  id: string;
716
741
  type: 'apiKey' | 'http' | 'oauth2' | 'openIdConnect';
@@ -762,12 +787,17 @@ declare type Referenced<T> = T | OpenAPIRef;
762
787
  export declare function Replay(props: ReplayAppProps): JSX.Element;
763
788
 
764
789
  declare type ReplayAppProps = {
790
+ /** @deprecated Use `api` with an `ApiEntry`. Replay ignores it when `api` is an `ApiEntry`. */
765
791
  activeOperationId?: string;
792
+ /** @deprecated Use `api` with an `ApiEntry`. Replay ignores it when `api` is an `ApiEntry`. */
766
793
  activeOperationPointer?: string;
767
- api?: OpenAPIDefinition;
794
+ /** Passing an OpenAPI document is deprecated. Pass an `ApiEntry`. */
795
+ api?: OpenAPIDefinition | ApiEntry;
768
796
  settings: InputSettings;
769
797
  getReuniteAuth?: ReuniteAuthGetter;
770
798
  onLoad?: () => void;
799
+ /** When set, the first paint of the loaded UI sends `com.redocly.app.loaded`. */
800
+ loadTiming?: ReplayLoadTiming;
771
801
  renderProjectSelect?: () => React.ReactNode;
772
802
  onSettingsOpen?: (tab?: SettingsTab) => void;
773
803
  };
@@ -793,6 +823,12 @@ declare type ReplayGateComponentProps = {
793
823
 
794
824
  declare type ReplayLayout = 'default' | 'overlay' | 'preview';
795
825
 
826
+ /** `performance.now()` values; `definitionReadyTime` defaults to `startTime`. */
827
+ export declare type ReplayLoadTiming = {
828
+ startTime: number;
829
+ definitionReadyTime?: number;
830
+ };
831
+
796
832
  export declare type ReplayOnChangeParams = {
797
833
  operations: ChangedOperation[];
798
834
  activeMimeName?: string;
@@ -885,6 +921,7 @@ export { SpanStatusCode }
885
921
 
886
922
  export declare class TelemetryClient {
887
923
  private _client;
924
+ private _scopedClients;
888
925
  private _isInitialized;
889
926
  private _initResolve;
890
927
  private _initPromise;
@@ -899,8 +936,11 @@ export declare class TelemetryClient {
899
936
  getGlobalAttributes(): Readonly<TelemetryGlobalAttributes>;
900
937
  clearGlobalAttributes(): void;
901
938
  init(config?: TelemetryConfig): void;
939
+ getScopedClient(config?: TelemetryConfig): TelemetryMethods;
902
940
  sendEvent<T extends AsyncApiReplay.EventType>(event: T, data: AsyncApiReplay.GetEventData<T>): void;
903
941
  startSpan<T extends AsyncApiReplay.EventType>(event: T, data?: AsyncApiReplay.EventPayload<T>, parentCtx?: TelemetryContext): AsyncApiReplay.OtelClientSpan<T> | undefined;
942
+ private emitEvent;
943
+ private emitSpan;
904
944
  }
905
945
 
906
946
  export declare type TelemetryConfig = {
package/dist/replay.js CHANGED
@@ -1,25 +1,25 @@
1
- import { A as s, ap as r, bF as t, bG as l, R as o, bH as b, bI as R, E as d, bJ as p, bK as m, F as n, bL as y, bM as A, bN as i, bO as u, ao as O, an as T, bP as h, bQ as E } from "./replay-index-C33Z16Rm.js";
2
- import { O as P, h as C } from "./replay-oauth2-redirect-handler-CqKZB3aV.js";
1
+ import { A as s, ax as r, bQ as t, bR as l, R as o, bS as b, bT as R, N as d, bU as m, bV as p, O as n, bW as y, bX as A, bY as T, bZ as i, aw as u, av as O, b_ as h, b$ as E } from "./replay-index-DlFHhZgF.js";
2
+ import { O as C, h as I } from "./replay-oauth2-redirect-handler-Bq6bpZMm.js";
3
3
  export {
4
4
  s as AI_PROVIDERS,
5
5
  r as AiPanelContext,
6
6
  t as EmbeddedReplay,
7
7
  l as Modal,
8
- P as OAuth2Error,
8
+ C as OAuth2Error,
9
9
  o as REUNITE_AI_PROVIDER,
10
10
  b as Replay,
11
11
  R as ReplayOverlay,
12
12
  d as SpanStatusCode,
13
- p as TelemetryClient,
14
- m as applyThemeToDOM,
13
+ m as TelemetryClient,
14
+ p as applyThemeToDOM,
15
15
  n as createResource,
16
16
  y as getCurrentTheme,
17
- C as handleOAuth2Redirect,
17
+ I as handleOAuth2Redirect,
18
18
  A as loadAgentLoop,
19
- i as makeProviderRecord,
20
- u as resolveTheme,
21
- O as useAiPanel,
22
- T as useTelemetry,
19
+ T as makeProviderRecord,
20
+ i as resolveTheme,
21
+ u as useAiPanel,
22
+ O as useTelemetry,
23
23
  h as useTelemetryClient,
24
24
  E as validateApiKey
25
25
  };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@redocly/replay",
3
- "version": "0.29.0-next.1",
3
+ "version": "0.29.0-next.11",
4
4
  "type": "module",
5
5
  "main": "./dist/replay.cjs",
6
6
  "module": "./dist/replay.js",
@@ -16,7 +16,7 @@
16
16
  }
17
17
  },
18
18
  "peerDependencies": {
19
- "@redocly/theme": "0.70.0-next.1",
19
+ "@redocly/theme": "0.70.0-next.11",
20
20
  "@tanstack/react-query": "5.62.3",
21
21
  "react": "^19.2.7",
22
22
  "react-dom": "^19.2.7",
@@ -51,10 +51,11 @@
51
51
  "@lezer/highlight": "^1.1.6",
52
52
  "@noble/hashes": "^1.8.0",
53
53
  "@opentelemetry/api": "1.9.1",
54
- "@redocly/openapi-core": "2.53.0",
54
+ "@redocly/openapi-core": "2.58.1",
55
55
  "@redocly/replay-asyncapi-sdk": "0.0.1",
56
- "@redocly/respect-core": "2.53.0",
56
+ "@redocly/respect-core": "2.58.1",
57
57
  "@redocly/vscode-json-languageservice": "^3.4.9",
58
+ "@redocly/tooling-test-utils": "0.0.0",
58
59
  "@tauri-apps/api": "2.4.1",
59
60
  "@tauri-apps/plugin-deep-link": "^2.4.5",
60
61
  "@tauri-apps/plugin-dialog": "2.0.0-rc.1",
@@ -74,10 +75,13 @@
74
75
  "@vitejs/plugin-react-swc": "4.3.1",
75
76
  "@vitest/coverage-v8": "4.1.11",
76
77
  "ai": "7.0.9",
78
+ "cm6-graphql": "^0.2.1",
77
79
  "dayjs": "1.11.21",
78
80
  "diff": "^8.0.0",
79
81
  "drizzle-orm": "^0.45.0",
80
82
  "fast-xml-parser": "5.7.3",
83
+ "graphql": "16.14.2",
84
+ "graphql-language-service": "^5.6.0",
81
85
  "idb": "^8.0.2",
82
86
  "jotai": "^2.16.2",
83
87
  "js-yaml": "4.3.2",
@@ -92,7 +96,7 @@
92
96
  "react-select": "5.10.1",
93
97
  "shellwords": "^1.1.1",
94
98
  "typescript": "6.0.3",
95
- "ulid": "^2.3.0",
99
+ "ulid": "^3.0.2",
96
100
  "usehooks-ts": "^3.1.1",
97
101
  "vite": "7.3.6",
98
102
  "vite-plugin-dts": "4.5.4",
@@ -1 +0,0 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const h=require("./replay-index-LcDbGH39.js"),f=require("./replay-SemanticSearchService-BzE8FK8a.js");var v;(function(l){l.WINDOW_RESIZED="tauri://resize",l.WINDOW_MOVED="tauri://move",l.WINDOW_CLOSE_REQUESTED="tauri://close-requested",l.WINDOW_DESTROYED="tauri://destroyed",l.WINDOW_FOCUS="tauri://focus",l.WINDOW_BLUR="tauri://blur",l.WINDOW_SCALE_FACTOR_CHANGED="tauri://scale-change",l.WINDOW_THEME_CHANGED="tauri://theme-changed",l.WINDOW_CREATED="tauri://window-created",l.WEBVIEW_CREATED="tauri://webview-created",l.DRAG_ENTER="tauri://drag-enter",l.DRAG_OVER="tauri://drag-over",l.DRAG_DROP="tauri://drag-drop",l.DRAG_LEAVE="tauri://drag-leave"})(v||(v={}));async function m(l,e){await h.invoke("plugin:event|unlisten",{event:l,eventId:e})}async function E(l,e,i){var s;const n=(s=void 0)!==null&&s!==void 0?s:{kind:"Any"};return h.invoke("plugin:event|listen",{event:l,target:n,handler:h.transformCallback(e)}).then(t=>async()=>m(l,t))}class w{constructor(e,i,s,n,t,o){this.storage=e,this.projectDir=i,this.aiEnabled=s,this.environments=n,this.apis=t,this.collections=o}storage;projectDir;aiEnabled;environments;apis;collections;watchPath=null;unlistenEvent=null;pendingEnvironmentsReload=Promise.resolve();get tauriStorage(){return this.storage}indexApis(e){!this.aiEnabled||e.length===0||f.getSemanticSearchService().indexApis(e).catch(i=>console.error("Semantic index (apis):",i))}indexCollections(e){!this.aiEnabled||e.length===0||f.getSemanticSearchService().indexCollections(e).catch(i=>console.error("Semantic index (collections):",i))}removeApis(e){if(!this.aiEnabled||e.length===0)return;const i=f.getSemanticSearchService();Promise.all(e.map(s=>i.removeApi(s))).catch(s=>console.error("Semantic remove (apis):",s))}removeCollections(e){if(!this.aiEnabled||e.length===0)return;const i=f.getSemanticSearchService();Promise.all(e.map(s=>i.removeCollection(s))).catch(s=>console.error("Semantic remove (collections):",s))}async start(){if(this.watchPath){console.warn("Watcher already started for:",this.watchPath);return}try{this.unlistenEvent=await E("fs-watch-event",async e=>{const i=e.payload;try{await this.handleEvent(i)}catch(s){console.error("Error handling file change:",s)}}),await h.invoke("fs_watch",{path:this.projectDir,options:{recursive:!0,delayMs:500}}),this.watchPath=this.projectDir}catch(e){throw console.error("Failed to start file watcher:",e),this.unlistenEvent&&(this.unlistenEvent(),this.unlistenEvent=null),e}}async stop(){if(this.watchPath)try{await h.invoke("fs_unwatch",{path:this.watchPath})}catch(e){console.error("Error stopping file watcher:",e)}finally{this.unlistenEvent&&(this.unlistenEvent(),this.unlistenEvent=null),this.watchPath=null}}async handleEvent(e){const{changeType:i,paths:s,pathTypes:n,type:t}=e;if(await this.isProjectFolderRemoved(s,i)){await this.handleProjectFolderRemoval();return}const o=this.filterSpecFiles(s,n);if(o.paths.length===0)return;const a=await this.toFileEntries(o.paths,o.pathTypes);switch(i){case"changed":{(t.includes("Data")||t.includes("Name"))&&await this.handleModify(a);break}case"added":await this.handleCreate(a);break;case"deleted":await this.handleDelete(a);break;case"renamed":await this.handleRename(a);break;default:console.log("Unhandled change type:",i)}}filterSpecFiles(e,i){const s=[],n=[];for(let t=0;t<e.length;t++){const o=e[t],a=o.split(".").pop()?.toLowerCase();a&&["yaml","yml","json"].includes(a)&&(s.push(o),n.push(i[t]||"unknown"))}return{paths:s,pathTypes:n}}async toFileEntries(e,i){return Promise.all(e.map(async(s,n)=>({relative_path:await h.PathUtils.relative(this.projectDir,s),absolute_path:s,type:i[n]||"unknown"})))}hasExternalConfigChange(e){return e.some(i=>h.isRedoclyConfigFile(i.relative_path)&&!this.storage.isWatchExcluded(i.relative_path))}withoutConfigFile(e){return e.filter(i=>!h.isRedoclyConfigFile(i.relative_path))}consolidateFileEntries(e){const i=[],s=new Set;for(const n of e)s.has(n.relative_path)||(s.add(n.relative_path),this.storage.isWatchExcluded(n.relative_path)||i.push(n));return i}async handleModify(e){const i=this.hasExternalConfigChange(e),s=this.withoutConfigFile(e),{newApiFiles:n,existingApiFiles:t}=this.categorizeApisFromFiles(s),{newCollectionFiles:o,existingCollectionFiles:a}=this.categorizeCollectionsFromFiles(s),c=await this.findApisToReload(e),r=await this.findCollectionsToReload(e),p=[...n,...o];p.length>0&&await this.handleCreate(p),i&&await this.reloadEnvironments();const u=this.consolidateFileEntries([...t,...c]),g=this.consolidateFileEntries([...a,...r]);await this.reloadApis(u),await this.reloadCollections(g)}async handleCreate(e){this.hasExternalConfigChange(e)&&await this.reloadEnvironments();const i=this.withoutConfigFile(e),s=i.filter(r=>r.type==="api"),n=i.filter(r=>r.type==="collection"),{newApiFiles:t,existingApiFiles:o}=this.categorizeApisFromFiles(s),{newCollectionFiles:a,existingCollectionFiles:c}=this.categorizeCollectionsFromFiles(n);if(t.length>0||a.length>0){t.forEach(d=>this.storage.addPersistExcludedId(d.relative_path)),a.forEach(d=>this.storage.addPersistExcludedId(d.relative_path));const r=t.length>0?await this.tauriStorage.loadAndParseApis(t,void 0,!0):[],p=a.length>0?await this.tauriStorage.loadAndParseCollections(a,void 0):[],u=r.filter(d=>d!==null),g=p.filter(d=>d!==null);this.apis.set([...this.apis.get(),...u]),this.collections.set([...this.collections.get(),...g]),this.indexApis(u),this.indexCollections(g),setTimeout(()=>{t.forEach(d=>this.storage.removePersistExcludedId(d.relative_path)),a.forEach(d=>this.storage.removePersistExcludedId(d.relative_path))},500)}o.length>0&&await this.reloadApis(o),c.length>0&&await this.reloadCollections(c)}categorizeApisFromFiles(e){const i=new Set,s=[],n=[];for(const t of e){if(i.has(t.relative_path))continue;i.add(t.relative_path),this.apis.get().some(a=>a.id===t.relative_path)?n.push(t):t.type==="api"&&s.push(t)}return{newApiFiles:s,existingApiFiles:n}}categorizeCollectionsFromFiles(e){const i=new Set,s=[],n=[];for(const t of e){if(i.has(t.relative_path))continue;i.add(t.relative_path),this.collections.get().some(a=>a.id===t.relative_path)?n.push(t):t.type==="collection"&&s.push(t)}return{newCollectionFiles:s,existingCollectionFiles:n}}async handleDelete(e){this.hasExternalConfigChange(e)&&await this.reloadEnvironments();const i=this.withoutConfigFile(e),s=[],n=[];for(const t of i){this.storage.addPersistExcludedId(t.relative_path);const o=this.apis.get();o.some(r=>r.id===t.relative_path)&&(this.apis.set(o.filter(r=>r.id!==t.relative_path)),this.tauriStorage.deleteApiFromCache(t.relative_path),s.push(t.relative_path));const a=this.collections.get(),c=a.findIndex(r=>r.id===t.relative_path);c>=0&&(this.collections.set(a.filter((r,p)=>p!==c)),n.push(t.relative_path)),setTimeout(()=>{this.storage.removePersistExcludedId(t.relative_path)},500)}this.removeApis(s),this.removeCollections(n)}async handleRename(e){if(e.length>=2){const[i,s]=e;await this.handleDelete([i]),await this.handleCreate([s])}else await this.handleCreate(e)}async isProjectFolderRemoved(e,i){if(e.length===0)return!1;if(i==="deleted"||i==="renamed"){for(const n of e)if(n===this.projectDir)return!0}return e.filter(n=>!n.startsWith(this.projectDir+"/")&&n!==this.projectDir).length>0&&i==="renamed"}async handleProjectFolderRemoval(){const e=this.apis.get(),i=e.map(t=>t.id);e.forEach(t=>{this.storage.addPersistExcludedId(t.id),this.tauriStorage.deleteApiFromCache(t.id)}),this.apis.set([]);const s=this.collections.get(),n=s.map(t=>t.id);s.forEach(t=>{this.storage.addPersistExcludedId(t.id)}),this.collections.set([]),setTimeout(()=>{e.forEach(t=>this.storage.removePersistExcludedId(t.id)),s.forEach(t=>this.storage.removePersistExcludedId(t.id))},500),this.removeApis(i),this.removeCollections(n),await this.stop()}async findApisToReload(e){const i=[];return await Promise.all(this.apis.get().map(async s=>{const n=s.fileDependencies??new Set,t=s.id,o=e.find(a=>n.has(a.absolute_path));if(!this.storage.isWatchExcluded(t)&&o){const a=await h.PathUtils.join(this.projectDir,t);i.push({relative_path:t,absolute_path:a,type:"api"})}})),i}async findCollectionsToReload(e){const i=[];return await Promise.all(this.collections.get().map(async s=>{const n=s.fileDependencies??new Set,t=s.id,o=e.find(a=>n.has(a.absolute_path));if(!this.storage.isWatchExcluded(t)&&o){const a=await h.PathUtils.join(this.projectDir,t);i.push({relative_path:t,absolute_path:a,type:"collection"})}})),i}reloadEnvironments(){const e=this.pendingEnvironmentsReload.then(()=>this.readAndPublishEnvironments());return this.pendingEnvironmentsReload=e.catch(()=>{}),e}async readAndPublishEnvironments(){const e=this.environments.get(),i=await this.tauriStorage.readEnvironments();!(this.environments.get()!==e)&&(i.length>0||!this.storage.getEnvironmentsConfigError())&&this.environments.set(i.length>0?i:h.cloneObject(h.DEFAULT_ENVIRONMENTS)),this.storage.publishEnvironmentsConfigError()}async reloadApis(e){if(e.length===0)return;const i=await this.tauriStorage.loadAndParseApis(e,void 0,!0),s=[];await Promise.all(i.map(async(n,t)=>{if(!n){await this.handleDelete([e[t]]);return}const o=this.apis.get();o.some(a=>a.id===n.id)?(this.storage.addPersistExcludedId(n.id),this.apis.set(o.map(a=>a.id===n.id?n:a)),s.push(n),setTimeout(()=>this.storage.removePersistExcludedId(n.id),500)):console.warn("API not found in state after reload:",n.id)})),s.length>0&&this.indexApis(s)}async reloadCollections(e){if(e.length===0)return;const i=await this.tauriStorage.loadAndParseCollections(e,void 0),s=[];await Promise.all(i.map(async(n,t)=>{if(!n){await this.handleDelete([e[t]]);return}const o=this.collections.get(),a=o.findIndex(c=>c.id===n.id);a>=0?(this.storage.addPersistExcludedId(n.id),this.collections.set(o.map((c,r)=>r===a?n:c)),s.push(n),setTimeout(()=>this.storage.removePersistExcludedId(n.id),500)):console.warn("Collection not found in state after reload:",n.id)})),s.length>0&&this.indexCollections(s)}}exports.FileWatcher=w;
@@ -1 +0,0 @@
1
- "use strict";function o(r,n=!1){return window.__TAURI_INTERNALS__.transformCallback(r,n)}async function s(r,n={},e){return window.__TAURI_INTERNALS__.invoke(r,n,e)}exports.invoke=s;exports.transformCallback=o;
@@ -1,10 +0,0 @@
1
- function o(r, e = !1) {
2
- return window.__TAURI_INTERNALS__.transformCallback(r, e);
3
- }
4
- async function s(r, e = {}, n) {
5
- return window.__TAURI_INTERNALS__.invoke(r, e, n);
6
- }
7
- export {
8
- s as i,
9
- o as t
10
- };
@@ -1 +0,0 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const n=require("./replay-core-BJmXmoC5.js");var i;(function(e){e.WINDOW_RESIZED="tauri://resize",e.WINDOW_MOVED="tauri://move",e.WINDOW_CLOSE_REQUESTED="tauri://close-requested",e.WINDOW_DESTROYED="tauri://destroyed",e.WINDOW_FOCUS="tauri://focus",e.WINDOW_BLUR="tauri://blur",e.WINDOW_SCALE_FACTOR_CHANGED="tauri://scale-change",e.WINDOW_THEME_CHANGED="tauri://theme-changed",e.WINDOW_CREATED="tauri://window-created",e.WINDOW_SUSPENDED="tauri://suspended",e.WINDOW_RESUMED="tauri://resumed",e.WEBVIEW_CREATED="tauri://webview-created",e.DRAG_ENTER="tauri://drag-enter",e.DRAG_OVER="tauri://drag-over",e.DRAG_DROP="tauri://drag-drop",e.DRAG_LEAVE="tauri://drag-leave"})(i||(i={}));async function u(e,r){window.__TAURI_EVENT_PLUGIN_INTERNALS__.unregisterListener(e,r),await n.invoke("plugin:event|unlisten",{event:e,eventId:r})}async function _(e,r,l){var t;const a=(t=void 0)!==null&&t!==void 0?t:{kind:"Any"};return n.invoke("plugin:event|listen",{event:e,target:a,handler:n.transformCallback(r)}).then(o=>async()=>u(e,o))}async function D(){return await n.invoke("plugin:deep-link|get_current")}async function s(e){return await _("deep-link://new-url",r=>{e(r.payload)})}exports.getCurrent=D;exports.onOpenUrl=s;
@@ -1 +0,0 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const p=require("./replay-index-LcDbGH39.js"),s=require("./replay-lint-fhGv2lgR.js"),o=require("./replay-resolve-C2l91lf8.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.Js,entityDefaultSchema:s.Ls,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 J 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=J;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;