@scalar/workspace-store 0.42.0 → 0.43.1
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/CHANGELOG.md +21 -0
- package/dist/events/definitions/operation.d.ts +6 -1
- package/dist/events/definitions/operation.d.ts.map +1 -1
- package/dist/events/definitions/server.d.ts +5 -1
- package/dist/events/definitions/server.d.ts.map +1 -1
- package/dist/events/definitions/ui.d.ts +5 -3
- package/dist/events/definitions/ui.d.ts.map +1 -1
- package/dist/helpers/get-resolved-ref-deep.d.ts +27 -0
- package/dist/helpers/get-resolved-ref-deep.d.ts.map +1 -0
- package/dist/helpers/get-resolved-ref-deep.js +49 -0
- package/dist/mutators/operation/operation.d.ts +1 -1
- package/dist/mutators/operation/operation.d.ts.map +1 -1
- package/dist/mutators/operation/operation.js +4 -4
- package/dist/mutators/server.d.ts +1 -1
- package/dist/mutators/server.d.ts.map +1 -1
- package/dist/mutators/server.js +5 -2
- package/dist/navigation/helpers/traverse-description.d.ts.map +1 -1
- package/dist/navigation/helpers/traverse-description.js +19 -21
- package/dist/navigation/helpers/utils.js +2 -2
- package/dist/request-example/builder/body/build-request-body.d.ts +42 -0
- package/dist/request-example/builder/body/build-request-body.d.ts.map +1 -0
- package/dist/request-example/builder/body/build-request-body.js +134 -0
- package/dist/request-example/builder/body/get-request-body-example.d.ts +6 -0
- package/dist/request-example/builder/body/get-request-body-example.d.ts.map +1 -0
- package/dist/request-example/builder/body/get-request-body-example.js +31 -0
- package/dist/request-example/builder/body/get-selected-body-content-type.d.ts +10 -0
- package/dist/request-example/builder/body/get-selected-body-content-type.d.ts.map +1 -0
- package/dist/request-example/builder/body/get-selected-body-content-type.js +10 -0
- package/dist/request-example/builder/build-request.d.ts +9 -0
- package/dist/request-example/builder/build-request.d.ts.map +1 -0
- package/dist/request-example/builder/build-request.js +135 -0
- package/dist/request-example/builder/header/build-request-cookie-header.d.ts +25 -0
- package/dist/request-example/builder/header/build-request-cookie-header.d.ts.map +1 -0
- package/dist/request-example/builder/header/build-request-cookie-header.js +39 -0
- package/dist/request-example/builder/header/build-request-parameters.d.ts +24 -0
- package/dist/request-example/builder/header/build-request-parameters.d.ts.map +1 -0
- package/dist/request-example/builder/header/build-request-parameters.js +215 -0
- package/dist/request-example/builder/header/de-serialize-parameter.d.ts +4 -0
- package/dist/request-example/builder/header/de-serialize-parameter.d.ts.map +1 -0
- package/dist/request-example/builder/header/de-serialize-parameter.js +49 -0
- package/dist/request-example/builder/header/filter-global-cookies.d.ts +14 -0
- package/dist/request-example/builder/header/filter-global-cookies.d.ts.map +1 -0
- package/dist/request-example/builder/header/filter-global-cookies.js +26 -0
- package/dist/request-example/builder/header/is-param-disabled.d.ts +13 -0
- package/dist/request-example/builder/header/is-param-disabled.d.ts.map +1 -0
- package/dist/request-example/builder/header/is-param-disabled.js +19 -0
- package/dist/request-example/builder/header/matches-domain.d.ts +9 -0
- package/dist/request-example/builder/header/matches-domain.d.ts.map +1 -0
- package/dist/request-example/builder/header/matches-domain.js +27 -0
- package/dist/request-example/builder/header/serialize-parameter.d.ts +96 -0
- package/dist/request-example/builder/header/serialize-parameter.d.ts.map +1 -0
- package/dist/request-example/builder/header/serialize-parameter.js +222 -0
- package/dist/request-example/builder/helpers/apply-allow-reserved-to-url.d.ts +6 -0
- package/dist/request-example/builder/helpers/apply-allow-reserved-to-url.d.ts.map +1 -0
- package/dist/request-example/builder/helpers/apply-allow-reserved-to-url.js +69 -0
- package/dist/request-example/builder/helpers/get-environment-variables.d.ts +9 -0
- package/dist/request-example/builder/helpers/get-environment-variables.d.ts.map +1 -0
- package/dist/request-example/builder/helpers/get-environment-variables.js +12 -0
- package/dist/request-example/builder/helpers/get-example-from-schema.d.ts +40 -0
- package/dist/request-example/builder/helpers/get-example-from-schema.d.ts.map +1 -0
- package/dist/request-example/builder/helpers/get-example-from-schema.js +568 -0
- package/dist/request-example/builder/helpers/get-example.d.ts +10 -0
- package/dist/request-example/builder/helpers/get-example.d.ts.map +1 -0
- package/dist/request-example/builder/helpers/get-example.js +66 -0
- package/dist/request-example/builder/helpers/get-resolved-url.d.ts +20 -0
- package/dist/request-example/builder/helpers/get-resolved-url.d.ts.map +1 -0
- package/dist/request-example/builder/helpers/get-resolved-url.js +19 -0
- package/dist/request-example/builder/helpers/get-server-variables.d.ts +10 -0
- package/dist/request-example/builder/helpers/get-server-variables.d.ts.map +1 -0
- package/dist/request-example/builder/helpers/get-server-variables.js +19 -0
- package/dist/request-example/builder/index.d.ts +15 -0
- package/dist/request-example/builder/index.d.ts.map +1 -0
- package/dist/request-example/builder/index.js +13 -0
- package/dist/request-example/builder/request-factory.d.ts +60 -0
- package/dist/request-example/builder/request-factory.d.ts.map +1 -0
- package/dist/request-example/builder/request-factory.js +78 -0
- package/dist/request-example/builder/security/build-request-security.d.ts +24 -0
- package/dist/request-example/builder/security/build-request-security.d.ts.map +1 -0
- package/dist/request-example/builder/security/build-request-security.js +79 -0
- package/dist/request-example/builder/security/secret-types.d.ts +25 -0
- package/dist/request-example/builder/security/secret-types.d.ts.map +1 -0
- package/dist/request-example/builder/security/secret-types.js +1 -0
- package/dist/request-example/context/environment.d.ts +21 -0
- package/dist/request-example/context/environment.d.ts.map +1 -0
- package/dist/request-example/context/environment.js +49 -0
- package/dist/request-example/context/get-request-example-context.d.ts +60 -0
- package/dist/request-example/context/get-request-example-context.d.ts.map +1 -0
- package/dist/request-example/context/get-request-example-context.js +115 -0
- package/dist/request-example/context/headers.d.ts +33 -0
- package/dist/request-example/context/headers.d.ts.map +1 -0
- package/dist/request-example/context/headers.js +54 -0
- package/dist/request-example/context/helpers/combine-params.d.ts +4 -0
- package/dist/request-example/context/helpers/combine-params.d.ts.map +1 -0
- package/dist/request-example/context/helpers/combine-params.js +21 -0
- package/dist/request-example/context/index.d.ts +12 -0
- package/dist/request-example/context/index.d.ts.map +1 -0
- package/dist/request-example/context/index.js +10 -0
- package/dist/request-example/context/proxy.d.ts +18 -0
- package/dist/request-example/context/proxy.d.ts.map +1 -0
- package/dist/request-example/context/proxy.js +26 -0
- package/dist/request-example/context/security/extract-security-scheme-secrets.d.ts +10 -0
- package/dist/request-example/context/security/extract-security-scheme-secrets.d.ts.map +1 -0
- package/dist/request-example/context/security/extract-security-scheme-secrets.js +167 -0
- package/dist/request-example/context/security/get-security-requirements.d.ts +12 -0
- package/dist/request-example/context/security/get-security-requirements.d.ts.map +1 -0
- package/dist/request-example/context/security/get-security-requirements.js +16 -0
- package/dist/request-example/context/security/get-security-schemes.d.ts +9 -0
- package/dist/request-example/context/security/get-security-schemes.d.ts.map +1 -0
- package/dist/request-example/context/security/get-security-schemes.js +13 -0
- package/dist/request-example/context/security/get-selected-security.d.ts +20 -0
- package/dist/request-example/context/security/get-selected-security.d.ts.map +1 -0
- package/dist/request-example/context/security/get-selected-security.js +99 -0
- package/dist/request-example/context/security/is-auth-optional.d.ts +4 -0
- package/dist/request-example/context/security/is-auth-optional.d.ts.map +1 -0
- package/dist/request-example/context/security/is-auth-optional.js +6 -0
- package/dist/request-example/context/security/merge-security.d.ts +9 -0
- package/dist/request-example/context/security/merge-security.d.ts.map +1 -0
- package/dist/request-example/context/security/merge-security.js +29 -0
- package/dist/request-example/context/servers.d.ts +26 -0
- package/dist/request-example/context/servers.d.ts.map +1 -0
- package/dist/request-example/context/servers.js +89 -0
- package/dist/request-example/index.d.ts +5 -0
- package/dist/request-example/index.d.ts.map +1 -0
- package/dist/request-example/index.js +2 -0
- package/dist/request-example/types.d.ts +14 -0
- package/dist/request-example/types.d.ts.map +1 -0
- package/dist/request-example/types.js +1 -0
- package/dist/schemas/extensions/operation/index.d.ts +2 -1
- package/dist/schemas/extensions/operation/index.d.ts.map +1 -1
- package/dist/schemas/extensions/operation/index.js +1 -0
- package/dist/schemas/extensions/tag/x-tag-groups.d.ts +8 -8
- package/dist/schemas/extensions/tag/x-tag-groups.d.ts.map +1 -1
- package/dist/schemas/v3.1/openapi/index.d.ts +110 -1
- package/dist/schemas/v3.1/openapi/index.d.ts.map +1 -1
- package/dist/schemas/v3.1/openapi/index.js +50 -66
- package/package.json +15 -10
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
import { objectEntries } from '@scalar/helpers/object/object-entries';
|
|
2
|
+
import { deepClone } from '@scalar/workspace-store/helpers/deep-clone';
|
|
3
|
+
import { getResolvedRef } from '@scalar/workspace-store/helpers/get-resolved-ref';
|
|
4
|
+
import { mergeObjects } from '@scalar/workspace-store/helpers/merge-object';
|
|
5
|
+
import { coerceValue } from '@scalar/workspace-store/schemas/typebox-coerce';
|
|
6
|
+
import { SecuritySchemeObjectSchema, } from '@scalar/workspace-store/schemas/v3.1/strict/openapi-document';
|
|
7
|
+
import { extractSecuritySchemeSecrets } from './extract-security-scheme-secrets.js';
|
|
8
|
+
/** Merge the authentication config with the document security schemes + the auth store secrets */
|
|
9
|
+
export const mergeSecurity = (documentSecuritySchemes = {}, configSecuritySchemes = {}, authStore, documentName) => {
|
|
10
|
+
/** Resolve any refs in the document security schemes */
|
|
11
|
+
const resolvedDocumentSecuritySchemes = objectEntries(documentSecuritySchemes).reduce((acc, [key, value]) => {
|
|
12
|
+
const resolved = deepClone(getResolvedRef(value));
|
|
13
|
+
if (resolved) {
|
|
14
|
+
acc[key] = resolved;
|
|
15
|
+
}
|
|
16
|
+
return acc;
|
|
17
|
+
}, {});
|
|
18
|
+
/** Merge the config security schemes into the document security schemes */
|
|
19
|
+
const mergedSchemes = mergeObjects(resolvedDocumentSecuritySchemes, configSecuritySchemes) ?? {};
|
|
20
|
+
/** Convert the config secrets to the new secret extensions */
|
|
21
|
+
return objectEntries(mergedSchemes).reduce((acc, [name, value]) => {
|
|
22
|
+
// We coerce in case the scheme is missing any key fields like type
|
|
23
|
+
const coerced = coerceValue(SecuritySchemeObjectSchema, value);
|
|
24
|
+
// We then overwrite it back with the original value to keep any other fields like description, etc.
|
|
25
|
+
const merged = { ...coerced, ...value };
|
|
26
|
+
acc[name] = extractSecuritySchemeSecrets(merged, authStore, name, documentName);
|
|
27
|
+
return acc;
|
|
28
|
+
}, {});
|
|
29
|
+
};
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import type { ServerObject } from '@scalar/workspace-store/schemas/v3.1/strict/openapi-document';
|
|
2
|
+
import type { WorkspaceDocument } from '../../schemas.js';
|
|
3
|
+
import type { OperationObject } from '../../schemas/v3.1/strict/operation.js';
|
|
4
|
+
/**
|
|
5
|
+
* Server processing options containing base URLs for resolving relative server URLs.
|
|
6
|
+
*/
|
|
7
|
+
type ServerProcessingOptions = {
|
|
8
|
+
baseServerUrl?: string;
|
|
9
|
+
documentUrl?: string;
|
|
10
|
+
};
|
|
11
|
+
/**
|
|
12
|
+
* Retrieves and processes servers from an OpenAPI document.
|
|
13
|
+
*
|
|
14
|
+
* This function handles several scenarios:
|
|
15
|
+
* 1. No servers provided - creates a default server from document URL or fallback
|
|
16
|
+
* 2. Invalid server configurations - filters them out with warnings
|
|
17
|
+
* 3. Relative URLs - resolves them to absolute URLs using available base URLs
|
|
18
|
+
*
|
|
19
|
+
* @param servers - Array of OpenAPI server objects from the document
|
|
20
|
+
* @param options - Configuration options for server processing
|
|
21
|
+
* @returns Array of validated Server entities
|
|
22
|
+
*/
|
|
23
|
+
export declare function getServers(servers: ServerObject[] | undefined, options?: ServerProcessingOptions): ServerObject[];
|
|
24
|
+
export declare const getSelectedServer: (document: WorkspaceDocument | null, operation: OperationObject | null, configServers: ServerObject[] | null, servers: ServerObject[]) => ServerObject | null;
|
|
25
|
+
export {};
|
|
26
|
+
//# sourceMappingURL=servers.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"servers.d.ts","sourceRoot":"","sources":["../../../src/request-example/context/servers.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,8DAA8D,CAAA;AAEhG,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,WAAW,CAAA;AAClD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,iCAAiC,CAAA;AAEtE;;GAEG;AACH,KAAK,uBAAuB,GAAG;IAC7B,aAAa,CAAC,EAAE,MAAM,CAAA;IACtB,WAAW,CAAC,EAAE,MAAM,CAAA;CACrB,CAAA;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,UAAU,CAAC,OAAO,EAAE,YAAY,EAAE,GAAG,SAAS,EAAE,OAAO,GAAE,uBAA4B,GAAG,YAAY,EAAE,CASrH;AAoED,eAAO,MAAM,iBAAiB,GAC5B,UAAU,iBAAiB,GAAG,IAAI,EAClC,WAAW,eAAe,GAAG,IAAI,EACjC,eAAe,YAAY,EAAE,GAAG,IAAI,EACpC,SAAS,YAAY,EAAE,KACtB,YAAY,GAAG,IAWjB,CAAA"}
|
|
@@ -0,0 +1,89 @@
|
|
|
1
|
+
import { combineUrlAndPath } from '@scalar/helpers/url/merge-urls';
|
|
2
|
+
/**
|
|
3
|
+
* Retrieves and processes servers from an OpenAPI document.
|
|
4
|
+
*
|
|
5
|
+
* This function handles several scenarios:
|
|
6
|
+
* 1. No servers provided - creates a default server from document URL or fallback
|
|
7
|
+
* 2. Invalid server configurations - filters them out with warnings
|
|
8
|
+
* 3. Relative URLs - resolves them to absolute URLs using available base URLs
|
|
9
|
+
*
|
|
10
|
+
* @param servers - Array of OpenAPI server objects from the document
|
|
11
|
+
* @param options - Configuration options for server processing
|
|
12
|
+
* @returns Array of validated Server entities
|
|
13
|
+
*/
|
|
14
|
+
export function getServers(servers, options = {}) {
|
|
15
|
+
// Handle invalid server array
|
|
16
|
+
if (!Array.isArray(servers)) {
|
|
17
|
+
return [];
|
|
18
|
+
}
|
|
19
|
+
// Process each server and filter out invalid ones
|
|
20
|
+
const validServers = servers.map((server) => processServerObject(server, options));
|
|
21
|
+
return validServers;
|
|
22
|
+
}
|
|
23
|
+
/**
|
|
24
|
+
* Extracts the base URL (protocol + hostname) from a document URL.
|
|
25
|
+
* Returns undefined if the URL is invalid.
|
|
26
|
+
*/
|
|
27
|
+
function extractBaseUrlFromDocumentUrl(documentUrl) {
|
|
28
|
+
try {
|
|
29
|
+
const url = new URL(documentUrl);
|
|
30
|
+
const port = url.port ? `:${url.port}` : '';
|
|
31
|
+
return `${url.protocol}//${url.hostname}${port}`;
|
|
32
|
+
}
|
|
33
|
+
catch {
|
|
34
|
+
return undefined;
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
/**
|
|
38
|
+
* Gets the fallback URL from window.location.origin if available.
|
|
39
|
+
*/
|
|
40
|
+
function getFallbackUrl() {
|
|
41
|
+
if (typeof window === 'undefined' || typeof window?.location?.origin !== 'string') {
|
|
42
|
+
return undefined;
|
|
43
|
+
}
|
|
44
|
+
return window.location.origin;
|
|
45
|
+
}
|
|
46
|
+
/**
|
|
47
|
+
* Resolves a relative server URL to an absolute URL using available base URLs.
|
|
48
|
+
* Uses a priority system: baseServerURL > documentUrl > fallbackUrl.
|
|
49
|
+
*/
|
|
50
|
+
function resolveRelativeServerUrl(serverUrl, options) {
|
|
51
|
+
const { baseServerUrl: baseServerURL, documentUrl } = options;
|
|
52
|
+
// Priority 1: Use provided base server URL
|
|
53
|
+
if (baseServerURL) {
|
|
54
|
+
return combineUrlAndPath(baseServerURL, serverUrl);
|
|
55
|
+
}
|
|
56
|
+
// Priority 2: Extract base URL from document URL
|
|
57
|
+
if (documentUrl) {
|
|
58
|
+
const baseUrl = extractBaseUrlFromDocumentUrl(documentUrl);
|
|
59
|
+
if (baseUrl) {
|
|
60
|
+
return combineUrlAndPath(baseUrl, serverUrl);
|
|
61
|
+
}
|
|
62
|
+
}
|
|
63
|
+
// Priority 3: Use fallback URL (window.location.origin)
|
|
64
|
+
const fallbackUrl = getFallbackUrl();
|
|
65
|
+
if (fallbackUrl) {
|
|
66
|
+
return combineUrlAndPath(fallbackUrl, serverUrl);
|
|
67
|
+
}
|
|
68
|
+
// If no base URL is available, return the original URL
|
|
69
|
+
return serverUrl;
|
|
70
|
+
}
|
|
71
|
+
/**
|
|
72
|
+
* Processes a single server object, handling validation and URL resolution.
|
|
73
|
+
*/
|
|
74
|
+
function processServerObject(server, options) {
|
|
75
|
+
// Resolve relative URLs to absolute URLs
|
|
76
|
+
if (server.url?.startsWith('/')) {
|
|
77
|
+
server.url = resolveRelativeServerUrl(server.url, options);
|
|
78
|
+
}
|
|
79
|
+
return server;
|
|
80
|
+
}
|
|
81
|
+
export const getSelectedServer = (document, operation, configServers, servers) => {
|
|
82
|
+
const selectedServerUrl = configServers != null
|
|
83
|
+
? document?.['x-scalar-selected-server']
|
|
84
|
+
: (operation?.['x-scalar-selected-server'] ?? document?.['x-scalar-selected-server']);
|
|
85
|
+
if (selectedServerUrl == null) {
|
|
86
|
+
return servers[0] ?? null;
|
|
87
|
+
}
|
|
88
|
+
return servers.find(({ url }) => url === selectedServerUrl) ?? null;
|
|
89
|
+
};
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
export { buildRequest, buildRequestSecurity, deSerializeParameter, filterGlobalCookie, getEnvironmentVariables, getExample, getExampleFromBody, getExampleFromSchema, getResolvedUrl, getSelectedBodyContentType, getServerVariables, requestFactory, serializeContentValue, serializeDeepObjectStyle, serializeFormStyle, serializeFormStyleForCookies, serializePipeDelimitedStyle, serializeSimpleStyle, serializeSpaceDelimitedStyle, } from './builder/index.js';
|
|
2
|
+
export type { ApiKeyObjectSecret, HttpObjectSecret, OAuth2ObjectSecret, OAuthFlowAuthorizationCodeSecret, OAuthFlowClientCredentialsSecret, OAuthFlowImplicitSecret, OAuthFlowPasswordSecret, OAuthFlowsObjectSecret, OpenIdConnectObjectSecret, SecuritySchemeObjectSecret, } from './builder/index.js';
|
|
3
|
+
export { combineParams, getActiveEnvironment, getActiveProxyUrl, getRequestExampleContext, getSecurityRequirements, getSecuritySchemes, getSelectedSecurity, getSelectedServer, getServers, isAuthOptional, mergeSecurity, } from './context/index.js';
|
|
4
|
+
export type { MergedSecuritySchemes } from './context/index.js';
|
|
5
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/request-example/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,YAAY,EACZ,oBAAoB,EACpB,oBAAoB,EACpB,kBAAkB,EAClB,uBAAuB,EACvB,UAAU,EACV,kBAAkB,EAClB,oBAAoB,EACpB,cAAc,EACd,0BAA0B,EAC1B,kBAAkB,EAClB,cAAc,EACd,qBAAqB,EACrB,wBAAwB,EACxB,kBAAkB,EAClB,4BAA4B,EAC5B,2BAA2B,EAC3B,oBAAoB,EACpB,4BAA4B,GAC7B,MAAM,WAAW,CAAA;AAClB,YAAY,EACV,kBAAkB,EAClB,gBAAgB,EAChB,kBAAkB,EAClB,gCAAgC,EAChC,gCAAgC,EAChC,uBAAuB,EACvB,uBAAuB,EACvB,sBAAsB,EACtB,yBAAyB,EACzB,0BAA0B,GAC3B,MAAM,WAAW,CAAA;AAClB,OAAO,EACL,aAAa,EACb,oBAAoB,EACpB,iBAAiB,EACjB,wBAAwB,EACxB,uBAAuB,EACvB,kBAAkB,EAClB,mBAAmB,EACnB,iBAAiB,EACjB,UAAU,EACV,cAAc,EACd,aAAa,GACd,MAAM,WAAW,CAAA;AAClB,YAAY,EAAE,qBAAqB,EAAE,MAAM,WAAW,CAAA"}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
export { buildRequest, buildRequestSecurity, deSerializeParameter, filterGlobalCookie, getEnvironmentVariables, getExample, getExampleFromBody, getExampleFromSchema, getResolvedUrl, getSelectedBodyContentType, getServerVariables, requestFactory, serializeContentValue, serializeDeepObjectStyle, serializeFormStyle, serializeFormStyleForCookies, serializePipeDelimitedStyle, serializeSimpleStyle, serializeSpaceDelimitedStyle, } from './builder/index.js';
|
|
2
|
+
export { combineParams, getActiveEnvironment, getActiveProxyUrl, getRequestExampleContext, getSecurityRequirements, getSecuritySchemes, getSelectedSecurity, getSelectedServer, getServers, isAuthOptional, mergeSecurity, } from './context/index.js';
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import type { HttpMethod } from '@scalar/helpers/http/http-methods';
|
|
2
|
+
export type Result<T> = {
|
|
3
|
+
ok: true;
|
|
4
|
+
data: T;
|
|
5
|
+
} | {
|
|
6
|
+
ok: false;
|
|
7
|
+
error: string;
|
|
8
|
+
};
|
|
9
|
+
export type RequestExampleMeta = {
|
|
10
|
+
path: string;
|
|
11
|
+
method: HttpMethod;
|
|
12
|
+
exampleName: string;
|
|
13
|
+
};
|
|
14
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/request-example/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,mCAAmC,CAAA;AAEnE,MAAM,MAAM,MAAM,CAAC,CAAC,IAChB;IACE,EAAE,EAAE,IAAI,CAAA;IACR,IAAI,EAAE,CAAC,CAAA;CACR,GACD;IACE,EAAE,EAAE,KAAK,CAAA;IACT,KAAK,EAAE,MAAM,CAAA;CACd,CAAA;AAEL,MAAM,MAAM,kBAAkB,GAAG;IAC/B,IAAI,EAAE,MAAM,CAAA;IACZ,MAAM,EAAE,UAAU,CAAA;IAClB,WAAW,EAAE,MAAM,CAAA;CACpB,CAAA"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
export { type XBadge, XBadgeSchema, type XBadges, XBadgesSchema, } from './x-badge.js';
|
|
2
|
-
export { type XCodeSample, XCodeSamplesSchema, } from './x-code-samples.js';
|
|
2
|
+
export { type XCodeSample, type XCodeSamples, XCodeSamplesSchema, } from './x-code-samples.js';
|
|
3
|
+
export { type XPostResponse, XPostResponseSchema, } from './x-post-response.js';
|
|
3
4
|
export { type XScalarSelectedContentType, XScalarSelectedContentTypeSchema, } from './x-scalar-selected-content-type.js';
|
|
4
5
|
export { XScalarStabilitySchema, XScalarStabilityValues, } from './x-scalar-stability.js';
|
|
5
6
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/schemas/extensions/operation/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,MAAM,EACX,YAAY,EACZ,KAAK,OAAO,EACZ,aAAa,GACd,MAAM,WAAW,CAAA;AAClB,OAAO,EACL,KAAK,WAAW,EAChB,kBAAkB,GACnB,MAAM,kBAAkB,CAAA;AACzB,OAAO,EACL,KAAK,0BAA0B,EAC/B,gCAAgC,GACjC,MAAM,kCAAkC,CAAA;AACzC,OAAO,EACL,sBAAsB,EACtB,sBAAsB,GACvB,MAAM,sBAAsB,CAAA"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/schemas/extensions/operation/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,MAAM,EACX,YAAY,EACZ,KAAK,OAAO,EACZ,aAAa,GACd,MAAM,WAAW,CAAA;AAClB,OAAO,EACL,KAAK,WAAW,EAChB,KAAK,YAAY,EACjB,kBAAkB,GACnB,MAAM,kBAAkB,CAAA;AACzB,OAAO,EACL,KAAK,aAAa,EAClB,mBAAmB,GACpB,MAAM,mBAAmB,CAAA;AAC1B,OAAO,EACL,KAAK,0BAA0B,EAC/B,gCAAgC,GACjC,MAAM,kCAAkC,CAAA;AACzC,OAAO,EACL,sBAAsB,EACtB,sBAAsB,GACvB,MAAM,sBAAsB,CAAA"}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
export { XBadgeSchema, XBadgesSchema, } from './x-badge.js';
|
|
2
2
|
export { XCodeSamplesSchema, } from './x-code-samples.js';
|
|
3
|
+
export { XPostResponseSchema, } from './x-post-response.js';
|
|
3
4
|
export { XScalarSelectedContentTypeSchema, } from './x-scalar-selected-content-type.js';
|
|
4
5
|
export { XScalarStabilitySchema, XScalarStabilityValues, } from './x-scalar-stability.js';
|
|
@@ -9,12 +9,12 @@ export type XTagGroup = {
|
|
|
9
9
|
*/
|
|
10
10
|
tags: string[];
|
|
11
11
|
} & XScalarOrder;
|
|
12
|
-
export declare const XTagGroup: import("@scalar/validation").IntersectionSchema<
|
|
13
|
-
'x-scalar-order': import("@scalar/validation").OptionalSchema<import("@scalar/validation").ArraySchema<import("@scalar/validation").StringSchema>>;
|
|
14
|
-
}> | import("@scalar/validation").ObjectSchema<{
|
|
12
|
+
export declare const XTagGroup: import("@scalar/validation").IntersectionSchema<readonly [import("@scalar/validation").ObjectSchema<{
|
|
15
13
|
name: import("@scalar/validation").StringSchema;
|
|
16
14
|
tags: import("@scalar/validation").ArraySchema<import("@scalar/validation").StringSchema>;
|
|
17
|
-
}
|
|
15
|
+
}>, import("@scalar/validation").ObjectSchema<{
|
|
16
|
+
'x-scalar-order': import("@scalar/validation").OptionalSchema<import("@scalar/validation").ArraySchema<import("@scalar/validation").StringSchema>>;
|
|
17
|
+
}>]>;
|
|
18
18
|
/**
|
|
19
19
|
* x-tagGroups
|
|
20
20
|
*
|
|
@@ -43,11 +43,11 @@ export type XTagGroups = {
|
|
|
43
43
|
'x-tagGroups'?: XTagGroup[];
|
|
44
44
|
};
|
|
45
45
|
export declare const XTagGroups: import("@scalar/validation").ObjectSchema<{
|
|
46
|
-
'x-tagGroups': import("@scalar/validation").OptionalSchema<import("@scalar/validation").ArraySchema<import("@scalar/validation").IntersectionSchema<
|
|
47
|
-
'x-scalar-order': import("@scalar/validation").OptionalSchema<import("@scalar/validation").ArraySchema<import("@scalar/validation").StringSchema>>;
|
|
48
|
-
}> | import("@scalar/validation").ObjectSchema<{
|
|
46
|
+
'x-tagGroups': import("@scalar/validation").OptionalSchema<import("@scalar/validation").ArraySchema<import("@scalar/validation").IntersectionSchema<readonly [import("@scalar/validation").ObjectSchema<{
|
|
49
47
|
name: import("@scalar/validation").StringSchema;
|
|
50
48
|
tags: import("@scalar/validation").ArraySchema<import("@scalar/validation").StringSchema>;
|
|
51
|
-
}
|
|
49
|
+
}>, import("@scalar/validation").ObjectSchema<{
|
|
50
|
+
'x-scalar-order': import("@scalar/validation").OptionalSchema<import("@scalar/validation").ArraySchema<import("@scalar/validation").StringSchema>>;
|
|
51
|
+
}>]>>>;
|
|
52
52
|
}>;
|
|
53
53
|
//# sourceMappingURL=x-tag-groups.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"x-tag-groups.d.ts","sourceRoot":"","sources":["../../../../src/schemas/extensions/tag/x-tag-groups.ts"],"names":[],"mappings":"AAIA,OAAO,EACL,KAAK,YAAY,EAGlB,MAAM,6CAA6C,CAAA;AAgBpD,MAAM,MAAM,SAAS,GAAG;IACtB;;OAEG;IACH,IAAI,EAAE,MAAM,CAAA;IACZ;;OAEG;IACH,IAAI,EAAE,MAAM,EAAE,CAAA;CACf,GAAG,YAAY,CAAA;AAEhB,eAAO,MAAM,SAAS;;;;;
|
|
1
|
+
{"version":3,"file":"x-tag-groups.d.ts","sourceRoot":"","sources":["../../../../src/schemas/extensions/tag/x-tag-groups.ts"],"names":[],"mappings":"AAIA,OAAO,EACL,KAAK,YAAY,EAGlB,MAAM,6CAA6C,CAAA;AAgBpD,MAAM,MAAM,SAAS,GAAG;IACtB;;OAEG;IACH,IAAI,EAAE,MAAM,CAAA;IACZ;;OAEG;IACH,IAAI,EAAE,MAAM,EAAE,CAAA;CACf,GAAG,YAAY,CAAA;AAEhB,eAAO,MAAM,SAAS;;;;;IAiBrB,CAAA;AAED;;;;GAIG;AACH,eAAO,MAAM,gBAAgB;;QA/CzB;;WAEG;;QAEH;;WAEG;;;;;EA2CL,CAAA;AAEF,MAAM,MAAM,UAAU,GAAG;IACvB;;;;OAIG;IACH,aAAa,CAAC,EAAE,SAAS,EAAE,CAAA;CAC5B,CAAA;AAED,eAAO,MAAM,UAAU;;;;;;;EAYtB,CAAA"}
|
|
@@ -1,3 +1,112 @@
|
|
|
1
1
|
import { type Schema } from '@scalar/validation';
|
|
2
|
-
export declare const generateSchema: (maybeRef: (inner: Schema) => Schema) => import("@scalar/validation").IntersectionSchema<readonly import("@scalar/validation").ObjectSchema<
|
|
2
|
+
export declare const generateSchema: (maybeRef: (inner: Schema) => Schema) => import("@scalar/validation").IntersectionSchema<readonly [import("@scalar/validation").ObjectSchema<{
|
|
3
|
+
openapi: import("@scalar/validation").StringSchema;
|
|
4
|
+
info: import("@scalar/validation").IntersectionSchema<readonly [import("@scalar/validation").ObjectSchema<{
|
|
5
|
+
title: import("@scalar/validation").StringSchema;
|
|
6
|
+
version: import("@scalar/validation").StringSchema;
|
|
7
|
+
summary: import("@scalar/validation").OptionalSchema<import("@scalar/validation").StringSchema>;
|
|
8
|
+
description: import("@scalar/validation").OptionalSchema<import("@scalar/validation").StringSchema>;
|
|
9
|
+
termsOfService: import("@scalar/validation").OptionalSchema<import("@scalar/validation").StringSchema>;
|
|
10
|
+
contact: import("@scalar/validation").OptionalSchema<import("@scalar/validation").ObjectSchema<{
|
|
11
|
+
name: import("@scalar/validation").OptionalSchema<import("@scalar/validation").StringSchema>;
|
|
12
|
+
url: import("@scalar/validation").OptionalSchema<import("@scalar/validation").StringSchema>;
|
|
13
|
+
email: import("@scalar/validation").OptionalSchema<import("@scalar/validation").StringSchema>;
|
|
14
|
+
}>>;
|
|
15
|
+
license: import("@scalar/validation").OptionalSchema<import("@scalar/validation").ObjectSchema<{
|
|
16
|
+
name: import("@scalar/validation").OptionalSchema<import("@scalar/validation").StringSchema>;
|
|
17
|
+
identifier: import("@scalar/validation").OptionalSchema<import("@scalar/validation").StringSchema>;
|
|
18
|
+
url: import("@scalar/validation").OptionalSchema<import("@scalar/validation").StringSchema>;
|
|
19
|
+
}>>;
|
|
20
|
+
}>, import("@scalar/validation").ObjectSchema<{
|
|
21
|
+
'x-scalar-sdk-installation': import("@scalar/validation").OptionalSchema<import("@scalar/validation").ArraySchema<import("@scalar/validation").ObjectSchema<{
|
|
22
|
+
lang: import("@scalar/validation").StringSchema;
|
|
23
|
+
source: import("@scalar/validation").OptionalSchema<import("@scalar/validation").StringSchema>;
|
|
24
|
+
description: import("@scalar/validation").OptionalSchema<import("@scalar/validation").StringSchema>;
|
|
25
|
+
}>>>;
|
|
26
|
+
}>]>;
|
|
27
|
+
jsonSchemaDialect: import("@scalar/validation").OptionalSchema<import("@scalar/validation").StringSchema>;
|
|
28
|
+
servers: import("@scalar/validation").OptionalSchema<import("@scalar/validation").ArraySchema<import("@scalar/validation").ObjectSchema<{
|
|
29
|
+
url: import("@scalar/validation").StringSchema;
|
|
30
|
+
description: import("@scalar/validation").OptionalSchema<import("@scalar/validation").StringSchema>;
|
|
31
|
+
variables: import("@scalar/validation").OptionalSchema<import("@scalar/validation").RecordSchema<import("@scalar/validation").StringSchema, import("@scalar/validation").ObjectSchema<{
|
|
32
|
+
enum: import("@scalar/validation").OptionalSchema<import("@scalar/validation").ArraySchema<import("@scalar/validation").StringSchema>>;
|
|
33
|
+
default: import("@scalar/validation").OptionalSchema<import("@scalar/validation").StringSchema>;
|
|
34
|
+
description: import("@scalar/validation").OptionalSchema<import("@scalar/validation").StringSchema>;
|
|
35
|
+
}>>>;
|
|
36
|
+
}>>>;
|
|
37
|
+
paths: import("@scalar/validation").OptionalSchema<import("@scalar/validation").RecordSchema<import("@scalar/validation").StringSchema, import("@scalar/validation").ObjectSchema<Record<string, any>>>>;
|
|
38
|
+
webhooks: import("@scalar/validation").OptionalSchema<import("@scalar/validation").RecordSchema<import("@scalar/validation").StringSchema, import("@scalar/validation").ObjectSchema<Record<string, any>>>>;
|
|
39
|
+
components: import("@scalar/validation").OptionalSchema<import("@scalar/validation").ObjectSchema<Record<string, any>>>;
|
|
40
|
+
security: import("@scalar/validation").OptionalSchema<import("@scalar/validation").ArraySchema<import("@scalar/validation").RecordSchema<import("@scalar/validation").StringSchema, import("@scalar/validation").ArraySchema<import("@scalar/validation").StringSchema>>>>;
|
|
41
|
+
tags: import("@scalar/validation").OptionalSchema<import("@scalar/validation").ArraySchema<import("@scalar/validation").IntersectionSchema<readonly [import("@scalar/validation").ObjectSchema<{
|
|
42
|
+
name: import("@scalar/validation").StringSchema;
|
|
43
|
+
description: import("@scalar/validation").OptionalSchema<import("@scalar/validation").StringSchema>;
|
|
44
|
+
externalDocs: import("@scalar/validation").OptionalSchema<import("@scalar/validation").ObjectSchema<{
|
|
45
|
+
url: import("@scalar/validation").StringSchema;
|
|
46
|
+
description: import("@scalar/validation").OptionalSchema<import("@scalar/validation").StringSchema>;
|
|
47
|
+
}>>;
|
|
48
|
+
}>, import("@scalar/validation").ObjectSchema<{
|
|
49
|
+
'x-displayName': import("@scalar/validation").OptionalSchema<import("@scalar/validation").StringSchema>;
|
|
50
|
+
}>, import("@scalar/validation").ObjectSchema<{
|
|
51
|
+
'x-internal': import("@scalar/validation").OptionalSchema<import("@scalar/validation").BooleanSchema>;
|
|
52
|
+
}>, import("@scalar/validation").ObjectSchema<{
|
|
53
|
+
'x-scalar-ignore': import("@scalar/validation").OptionalSchema<import("@scalar/validation").BooleanSchema>;
|
|
54
|
+
}>, import("@scalar/validation").ObjectSchema<{
|
|
55
|
+
'x-scalar-order': import("@scalar/validation").OptionalSchema<import("@scalar/validation").ArraySchema<import("@scalar/validation").StringSchema>>;
|
|
56
|
+
}>]>>>;
|
|
57
|
+
externalDocs: import("@scalar/validation").OptionalSchema<import("@scalar/validation").ObjectSchema<{
|
|
58
|
+
url: import("@scalar/validation").StringSchema;
|
|
59
|
+
description: import("@scalar/validation").OptionalSchema<import("@scalar/validation").StringSchema>;
|
|
60
|
+
}>>;
|
|
61
|
+
}>, import("@scalar/validation").ObjectSchema<{
|
|
62
|
+
'x-original-oas-version': import("@scalar/validation").OptionalSchema<import("@scalar/validation").StringSchema>;
|
|
63
|
+
'x-scalar-original-source-url': import("@scalar/validation").OptionalSchema<import("@scalar/validation").StringSchema>;
|
|
64
|
+
"x-scalar-navigation": import("@scalar/validation").OptionalSchema<import("@scalar/validation").AnySchema>;
|
|
65
|
+
}>, import("@scalar/validation").ObjectSchema<{
|
|
66
|
+
'x-tagGroups': import("@scalar/validation").OptionalSchema<import("@scalar/validation").ArraySchema<import("@scalar/validation").IntersectionSchema<readonly [import("@scalar/validation").ObjectSchema<{
|
|
67
|
+
name: import("@scalar/validation").StringSchema;
|
|
68
|
+
tags: import("@scalar/validation").ArraySchema<import("@scalar/validation").StringSchema>;
|
|
69
|
+
}>, import("@scalar/validation").ObjectSchema<{
|
|
70
|
+
'x-scalar-order': import("@scalar/validation").OptionalSchema<import("@scalar/validation").ArraySchema<import("@scalar/validation").StringSchema>>;
|
|
71
|
+
}>]>>>;
|
|
72
|
+
}>, import("@scalar/validation").ObjectSchema<{
|
|
73
|
+
'x-scalar-environments': import("@scalar/validation").OptionalSchema<import("@scalar/validation").RecordSchema<import("@scalar/validation").StringSchema, import("@scalar/validation").ObjectSchema<{
|
|
74
|
+
description: import("@scalar/validation").OptionalSchema<import("@scalar/validation").StringSchema>;
|
|
75
|
+
color: import("@scalar/validation").StringSchema;
|
|
76
|
+
variables: import("@scalar/validation").ArraySchema<import("@scalar/validation").ObjectSchema<{
|
|
77
|
+
name: import("@scalar/validation").StringSchema;
|
|
78
|
+
value: import("@scalar/validation").UnionSchema<(import("@scalar/validation").StringSchema | import("@scalar/validation").ObjectSchema<{
|
|
79
|
+
description: import("@scalar/validation").OptionalSchema<import("@scalar/validation").StringSchema>;
|
|
80
|
+
default: import("@scalar/validation").StringSchema;
|
|
81
|
+
}>)[]>;
|
|
82
|
+
}>>;
|
|
83
|
+
}>>>;
|
|
84
|
+
}>, import("@scalar/validation").ObjectSchema<{
|
|
85
|
+
'x-scalar-selected-server': import("@scalar/validation").OptionalSchema<import("@scalar/validation").StringSchema>;
|
|
86
|
+
}>, import("@scalar/validation").ObjectSchema<{
|
|
87
|
+
'x-scalar-icon': import("@scalar/validation").OptionalSchema<import("@scalar/validation").StringSchema>;
|
|
88
|
+
}>, import("@scalar/validation").ObjectSchema<{
|
|
89
|
+
'x-scalar-order': import("@scalar/validation").OptionalSchema<import("@scalar/validation").ArraySchema<import("@scalar/validation").StringSchema>>;
|
|
90
|
+
}>, import("@scalar/validation").ObjectSchema<{
|
|
91
|
+
'x-scalar-cookies': import("@scalar/validation").OptionalSchema<import("@scalar/validation").ArraySchema<import("@scalar/validation").ObjectSchema<{
|
|
92
|
+
name: import("@scalar/validation").StringSchema;
|
|
93
|
+
value: import("@scalar/validation").StringSchema;
|
|
94
|
+
domain: import("@scalar/validation").OptionalSchema<import("@scalar/validation").StringSchema>;
|
|
95
|
+
path: import("@scalar/validation").OptionalSchema<import("@scalar/validation").StringSchema>;
|
|
96
|
+
isDisabled: import("@scalar/validation").OptionalSchema<import("@scalar/validation").BooleanSchema>;
|
|
97
|
+
}>>>;
|
|
98
|
+
}>, import("@scalar/validation").ObjectSchema<{
|
|
99
|
+
'x-scalar-original-document-hash': import("@scalar/validation").StringSchema;
|
|
100
|
+
}>, import("@scalar/validation").ObjectSchema<{
|
|
101
|
+
'x-scalar-is-dirty': import("@scalar/validation").OptionalSchema<import("@scalar/validation").BooleanSchema>;
|
|
102
|
+
}>, import("@scalar/validation").ObjectSchema<{
|
|
103
|
+
'x-scalar-active-environment': import("@scalar/validation").OptionalSchema<import("@scalar/validation").StringSchema>;
|
|
104
|
+
}>, import("@scalar/validation").ObjectSchema<{
|
|
105
|
+
'x-scalar-watch-mode': import("@scalar/validation").OptionalSchema<import("@scalar/validation").BooleanSchema>;
|
|
106
|
+
}>, import("@scalar/validation").ObjectSchema<{
|
|
107
|
+
'x-scalar-registry-meta': import("@scalar/validation").OptionalSchema<import("@scalar/validation").ObjectSchema<{
|
|
108
|
+
namespace: import("@scalar/validation").StringSchema;
|
|
109
|
+
slug: import("@scalar/validation").StringSchema;
|
|
110
|
+
}>>;
|
|
111
|
+
}>]>;
|
|
3
112
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/schemas/v3.1/openapi/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,MAAM,EAaZ,MAAM,oBAAoB,CAAA;AAyC3B,eAAO,MAAM,cAAc,GAAI,UAAU,CAAC,KAAK,EAAE,MAAM,KAAK,MAAM
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/schemas/v3.1/openapi/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,MAAM,EAaZ,MAAM,oBAAoB,CAAA;AAyC3B,eAAO,MAAM,cAAc,GAAI,UAAU,CAAC,KAAK,EAAE,MAAM,KAAK,MAAM;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IA6gCjE,CAAA"}
|
|
@@ -150,7 +150,7 @@ export const generateSchema = (maybeRef) => {
|
|
|
150
150
|
XAdditionalPropertiesName,
|
|
151
151
|
XTags,
|
|
152
152
|
];
|
|
153
|
-
const coreSchemaProperties = {
|
|
153
|
+
const coreSchemaProperties = object({
|
|
154
154
|
name: optional(string({ typeComment: 'Schema name (extension).' })),
|
|
155
155
|
title: optional(string({ typeComment: 'A title for the schema.' })),
|
|
156
156
|
description: optional(string({ typeComment: 'A description of the schema.' })),
|
|
@@ -177,64 +177,46 @@ export const generateSchema = (maybeRef) => {
|
|
|
177
177
|
oneOf: optional(array(maybeRef(lazy(() => schema)), { typeName: 'SchemaObjectOneOf' })),
|
|
178
178
|
anyOf: optional(array(maybeRef(lazy(() => schema)), { typeName: 'SchemaObjectAnyOf' })),
|
|
179
179
|
not: optional(maybeRef(lazy(() => schema))),
|
|
180
|
-
};
|
|
181
|
-
const schemaScalarMarker =
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
})),
|
|
221
|
-
patternProperties: optional(record(string(), maybeRef(lazy(() => schema)), { typeName: 'SchemaObjectPatternProperties' })),
|
|
222
|
-
propertyNames: optional(maybeRef(lazy(() => schema))),
|
|
223
|
-
}, { typeName: 'ObjectSchemaObject' }),
|
|
224
|
-
...schemaExtensionObjects,
|
|
225
|
-
]);
|
|
226
|
-
const arraySchema = intersection([
|
|
227
|
-
object({
|
|
228
|
-
...coreSchemaProperties,
|
|
229
|
-
type: literal('array'),
|
|
230
|
-
maxItems: optional(number({ typeComment: 'Maximum number of items in array.' })),
|
|
231
|
-
minItems: optional(number({ typeComment: 'Minimum number of items in array.' })),
|
|
232
|
-
uniqueItems: optional(boolean({ typeComment: 'Whether array items must be unique.' })),
|
|
233
|
-
items: optional(maybeRef(lazy(() => schema))),
|
|
234
|
-
prefixItems: optional(array(maybeRef(lazy(() => schema)), { typeComment: 'Schema for tuple validation.' })),
|
|
235
|
-
}, { typeName: 'ArraySchemaObject' }),
|
|
236
|
-
...schemaExtensionObjects,
|
|
237
|
-
]);
|
|
180
|
+
});
|
|
181
|
+
const schemaScalarMarker = object({
|
|
182
|
+
__scalar_: string({ typeComment: 'Internal marker for schema object disambiguation.' }),
|
|
183
|
+
});
|
|
184
|
+
const numericSchema = object({
|
|
185
|
+
type: union([literal('number'), literal('integer')]),
|
|
186
|
+
format: optional(string({ typeComment: 'Different subtypes.' })),
|
|
187
|
+
multipleOf: optional(number({ typeComment: 'Number must be a multiple of this value.' })),
|
|
188
|
+
maximum: optional(number({ typeComment: 'Maximum value (inclusive).' })),
|
|
189
|
+
exclusiveMaximum: optional(number({ typeComment: 'Maximum value (exclusive).' })),
|
|
190
|
+
minimum: optional(number({ typeComment: 'Minimum value (inclusive).' })),
|
|
191
|
+
exclusiveMinimum: optional(number({ typeComment: 'Minimum value (exclusive).' })),
|
|
192
|
+
}, { typeName: 'NumberSchemaObject' });
|
|
193
|
+
const stringSchema = object({
|
|
194
|
+
type: literal('string'),
|
|
195
|
+
format: optional(string({ typeComment: 'Different subtypes.' })),
|
|
196
|
+
maxLength: optional(number({ typeComment: 'Maximum string length.' })),
|
|
197
|
+
minLength: optional(number({ typeComment: 'Minimum string length.' })),
|
|
198
|
+
pattern: optional(string({ typeComment: 'Regular expression pattern.' })),
|
|
199
|
+
}, { typeName: 'StringSchemaObject' });
|
|
200
|
+
const objectSchema = object({
|
|
201
|
+
type: literal('object'),
|
|
202
|
+
maxProperties: optional(number({ typeComment: 'Maximum number of properties.' })),
|
|
203
|
+
minProperties: optional(number({ typeComment: 'Minimum number of properties.' })),
|
|
204
|
+
properties: optional(record(string(), maybeRef(lazy(() => schema)), { typeName: 'SchemaObjectProperties' })),
|
|
205
|
+
required: optional(array(string(), { typeName: 'SchemaObjectRequired' })),
|
|
206
|
+
additionalProperties: optional(union([boolean(), maybeRef(lazy(() => schema))], {
|
|
207
|
+
typeName: 'SchemaObjectAdditionalProperties',
|
|
208
|
+
})),
|
|
209
|
+
patternProperties: optional(record(string(), maybeRef(lazy(() => schema)), { typeName: 'SchemaObjectPatternProperties' })),
|
|
210
|
+
propertyNames: optional(maybeRef(lazy(() => schema))),
|
|
211
|
+
}, { typeName: 'ObjectSchemaObject' });
|
|
212
|
+
const arraySchema = object({
|
|
213
|
+
type: literal('array'),
|
|
214
|
+
maxItems: optional(number({ typeComment: 'Maximum number of items in array.' })),
|
|
215
|
+
minItems: optional(number({ typeComment: 'Minimum number of items in array.' })),
|
|
216
|
+
uniqueItems: optional(boolean({ typeComment: 'Whether array items must be unique.' })),
|
|
217
|
+
items: optional(maybeRef(lazy(() => schema))),
|
|
218
|
+
prefixItems: optional(array(maybeRef(lazy(() => schema)), { typeComment: 'Schema for tuple validation.' })),
|
|
219
|
+
}, { typeName: 'ArraySchemaObject' });
|
|
238
220
|
const schemaTypeMulti = union([
|
|
239
221
|
literal('null'),
|
|
240
222
|
literal('boolean'),
|
|
@@ -244,14 +226,16 @@ export const generateSchema = (maybeRef) => {
|
|
|
244
226
|
literal('object'),
|
|
245
227
|
literal('array'),
|
|
246
228
|
], { typeName: 'SchemaObjectMultiTypeKeywords' });
|
|
247
|
-
const otherTypeSchema =
|
|
248
|
-
|
|
249
|
-
|
|
250
|
-
|
|
251
|
-
|
|
229
|
+
const otherTypeSchema = object({
|
|
230
|
+
type: union([literal('null'), literal('boolean'), array(schemaTypeMulti)], {
|
|
231
|
+
typeName: 'SchemaObjectOtherTypeKeyword',
|
|
232
|
+
}),
|
|
233
|
+
}, { typeName: 'MultiTypeSchemaObject' });
|
|
234
|
+
const schema = intersection([
|
|
235
|
+
coreSchemaProperties,
|
|
252
236
|
...schemaExtensionObjects,
|
|
253
|
-
|
|
254
|
-
|
|
237
|
+
union([schemaScalarMarker, otherTypeSchema, numericSchema, stringSchema, objectSchema, arraySchema]),
|
|
238
|
+
], { typeName: 'SchemaObject' });
|
|
255
239
|
const securitySchemeBase = object({
|
|
256
240
|
description: optional(string({
|
|
257
241
|
typeComment: 'A description for security scheme. CommonMark syntax MAY be used for rich text representation.',
|
package/package.json
CHANGED
|
@@ -16,7 +16,7 @@
|
|
|
16
16
|
"openapi",
|
|
17
17
|
"scalar"
|
|
18
18
|
],
|
|
19
|
-
"version": "0.
|
|
19
|
+
"version": "0.43.1",
|
|
20
20
|
"engines": {
|
|
21
21
|
"node": ">=22"
|
|
22
22
|
},
|
|
@@ -72,6 +72,11 @@
|
|
|
72
72
|
"types": "./dist/plugins/client/index.d.ts",
|
|
73
73
|
"default": "./dist/plugins/client/index.js"
|
|
74
74
|
},
|
|
75
|
+
"./request-example": {
|
|
76
|
+
"import": "./dist/request-example/index.js",
|
|
77
|
+
"types": "./dist/request-example/index.d.ts",
|
|
78
|
+
"default": "./dist/request-example/index.js"
|
|
79
|
+
},
|
|
75
80
|
"./resolve": {
|
|
76
81
|
"import": "./dist/resolve.js",
|
|
77
82
|
"types": "./dist/resolve.d.ts",
|
|
@@ -135,21 +140,21 @@
|
|
|
135
140
|
"dependencies": {
|
|
136
141
|
"@scalar/typebox": "0.1.3",
|
|
137
142
|
"github-slugger": "2.0.0",
|
|
143
|
+
"js-base64": "^3.7.8",
|
|
138
144
|
"type-fest": "^5.3.1",
|
|
139
|
-
"vue": "^3.5.
|
|
145
|
+
"vue": "^3.5.30",
|
|
140
146
|
"yaml": "^2.8.0",
|
|
141
|
-
"@scalar/
|
|
142
|
-
"@scalar/
|
|
143
|
-
"@scalar/
|
|
144
|
-
"@scalar/
|
|
145
|
-
"@scalar/
|
|
146
|
-
"@scalar/
|
|
147
|
-
"@scalar/validation": "0.2.0"
|
|
147
|
+
"@scalar/helpers": "0.4.3",
|
|
148
|
+
"@scalar/json-magic": "0.12.5",
|
|
149
|
+
"@scalar/openapi-upgrader": "0.2.4",
|
|
150
|
+
"@scalar/snippetz": "0.7.8",
|
|
151
|
+
"@scalar/types": "0.7.6",
|
|
152
|
+
"@scalar/validation": "0.3.0"
|
|
148
153
|
},
|
|
149
154
|
"devDependencies": {
|
|
150
155
|
"@google-cloud/storage": "7.16.0",
|
|
151
156
|
"fake-indexeddb": "6.2.3",
|
|
152
|
-
"fastify": "^5.
|
|
157
|
+
"fastify": "^5.8.1",
|
|
153
158
|
"vite": "8.0.0",
|
|
154
159
|
"vitest": "4.1.0"
|
|
155
160
|
},
|