@redocly/replay 0.28.0-next.2 → 0.28.0-next.4

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 (54) hide show
  1. package/dist/{replay-AiChatProvider-D3tGLym7.js → replay-AiChatProvider-BIplPHOS.js} +6 -6
  2. package/dist/{replay-AiChatProvider-DLZX3ihL.js → replay-AiChatProvider-TF1u9E5L.js} +1 -1
  3. package/dist/{replay-AiChatSqliteDBStorage-ckjqpV-2.js → replay-AiChatSqliteDBStorage-Bay95FHW.js} +1 -1
  4. package/dist/{replay-AiChatSqliteDBStorage-yawoZunX.js → replay-AiChatSqliteDBStorage-C-rkQ3jG.js} +1 -1
  5. package/dist/{replay-AiPanel-CtMW4jHp.js → replay-AiPanel-DU5aVA3q.js} +4 -4
  6. package/dist/{replay-AiPanel-C2dOENPe.js → replay-AiPanel-DzGN1t86.js} +1 -1
  7. package/dist/{replay-FileWatcher-sxKCrDRy.js → replay-FileWatcher-XMkIoDEA.js} +1 -1
  8. package/dist/{replay-FileWatcher-Da7VcNHD.js → replay-FileWatcher-iYbHpwCv.js} +2 -2
  9. package/dist/{replay-SemanticSearchService-d98JHVBr.js → replay-SemanticSearchService-BWwCFW3F.js} +1 -1
  10. package/dist/{replay-SemanticSearchService-Z4oXtg1-.js → replay-SemanticSearchService-Dk4UTm2r.js} +1 -1
  11. package/dist/{replay-SqliteDBStorage-u6WbcK1f.js → replay-SqliteDBStorage-BFdjYsG7.js} +1 -1
  12. package/dist/{replay-SqliteDBStorage-3VBWw1et.js → replay-SqliteDBStorage-DGQjzDy4.js} +1 -1
  13. package/dist/{replay-TauriFileSystemAdapter-CjAHiJt1.js → replay-TauriFileSystemAdapter-C8k9RvT1.js} +1 -1
  14. package/dist/{replay-TauriFileSystemAdapter-ICQ2nRWO.js → replay-TauriFileSystemAdapter-CLzYSck7.js} +1 -1
  15. package/dist/{replay-TauriRootStorage-hW8Tndk0.js → replay-TauriRootStorage-C1MIH5ji.js} +2 -2
  16. package/dist/{replay-TauriRootStorage-CQj8br8Q.js → replay-TauriRootStorage-CiGY8MO6.js} +1 -1
  17. package/dist/{replay-agent-loop-B-IEIGri.js → replay-agent-loop-BoEw65rR.js} +3 -3
  18. package/dist/{replay-agent-loop-B06Jshb3.js → replay-agent-loop-Cm1iS9G2.js} +1 -1
  19. package/dist/{replay-ai-chat-mappers-B5sjJdrE.js → replay-ai-chat-mappers-Csm9vJrG.js} +1 -1
  20. package/dist/{replay-ai-chat-mappers-UGovEa4H.js → replay-ai-chat-mappers-IZNFNXug.js} +1 -1
  21. package/dist/{replay-create-model-lRYWX-0l.js → replay-create-model-BqvD-0wF.js} +3 -3
  22. package/dist/{replay-create-model-B-KPLEJi.js → replay-create-model-Y9UJSztb.js} +3 -3
  23. package/dist/{replay-db-00pWKHyY.js → replay-db-BImXgUGU.js} +1 -1
  24. package/dist/{replay-db-B_wOpXdd.js → replay-db-C7FD3opa.js} +1 -1
  25. package/dist/{replay-external-resolver-D-h0nPH_.js → replay-external-resolver-Bj3sLTnz.js} +2 -2
  26. package/dist/{replay-external-resolver-Ds5-nzcf.js → replay-external-resolver-CjM7Da6t.js} +1 -1
  27. package/dist/{replay-index-C-A7VOiR.js → replay-index-BH8cTSEK.js} +21 -21
  28. package/dist/{replay-index-C8p-US63.js → replay-index-BuYoH96w.js} +11 -11
  29. package/dist/{replay-index-9rbZ-mEz.js → replay-index-CKRKzXMt.js} +1 -1
  30. package/dist/replay-index-Cp06WK82.js +574 -0
  31. package/dist/{replay-index-DenMrfEa.js → replay-index-DJwfdo0s.js} +1 -1
  32. package/dist/{replay-index-lxN84rl9.js → replay-index-DlTloE6S.js} +1 -1
  33. package/dist/replay-index-Dxk-kqkZ.js +1 -0
  34. package/dist/{replay-index-CtSJHuow.js → replay-index-xheWgsnj.js} +2 -2
  35. package/dist/{replay-lint-To3OwiOO.js → replay-lint--iBW-6Vj.js} +9461 -13309
  36. package/dist/replay-lint-BIbkYU09.js +177 -0
  37. package/dist/{replay-lint-graphql-Bm1aR8BO.js → replay-lint-graphql-2b4GIER6.js} +1 -1
  38. package/dist/{replay-lint-graphql-k2xF1Dxd.js → replay-lint-graphql-EXBI8I89.js} +1 -1
  39. package/dist/{replay-resolve-Id-g4Fn5.js → replay-resolve-B5yIfyuT.js} +16 -16
  40. package/dist/{replay-resolve-uDAWE6Oj.js → replay-resolve-D9BUvjqv.js} +357 -355
  41. package/dist/{replay-respect-run-BkDXTsm6.js → replay-respect-run-Bx46aUHi.js} +3 -3
  42. package/dist/{replay-respect-run-B0ZG-ZH7.js → replay-respect-run-DNFoFnJU.js} +1 -1
  43. package/dist/{replay-tauri-path-BfRUQXOx.js → replay-tauri-path-BVoW6En0.js} +2 -2
  44. package/dist/{replay-tauri-path-GCN1liZ4.js → replay-tauri-path-C8GiFO5s.js} +1 -1
  45. package/dist/{replay-useAiChatQueries-CeHqt0jZ.js → replay-useAiChatQueries-BDgjmzz-.js} +1 -1
  46. package/dist/{replay-useAiChatQueries-cuGEM1L6.js → replay-useAiChatQueries-BTuu2xLG.js} +4 -4
  47. package/dist/{replay-validate-key-BismpJXJ.js → replay-validate-key-CjcIElmE.js} +2 -2
  48. package/dist/{replay-validate-key-DYqoWPkp.js → replay-validate-key-D4M7QvCw.js} +1 -1
  49. package/dist/replay.cjs +1 -1
  50. package/dist/replay.js +1 -1
  51. package/package.json +4 -4
  52. package/dist/replay-index-BCtyyb1v.js +0 -504
  53. package/dist/replay-index-DCvqReXK.js +0 -1
  54. package/dist/replay-lint-BJ5AeIt-.js +0 -184
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("./replay-SemanticSearchService-Z4oXtg1-.js"),r=require("react");function u(){const[n,c]=r.useState(!1),[s,a]=r.useState(null);return{search:r.useCallback(async(i,S=10)=>{c(!0),a(null);try{return await e.getSemanticSearchService().search(i,S)}catch(t){const o=t instanceof Error?t:new Error(String(t));return a(o),[]}finally{c(!1)}},[]),isSearching:n,error:s}}exports.SemanticSearchService=e.SemanticSearchService;exports.extractAllDocuments=e.extractAllDocuments;exports.extractApiDocuments=e.extractApiDocuments;exports.extractCollectionDocuments=e.extractCollectionDocuments;exports.getSemanticSearchService=e.getSemanticSearchService;exports.useSemanticSearch=u;
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("./replay-SemanticSearchService-Dk4UTm2r.js"),r=require("react");function u(){const[n,c]=r.useState(!1),[s,a]=r.useState(null);return{search:r.useCallback(async(i,S=10)=>{c(!0),a(null);try{return await e.getSemanticSearchService().search(i,S)}catch(t){const o=t instanceof Error?t:new Error(String(t));return a(o),[]}finally{c(!1)}},[]),isSearching:n,error:s}}exports.SemanticSearchService=e.SemanticSearchService;exports.extractAllDocuments=e.extractAllDocuments;exports.extractApiDocuments=e.extractApiDocuments;exports.extractCollectionDocuments=e.extractCollectionDocuments;exports.getSemanticSearchService=e.getSemanticSearchService;exports.useSemanticSearch=u;
@@ -0,0 +1,574 @@
1
+ import { aS as T, aT as f } from "./replay-index-BH8cTSEK.js";
2
+ import { i as I, g as x, d as z, t as P, A as L, S as V, N as $, n as G, w as M, C as U, R as Y, c as b, l as D } from "./replay-lint--iBW-6Vj.js";
3
+ import { a as he, b as ue, e as Ee, f as ve, h as Se, j as Te, k as xe, m as be, o as Oe, D as Re, p as _e, I as Ne, q as Ie, O as Pe, r as De, s as Ce, u as ke, v as je, x as we, P as Fe, y as ze, z as Le, B as Ve, E as $e, F as Ge, G as Me, H as Ue, J as Ye, K as Be, L as Ke, M as We, Q as He, T as Je, U as qe, V as Xe, W as Ze, X as Qe, Y as Ae, Z as es, _ as ss, $ as ts, a0 as ns, a1 as as, a2 as os, a3 as rs, a4 as is, a5 as ls, a6 as cs, a7 as ps, Z as ys, a8 as fs } from "./replay-lint--iBW-6Vj.js";
4
+ import { i as B, B as E, n as K, r as W, m as C } from "./replay-resolve-D9BUvjqv.js";
5
+ import { R as ds, S as gs, Y as hs, e as us, g as Es, a as vs, b as Ss, c as Ts, d as xs, f as bs, h as Os, p as Rs, j as _s, k as Ns, s as Is, u as Ps } from "./replay-resolve-D9BUvjqv.js";
6
+ function re(e) {
7
+ return (T.extname(e) === ".yaml" || T.extname(e) === ".yml") && !1;
8
+ }
9
+ function ie(e) {
10
+ return f(e) && !I(e);
11
+ }
12
+ async function le(e) {
13
+ return new Promise((s) => setTimeout(s, e));
14
+ }
15
+ const v = "type", O = ["api-description", "api-operation", "data-schema"];
16
+ function H(e, s) {
17
+ const { ctx: t } = x("EntityFileDefault", s), { ctx: a, discriminatorResolver: n } = x("EntityFile", e);
18
+ return {
19
+ entityTypes: {
20
+ ...t,
21
+ ...a,
22
+ EntityFileArray: {
23
+ properties: {},
24
+ items: (l) => {
25
+ if (f(l)) {
26
+ const c = l[v];
27
+ if (!c)
28
+ return "Entity";
29
+ const r = n?.(l, c);
30
+ if (r && typeof r == "string")
31
+ return r;
32
+ }
33
+ return "Entity";
34
+ }
35
+ }
36
+ },
37
+ discriminatorResolver: n
38
+ };
39
+ }
40
+ function i(e, s) {
41
+ if (B(s.parent))
42
+ return;
43
+ const t = s.key.toString(), a = e.counts ??= {};
44
+ a[t] = (a[t] ?? 0) + 1;
45
+ }
46
+ function S(e) {
47
+ for (const n of Object.values(e))
48
+ n.items && (n.total = n.items.size);
49
+ const { xExtensions: s } = e, t = s.counts ?? {}, a = Object.keys(t).sort();
50
+ s.total = a.length, s.counts = Object.fromEntries(a.map((n) => [n, t[n]]));
51
+ }
52
+ const ce = (e) => ({
53
+ SpecExtension: {
54
+ enter(s, t) {
55
+ i(e.xExtensions, t);
56
+ }
57
+ },
58
+ XCodeSampleList: {
59
+ enter(s, t) {
60
+ i(e.xExtensions, t);
61
+ }
62
+ },
63
+ ExamplesMap: {
64
+ enter(s, t) {
65
+ t.key.toString() === "x-examples" && i(e.xExtensions, t);
66
+ }
67
+ },
68
+ EnumDescriptions: {
69
+ enter(s, t) {
70
+ i(e.xExtensions, t);
71
+ }
72
+ },
73
+ TagGroups: {
74
+ enter(s, t) {
75
+ i(e.xExtensions, t);
76
+ }
77
+ },
78
+ Logo: {
79
+ enter(s, t) {
80
+ i(e.xExtensions, t);
81
+ }
82
+ },
83
+ XServerList: {
84
+ enter(s, t) {
85
+ i(e.xExtensions, t);
86
+ }
87
+ },
88
+ XUsePkce: {
89
+ enter(s, t) {
90
+ i(e.xExtensions, t);
91
+ }
92
+ },
93
+ Operation: {
94
+ enter(s, t) {
95
+ t.key.toString() === "x-query" && i(e.xExtensions, t);
96
+ }
97
+ },
98
+ ExternalDocs: {
99
+ leave() {
100
+ e.externalDocs.total++;
101
+ }
102
+ },
103
+ ref: {
104
+ enter(s) {
105
+ e.refs.items.add(s.$ref);
106
+ }
107
+ },
108
+ Tag: {
109
+ leave(s) {
110
+ e.tags.items.add(s.name);
111
+ }
112
+ },
113
+ Link: {
114
+ leave(s) {
115
+ e.links.items.add(s.operationId);
116
+ }
117
+ },
118
+ WebhooksMap: {
119
+ enter(s, t) {
120
+ t.key.toString() === "x-webhooks" && i(e.xExtensions, t);
121
+ },
122
+ Operation: {
123
+ leave(s) {
124
+ if (e.webhooks.total++, s.tags)
125
+ for (const t of s.tags)
126
+ e.tags.items.add(t);
127
+ }
128
+ }
129
+ },
130
+ Paths: {
131
+ PathItem: {
132
+ leave() {
133
+ e.pathItems.total++;
134
+ },
135
+ Operation: {
136
+ leave(s) {
137
+ if (e.operations.total++, s.tags)
138
+ for (const t of s.tags)
139
+ e.tags.items.add(t);
140
+ }
141
+ },
142
+ Parameter: {
143
+ leave(s) {
144
+ e.parameters.items.add(s.name);
145
+ }
146
+ }
147
+ }
148
+ },
149
+ NamedSchemas: {
150
+ Schema: {
151
+ leave() {
152
+ e.schemas.total++;
153
+ }
154
+ }
155
+ },
156
+ Root: {
157
+ leave() {
158
+ S(e);
159
+ }
160
+ }
161
+ }), pe = (e) => ({
162
+ SpecExtension: {
163
+ enter(s, t) {
164
+ i(e.xExtensions, t);
165
+ }
166
+ },
167
+ ExternalDocs: {
168
+ leave() {
169
+ e.externalDocs.total++;
170
+ }
171
+ },
172
+ ref: {
173
+ enter(s) {
174
+ e.refs.items.add(s.$ref);
175
+ }
176
+ },
177
+ Tag: {
178
+ leave(s) {
179
+ e.tags.items.add(s.name);
180
+ }
181
+ },
182
+ ChannelMap: {
183
+ Channel: {
184
+ leave() {
185
+ e.channels.total++;
186
+ },
187
+ Operation: {
188
+ leave(s) {
189
+ if (e.operations.total++, s.tags)
190
+ for (const t of s.tags)
191
+ e.tags.items.add(t);
192
+ }
193
+ },
194
+ Parameter: {
195
+ leave(s, { key: t }) {
196
+ e.parameters.items.add(t.toString());
197
+ }
198
+ }
199
+ }
200
+ },
201
+ NamedSchemas: {
202
+ Schema: {
203
+ leave() {
204
+ e.schemas.total++;
205
+ }
206
+ }
207
+ },
208
+ Root: {
209
+ leave() {
210
+ S(e);
211
+ }
212
+ }
213
+ }), ye = (e) => ({
214
+ SpecExtension: {
215
+ enter(s, t) {
216
+ i(e.xExtensions, t);
217
+ }
218
+ },
219
+ ExternalDocs: {
220
+ leave() {
221
+ e.externalDocs.total++;
222
+ }
223
+ },
224
+ ref: {
225
+ enter(s) {
226
+ e.refs.items.add(s.$ref);
227
+ }
228
+ },
229
+ Tag: {
230
+ leave(s) {
231
+ e.tags.items.add(s.name);
232
+ }
233
+ },
234
+ NamedChannels: {
235
+ Channel: {
236
+ leave() {
237
+ e.channels.total++;
238
+ },
239
+ Parameter: {
240
+ leave(s, { key: t }) {
241
+ e.parameters.items.add(t.toString());
242
+ }
243
+ }
244
+ }
245
+ },
246
+ NamedOperations: {
247
+ Operation: {
248
+ leave(s) {
249
+ if (e.operations.total++, s.tags)
250
+ for (const t of s.tags)
251
+ e.tags.items.add(t);
252
+ }
253
+ }
254
+ },
255
+ NamedSchemas: {
256
+ Schema: {
257
+ leave() {
258
+ e.schemas.total++;
259
+ }
260
+ }
261
+ },
262
+ Root: {
263
+ leave() {
264
+ S(e);
265
+ }
266
+ }
267
+ }), J = /^[a-z0-9]+(?:-[a-z0-9]+)*$/, R = 2, _ = 150, q = () => ({
268
+ any(e, { report: s, location: t }) {
269
+ if (f(e) && "key" in e) {
270
+ const a = e.key;
271
+ if (typeof a != "string") {
272
+ s({
273
+ message: "Entity `key` must be a string.",
274
+ location: t.child(["key"])
275
+ });
276
+ return;
277
+ }
278
+ a.length < R && s({
279
+ message: `Entity 'key' must be at least ${R} characters long.`,
280
+ location: t.child(["key"])
281
+ }), a.length > _ && s({
282
+ message: `Entity 'key' must not exceed ${_} characters.`,
283
+ location: t.child(["key"])
284
+ }), J.test(a) || s({
285
+ message: "Entity `key` must contain only lowercase letters, numbers, and hyphens, and cannot start or end with a hyphen.",
286
+ location: t.child(["key"])
287
+ });
288
+ }
289
+ }
290
+ });
291
+ function N(e, s) {
292
+ const a = s.split("-").map((n) => n.charAt(0).toUpperCase() + n.slice(1)).join("") + e;
293
+ return Object.values(P).includes(a) ? a : e;
294
+ }
295
+ function X(e, s) {
296
+ const t = {};
297
+ for (const [a, n] of Object.entries(s))
298
+ if (k(a, n)) {
299
+ if (n.severity === "off")
300
+ continue;
301
+ t[a] = {
302
+ ...ee(e, a, n)
303
+ };
304
+ } else
305
+ t[a] = n;
306
+ return t;
307
+ }
308
+ function Z(e) {
309
+ const s = {}, t = {};
310
+ for (const [a, n] of Object.entries(e))
311
+ if (k(a, n)) {
312
+ const o = n;
313
+ A(o) ? s[a] = o : t[a] = o;
314
+ } else
315
+ t[a] = n;
316
+ return { entityRules: s, apiRules: t };
317
+ }
318
+ function Q(e, s, t) {
319
+ if (!f(t.parsed) || !f(t.parsed.components))
320
+ return null;
321
+ const a = t.parsed.components, n = "schemas" in a ? a.schemas : void 0;
322
+ if (!n || !(e in n))
323
+ return null;
324
+ const o = n[e];
325
+ try {
326
+ const l = JSON.parse(s);
327
+ if (z(o, l))
328
+ return o;
329
+ } catch {
330
+ return null;
331
+ }
332
+ return null;
333
+ }
334
+ function k(e, s) {
335
+ return e.startsWith("rule/") && f(s);
336
+ }
337
+ function A(e) {
338
+ return Object.values(P).some((s) => e.subject.type === s);
339
+ }
340
+ function ee(e, s, t) {
341
+ const a = N(t.subject.type, e), n = t.where?.map((o) => ({
342
+ ...o,
343
+ subject: {
344
+ ...o.subject,
345
+ type: N(o.subject.type, e)
346
+ }
347
+ }));
348
+ return {
349
+ assertionId: s,
350
+ subject: {
351
+ ...t.subject,
352
+ type: a
353
+ },
354
+ assertions: t.assertions,
355
+ ...n && { where: n },
356
+ ...t.message && { message: t.message },
357
+ ...t.severity && { severity: t.severity }
358
+ };
359
+ }
360
+ async function se(e) {
361
+ const { document: s, entitySchema: t, entityDefaultSchema: a, severity: n, externalRefResolver: o = new E(), assertionConfig: l = {} } = e, c = {
362
+ problems: [],
363
+ specVersion: "entity",
364
+ visitorsData: {}
365
+ }, { entityTypes: r, discriminatorResolver: m } = H(t, a), p = K(r);
366
+ let y = p.Entity;
367
+ if (Array.isArray(s.parsed))
368
+ y = p.EntityFileArray;
369
+ else if (f(s.parsed)) {
370
+ const h = s.parsed[v];
371
+ if (!h)
372
+ y = p.Entity;
373
+ else {
374
+ const u = m?.(s.parsed, h);
375
+ u && typeof u == "string" && p[u] && (y = p[u]);
376
+ }
377
+ }
378
+ const g = L(l), d = Array.isArray(g) ? g.map((h) => ({
379
+ severity: n || "error",
380
+ ruleId: "entity assertions",
381
+ visitor: h
382
+ })) : [
383
+ {
384
+ severity: n || "error",
385
+ ruleId: "entity assertions",
386
+ visitor: g
387
+ }
388
+ ], j = [
389
+ {
390
+ severity: n || "error",
391
+ ruleId: "entity struct",
392
+ visitor: V()
393
+ },
394
+ {
395
+ severity: n || "error",
396
+ ruleId: "entity no-unresolved-refs",
397
+ visitor: $()
398
+ },
399
+ {
400
+ severity: n || "error",
401
+ ruleId: "entity key-valid",
402
+ visitor: q()
403
+ },
404
+ ...d
405
+ ], w = G(j, p), F = await W({
406
+ rootDocument: s,
407
+ rootType: y,
408
+ externalRefResolver: o
409
+ });
410
+ return M({
411
+ document: s,
412
+ rootType: y,
413
+ normalizedVisitors: w,
414
+ resolvedRefMap: F,
415
+ ctx: c
416
+ }), c.problems;
417
+ }
418
+ async function fe(e, s, t) {
419
+ if (!s.rules)
420
+ throw new Error(`Scorecard level "${s.name}" has no rules defined.`);
421
+ const a = new E(), n = C(JSON.stringify(e, null, 2), "entity"), o = n.parsed[v], l = X(o || "unknown", s.rules), { entityRules: c, apiRules: r } = Z(l), m = await se({
422
+ document: n,
423
+ entitySchema: U,
424
+ entityDefaultSchema: Y,
425
+ externalRefResolver: a,
426
+ assertionConfig: c
427
+ });
428
+ if (O.includes(e.type)) {
429
+ if (Object.keys(r).length === 0)
430
+ return m;
431
+ if (!t)
432
+ throw new Error(`Document is required for entity type "${e.type}". Provide the source API document to lint API rules.`);
433
+ if (e.type === "data-schema" && e.metadata?.schema) {
434
+ Object.values(r).forEach((d) => {
435
+ if (f(d) && f(d.subject) && d.subject.type !== "Schema")
436
+ throw new Error(`API rules for "data-schema" entity must target Schema subject, but found "${d.subject.type}".`);
437
+ });
438
+ const y = Q(e.title, e.metadata.schema, t);
439
+ if (!y)
440
+ throw new Error(`Schema "${e.title}" not found in the document. Ensure the schema exists in components.schemas.`);
441
+ const g = await te({
442
+ schema: y,
443
+ schemaKey: e.title,
444
+ config: await b({
445
+ rules: r
446
+ }),
447
+ specType: e.metadata.specType,
448
+ sourceDocument: t,
449
+ externalRefResolver: a
450
+ });
451
+ return [...m, ...g];
452
+ }
453
+ const p = await D({
454
+ document: t,
455
+ externalRefResolver: a,
456
+ config: await b({
457
+ rules: r
458
+ })
459
+ });
460
+ return [...m, ...p];
461
+ } else if (!I(r))
462
+ throw new Error(`API rules are not supported for entity type "${e.type}". Only ${O.join(", ")} support API rules.`);
463
+ return m;
464
+ }
465
+ async function te(e) {
466
+ const { schema: s, schemaKey: t, config: a, sourceDocument: n, specType: o, externalRefResolver: l = new E(a.resolve) } = e, c = n.parsed, r = c[o], m = c.info, p = C(JSON.stringify({
467
+ [o]: r,
468
+ info: m,
469
+ components: {
470
+ schemas: {
471
+ [t]: s
472
+ }
473
+ }
474
+ }, null, 2), n?.source.absoluteRef || `schema:${t}`);
475
+ return (await D({
476
+ document: p,
477
+ config: a,
478
+ externalRefResolver: l
479
+ })).filter((g) => g.location.some((d) => d.pointer?.includes(`/components/schemas/${t}`)));
480
+ }
481
+ class me extends Error {
482
+ }
483
+ export {
484
+ he as Arazzo1Types,
485
+ ue as Arazzo1_1Types,
486
+ Ee as AsyncApi2Types,
487
+ ve as AsyncApi3Types,
488
+ E as BaseResolver,
489
+ Se as CONFIG_BUNDLER_VISITOR_ID,
490
+ Te as CONFIG_FILE_NAME,
491
+ xe as Config,
492
+ be as ConfigTypes,
493
+ Oe as ConfigValidationError,
494
+ Re as DEFAULT_CONFIG,
495
+ _e as DEFAULT_PROJECT_PLUGIN_PATHS,
496
+ me as HandledError,
497
+ Ne as IGNORE_BANNER,
498
+ Ie as IGNORE_FILE,
499
+ Pe as Oas2Types,
500
+ De as Oas3Types,
501
+ Ce as Oas3_1Types,
502
+ ke as Oas3_2Types,
503
+ je as OpenRpcTypes,
504
+ we as Overlay1Types,
505
+ Fe as PLUGINS_COLLECTOR_VISITOR_ID,
506
+ ds as ResolveError,
507
+ gs as Source,
508
+ pe as StatsAsync2,
509
+ ye as StatsAsync3,
510
+ ce as StatsOAS,
511
+ hs as YamlParseError,
512
+ ze as bundle,
513
+ Le as bundleDocument,
514
+ Ve as bundleFromString,
515
+ $e as clearPluginsCache,
516
+ b as createConfig,
517
+ Ge as createConfigTypes,
518
+ H as createEntityTypes,
519
+ z as dequal,
520
+ Me as detectSpec,
521
+ re as doesYamlFileExist,
522
+ us as escapePointerFragment,
523
+ Ue as findConfig,
524
+ Ye as formatProblems,
525
+ Be as getAstNodeByPointer,
526
+ Ke as getCodeframe,
527
+ Es as getDir,
528
+ We as getLineColLocation,
529
+ He as getMajorSpecVersion,
530
+ Je as getPluginCacheVersion,
531
+ qe as getTotals,
532
+ Xe as getTypes,
533
+ vs as isAbsoluteUrl,
534
+ Ss as isBrowser,
535
+ I as isEmptyObject,
536
+ Ts as isGraphqlRef,
537
+ xs as isMappingRef,
538
+ Ze as isNotEmptyArray,
539
+ ie as isNotEmptyObject,
540
+ f as isPlainObject,
541
+ B as isRef,
542
+ Qe as isString,
543
+ bs as isSupportedExtension,
544
+ Os as isTruthy,
545
+ Ae as keysOf,
546
+ es as lint,
547
+ ss as lintConfig,
548
+ D as lintDocument,
549
+ se as lintEntityFile,
550
+ fe as lintEntityWithScorecardLevel,
551
+ ts as lintFromString,
552
+ te as lintSchema,
553
+ ns as loadConfig,
554
+ as as loadIgnoreConfig,
555
+ os as logger,
556
+ C as makeDocumentFromString,
557
+ rs as mapTypeToComponent,
558
+ K as normalizeTypes,
559
+ G as normalizeVisitors,
560
+ Rs as parseYaml,
561
+ le as pause,
562
+ is as pluralize,
563
+ _s as readFileFromUrl,
564
+ ls as regexFromString,
565
+ W as resolveDocument,
566
+ Ns as resolvePath,
567
+ cs as resolvePlugins,
568
+ ps as slash,
569
+ Is as stringifyYaml,
570
+ Ps as unescapePointerFragment,
571
+ ys as validate,
572
+ M as walkDocument,
573
+ fs as xmlEscape
574
+ };
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const i=require("./replay-index-C8p-US63.js");async function a(t={}){return typeof t=="object"&&Object.freeze(t),await i.invoke("plugin:dialog|open",{options:t})}async function o(t={}){return typeof t=="object"&&Object.freeze(t),await i.invoke("plugin:dialog|save",{options:t})}async function l(t,n){const e=typeof n=="string"?{title:n}:n;await i.invoke("plugin:dialog|message",{message:t.toString(),title:e?.title?.toString(),kind:e?.kind,okButtonLabel:e?.okLabel?.toString()})}async function r(t,n){const e=typeof n=="string"?{title:n}:n;return await i.invoke("plugin:dialog|ask",{message:t.toString(),title:e?.title?.toString(),kind:e?.kind,okButtonLabel:e?.okLabel?.toString()??"Yes",cancelButtonLabel:e?.cancelLabel?.toString()??"No"})}async function c(t,n){const e=typeof n=="string"?{title:n}:n;return await i.invoke("plugin:dialog|confirm",{message:t.toString(),title:e?.title?.toString(),kind:e?.kind,okButtonLabel:e?.okLabel?.toString()??"Ok",cancelButtonLabel:e?.cancelLabel?.toString()??"Cancel"})}exports.ask=r;exports.confirm=c;exports.message=l;exports.open=a;exports.save=o;
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const i=require("./replay-index-BuYoH96w.js");async function a(t={}){return typeof t=="object"&&Object.freeze(t),await i.invoke("plugin:dialog|open",{options:t})}async function o(t={}){return typeof t=="object"&&Object.freeze(t),await i.invoke("plugin:dialog|save",{options:t})}async function l(t,n){const e=typeof n=="string"?{title:n}:n;await i.invoke("plugin:dialog|message",{message:t.toString(),title:e?.title?.toString(),kind:e?.kind,okButtonLabel:e?.okLabel?.toString()})}async function r(t,n){const e=typeof n=="string"?{title:n}:n;return await i.invoke("plugin:dialog|ask",{message:t.toString(),title:e?.title?.toString(),kind:e?.kind,okButtonLabel:e?.okLabel?.toString()??"Yes",cancelButtonLabel:e?.cancelLabel?.toString()??"No"})}async function c(t,n){const e=typeof n=="string"?{title:n}:n;return await i.invoke("plugin:dialog|confirm",{message:t.toString(),title:e?.title?.toString(),kind:e?.kind,okButtonLabel:e?.okLabel?.toString()??"Ok",cancelButtonLabel:e?.cancelLabel?.toString()??"Cancel"})}exports.ask=r;exports.confirm=c;exports.message=l;exports.open=a;exports.save=o;
@@ -1,4 +1,4 @@
1
- import { i } from "./replay-index-C-A7VOiR.js";
1
+ import { i } from "./replay-index-BH8cTSEK.js";
2
2
  async function l(t = {}) {
3
3
  return typeof t == "object" && Object.freeze(t), await i("plugin:dialog|open", { options: t });
4
4
  }
@@ -0,0 +1 @@
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const p=require("./replay-index-BuYoH96w.js"),s=require("./replay-lint-BIbkYU09.js"),o=require("./replay-resolve-B5yIfyuT.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,5 +1,5 @@
1
- import { g as l } from "./replay-SemanticSearchService-d98JHVBr.js";
2
- import { S as x, e as y, a as D, b as E } from "./replay-SemanticSearchService-d98JHVBr.js";
1
+ import { g as l } from "./replay-SemanticSearchService-BWwCFW3F.js";
2
+ import { S as x, e as y, a as D, b as E } from "./replay-SemanticSearchService-BWwCFW3F.js";
3
3
  import { useState as a, useCallback as u } from "react";
4
4
  function f() {
5
5
  const [c, r] = a(!1), [s, t] = a(null);