@redocly/replay 0.27.0-next.8 → 0.27.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/{replay-AiChatProvider-DHIxHTKX.js → replay-AiChatProvider-LQhrLIDL.js} +44 -44
- package/dist/{replay-AiChatProvider-O8HHQobN.js → replay-AiChatProvider-Oms5CFgT.js} +1 -1
- package/dist/{replay-AiChatSqliteDBStorage-DNMrzkJg.js → replay-AiChatSqliteDBStorage-3-p1mthX.js} +1 -1
- package/dist/{replay-AiChatSqliteDBStorage-DjUq9VX3.js → replay-AiChatSqliteDBStorage-GZibdHOQ.js} +1 -1
- package/dist/replay-AiPanel-BvwwBTh1.js +742 -0
- package/dist/{replay-AiPanel-CR815YqV.js → replay-AiPanel-lcDNvgo0.js} +973 -1176
- package/dist/replay-FileWatcher-ClVd_wG0.js +1 -0
- package/dist/replay-FileWatcher-DR-wJLe2.js +343 -0
- package/dist/replay-Observable-D6wKbFwB.js +31 -0
- package/dist/replay-Observable-bjJ6wkRB.js +1 -0
- package/dist/replay-SemanticSearchService-CCqwCRo6.js +1 -0
- package/dist/replay-SemanticSearchService-U1eXQGfF.js +723 -0
- package/dist/{replay-SqliteDBStorage-B3oYWXem.js → replay-SqliteDBStorage-Dn6DoVWW.js} +1 -1
- package/dist/{replay-SqliteDBStorage-CC9kLioX.js → replay-SqliteDBStorage-d_ZK6ScA.js} +1 -1
- package/dist/replay-TauriFileSystemAdapter-CpiUuG3T.js +99 -0
- package/dist/replay-TauriFileSystemAdapter-dwJ0xBYr.js +1 -0
- package/dist/replay-TauriRootStorage-CuVbYMXX.js +605 -0
- package/dist/replay-TauriRootStorage-DhzbAahU.js +1 -0
- package/dist/{replay-agent-loop-CTq5eJ4u.js → replay-agent-loop-BLSu4v_O.js} +1 -1
- package/dist/{replay-agent-loop-CCYOzyHo.js → replay-agent-loop-DgEHdXUt.js} +11 -11
- package/dist/{replay-ai-chat-mappers-C8y5UhCq.js → replay-ai-chat-mappers-BvfcEubB.js} +5 -5
- package/dist/{replay-ai-chat-mappers-B_wovMvG.js → replay-ai-chat-mappers-Dy2kJ7ZG.js} +1 -1
- package/dist/replay-core-BJmXmoC5.js +1 -0
- package/dist/replay-core-B_hiOZZr.js +10 -0
- package/dist/{replay-create-model-C5yvtnXA.js → replay-create-model-DNPFcOIp.js} +579 -578
- package/dist/{replay-create-model-CBCmuEKC.js → replay-create-model-bOIDB-e8.js} +10 -10
- package/dist/{replay-db-CCBQadnT.js → replay-db-BQGv3PGw.js} +1 -1
- package/dist/{replay-db-DfOjLqsq.js → replay-db-CMXZZs9v.js} +1 -1
- package/dist/{replay-external-resolver-BRouROm6.js → replay-external-resolver-mrykFC2h.js} +2 -2
- package/dist/{replay-external-resolver-B6tpqUZt.js → replay-external-resolver-n5OvQMRF.js} +1 -1
- package/dist/replay-index-3lwhSmvi.js +1 -0
- package/dist/{replay-index-BzzBKjHm.js → replay-index-Bc5RHu5L.js} +23771 -25420
- package/dist/replay-index-CFLu-XMV.js +25 -0
- package/dist/{replay-index-Xq6K7XSm.js → replay-index-CHGVyIdG.js} +1 -1
- package/dist/{replay-index-Cpkh9r0X.js → replay-index-CSR_qlua.js} +1 -1
- package/dist/replay-index-CepJ5Z0m.js +6875 -0
- package/dist/{replay-index-Bzttek8l.js → replay-index-CgCGhu4l.js} +6 -6
- package/dist/replay-index-DDjmUXWm.js +1 -0
- package/dist/replay-index-DiSy_1OY.js +21 -0
- package/dist/replay-index-Oct6Dygd.js +1 -0
- package/dist/{replay-index-B_OHqSlS.js → replay-index-QXosJxRc.js} +18 -18
- package/dist/replay-index-jkDlU0Lx.js +32 -0
- package/dist/{replay-lint-gtuMJgII.js → replay-lint-DoHQIATV.js} +122 -122
- package/dist/{replay-lint-DlDmPTBV.js → replay-lint-PWaLESz5.js} +8921 -8880
- package/dist/{replay-lint-graphql-DHOq8lRT.js → replay-lint-graphql-xh8VoAwd.js} +1 -1
- package/dist/{replay-lint-graphql-BQJ00lU4.js → replay-lint-graphql-zO8zunug.js} +1 -1
- package/dist/replay-periodic-revalidation-BoyLQHtg.js +1 -0
- package/dist/replay-periodic-revalidation-Dsp-n7ui.js +21 -0
- package/dist/replay-promise-map-limit-DRDkHc-b.js +1 -0
- package/dist/replay-promise-map-limit-Db_42GvV.js +14 -0
- package/dist/replay-resolve-B0AjmaE9.js +47 -0
- package/dist/{replay-resolve-DsgcWnjC.js → replay-resolve-MVe_8Ube.js} +1364 -1329
- package/dist/{replay-respect-run-7Cwe1_ri.js → replay-respect-run-BJsR4a4m.js} +1 -1
- package/dist/{replay-respect-run-D1zyh-5j.js → replay-respect-run-X4PSO6Fj.js} +3 -3
- package/dist/{replay-tauri-path-BAY3g5sW.js → replay-tauri-path-CkGiQWsb.js} +5 -5
- package/dist/{replay-tauri-path-CaVeI3a-.js → replay-tauri-path-D8FJsoZb.js} +1 -1
- package/dist/replay-useAiChatQueries-BXL-_N2Q.js +215 -0
- package/dist/{replay-useAiChatQueries-CxZNLVje.js → replay-useAiChatQueries-D7sHNAfV.js} +1078 -1022
- package/dist/{replay-validate-key-Cv0mvYDS.js → replay-validate-key-CmzSfORv.js} +1 -1
- package/dist/{replay-validate-key-Di8MCBz7.js → replay-validate-key-CtZEJRP7.js} +2 -2
- package/dist/replay.cjs +1 -1
- package/dist/replay.js +11 -11
- package/package.json +10 -9
- package/dist/replay-AiPanel-CfYBCkrN.js +0 -868
- package/dist/replay-index-C6SJPGDO.js +0 -23
- package/dist/replay-index-CUs62_1f.js +0 -1
- package/dist/replay-index-Dfnqt_IZ.js +0 -6899
- package/dist/replay-resolve-DqFS69S_.js +0 -47
- package/dist/replay-useAiChatQueries-D99tAUpY.js +0 -215
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import { g as l } from "./replay-SemanticSearchService-U1eXQGfF.js";
|
|
2
|
+
import { S as x, e as y, a as D, b as E } from "./replay-SemanticSearchService-U1eXQGfF.js";
|
|
3
|
+
import { useState as a, useCallback as u } from "react";
|
|
4
|
+
function f() {
|
|
5
|
+
const [c, r] = a(!1), [s, t] = a(null);
|
|
6
|
+
return { search: u(async (n, o = 10) => {
|
|
7
|
+
r(!0), t(null);
|
|
8
|
+
try {
|
|
9
|
+
return await l().search(n, o);
|
|
10
|
+
} catch (e) {
|
|
11
|
+
const i = e instanceof Error ? e : new Error(String(e));
|
|
12
|
+
return t(i), [];
|
|
13
|
+
} finally {
|
|
14
|
+
r(!1);
|
|
15
|
+
}
|
|
16
|
+
}, []), isSearching: c, error: s };
|
|
17
|
+
}
|
|
18
|
+
export {
|
|
19
|
+
x as SemanticSearchService,
|
|
20
|
+
y as extractAllDocuments,
|
|
21
|
+
D as extractApiDocuments,
|
|
22
|
+
E as extractCollectionDocuments,
|
|
23
|
+
l as getSemanticSearchService,
|
|
24
|
+
f as useSemanticSearch
|
|
25
|
+
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const c=require("./replay-index-Dfnqt_IZ.js"),t=require("./replay-lint-gtuMJgII.js"),o=require("./replay-resolve-DqFS69S_.js");function F(e){return(c.pathBrowserifyExports.extname(e)===".yaml"||c.pathBrowserifyExports.extname(e)===".yml")&&!1}function j(e){return c.isPlainObject(e)&&!t.isEmptyObject(e)}async function z(e){return new Promise(s=>setTimeout(s,e))}const T="type",v=["api-description","api-operation","data-schema"];function P(e,s){const{ctx:n}=t.getNodeTypesFromJSONSchema("EntityFileDefault",s),{ctx:i,discriminatorResolver:r}=t.getNodeTypesFromJSONSchema("EntityFile",e);return{entityTypes:{...n,...i,EntityFileArray:{properties:{},items:p=>{if(c.isPlainObject(p)){const y=p[T];if(!y)return"Entity";const l=r?.(p,y);if(l&&typeof l=="string")return l}return"Entity"}}},discriminatorResolver:r}}const k=e=>({ExternalDocs:{leave(){e.externalDocs.total++}},ref:{enter(s){e.refs.items.add(s.$ref)}},Tag:{leave(s){e.tags.items.add(s.name)}},Link:{leave(s){e.links.items.add(s.operationId)}},WebhooksMap:{Operation:{leave(s){if(e.webhooks.total++,s.tags)for(const n of s.tags)e.tags.items.add(n)}}},Paths:{PathItem:{leave(){e.pathItems.total++},Operation:{leave(s){if(e.operations.total++,s.tags)for(const n of s.tags)e.tags.items.add(n)}},Parameter:{leave(s){e.parameters.items.add(s.name)}}}},NamedSchemas:{Schema:{leave(){e.schemas.total++}}},Root:{leave(){e.parameters.total=e.parameters.items.size,e.refs.total=e.refs.items.size,e.links.total=e.links.items.size,e.tags.total=e.tags.items.size}}}),x=e=>({ExternalDocs:{leave(){e.externalDocs.total++}},ref:{enter(s){e.refs.items.add(s.$ref)}},Tag:{leave(s){e.tags.items.add(s.name)}},ChannelMap:{Channel:{leave(){e.channels.total++},Operation:{leave(s){if(e.operations.total++,s.tags)for(const n of s.tags)e.tags.items.add(n)}},Parameter:{leave(s){s.name&&e.parameters.items.add(s.name)}}}},NamedSchemas:{Schema:{leave(){e.schemas.total++}}},Root:{leave(){e.parameters.total=e.parameters.items.size,e.refs.total=e.refs.items.size,e.tags.total=e.tags.items.size}}}),w=e=>({ExternalDocs:{leave(){e.externalDocs.total++}},ref:{enter(s){e.refs.items.add(s.$ref)}},Tag:{leave(s){e.tags.items.add(s.name)}},NamedChannels:{Channel:{leave(){e.channels.total++},Parameter:{leave(s){s.name&&e.parameters.items.add(s.name)}}}},NamedOperations:{Operation:{leave(s){if(e.operations.total++,s.tags)for(const n of s.tags)e.tags.items.add(n)}}},NamedSchemas:{Schema:{leave(){e.schemas.total++}}},Root:{leave(){e.parameters.total=e.parameters.items.size,e.refs.total=e.refs.items.size,e.tags.total=e.tags.items.size}}}),L=/^[a-z0-9]+(?:-[a-z0-9]+)*$/,O=2,S=150,V=()=>({any(e,{report:s,location:n}){if(c.isPlainObject(e)&&"key"in e){const i=e.key;if(typeof i!="string"){s({message:"Entity `key` must be a string.",location:n.child(["key"])});return}i.length<O&&s({message:`Entity 'key' must be at least ${O} characters long.`,location:n.child(["key"])}),i.length>S&&s({message:`Entity 'key' must not exceed ${S} characters.`,location:n.child(["key"])}),L.test(i)||s({message:"Entity `key` must contain only lowercase letters, numbers, and hyphens, and cannot start or end with a hyphen.",location:n.child(["key"])})}}});function b(e,s){const i=s.split("-").map(r=>r.charAt(0).toUpperCase()+r.slice(1)).join("")+e;return Object.values(t.t).includes(i)?i:e}function G(e,s){const n={};for(const[i,r]of Object.entries(s))if(R(i,r)){if(r.severity==="off")continue;n[i]={...Y(e,i,r)}}else n[i]=r;return n}function U(e){const s={},n={};for(const[i,r]of Object.entries(e))if(R(i,r)){const a=r;M(a)?s[i]=a:n[i]=a}else n[i]=r;return{entityRules:s,apiRules:n}}function B(e,s,n){if(!c.isPlainObject(n.parsed)||!c.isPlainObject(n.parsed.components))return null;const i=n.parsed.components,r="schemas"in i?i.schemas:void 0;if(!r||!(e in r))return null;const a=r[e];try{const p=JSON.parse(s);if(t.dequal(a,p))return a}catch{return null}return null}function R(e,s){return e.startsWith("rule/")&&c.isPlainObject(s)}function M(e){return Object.values(t.t).some(s=>e.subject.type===s)}function Y(e,s,n){const i=b(n.subject.type,e),r=n.where?.map(a=>({...a,subject:{...a.subject,type:b(a.subject.type,e)}}));return{assertionId:s,subject:{...n.subject,type:i},assertions:n.assertions,...r&&{where:r},...n.message&&{message:n.message},...n.severity&&{severity:n.severity}}}async function I(e){const{document:s,entitySchema:n,entityDefaultSchema:i,severity:r,externalRefResolver:a=new o.BaseResolver,assertionConfig:p={}}=e,y={problems:[],specVersion:"entity",visitorsData:{}},{entityTypes:l,discriminatorResolver:d}=P(n,i),m=o.normalizeTypes(l);let f=m.Entity;if(Array.isArray(s.parsed))f=m.EntityFileArray;else if(c.isPlainObject(s.parsed)){const u=s.parsed[T];if(!u)f=m.Entity;else{const E=d?.(s.parsed,u);E&&typeof E=="string"&&m[E]&&(f=m[E])}}const h=t.Assertions(p),g=Array.isArray(h)?h.map(u=>({severity:r||"error",ruleId:"entity assertions",visitor:u})):[{severity:r||"error",ruleId:"entity assertions",visitor:h}],C=[{severity:r||"error",ruleId:"entity struct",visitor:t.Struct()},{severity:r||"error",ruleId:"entity no-unresolved-refs",visitor:t.NoUnresolvedRefs()},{severity:r||"error",ruleId:"entity key-valid",visitor:V()},...g],D=t.normalizeVisitors(C,m),_=await o.resolveDocument({rootDocument:s,rootType:f,externalRefResolver:a});return t.walkDocument({document:s,rootType:f,normalizedVisitors:D,resolvedRefMap:_,ctx:y}),y.problems}async function $(e,s,n){if(!s.rules)throw new Error(`Scorecard level "${s.name}" has no rules defined.`);const i=new o.BaseResolver,r=o.makeDocumentFromString(JSON.stringify(e,null,2),"entity"),a=r.parsed[T],p=G(a||"unknown",s.rules),{entityRules:y,apiRules:l}=U(p),d=await I({document:r,entitySchema:t.Cs,entityDefaultSchema:t.Rs,externalRefResolver:i,assertionConfig:y});if(v.includes(e.type)){if(Object.keys(l).length===0)return d;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(g=>{if(c.isPlainObject(g)&&c.isPlainObject(g.subject)&&g.subject.type!=="Schema")throw new Error(`API rules for "data-schema" entity must target Schema subject, but found "${g.subject.type}".`)});const f=B(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 h=await N({schema:f,schemaKey:e.title,config:await t.createConfig({rules:l}),specType:e.metadata.specType,sourceDocument:n,externalRefResolver:i});return[...d,...h]}const m=await t.lintDocument({document:n,externalRefResolver:i,config:await t.createConfig({rules:l})});return[...d,...m]}else if(!t.isEmptyObject(l))throw new Error(`API rules are not supported for entity type "${e.type}". Only ${v.join(", ")} support API rules.`);return d}async function N(e){const{schema:s,schemaKey:n,config:i,sourceDocument:r,specType:a,externalRefResolver:p=new o.BaseResolver(i.resolve)}=e,y=r.parsed,l=y[a],d=y.info,m=o.makeDocumentFromString(JSON.stringify({[a]:l,info:d,components:{schemas:{[n]:s}}},null,2),r?.source.absoluteRef||`schema:${n}`);return(await t.lintDocument({document:m,config:i,externalRefResolver:p})).filter(h=>h.location.some(g=>g.pointer?.includes(`/components/schemas/${n}`)))}class q extends Error{}exports.isPlainObject=c.isPlainObject;exports.Arazzo1Types=t.Arazzo1Types;exports.Arazzo1_1Types=t.Arazzo1_1Types;exports.AsyncApi2Types=t.AsyncApi2Types;exports.AsyncApi3Types=t.AsyncApi3Types;exports.CONFIG_BUNDLER_VISITOR_ID=t.CONFIG_BUNDLER_VISITOR_ID;exports.CONFIG_FILE_NAME=t.CONFIG_FILE_NAME;exports.Config=t.Config;exports.ConfigTypes=t.ConfigTypes;exports.ConfigValidationError=t.ConfigValidationError;exports.DEFAULT_CONFIG=t.DEFAULT_CONFIG;exports.DEFAULT_PROJECT_PLUGIN_PATHS=t.DEFAULT_PROJECT_PLUGIN_PATHS;exports.IGNORE_BANNER=t.IGNORE_BANNER;exports.IGNORE_FILE=t.IGNORE_FILE;exports.Oas2Types=t.Oas2Types;exports.Oas3Types=t.Oas3Types;exports.Oas3_1Types=t.Oas3_1Types;exports.Oas3_2Types=t.Oas3_2Types;exports.OpenRpcTypes=t.OpenRpcTypes;exports.Overlay1Types=t.Overlay1Types;exports.PLUGINS_COLLECTOR_VISITOR_ID=t.PLUGINS_COLLECTOR_VISITOR_ID;exports.bundle=t.bundle;exports.bundleDocument=t.bundleDocument;exports.bundleFromString=t.bundleFromString;exports.clearPluginsCache=t.clearPluginsCache;exports.createConfig=t.createConfig;exports.createConfigTypes=t.createConfigTypes;exports.dequal=t.dequal;exports.detectSpec=t.detectSpec;exports.findConfig=t.findConfig;exports.formatProblems=t.formatProblems;exports.getAstNodeByPointer=t.getAstNodeByPointer;exports.getCodeframe=t.getCodeframe;exports.getLineColLocation=t.getLineColLocation;exports.getMajorSpecVersion=t.getMajorSpecVersion;exports.getPluginCacheVersion=t.getPluginCacheVersion;exports.getTotals=t.getTotals;exports.getTypes=t.getTypes;exports.isEmptyObject=t.isEmptyObject;exports.isNotEmptyArray=t.isNotEmptyArray;exports.isString=t.isString;exports.keysOf=t.keysOf;exports.lint=t.lint;exports.lintConfig=t.lintConfig;exports.lintDocument=t.lintDocument;exports.lintFromString=t.lintFromString;exports.loadConfig=t.loadConfig;exports.loadIgnoreConfig=t.loadIgnoreConfig;exports.logger=t.logger;exports.mapTypeToComponent=t.mapTypeToComponent;exports.normalizeVisitors=t.normalizeVisitors;exports.pluralize=t.pluralize;exports.regexFromString=t.regexFromString;exports.resolvePlugins=t.resolvePlugins;exports.slash=t.slash;exports.validate=t.lint;exports.walkDocument=t.walkDocument;exports.xmlEscape=t.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=q;exports.StatsAsync2=x;exports.StatsAsync3=w;exports.StatsOAS=k;exports.createEntityTypes=P;exports.doesYamlFileExist=F;exports.isNotEmptyObject=j;exports.lintEntityFile=I;exports.lintEntityWithScorecardLevel=$;exports.lintSchema=N;exports.pause=z;
|
|
1
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const c=require("./replay-index-CepJ5Z0m.js"),t=require("./replay-lint-DoHQIATV.js"),o=require("./replay-resolve-B0AjmaE9.js");function F(e){return(c.pathBrowserifyExports.extname(e)===".yaml"||c.pathBrowserifyExports.extname(e)===".yml")&&!1}function j(e){return c.isPlainObject(e)&&!t.isEmptyObject(e)}async function z(e){return new Promise(s=>setTimeout(s,e))}const T="type",v=["api-description","api-operation","data-schema"];function P(e,s){const{ctx:n}=t.getNodeTypesFromJSONSchema("EntityFileDefault",s),{ctx:i,discriminatorResolver:r}=t.getNodeTypesFromJSONSchema("EntityFile",e);return{entityTypes:{...n,...i,EntityFileArray:{properties:{},items:p=>{if(c.isPlainObject(p)){const y=p[T];if(!y)return"Entity";const l=r?.(p,y);if(l&&typeof l=="string")return l}return"Entity"}}},discriminatorResolver:r}}const k=e=>({ExternalDocs:{leave(){e.externalDocs.total++}},ref:{enter(s){e.refs.items.add(s.$ref)}},Tag:{leave(s){e.tags.items.add(s.name)}},Link:{leave(s){e.links.items.add(s.operationId)}},WebhooksMap:{Operation:{leave(s){if(e.webhooks.total++,s.tags)for(const n of s.tags)e.tags.items.add(n)}}},Paths:{PathItem:{leave(){e.pathItems.total++},Operation:{leave(s){if(e.operations.total++,s.tags)for(const n of s.tags)e.tags.items.add(n)}},Parameter:{leave(s){e.parameters.items.add(s.name)}}}},NamedSchemas:{Schema:{leave(){e.schemas.total++}}},Root:{leave(){e.parameters.total=e.parameters.items.size,e.refs.total=e.refs.items.size,e.links.total=e.links.items.size,e.tags.total=e.tags.items.size}}}),x=e=>({ExternalDocs:{leave(){e.externalDocs.total++}},ref:{enter(s){e.refs.items.add(s.$ref)}},Tag:{leave(s){e.tags.items.add(s.name)}},ChannelMap:{Channel:{leave(){e.channels.total++},Operation:{leave(s){if(e.operations.total++,s.tags)for(const n of s.tags)e.tags.items.add(n)}},Parameter:{leave(s){s.name&&e.parameters.items.add(s.name)}}}},NamedSchemas:{Schema:{leave(){e.schemas.total++}}},Root:{leave(){e.parameters.total=e.parameters.items.size,e.refs.total=e.refs.items.size,e.tags.total=e.tags.items.size}}}),w=e=>({ExternalDocs:{leave(){e.externalDocs.total++}},ref:{enter(s){e.refs.items.add(s.$ref)}},Tag:{leave(s){e.tags.items.add(s.name)}},NamedChannels:{Channel:{leave(){e.channels.total++},Parameter:{leave(s){s.name&&e.parameters.items.add(s.name)}}}},NamedOperations:{Operation:{leave(s){if(e.operations.total++,s.tags)for(const n of s.tags)e.tags.items.add(n)}}},NamedSchemas:{Schema:{leave(){e.schemas.total++}}},Root:{leave(){e.parameters.total=e.parameters.items.size,e.refs.total=e.refs.items.size,e.tags.total=e.tags.items.size}}}),L=/^[a-z0-9]+(?:-[a-z0-9]+)*$/,O=2,S=150,V=()=>({any(e,{report:s,location:n}){if(c.isPlainObject(e)&&"key"in e){const i=e.key;if(typeof i!="string"){s({message:"Entity `key` must be a string.",location:n.child(["key"])});return}i.length<O&&s({message:`Entity 'key' must be at least ${O} characters long.`,location:n.child(["key"])}),i.length>S&&s({message:`Entity 'key' must not exceed ${S} characters.`,location:n.child(["key"])}),L.test(i)||s({message:"Entity `key` must contain only lowercase letters, numbers, and hyphens, and cannot start or end with a hyphen.",location:n.child(["key"])})}}});function b(e,s){const i=s.split("-").map(r=>r.charAt(0).toUpperCase()+r.slice(1)).join("")+e;return Object.values(t.t).includes(i)?i:e}function G(e,s){const n={};for(const[i,r]of Object.entries(s))if(R(i,r)){if(r.severity==="off")continue;n[i]={...Y(e,i,r)}}else n[i]=r;return n}function U(e){const s={},n={};for(const[i,r]of Object.entries(e))if(R(i,r)){const a=r;M(a)?s[i]=a:n[i]=a}else n[i]=r;return{entityRules:s,apiRules:n}}function B(e,s,n){if(!c.isPlainObject(n.parsed)||!c.isPlainObject(n.parsed.components))return null;const i=n.parsed.components,r="schemas"in i?i.schemas:void 0;if(!r||!(e in r))return null;const a=r[e];try{const p=JSON.parse(s);if(t.dequal(a,p))return a}catch{return null}return null}function R(e,s){return e.startsWith("rule/")&&c.isPlainObject(s)}function M(e){return Object.values(t.t).some(s=>e.subject.type===s)}function Y(e,s,n){const i=b(n.subject.type,e),r=n.where?.map(a=>({...a,subject:{...a.subject,type:b(a.subject.type,e)}}));return{assertionId:s,subject:{...n.subject,type:i},assertions:n.assertions,...r&&{where:r},...n.message&&{message:n.message},...n.severity&&{severity:n.severity}}}async function I(e){const{document:s,entitySchema:n,entityDefaultSchema:i,severity:r,externalRefResolver:a=new o.BaseResolver,assertionConfig:p={}}=e,y={problems:[],specVersion:"entity",visitorsData:{}},{entityTypes:l,discriminatorResolver:d}=P(n,i),m=o.normalizeTypes(l);let f=m.Entity;if(Array.isArray(s.parsed))f=m.EntityFileArray;else if(c.isPlainObject(s.parsed)){const u=s.parsed[T];if(!u)f=m.Entity;else{const E=d?.(s.parsed,u);E&&typeof E=="string"&&m[E]&&(f=m[E])}}const h=t.Assertions(p),g=Array.isArray(h)?h.map(u=>({severity:r||"error",ruleId:"entity assertions",visitor:u})):[{severity:r||"error",ruleId:"entity assertions",visitor:h}],C=[{severity:r||"error",ruleId:"entity struct",visitor:t.Struct()},{severity:r||"error",ruleId:"entity no-unresolved-refs",visitor:t.NoUnresolvedRefs()},{severity:r||"error",ruleId:"entity key-valid",visitor:V()},...g],D=t.normalizeVisitors(C,m),_=await o.resolveDocument({rootDocument:s,rootType:f,externalRefResolver:a});return t.walkDocument({document:s,rootType:f,normalizedVisitors:D,resolvedRefMap:_,ctx:y}),y.problems}async function $(e,s,n){if(!s.rules)throw new Error(`Scorecard level "${s.name}" has no rules defined.`);const i=new o.BaseResolver,r=o.makeDocumentFromString(JSON.stringify(e,null,2),"entity"),a=r.parsed[T],p=G(a||"unknown",s.rules),{entityRules:y,apiRules:l}=U(p),d=await I({document:r,entitySchema:t.Cs,entityDefaultSchema:t.Rs,externalRefResolver:i,assertionConfig:y});if(v.includes(e.type)){if(Object.keys(l).length===0)return d;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(g=>{if(c.isPlainObject(g)&&c.isPlainObject(g.subject)&&g.subject.type!=="Schema")throw new Error(`API rules for "data-schema" entity must target Schema subject, but found "${g.subject.type}".`)});const f=B(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 h=await N({schema:f,schemaKey:e.title,config:await t.createConfig({rules:l}),specType:e.metadata.specType,sourceDocument:n,externalRefResolver:i});return[...d,...h]}const m=await t.lintDocument({document:n,externalRefResolver:i,config:await t.createConfig({rules:l})});return[...d,...m]}else if(!t.isEmptyObject(l))throw new Error(`API rules are not supported for entity type "${e.type}". Only ${v.join(", ")} support API rules.`);return d}async function N(e){const{schema:s,schemaKey:n,config:i,sourceDocument:r,specType:a,externalRefResolver:p=new o.BaseResolver(i.resolve)}=e,y=r.parsed,l=y[a],d=y.info,m=o.makeDocumentFromString(JSON.stringify({[a]:l,info:d,components:{schemas:{[n]:s}}},null,2),r?.source.absoluteRef||`schema:${n}`);return(await t.lintDocument({document:m,config:i,externalRefResolver:p})).filter(h=>h.location.some(g=>g.pointer?.includes(`/components/schemas/${n}`)))}class q extends Error{}exports.isPlainObject=c.isPlainObject;exports.Arazzo1Types=t.Arazzo1Types;exports.Arazzo1_1Types=t.Arazzo1_1Types;exports.AsyncApi2Types=t.AsyncApi2Types;exports.AsyncApi3Types=t.AsyncApi3Types;exports.CONFIG_BUNDLER_VISITOR_ID=t.CONFIG_BUNDLER_VISITOR_ID;exports.CONFIG_FILE_NAME=t.CONFIG_FILE_NAME;exports.Config=t.Config;exports.ConfigTypes=t.ConfigTypes;exports.ConfigValidationError=t.ConfigValidationError;exports.DEFAULT_CONFIG=t.DEFAULT_CONFIG;exports.DEFAULT_PROJECT_PLUGIN_PATHS=t.DEFAULT_PROJECT_PLUGIN_PATHS;exports.IGNORE_BANNER=t.IGNORE_BANNER;exports.IGNORE_FILE=t.IGNORE_FILE;exports.Oas2Types=t.Oas2Types;exports.Oas3Types=t.Oas3Types;exports.Oas3_1Types=t.Oas3_1Types;exports.Oas3_2Types=t.Oas3_2Types;exports.OpenRpcTypes=t.OpenRpcTypes;exports.Overlay1Types=t.Overlay1Types;exports.PLUGINS_COLLECTOR_VISITOR_ID=t.PLUGINS_COLLECTOR_VISITOR_ID;exports.bundle=t.bundle;exports.bundleDocument=t.bundleDocument;exports.bundleFromString=t.bundleFromString;exports.clearPluginsCache=t.clearPluginsCache;exports.createConfig=t.createConfig;exports.createConfigTypes=t.createConfigTypes;exports.dequal=t.dequal;exports.detectSpec=t.detectSpec;exports.findConfig=t.findConfig;exports.formatProblems=t.formatProblems;exports.getAstNodeByPointer=t.getAstNodeByPointer;exports.getCodeframe=t.getCodeframe;exports.getLineColLocation=t.getLineColLocation;exports.getMajorSpecVersion=t.getMajorSpecVersion;exports.getPluginCacheVersion=t.getPluginCacheVersion;exports.getTotals=t.getTotals;exports.getTypes=t.getTypes;exports.isEmptyObject=t.isEmptyObject;exports.isNotEmptyArray=t.isNotEmptyArray;exports.isString=t.isString;exports.keysOf=t.keysOf;exports.lint=t.lint;exports.lintConfig=t.lintConfig;exports.lintDocument=t.lintDocument;exports.lintFromString=t.lintFromString;exports.loadConfig=t.loadConfig;exports.loadIgnoreConfig=t.loadIgnoreConfig;exports.logger=t.logger;exports.mapTypeToComponent=t.mapTypeToComponent;exports.normalizeVisitors=t.normalizeVisitors;exports.pluralize=t.pluralize;exports.regexFromString=t.regexFromString;exports.resolvePlugins=t.resolvePlugins;exports.slash=t.slash;exports.validate=t.lint;exports.walkDocument=t.walkDocument;exports.xmlEscape=t.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=q;exports.StatsAsync2=x;exports.StatsAsync3=w;exports.StatsOAS=k;exports.createEntityTypes=P;exports.doesYamlFileExist=F;exports.isNotEmptyObject=j;exports.lintEntityFile=I;exports.lintEntityWithScorecardLevel=$;exports.lintSchema=N;exports.pause=z;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const i=require("./replay-index-
|
|
1
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const i=require("./replay-index-CepJ5Z0m.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;
|