@scalar/workspace-store 0.54.5 → 0.55.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.
Files changed (64) hide show
  1. package/CHANGELOG.md +16 -0
  2. package/dist/channel-example/build-connection-url.d.ts +7 -0
  3. package/dist/channel-example/build-connection-url.d.ts.map +1 -1
  4. package/dist/channel-example/build-connection-url.js +10 -0
  5. package/dist/channel-example/get-async-api-protocols.d.ts +86 -0
  6. package/dist/channel-example/get-async-api-protocols.d.ts.map +1 -0
  7. package/dist/channel-example/get-async-api-protocols.js +110 -0
  8. package/dist/channel-example/index.d.ts +2 -0
  9. package/dist/channel-example/index.d.ts.map +1 -1
  10. package/dist/channel-example/index.js +1 -0
  11. package/dist/channel-example/servers.d.ts +7 -0
  12. package/dist/channel-example/servers.d.ts.map +1 -1
  13. package/dist/channel-example/servers.js +1 -1
  14. package/dist/entities/auth/schema.d.ts +25 -0
  15. package/dist/entities/auth/schema.d.ts.map +1 -1
  16. package/dist/events/definitions/workspace.d.ts +8 -0
  17. package/dist/events/definitions/workspace.d.ts.map +1 -1
  18. package/dist/helpers/get-first-server.d.ts +9 -0
  19. package/dist/helpers/get-first-server.d.ts.map +1 -0
  20. package/dist/helpers/get-first-server.js +30 -0
  21. package/dist/mutators/index.d.ts +1 -0
  22. package/dist/mutators/index.d.ts.map +1 -1
  23. package/dist/mutators/workspace.d.ts +8 -0
  24. package/dist/mutators/workspace.d.ts.map +1 -1
  25. package/dist/mutators/workspace.js +13 -0
  26. package/dist/request-example/builder/header/de-serialize-parameter.d.ts +14 -1
  27. package/dist/request-example/builder/header/de-serialize-parameter.d.ts.map +1 -1
  28. package/dist/request-example/builder/header/de-serialize-parameter.js +10 -4
  29. package/dist/request-example/builder/header/is-param-disabled.d.ts +2 -1
  30. package/dist/request-example/builder/header/is-param-disabled.d.ts.map +1 -1
  31. package/dist/request-example/builder/header/is-param-disabled.js +6 -1
  32. package/dist/request-example/builder/header/serialize-parameter.d.ts +1 -0
  33. package/dist/request-example/builder/header/serialize-parameter.d.ts.map +1 -1
  34. package/dist/request-example/builder/header/serialize-parameter.js +22 -9
  35. package/dist/request-example/builder/index.d.ts +2 -1
  36. package/dist/request-example/builder/index.d.ts.map +1 -1
  37. package/dist/request-example/builder/index.js +2 -1
  38. package/dist/request-example/index.d.ts +1 -1
  39. package/dist/request-example/index.d.ts.map +1 -1
  40. package/dist/request-example/index.js +1 -1
  41. package/dist/schemas/extensions/document/x-scalar-links.d.ts +25 -0
  42. package/dist/schemas/extensions/document/x-scalar-links.d.ts.map +1 -0
  43. package/dist/schemas/extensions/document/x-scalar-links.js +24 -0
  44. package/dist/schemas/extensions.d.ts +1 -0
  45. package/dist/schemas/extensions.d.ts.map +1 -1
  46. package/dist/schemas/extensions.js +1 -0
  47. package/dist/schemas/reference-config/index.d.ts +5 -0
  48. package/dist/schemas/reference-config/index.d.ts.map +1 -1
  49. package/dist/schemas/reference-config/settings.d.ts +5 -0
  50. package/dist/schemas/reference-config/settings.d.ts.map +1 -1
  51. package/dist/schemas/v3.1/openapi/index.d.ts +5 -0
  52. package/dist/schemas/v3.1/openapi/index.d.ts.map +1 -1
  53. package/dist/schemas/v3.1/openapi/index.js +2 -0
  54. package/dist/schemas/v3.1/strict/info.d.ts +7 -1
  55. package/dist/schemas/v3.1/strict/info.d.ts.map +1 -1
  56. package/dist/schemas/v3.1/strict/info.js +2 -1
  57. package/dist/schemas/v3.1/strict/openapi-document.d.ts +175 -0
  58. package/dist/schemas/v3.1/strict/openapi-document.d.ts.map +1 -1
  59. package/dist/schemas/workspace-specification/index.d.ts +1 -0
  60. package/dist/schemas/workspace-specification/index.d.ts.map +1 -1
  61. package/dist/schemas/workspace.d.ts +2 -0
  62. package/dist/schemas/workspace.d.ts.map +1 -1
  63. package/dist/schemas/workspace.js +3 -0
  64. package/package.json +6 -6
package/CHANGELOG.md CHANGED
@@ -1,5 +1,21 @@
1
1
  # @scalar/workspace-store
2
2
 
3
+ ## 0.55.0
4
+
5
+ ### Minor Changes
6
+
7
+ - [#9568](https://github.com/scalar/scalar/pull/9568): Add AsyncAPI protocol and server pickers to the sidebar (like the multi-document picker) that filter the navigation down to the operations reachable over the selected protocol/server
8
+ - [#8519](https://github.com/scalar/scalar/pull/8519): refactor: extract the code example block into `@scalar/blocks/code-example`. `api-client`, `api-client-react`, and `api-reference` now import `CodeExample`, `findClient`, `generateClientOptions`, and the related helpers from the new package. `workspace-store` exports `isParamDisabled` with an optional `defaultDisabled` argument.
9
+
10
+ **Breaking (`@scalar/api-client`):** the `@scalar/api-client/blocks/operation-code-sample` and `@scalar/api-client/v2/blocks/operation-code-sample` export paths have been removed. Import from `@scalar/blocks/code-example` instead, and use the renamed `CodeExample` / `CodeExampleProps` (previously `OperationCodeSample` / `OperationCodeSampleProps`).
11
+
12
+ - [#9543](https://github.com/scalar/scalar/pull/9543): Add the `x-scalar-links` OpenAPI extension to render extra named links (like a privacy policy or imprint) next to the contact, license and terms of service links in the introduction.
13
+
14
+ ### Patch Changes
15
+
16
+ - [#9583](https://github.com/scalar/scalar/pull/9583): Serialize array values inside `deepObject` query parameters with the trailing bracket convention (`filter[ids][]=1&filter[ids][]=2`) instead of collapsing them into a single comma-joined value
17
+ - [#9548](https://github.com/scalar/scalar/pull/9548): Keep request and response example pickers in sync across operations. Selecting an example (e.g. "Use case 1") now selects the example with the same key on every other operation that defines it, mirroring how the programming-language selection already syncs. Operations that do not have a matching example keep their current selection.
18
+
3
19
  ## 0.54.5
4
20
 
5
21
  ### Patch Changes
@@ -14,6 +14,13 @@ export type BuildConnectionUrlInput = {
14
14
  * Extracts default values of variables defined on an AsyncAPI Server Object.
15
15
  */
16
16
  export declare const getAsyncApiServerVariables: (server: AsyncApiServerObject | null) => Record<string, string>;
17
+ /**
18
+ * Normalizes an AsyncAPI `protocol` for comparison: trimmed and lowercased.
19
+ *
20
+ * Returns `undefined` when the protocol is missing or blank, so callers can treat
21
+ * "no protocol" distinctly instead of comparing against an empty string.
22
+ */
23
+ export declare const normalizeProtocol: (protocol: string | undefined) => string | undefined;
17
24
  /** Maps AsyncAPI `server.protocol` to a URL scheme (MVP: ws and wss). */
18
25
  export declare const getUrlSchemeFromProtocol: (protocol: string) => string;
19
26
  export declare const isWebSocketProtocol: (protocol: string) => protocol is AsyncApiWebSocketProtocol;
@@ -1 +1 @@
1
- {"version":3,"file":"build-connection-url.d.ts","sourceRoot":"","sources":["../../src/channel-example/build-connection-url.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EACV,qBAAqB,EACrB,uBAAuB,EACvB,oBAAoB,EACpB,uBAAuB,EACxB,MAAM,4BAA4B,CAAA;AAInC,2FAA2F;AAC3F,eAAO,MAAM,4BAA4B,wBAAyB,CAAA;AAElE,MAAM,MAAM,yBAAyB,GAAG,CAAC,OAAO,4BAA4B,CAAC,CAAC,MAAM,CAAC,CAAA;AAErF,MAAM,MAAM,uBAAuB,GAAG;IACpC,MAAM,EAAE,oBAAoB,CAAA;IAC5B,OAAO,EAAE,qBAAqB,CAAA;IAC9B,SAAS,CAAC,EAAE,uBAAuB,GAAG,IAAI,CAAA;IAC1C,cAAc,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;IACvC,eAAe,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;IACxC,oBAAoB,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,MAAM,KAAK,MAAM,GAAG,IAAI,CAAC,CAAA;CACjF,CAAA;AAQD;;GAEG;AACH,eAAO,MAAM,0BAA0B,GAAI,QAAQ,oBAAoB,GAAG,IAAI,KAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAYrG,CAAA;AAoBD,yEAAyE;AACzE,eAAO,MAAM,wBAAwB,GAAI,UAAU,MAAM,KAAG,MAAuC,CAAA;AAEnG,eAAO,MAAM,mBAAmB,GAAI,UAAU,MAAM,KAAG,QAAQ,IAAI,yBAC0B,CAAA;AAE7F;;GAEG;AACH,eAAO,MAAM,0BAA0B,GACrC,QAAQ,oBAAoB,EAC5B,uBAAuB,uBAAuB,CAAC,sBAAsB,CAAC,KACrE,MAYF,CAAA;AAaD,0FAA0F;AAC1F,eAAO,MAAM,eAAe,GAC1B,SAAS,qBAAqB,EAC9B,YAAY,uBAAuB,GAAG,IAAI,KACzC,uBAAuB,GAAG,SAa5B,CAAA;AA0FD;;;GAGG;AACH,eAAO,MAAM,kBAAkB,GAC7B,WAAW,uBAAuB,GAAG,SAAS,EAC9C,kBAAkB,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,KACvC,eAoBF,CAAA;AAED;;;;;;;;;GASG;AACH,eAAO,MAAM,kBAAkB,GAAI,wFAOhC,uBAAuB,KAAG,MAkB5B,CAAA"}
1
+ {"version":3,"file":"build-connection-url.d.ts","sourceRoot":"","sources":["../../src/channel-example/build-connection-url.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EACV,qBAAqB,EACrB,uBAAuB,EACvB,oBAAoB,EACpB,uBAAuB,EACxB,MAAM,4BAA4B,CAAA;AAInC,2FAA2F;AAC3F,eAAO,MAAM,4BAA4B,wBAAyB,CAAA;AAElE,MAAM,MAAM,yBAAyB,GAAG,CAAC,OAAO,4BAA4B,CAAC,CAAC,MAAM,CAAC,CAAA;AAErF,MAAM,MAAM,uBAAuB,GAAG;IACpC,MAAM,EAAE,oBAAoB,CAAA;IAC5B,OAAO,EAAE,qBAAqB,CAAA;IAC9B,SAAS,CAAC,EAAE,uBAAuB,GAAG,IAAI,CAAA;IAC1C,cAAc,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;IACvC,eAAe,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;IACxC,oBAAoB,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,MAAM,KAAK,MAAM,GAAG,IAAI,CAAC,CAAA;CACjF,CAAA;AAQD;;GAEG;AACH,eAAO,MAAM,0BAA0B,GAAI,QAAQ,oBAAoB,GAAG,IAAI,KAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAYrG,CAAA;AAoBD;;;;;GAKG;AACH,eAAO,MAAM,iBAAiB,GAAI,UAAU,MAAM,GAAG,SAAS,KAAG,MAAM,GAAG,SAGzE,CAAA;AAED,yEAAyE;AACzE,eAAO,MAAM,wBAAwB,GAAI,UAAU,MAAM,KAAG,MAAuC,CAAA;AAEnG,eAAO,MAAM,mBAAmB,GAAI,UAAU,MAAM,KAAG,QAAQ,IAAI,yBAC0B,CAAA;AAE7F;;GAEG;AACH,eAAO,MAAM,0BAA0B,GACrC,QAAQ,oBAAoB,EAC5B,uBAAuB,uBAAuB,CAAC,sBAAsB,CAAC,KACrE,MAYF,CAAA;AAaD,0FAA0F;AAC1F,eAAO,MAAM,eAAe,GAC1B,SAAS,qBAAqB,EAC9B,YAAY,uBAAuB,GAAG,IAAI,KACzC,uBAAuB,GAAG,SAa5B,CAAA;AA0FD;;;GAGG;AACH,eAAO,MAAM,kBAAkB,GAC7B,WAAW,uBAAuB,GAAG,SAAS,EAC9C,kBAAkB,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,KACvC,eAoBF,CAAA;AAED;;;;;;;;;GASG;AACH,eAAO,MAAM,kBAAkB,GAAI,wFAOhC,uBAAuB,KAAG,MAkB5B,CAAA"}
@@ -33,6 +33,16 @@ const substituteTemplate = (template, options) => {
33
33
  }
34
34
  return result;
35
35
  };
36
+ /**
37
+ * Normalizes an AsyncAPI `protocol` for comparison: trimmed and lowercased.
38
+ *
39
+ * Returns `undefined` when the protocol is missing or blank, so callers can treat
40
+ * "no protocol" distinctly instead of comparing against an empty string.
41
+ */
42
+ export const normalizeProtocol = (protocol) => {
43
+ const normalized = protocol?.trim().toLowerCase();
44
+ return normalized ? normalized : undefined;
45
+ };
36
46
  /** Maps AsyncAPI `server.protocol` to a URL scheme (MVP: ws and wss). */
37
47
  export const getUrlSchemeFromProtocol = (protocol) => protocol.trim().toLowerCase();
38
48
  export const isWebSocketProtocol = (protocol) => ASYNCAPI_WEBSOCKET_PROTOCOLS.includes(protocol.trim().toLowerCase());
@@ -0,0 +1,86 @@
1
+ import type { AsyncApiDocument, AsyncApiOperationObject } from '@scalar/types/asyncapi/3.1';
2
+ /** Sentinel used by the protocol and server pickers to mean "don't filter". */
3
+ export declare const ALL: "all";
4
+ /** A single protocol option for the picker (e.g. `{ id: 'mqtt', label: 'MQTT' }`). */
5
+ export type AsyncApiProtocolOption = {
6
+ /** The normalized protocol id (lowercase), or {@link ALL}. */
7
+ id: string;
8
+ /** Human-friendly label shown in the dropdown. */
9
+ label: string;
10
+ };
11
+ /**
12
+ * Builds the protocol options for the picker from a document's servers.
13
+ *
14
+ * Always prepends an "All protocols" entry so the picker can clear the filter,
15
+ * matching how the document picker always offers every document. Protocols are
16
+ * de-duplicated and sorted alphabetically for a stable order.
17
+ */
18
+ export declare const getAsyncApiProtocols: (document: AsyncApiDocument) => AsyncApiProtocolOption[];
19
+ /** A single server option for the picker (e.g. `{ id: 'mqtt-prod', label: 'mqtt-prod (mqtt)' }`). */
20
+ export type AsyncApiServerOption = {
21
+ /** The server name (its key in `document.servers`), or {@link ALL}. */
22
+ id: string;
23
+ /** Human-friendly label: the server name, suffixed with its protocol when known. */
24
+ label: string;
25
+ };
26
+ /**
27
+ * Builds the server options for the picker from a document's servers.
28
+ *
29
+ * Like {@link getAsyncApiProtocols}, always prepends an "All servers" entry so the
30
+ * filter can be cleared. Each option is labelled with the server name and its
31
+ * protocol so the picker reads as `mqtt-prod (mqtt)`.
32
+ */
33
+ export declare const getAsyncApiServerOptions: (document: AsyncApiDocument) => AsyncApiServerOption[];
34
+ /**
35
+ * Document-level lookups the per-operation reachability check needs.
36
+ *
37
+ * Building this once per filter pass (instead of recomputing it for every operation)
38
+ * keeps sidebar filtering at O(operations + servers) rather than O(operations × servers).
39
+ */
40
+ export type AsyncApiReachabilityContext = {
41
+ /** Normalized protocol of every named server, keyed by server name. */
42
+ serverProtocols: Map<string, string>;
43
+ /** Every server name declared on the document. */
44
+ allServerNames: Set<string>;
45
+ };
46
+ /** Precomputes the document-level data shared across every operation in a filter pass. */
47
+ export declare const createReachabilityContext: (document: AsyncApiDocument) => AsyncApiReachabilityContext;
48
+ /** The servers (and the protocols they speak) a single operation is reachable through. */
49
+ export type OperationReachability = {
50
+ /** Server names the operation's channel can be reached through. */
51
+ serverNames: Set<string>;
52
+ /** Protocols those servers use. */
53
+ protocols: Set<string>;
54
+ };
55
+ /**
56
+ * Resolves the servers and protocols a single operation is reachable over.
57
+ *
58
+ * Resolves the operation's channel once, then intersects the channel's servers
59
+ * (or all servers, when the channel pins none) with the document's servers. The
60
+ * shared {@link AsyncApiReachabilityContext} is built once per filter pass; a fresh
61
+ * one is created when called standalone.
62
+ */
63
+ export declare const getOperationReachability: (document: AsyncApiDocument, operation: AsyncApiOperationObject, context?: AsyncApiReachabilityContext) => OperationReachability;
64
+ /**
65
+ * Returns the set of protocols an operation is reachable over.
66
+ */
67
+ export declare const getOperationProtocols: (document: AsyncApiDocument, operation: AsyncApiOperationObject, context?: AsyncApiReachabilityContext) => Set<string>;
68
+ /**
69
+ * Returns the names of the servers an operation is reachable through.
70
+ */
71
+ export declare const getOperationServerNames: (document: AsyncApiDocument, operation: AsyncApiOperationObject, context?: AsyncApiReachabilityContext) => Set<string>;
72
+ /**
73
+ * Whether an operation should be shown for the currently selected protocol.
74
+ *
75
+ * Selecting {@link ALL} (or nothing) matches every operation; otherwise the
76
+ * operation is kept only when one of its channel's servers uses that protocol.
77
+ */
78
+ export declare const operationMatchesProtocol: (document: AsyncApiDocument, operation: AsyncApiOperationObject, protocol: string | undefined, context?: AsyncApiReachabilityContext) => boolean;
79
+ /**
80
+ * Whether an operation should be shown for the currently selected server.
81
+ *
82
+ * Selecting {@link ALL} (or nothing) matches every operation; otherwise the
83
+ * operation is kept only when its channel is reachable through that server.
84
+ */
85
+ export declare const operationMatchesServer: (document: AsyncApiDocument, operation: AsyncApiOperationObject, serverName: string | undefined, context?: AsyncApiReachabilityContext) => boolean;
86
+ //# sourceMappingURL=get-async-api-protocols.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"get-async-api-protocols.d.ts","sourceRoot":"","sources":["../../src/channel-example/get-async-api-protocols.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,gBAAgB,EAAE,uBAAuB,EAAE,MAAM,4BAA4B,CAAA;AAQ3F,+EAA+E;AAC/E,eAAO,MAAM,GAAG,EAAG,KAAc,CAAA;AAEjC,sFAAsF;AACtF,MAAM,MAAM,sBAAsB,GAAG;IACnC,8DAA8D;IAC9D,EAAE,EAAE,MAAM,CAAA;IACV,kDAAkD;IAClD,KAAK,EAAE,MAAM,CAAA;CACd,CAAA;AAmBD;;;;;;GAMG;AACH,eAAO,MAAM,oBAAoB,GAAI,UAAU,gBAAgB,KAAG,sBAAsB,EAQvF,CAAA;AAED,qGAAqG;AACrG,MAAM,MAAM,oBAAoB,GAAG;IACjC,uEAAuE;IACvE,EAAE,EAAE,MAAM,CAAA;IACV,oFAAoF;IACpF,KAAK,EAAE,MAAM,CAAA;CACd,CAAA;AAED;;;;;;GAMG;AACH,eAAO,MAAM,wBAAwB,GAAI,UAAU,gBAAgB,KAAG,oBAAoB,EAOzF,CAAA;AAED;;;;;GAKG;AACH,MAAM,MAAM,2BAA2B,GAAG;IACxC,uEAAuE;IACvE,eAAe,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;IACpC,kDAAkD;IAClD,cAAc,EAAE,GAAG,CAAC,MAAM,CAAC,CAAA;CAC5B,CAAA;AAED,0FAA0F;AAC1F,eAAO,MAAM,yBAAyB,GAAI,UAAU,gBAAgB,KAAG,2BAGrE,CAAA;AAEF,0FAA0F;AAC1F,MAAM,MAAM,qBAAqB,GAAG;IAClC,mEAAmE;IACnE,WAAW,EAAE,GAAG,CAAC,MAAM,CAAC,CAAA;IACxB,mCAAmC;IACnC,SAAS,EAAE,GAAG,CAAC,MAAM,CAAC,CAAA;CACvB,CAAA;AAED;;;;;;;GAOG;AACH,eAAO,MAAM,wBAAwB,GACnC,UAAU,gBAAgB,EAC1B,WAAW,uBAAuB,EAClC,UAAS,2BAAiE,KACzE,qBAiBF,CAAA;AAED;;GAEG;AACH,eAAO,MAAM,qBAAqB,GAChC,UAAU,gBAAgB,EAC1B,WAAW,uBAAuB,EAClC,UAAU,2BAA2B,KACpC,GAAG,CAAC,MAAM,CAAqE,CAAA;AAElF;;GAEG;AACH,eAAO,MAAM,uBAAuB,GAClC,UAAU,gBAAgB,EAC1B,WAAW,uBAAuB,EAClC,UAAU,2BAA2B,KACpC,GAAG,CAAC,MAAM,CAAuE,CAAA;AAEpF;;;;;GAKG;AACH,eAAO,MAAM,wBAAwB,GACnC,UAAU,gBAAgB,EAC1B,WAAW,uBAAuB,EAClC,UAAU,MAAM,GAAG,SAAS,EAC5B,UAAU,2BAA2B,KACpC,OAMF,CAAA;AAED;;;;;GAKG;AACH,eAAO,MAAM,sBAAsB,GACjC,UAAU,gBAAgB,EAC1B,WAAW,uBAAuB,EAClC,YAAY,MAAM,GAAG,SAAS,EAC9B,UAAU,2BAA2B,KACpC,OAMF,CAAA"}
@@ -0,0 +1,110 @@
1
+ import { objectEntries } from '@scalar/helpers/object/object-entries';
2
+ import { objectKeys } from '@scalar/helpers/object/object-keys';
3
+ import { getResolvedRef } from '../helpers/get-resolved-ref.js';
4
+ import { normalizeProtocol } from './build-connection-url.js';
5
+ import { resolveOperationChannel } from './resolve-operation-channel.js';
6
+ import { getChannelServerNames } from './servers.js';
7
+ /** Sentinel used by the protocol and server pickers to mean "don't filter". */
8
+ export const ALL = 'all';
9
+ /**
10
+ * Returns the protocol of every named server, keyed by server name.
11
+ * References are resolved so a `$ref`-only server still contributes its protocol.
12
+ */
13
+ const getServerProtocols = (document) => {
14
+ const protocols = new Map();
15
+ for (const [name, serverNode] of objectEntries(document.servers ?? {})) {
16
+ const protocol = normalizeProtocol(getResolvedRef(serverNode).protocol);
17
+ if (protocol) {
18
+ protocols.set(name, protocol);
19
+ }
20
+ }
21
+ return protocols;
22
+ };
23
+ /**
24
+ * Builds the protocol options for the picker from a document's servers.
25
+ *
26
+ * Always prepends an "All protocols" entry so the picker can clear the filter,
27
+ * matching how the document picker always offers every document. Protocols are
28
+ * de-duplicated and sorted alphabetically for a stable order.
29
+ */
30
+ export const getAsyncApiProtocols = (document) => {
31
+ const unique = new Set(getServerProtocols(document).values());
32
+ const options = [...unique]
33
+ .sort((a, b) => a.localeCompare(b))
34
+ .map((protocol) => ({ id: protocol, label: protocol.toUpperCase() }));
35
+ return [{ id: ALL, label: 'All protocols' }, ...options];
36
+ };
37
+ /**
38
+ * Builds the server options for the picker from a document's servers.
39
+ *
40
+ * Like {@link getAsyncApiProtocols}, always prepends an "All servers" entry so the
41
+ * filter can be cleared. Each option is labelled with the server name and its
42
+ * protocol so the picker reads as `mqtt-prod (mqtt)`.
43
+ */
44
+ export const getAsyncApiServerOptions = (document) => {
45
+ const options = objectEntries(document.servers ?? {}).map(([name, serverNode]) => {
46
+ const protocol = normalizeProtocol(getResolvedRef(serverNode).protocol);
47
+ return { id: name, label: protocol ? `${name} (${protocol})` : name };
48
+ });
49
+ return [{ id: ALL, label: 'All servers' }, ...options];
50
+ };
51
+ /** Precomputes the document-level data shared across every operation in a filter pass. */
52
+ export const createReachabilityContext = (document) => ({
53
+ serverProtocols: getServerProtocols(document),
54
+ allServerNames: new Set(objectKeys(document.servers ?? {})),
55
+ });
56
+ /**
57
+ * Resolves the servers and protocols a single operation is reachable over.
58
+ *
59
+ * Resolves the operation's channel once, then intersects the channel's servers
60
+ * (or all servers, when the channel pins none) with the document's servers. The
61
+ * shared {@link AsyncApiReachabilityContext} is built once per filter pass; a fresh
62
+ * one is created when called standalone.
63
+ */
64
+ export const getOperationReachability = (document, operation, context = createReachabilityContext(document)) => {
65
+ const channel = resolveOperationChannel(document, operation)?.channel ?? null;
66
+ const channelServerNames = getChannelServerNames(document, channel);
67
+ // A channel without declared servers is reachable on every server.
68
+ const serverNames = channelServerNames
69
+ ? new Set([...channelServerNames].filter((name) => context.allServerNames.has(name)))
70
+ : new Set(context.allServerNames);
71
+ const protocols = new Set();
72
+ for (const [name, protocol] of context.serverProtocols) {
73
+ if (serverNames.has(name)) {
74
+ protocols.add(protocol);
75
+ }
76
+ }
77
+ return { serverNames, protocols };
78
+ };
79
+ /**
80
+ * Returns the set of protocols an operation is reachable over.
81
+ */
82
+ export const getOperationProtocols = (document, operation, context) => getOperationReachability(document, operation, context).protocols;
83
+ /**
84
+ * Returns the names of the servers an operation is reachable through.
85
+ */
86
+ export const getOperationServerNames = (document, operation, context) => getOperationReachability(document, operation, context).serverNames;
87
+ /**
88
+ * Whether an operation should be shown for the currently selected protocol.
89
+ *
90
+ * Selecting {@link ALL} (or nothing) matches every operation; otherwise the
91
+ * operation is kept only when one of its channel's servers uses that protocol.
92
+ */
93
+ export const operationMatchesProtocol = (document, operation, protocol, context) => {
94
+ if (!protocol || protocol === ALL) {
95
+ return true;
96
+ }
97
+ return getOperationProtocols(document, operation, context).has(protocol);
98
+ };
99
+ /**
100
+ * Whether an operation should be shown for the currently selected server.
101
+ *
102
+ * Selecting {@link ALL} (or nothing) matches every operation; otherwise the
103
+ * operation is kept only when its channel is reachable through that server.
104
+ */
105
+ export const operationMatchesServer = (document, operation, serverName, context) => {
106
+ if (!serverName || serverName === ALL) {
107
+ return true;
108
+ }
109
+ return getOperationServerNames(document, operation, context).has(serverName);
110
+ };
@@ -2,6 +2,8 @@ export type { AsyncApiWebSocketProtocol, BuildConnectionUrlInput } from './build
2
2
  export { ASYNCAPI_WEBSOCKET_PROTOCOLS, buildAsyncApiServerBaseUrl, buildConnectionUrl, buildWsQueryParams, getAsyncApiServerVariables, getUrlSchemeFromProtocol, isWebSocketProtocol, mergeWsBindings, } from './build-connection-url.js';
3
3
  export type { ChannelMessageEntry } from './get-all-channel-messages.js';
4
4
  export { getAllChannelMessages } from './get-all-channel-messages.js';
5
+ export type { AsyncApiProtocolOption, AsyncApiReachabilityContext, AsyncApiServerOption, OperationReachability, } from './get-async-api-protocols.js';
6
+ export { ALL, createReachabilityContext, getAsyncApiProtocols, getAsyncApiServerOptions, getOperationProtocols, getOperationReachability, getOperationServerNames, operationMatchesProtocol, operationMatchesServer, } from './get-async-api-protocols.js';
5
7
  export { getAsyncApiSecurityRequirements } from './get-asyncapi-security-requirements.js';
6
8
  export { getChannelConnectionContext } from './get-channel-connection-context.js';
7
9
  export { getChannelConnectionSecurityRequirements } from './get-channel-connection-security.js';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/channel-example/index.ts"],"names":[],"mappings":"AAAA,YAAY,EAAE,yBAAyB,EAAE,uBAAuB,EAAE,MAAM,wBAAwB,CAAA;AAChG,OAAO,EACL,4BAA4B,EAC5B,0BAA0B,EAC1B,kBAAkB,EAClB,kBAAkB,EAClB,0BAA0B,EAC1B,wBAAwB,EACxB,mBAAmB,EACnB,eAAe,GAChB,MAAM,wBAAwB,CAAA;AAC/B,YAAY,EAAE,mBAAmB,EAAE,MAAM,4BAA4B,CAAA;AACrE,OAAO,EAAE,qBAAqB,EAAE,MAAM,4BAA4B,CAAA;AAClE,OAAO,EAAE,+BAA+B,EAAE,MAAM,sCAAsC,CAAA;AACtF,OAAO,EAAE,2BAA2B,EAAE,MAAM,kCAAkC,CAAA;AAC9E,OAAO,EAAE,wCAAwC,EAAE,MAAM,mCAAmC,CAAA;AAC5F,YAAY,EAAE,uBAAuB,EAAE,MAAM,0BAA0B,CAAA;AACvE,OAAO,EAAE,oBAAoB,EAAE,MAAM,0BAA0B,CAAA;AAC/D,YAAY,EAAE,wBAAwB,EAAE,MAAM,0BAA0B,CAAA;AACxE,OAAO,EAAE,oBAAoB,EAAE,MAAM,0BAA0B,CAAA;AAC/D,YAAY,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAA;AACxD,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAA;AAClD,YAAY,EAAE,wBAAwB,EAAE,MAAM,6BAA6B,CAAA;AAC3E,OAAO,EAAE,uBAAuB,EAAE,MAAM,6BAA6B,CAAA;AACrE,OAAO,EAAE,0BAA0B,EAAE,MAAM,iCAAiC,CAAA;AAC5E,YAAY,EAAE,mBAAmB,EAAE,yBAAyB,EAAE,MAAM,WAAW,CAAA;AAC/E,OAAO,EAAE,kBAAkB,EAAE,yBAAyB,EAAE,MAAM,WAAW,CAAA;AACzE,YAAY,EAAE,6BAA6B,EAAE,qBAAqB,EAAE,MAAM,SAAS,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/channel-example/index.ts"],"names":[],"mappings":"AAAA,YAAY,EAAE,yBAAyB,EAAE,uBAAuB,EAAE,MAAM,wBAAwB,CAAA;AAChG,OAAO,EACL,4BAA4B,EAC5B,0BAA0B,EAC1B,kBAAkB,EAClB,kBAAkB,EAClB,0BAA0B,EAC1B,wBAAwB,EACxB,mBAAmB,EACnB,eAAe,GAChB,MAAM,wBAAwB,CAAA;AAC/B,YAAY,EAAE,mBAAmB,EAAE,MAAM,4BAA4B,CAAA;AACrE,OAAO,EAAE,qBAAqB,EAAE,MAAM,4BAA4B,CAAA;AAClE,YAAY,EACV,sBAAsB,EACtB,2BAA2B,EAC3B,oBAAoB,EACpB,qBAAqB,GACtB,MAAM,2BAA2B,CAAA;AAClC,OAAO,EACL,GAAG,EACH,yBAAyB,EACzB,oBAAoB,EACpB,wBAAwB,EACxB,qBAAqB,EACrB,wBAAwB,EACxB,uBAAuB,EACvB,wBAAwB,EACxB,sBAAsB,GACvB,MAAM,2BAA2B,CAAA;AAClC,OAAO,EAAE,+BAA+B,EAAE,MAAM,sCAAsC,CAAA;AACtF,OAAO,EAAE,2BAA2B,EAAE,MAAM,kCAAkC,CAAA;AAC9E,OAAO,EAAE,wCAAwC,EAAE,MAAM,mCAAmC,CAAA;AAC5F,YAAY,EAAE,uBAAuB,EAAE,MAAM,0BAA0B,CAAA;AACvE,OAAO,EAAE,oBAAoB,EAAE,MAAM,0BAA0B,CAAA;AAC/D,YAAY,EAAE,wBAAwB,EAAE,MAAM,0BAA0B,CAAA;AACxE,OAAO,EAAE,oBAAoB,EAAE,MAAM,0BAA0B,CAAA;AAC/D,YAAY,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAA;AACxD,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAA;AAClD,YAAY,EAAE,wBAAwB,EAAE,MAAM,6BAA6B,CAAA;AAC3E,OAAO,EAAE,uBAAuB,EAAE,MAAM,6BAA6B,CAAA;AACrE,OAAO,EAAE,0BAA0B,EAAE,MAAM,iCAAiC,CAAA;AAC5E,YAAY,EAAE,mBAAmB,EAAE,yBAAyB,EAAE,MAAM,WAAW,CAAA;AAC/E,OAAO,EAAE,kBAAkB,EAAE,yBAAyB,EAAE,MAAM,WAAW,CAAA;AACzE,YAAY,EAAE,6BAA6B,EAAE,qBAAqB,EAAE,MAAM,SAAS,CAAA"}
@@ -1,5 +1,6 @@
1
1
  export { ASYNCAPI_WEBSOCKET_PROTOCOLS, buildAsyncApiServerBaseUrl, buildConnectionUrl, buildWsQueryParams, getAsyncApiServerVariables, getUrlSchemeFromProtocol, isWebSocketProtocol, mergeWsBindings, } from './build-connection-url.js';
2
2
  export { getAllChannelMessages } from './get-all-channel-messages.js';
3
+ export { ALL, createReachabilityContext, getAsyncApiProtocols, getAsyncApiServerOptions, getOperationProtocols, getOperationReachability, getOperationServerNames, operationMatchesProtocol, operationMatchesServer, } from './get-async-api-protocols.js';
3
4
  export { getAsyncApiSecurityRequirements } from './get-asyncapi-security-requirements.js';
4
5
  export { getChannelConnectionContext } from './get-channel-connection-context.js';
5
6
  export { getChannelConnectionSecurityRequirements } from './get-channel-connection-security.js';
@@ -25,6 +25,13 @@ export type AsyncApiServerEntry = {
25
25
  /** Whether this server uses a WebSocket protocol (`ws` / `wss`). */
26
26
  isWebSocket: boolean;
27
27
  };
28
+ /**
29
+ * Collects the names of `document.servers` entries that the channel is restricted to.
30
+ *
31
+ * Returns `undefined` when the channel does not declare `servers`, signaling that every
32
+ * top-level server is allowed.
33
+ */
34
+ export declare const getChannelServerNames: (document: AsyncApiDocument, channel: AsyncApiChannelObject | null) => Set<string> | undefined;
28
35
  /**
29
36
  * Returns a normalized list of AsyncAPI servers with computed base `url` and optional `connectionUrl`.
30
37
  */
@@ -1 +1 @@
1
- {"version":3,"file":"servers.d.ts","sourceRoot":"","sources":["../../src/channel-example/servers.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EACV,qBAAqB,EACrB,gBAAgB,EAChB,uBAAuB,EACvB,oBAAoB,EACrB,MAAM,4BAA4B,CAAA;AAEnC,OAAO,EACL,KAAK,uBAAuB,EAI7B,MAAM,wCAAwC,CAAA;AAI/C,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAA;AAE5D,MAAM,MAAM,yBAAyB,GAAG;IACtC,OAAO,CAAC,EAAE,qBAAqB,GAAG,IAAI,CAAA;IACtC,SAAS,CAAC,EAAE,uBAAuB,GAAG,IAAI,CAAA;IAC1C,cAAc,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;IACvC,eAAe,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;IACxC,oBAAoB,CAAC,EAAE,uBAAuB,CAAC,sBAAsB,CAAC,CAAA;IACtE,kFAAkF;IAClF,aAAa,CAAC,EAAE,OAAO,CAAA;CACxB,CAAA;AAED,MAAM,MAAM,mBAAmB,GAAG;IAChC,iCAAiC;IACjC,IAAI,EAAE,MAAM,CAAA;IACZ,MAAM,EAAE,oBAAoB,CAAA;IAC5B,IAAI,EAAE,MAAM,CAAA;IACZ,QAAQ,EAAE,MAAM,CAAA;IAChB,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,uEAAuE;IACvE,GAAG,EAAE,MAAM,CAAA;IACX,qEAAqE;IACrE,aAAa,CAAC,EAAE,MAAM,CAAA;IACtB,oEAAoE;IACpE,WAAW,EAAE,OAAO,CAAA;CACrB,CAAA;AA+BD;;GAEG;AACH,eAAO,MAAM,kBAAkB,GAC7B,UAAU,gBAAgB,EAC1B,UAAS,yBAA8B,KACtC,mBAAmB,EA8CrB,CAAA;AAED;;GAEG;AACH,eAAO,MAAM,yBAAyB,GACpC,UAAU,iBAAiB,GAAG,IAAI,EAClC,SAAS,mBAAmB,EAAE,EAC9B,aAAa,uBAAuB,GAAG,IAAI,KAC1C,mBAAmB,GAAG,IAYxB,CAAA"}
1
+ {"version":3,"file":"servers.d.ts","sourceRoot":"","sources":["../../src/channel-example/servers.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EACV,qBAAqB,EACrB,gBAAgB,EAChB,uBAAuB,EACvB,oBAAoB,EACrB,MAAM,4BAA4B,CAAA;AAEnC,OAAO,EACL,KAAK,uBAAuB,EAI7B,MAAM,wCAAwC,CAAA;AAI/C,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAA;AAE5D,MAAM,MAAM,yBAAyB,GAAG;IACtC,OAAO,CAAC,EAAE,qBAAqB,GAAG,IAAI,CAAA;IACtC,SAAS,CAAC,EAAE,uBAAuB,GAAG,IAAI,CAAA;IAC1C,cAAc,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;IACvC,eAAe,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;IACxC,oBAAoB,CAAC,EAAE,uBAAuB,CAAC,sBAAsB,CAAC,CAAA;IACtE,kFAAkF;IAClF,aAAa,CAAC,EAAE,OAAO,CAAA;CACxB,CAAA;AAED,MAAM,MAAM,mBAAmB,GAAG;IAChC,iCAAiC;IACjC,IAAI,EAAE,MAAM,CAAA;IACZ,MAAM,EAAE,oBAAoB,CAAA;IAC5B,IAAI,EAAE,MAAM,CAAA;IACZ,QAAQ,EAAE,MAAM,CAAA;IAChB,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,uEAAuE;IACvE,GAAG,EAAE,MAAM,CAAA;IACX,qEAAqE;IACrE,aAAa,CAAC,EAAE,MAAM,CAAA;IACtB,oEAAoE;IACpE,WAAW,EAAE,OAAO,CAAA;CACrB,CAAA;AAOD;;;;;GAKG;AACH,eAAO,MAAM,qBAAqB,GAChC,UAAU,gBAAgB,EAC1B,SAAS,qBAAqB,GAAG,IAAI,KACpC,GAAG,CAAC,MAAM,CAAC,GAAG,SAahB,CAAA;AAED;;GAEG;AACH,eAAO,MAAM,kBAAkB,GAC7B,UAAU,gBAAgB,EAC1B,UAAS,yBAA8B,KACtC,mBAAmB,EA8CrB,CAAA;AAED;;GAEG;AACH,eAAO,MAAM,yBAAyB,GACpC,UAAU,iBAAiB,GAAG,IAAI,EAClC,SAAS,mBAAmB,EAAE,EAC9B,aAAa,uBAAuB,GAAG,IAAI,KAC1C,mBAAmB,GAAG,IAYxB,CAAA"}
@@ -11,7 +11,7 @@ const getServerNameFromRef = (ref) => getNameFromRef(ref, ['servers']);
11
11
  * Returns `undefined` when the channel does not declare `servers`, signaling that every
12
12
  * top-level server is allowed.
13
13
  */
14
- const getChannelServerNames = (document, channel) => {
14
+ export const getChannelServerNames = (document, channel) => {
15
15
  if (!channel?.servers) {
16
16
  return undefined;
17
17
  }
@@ -1861,6 +1861,11 @@ declare const SelectedSecuritySchema: import("@scalar/typebox").TObject<{
1861
1861
  description: import("@scalar/typebox").TOptional<import("@scalar/typebox").TString>;
1862
1862
  source: import("@scalar/typebox").TOptional<import("@scalar/typebox").TString>;
1863
1863
  }>>>;
1864
+ }>, import("@scalar/typebox").TObject<{
1865
+ 'x-scalar-links': import("@scalar/typebox").TOptional<import("@scalar/typebox").TArray<import("@scalar/typebox").TObject<{
1866
+ name: import("@scalar/typebox").TString;
1867
+ url: import("@scalar/typebox").TString;
1868
+ }>>>;
1864
1869
  }>]>;
1865
1870
  ContactObject: import("@scalar/typebox").TObject<{
1866
1871
  name: import("@scalar/typebox").TOptional<import("@scalar/typebox").TString>;
@@ -3803,6 +3808,11 @@ export declare const AuthSchema: import("@scalar/typebox").TObject<{
3803
3808
  description: import("@scalar/typebox").TOptional<import("@scalar/typebox").TString>;
3804
3809
  source: import("@scalar/typebox").TOptional<import("@scalar/typebox").TString>;
3805
3810
  }>>>;
3811
+ }>, import("@scalar/typebox").TObject<{
3812
+ 'x-scalar-links': import("@scalar/typebox").TOptional<import("@scalar/typebox").TArray<import("@scalar/typebox").TObject<{
3813
+ name: import("@scalar/typebox").TString;
3814
+ url: import("@scalar/typebox").TString;
3815
+ }>>>;
3806
3816
  }>]>;
3807
3817
  ContactObject: import("@scalar/typebox").TObject<{
3808
3818
  name: import("@scalar/typebox").TOptional<import("@scalar/typebox").TString>;
@@ -5562,6 +5572,11 @@ export declare const AuthSchema: import("@scalar/typebox").TObject<{
5562
5572
  description: import("@scalar/typebox").TOptional<import("@scalar/typebox").TString>;
5563
5573
  source: import("@scalar/typebox").TOptional<import("@scalar/typebox").TString>;
5564
5574
  }>>>;
5575
+ }>, import("@scalar/typebox").TObject<{
5576
+ 'x-scalar-links': import("@scalar/typebox").TOptional<import("@scalar/typebox").TArray<import("@scalar/typebox").TObject<{
5577
+ name: import("@scalar/typebox").TString;
5578
+ url: import("@scalar/typebox").TString;
5579
+ }>>>;
5565
5580
  }>]>;
5566
5581
  ContactObject: import("@scalar/typebox").TObject<{
5567
5582
  name: import("@scalar/typebox").TOptional<import("@scalar/typebox").TString>;
@@ -7506,6 +7521,11 @@ export declare const DocumentAuthSchema: import("@scalar/typebox").TRecord<impor
7506
7521
  description: import("@scalar/typebox").TOptional<import("@scalar/typebox").TString>;
7507
7522
  source: import("@scalar/typebox").TOptional<import("@scalar/typebox").TString>;
7508
7523
  }>>>;
7524
+ }>, import("@scalar/typebox").TObject<{
7525
+ 'x-scalar-links': import("@scalar/typebox").TOptional<import("@scalar/typebox").TArray<import("@scalar/typebox").TObject<{
7526
+ name: import("@scalar/typebox").TString;
7527
+ url: import("@scalar/typebox").TString;
7528
+ }>>>;
7509
7529
  }>]>;
7510
7530
  ContactObject: import("@scalar/typebox").TObject<{
7511
7531
  name: import("@scalar/typebox").TOptional<import("@scalar/typebox").TString>;
@@ -9265,6 +9285,11 @@ export declare const DocumentAuthSchema: import("@scalar/typebox").TRecord<impor
9265
9285
  description: import("@scalar/typebox").TOptional<import("@scalar/typebox").TString>;
9266
9286
  source: import("@scalar/typebox").TOptional<import("@scalar/typebox").TString>;
9267
9287
  }>>>;
9288
+ }>, import("@scalar/typebox").TObject<{
9289
+ 'x-scalar-links': import("@scalar/typebox").TOptional<import("@scalar/typebox").TArray<import("@scalar/typebox").TObject<{
9290
+ name: import("@scalar/typebox").TString;
9291
+ url: import("@scalar/typebox").TString;
9292
+ }>>>;
9268
9293
  }>]>;
9269
9294
  ContactObject: import("@scalar/typebox").TObject<{
9270
9295
  name: import("@scalar/typebox").TOptional<import("@scalar/typebox").TString>;
@@ -1 +1 @@
1
- {"version":3,"file":"schema.d.ts","sourceRoot":"","sources":["../../../src/entities/auth/schema.ts"],"names":[],"mappings":"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;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAMrB,CAAA;AAEF,MAAM,MAAM,IAAI,GAAG,MAAM,CAAC,OAAO,UAAU,CAAC,CAAA;AAE5C,eAAO,MAAM,kBAAkB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAAyC,CAAA;AACxE,MAAM,MAAM,YAAY,GAAG,MAAM,CAAC,MAAM,EAAE,IAAI,CAAC,CAAA"}
1
+ {"version":3,"file":"schema.d.ts","sourceRoot":"","sources":["../../../src/entities/auth/schema.ts"],"names":[],"mappings":"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;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAMrB,CAAA;AAEF,MAAM,MAAM,IAAI,GAAG,MAAM,CAAC,OAAO,UAAU,CAAC,CAAA;AAE5C,eAAO,MAAM,kBAAkB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAAyC,CAAA;AACxE,MAAM,MAAM,YAAY,GAAG,MAAM,CAAC,MAAM,EAAE,IAAI,CAAC,CAAA"}
@@ -22,6 +22,14 @@ export type WorkspaceEvents = {
22
22
  * `defineProps`. The set of valid values is enforced at runtime instead.
23
23
  */
24
24
  'workspace:update:selected-client': string;
25
+ /**
26
+ * Update the selected example on the workspace.
27
+ *
28
+ * The payload is an example key (from an operation's `examples` map). Sharing it across the
29
+ * document keeps request and response example pickers in sync between operations: picking
30
+ * "Use case 1" on one operation selects the example with the same key everywhere it exists.
31
+ */
32
+ 'workspace:update:selected-example': string;
25
33
  /**
26
34
  * Update the active environment on the workspace
27
35
  */
@@ -1 +1 @@
1
- {"version":3,"file":"workspace.d.ts","sourceRoot":"","sources":["../../../src/events/definitions/workspace.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAA;AAEpD,iDAAiD;AACjD,MAAM,MAAM,eAAe,GAAG;IAC5B;;OAEG;IACH,+BAA+B,EAAE,MAAM,GAAG,IAAI,CAAA;IAC9C;;OAEG;IACH,6BAA6B,EAAE,SAAS,CAAA;IACxC;;OAEG;IACH,wBAAwB,EAAE,MAAM,GAAG,SAAS,CAAA;IAC5C;;;;;;;OAOG;IACH,kCAAkC,EAAE,MAAM,CAAA;IAC1C;;OAEG;IACH,qCAAqC,EAAE,MAAM,GAAG,IAAI,CAAA;IACpD;;OAEG;IACH,uBAAuB,EAAE,MAAM,CAAA;CAChC,CAAA"}
1
+ {"version":3,"file":"workspace.d.ts","sourceRoot":"","sources":["../../../src/events/definitions/workspace.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAA;AAEpD,iDAAiD;AACjD,MAAM,MAAM,eAAe,GAAG;IAC5B;;OAEG;IACH,+BAA+B,EAAE,MAAM,GAAG,IAAI,CAAA;IAC9C;;OAEG;IACH,6BAA6B,EAAE,SAAS,CAAA;IACxC;;OAEG;IACH,wBAAwB,EAAE,MAAM,GAAG,SAAS,CAAA;IAC5C;;;;;;;OAOG;IACH,kCAAkC,EAAE,MAAM,CAAA;IAC1C;;;;;;OAMG;IACH,mCAAmC,EAAE,MAAM,CAAA;IAC3C;;OAEG;IACH,qCAAqC,EAAE,MAAM,GAAG,IAAI,CAAA;IACpD;;OAEG;IACH,uBAAuB,EAAE,MAAM,CAAA;CAChC,CAAA"}
@@ -0,0 +1,9 @@
1
+ import type { ServerObject } from '../schemas/v3.1/strict/openapi-document.js';
2
+ /**
3
+ * Iterate through all available servers and pick the first one
4
+ *
5
+ * @example
6
+ * getFirstServer(operation.servers, pathItem.servers, document.servers)
7
+ */
8
+ export declare const getFirstServer: (...availableServers: (ServerObject[] | ServerObject | null)[]) => ServerObject | null;
9
+ //# sourceMappingURL=get-first-server.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"get-first-server.d.ts","sourceRoot":"","sources":["../../src/helpers/get-first-server.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,wCAAwC,CAAA;AAI1E;;;;;GAKG;AACH,eAAO,MAAM,cAAc,GAAI,GAAG,kBAAkB,CAAC,YAAY,EAAE,GAAG,YAAY,GAAG,IAAI,CAAC,EAAE,KAAG,YAAY,GAAG,IAyB7G,CAAA"}
@@ -0,0 +1,30 @@
1
+ import { getResolvedRef } from './get-resolved-ref.js';
2
+ /**
3
+ * Iterate through all available servers and pick the first one
4
+ *
5
+ * @example
6
+ * getFirstServer(operation.servers, pathItem.servers, document.servers)
7
+ */
8
+ export const getFirstServer = (...availableServers) => {
9
+ for (const serverSource of availableServers) {
10
+ if (!serverSource) {
11
+ continue;
12
+ }
13
+ // Handle single server object
14
+ if (!Array.isArray(serverSource)) {
15
+ const resolvedServer = getResolvedRef(serverSource);
16
+ if (resolvedServer?.url) {
17
+ return resolvedServer;
18
+ }
19
+ continue;
20
+ }
21
+ // Handle array of servers, pick the first one with a URL
22
+ for (const server of serverSource) {
23
+ const resolvedServer = getResolvedRef(server);
24
+ if (resolvedServer?.url) {
25
+ return resolvedServer;
26
+ }
27
+ }
28
+ }
29
+ return null;
30
+ };
@@ -35,6 +35,7 @@ export declare function generateClientMutators(store: WorkspaceStore | null): {
35
35
  updateColorMode: (payload: import("../events/definitions/workspace.js").WorkspaceEvents["workspace:update:color-mode"]) => void;
36
36
  updateTheme: (payload: import("../events/definitions/workspace.js").WorkspaceEvents["workspace:update:theme"]) => void;
37
37
  updateSelectedClient: (payload: import("../events/definitions/workspace.js").WorkspaceEvents["workspace:update:selected-client"]) => void;
38
+ updateSelectedExample: (payload: import("../events/definitions/workspace.js").WorkspaceEvents["workspace:update:selected-example"]) => void;
38
39
  updateActiveEnvironment: (payload: import("../events/definitions/workspace.js").WorkspaceEvents["workspace:update:active-environment"]) => void;
39
40
  };
40
41
  environment: {
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/mutators/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,UAAU,CAAA;AAa9C;;;;;GAKG;AACH,wBAAgB,sBAAsB,CAAC,KAAK,EAAE,cAAc,GAAG,IAAI;IAqC/D;;OAEG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAEH;;;OAGG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAEH;;;;OAIG;gBACS,MAAM;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAErB"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/mutators/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,UAAU,CAAA;AAa9C;;;;;GAKG;AACH,wBAAgB,sBAAsB,CAAC,KAAK,EAAE,cAAc,GAAG,IAAI;IAqC/D;;OAEG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAEH;;;OAGG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAEH;;;;OAIG;gBACS,MAAM;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAErB"}
@@ -36,6 +36,13 @@ export declare const updateActiveEnvironment: (workspace: Workspace | null, payl
36
36
  * @returns
37
37
  */
38
38
  export declare const updateSelectedClient: (workspace: Workspace | null, payload: WorkspaceEvents["workspace:update:selected-client"]) => void;
39
+ /**
40
+ * Updates the selected example on the workspace
41
+ *
42
+ * @param workspace - The workspace to update the selected example in
43
+ * @param payload - The example key to select across the document
44
+ */
45
+ export declare const updateSelectedExample: (workspace: Workspace | null, payload: WorkspaceEvents["workspace:update:selected-example"]) => void;
39
46
  export declare const workspaceMutatorsFactory: ({ workspace }: {
40
47
  workspace: Workspace | null;
41
48
  }) => {
@@ -43,6 +50,7 @@ export declare const workspaceMutatorsFactory: ({ workspace }: {
43
50
  updateColorMode: (payload: WorkspaceEvents["workspace:update:color-mode"]) => void;
44
51
  updateTheme: (payload: WorkspaceEvents["workspace:update:theme"]) => void;
45
52
  updateSelectedClient: (payload: WorkspaceEvents["workspace:update:selected-client"]) => void;
53
+ updateSelectedExample: (payload: WorkspaceEvents["workspace:update:selected-example"]) => void;
46
54
  updateActiveEnvironment: (payload: WorkspaceEvents["workspace:update:active-environment"]) => void;
47
55
  };
48
56
  //# sourceMappingURL=workspace.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"workspace.d.ts","sourceRoot":"","sources":["../../src/mutators/workspace.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,gCAAgC,CAAA;AACrE,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,WAAW,CAAA;AAE1C;;;;;GAKG;AACH,eAAO,MAAM,iBAAiB,GAC5B,WAAW,SAAS,GAAG,IAAI,EAC3B,SAAS,eAAe,CAAC,+BAA+B,CAAC,SAQ1D,CAAA;AAED;;;;;GAKG;AACH,eAAO,MAAM,eAAe,GAC1B,WAAW,SAAS,GAAG,IAAI,EAC3B,SAAS,eAAe,CAAC,6BAA6B,CAAC,SAQxD,CAAA;AAED;;;;;GAKG;AACH,eAAO,MAAM,WAAW,GAAI,WAAW,SAAS,GAAG,IAAI,EAAE,SAAS,eAAe,CAAC,wBAAwB,CAAC,SAO1G,CAAA;AAED;;;;;GAKG;AACH,eAAO,MAAM,uBAAuB,GAClC,WAAW,SAAS,GAAG,IAAI,EAC3B,SAAS,eAAe,CAAC,qCAAqC,CAAC,SAQhE,CAAA;AAED;;;;;;GAMG;AACH,eAAO,MAAM,oBAAoB,GAC/B,WAAW,SAAS,GAAG,IAAI,EAC3B,SAAS,eAAe,CAAC,kCAAkC,CAAC,SAM7D,CAAA;AAED,eAAO,MAAM,wBAAwB,GAAI,eAAe;IAAE,SAAS,EAAE,SAAS,GAAG,IAAI,CAAA;CAAE;iCAEtD,eAAe,CAAC,+BAA+B,CAAC;+BAElD,eAAe,CAAC,6BAA6B,CAAC;2BAClD,eAAe,CAAC,wBAAwB,CAAC;oCAChC,eAAe,CAAC,kCAAkC,CAAC;uCAEhD,eAAe,CAAC,qCAAqC,CAAC;CAG5F,CAAA"}
1
+ {"version":3,"file":"workspace.d.ts","sourceRoot":"","sources":["../../src/mutators/workspace.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,gCAAgC,CAAA;AACrE,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,WAAW,CAAA;AAE1C;;;;;GAKG;AACH,eAAO,MAAM,iBAAiB,GAC5B,WAAW,SAAS,GAAG,IAAI,EAC3B,SAAS,eAAe,CAAC,+BAA+B,CAAC,SAQ1D,CAAA;AAED;;;;;GAKG;AACH,eAAO,MAAM,eAAe,GAC1B,WAAW,SAAS,GAAG,IAAI,EAC3B,SAAS,eAAe,CAAC,6BAA6B,CAAC,SAQxD,CAAA;AAED;;;;;GAKG;AACH,eAAO,MAAM,WAAW,GAAI,WAAW,SAAS,GAAG,IAAI,EAAE,SAAS,eAAe,CAAC,wBAAwB,CAAC,SAO1G,CAAA;AAED;;;;;GAKG;AACH,eAAO,MAAM,uBAAuB,GAClC,WAAW,SAAS,GAAG,IAAI,EAC3B,SAAS,eAAe,CAAC,qCAAqC,CAAC,SAQhE,CAAA;AAED;;;;;;GAMG;AACH,eAAO,MAAM,oBAAoB,GAC/B,WAAW,SAAS,GAAG,IAAI,EAC3B,SAAS,eAAe,CAAC,kCAAkC,CAAC,SAM7D,CAAA;AAED;;;;;GAKG;AACH,eAAO,MAAM,qBAAqB,GAChC,WAAW,SAAS,GAAG,IAAI,EAC3B,SAAS,eAAe,CAAC,mCAAmC,CAAC,SAM9D,CAAA;AAED,eAAO,MAAM,wBAAwB,GAAI,eAAe;IAAE,SAAS,EAAE,SAAS,GAAG,IAAI,CAAA;CAAE;iCAEtD,eAAe,CAAC,+BAA+B,CAAC;+BAElD,eAAe,CAAC,6BAA6B,CAAC;2BAClD,eAAe,CAAC,wBAAwB,CAAC;oCAChC,eAAe,CAAC,kCAAkC,CAAC;qCAElD,eAAe,CAAC,mCAAmC,CAAC;uCAElD,eAAe,CAAC,qCAAqC,CAAC;CAG5F,CAAA"}
@@ -67,12 +67,25 @@ export const updateSelectedClient = (workspace, payload) => {
67
67
  }
68
68
  workspace['x-scalar-default-client'] = payload;
69
69
  };
70
+ /**
71
+ * Updates the selected example on the workspace
72
+ *
73
+ * @param workspace - The workspace to update the selected example in
74
+ * @param payload - The example key to select across the document
75
+ */
76
+ export const updateSelectedExample = (workspace, payload) => {
77
+ if (!workspace) {
78
+ return;
79
+ }
80
+ workspace['x-scalar-default-example'] = payload;
81
+ };
70
82
  export const workspaceMutatorsFactory = ({ workspace }) => {
71
83
  return {
72
84
  updateActiveProxy: (payload) => updateActiveProxy(workspace, payload),
73
85
  updateColorMode: (payload) => updateColorMode(workspace, payload),
74
86
  updateTheme: (payload) => updateTheme(workspace, payload),
75
87
  updateSelectedClient: (payload) => updateSelectedClient(workspace, payload),
88
+ updateSelectedExample: (payload) => updateSelectedExample(workspace, payload),
76
89
  updateActiveEnvironment: (payload) => updateActiveEnvironment(workspace, payload),
77
90
  };
78
91
  };
@@ -1,7 +1,20 @@
1
- import type { ParameterObject } from '@scalar/workspace-store/schemas/v3.1/strict/openapi-document';
1
+ import type { ParameterObject, ParameterWithSchemaObject } from '@scalar/workspace-store/schemas/v3.1/strict/openapi-document';
2
2
  /**
3
3
  * Coerces a parameter example from the UI (always a string from CodeInput) into a value
4
4
  * request building can serialize. Only structured types are parsed; primitives stay as strings.
5
5
  */
6
6
  export declare const deSerializeParameter: (example: unknown, param: ParameterObject) => any;
7
+ /**
8
+ * Coerces a single schema-typed value from the request editor (always a string from CodeInput)
9
+ * back into the structure its schema describes.
10
+ *
11
+ * Primitives (`string`, `integer`, `number`, `boolean`, `null`) are left as the typed string.
12
+ * Only `array` and `object` values are parsed so OpenAPI style serialization can expand them.
13
+ *
14
+ * Exposed on its own (not just through {@link deSerializeParameter}) so callers that reassemble an
15
+ * expanded object parameter from individual rows — e.g. a `deepObject` query parameter edited row by
16
+ * row in the API client — can coerce each leaf against its property schema. Otherwise an edited array
17
+ * leaf stays the comma-joined display string and collapses back into a single `key=1,2` entry.
18
+ */
19
+ export declare const deSerializeSchemaValue: (example: unknown, schema: ParameterWithSchemaObject["schema"]) => any;
7
20
  //# sourceMappingURL=de-serialize-parameter.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"de-serialize-parameter.d.ts","sourceRoot":"","sources":["../../../../src/request-example/builder/header/de-serialize-parameter.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EACV,eAAe,EAEhB,MAAM,8DAA8D,CAAA;AAErE;;;GAGG;AACH,eAAO,MAAM,oBAAoB,GAAI,SAAS,OAAO,EAAE,OAAO,eAAe,QAS5E,CAAA"}
1
+ {"version":3,"file":"de-serialize-parameter.d.ts","sourceRoot":"","sources":["../../../../src/request-example/builder/header/de-serialize-parameter.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EACV,eAAe,EACf,yBAAyB,EAC1B,MAAM,8DAA8D,CAAA;AAErE;;;GAGG;AACH,eAAO,MAAM,oBAAoB,GAAI,SAAS,OAAO,EAAE,OAAO,eAAe,QAS5E,CAAA;AA0DD;;;;;;;;;;;GAWG;AACH,eAAO,MAAM,sBAAsB,GAAI,SAAS,OAAO,EAAE,QAAQ,yBAAyB,CAAC,QAAQ,CAAC,QAiBnG,CAAA"}