@scalar/workspace-store 0.64.0 → 0.66.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 (168) hide show
  1. package/CHANGELOG.md +121 -0
  2. package/README.md +45 -10
  3. package/dist/client.d.ts.map +1 -1
  4. package/dist/client.js +109 -10
  5. package/dist/entities/auth/schema.d.ts +351 -20
  6. package/dist/entities/auth/schema.d.ts.map +1 -1
  7. package/dist/entities/auth/schema.js +3 -1
  8. package/dist/events/definitions/auth.d.ts +1 -2
  9. package/dist/events/definitions/auth.d.ts.map +1 -1
  10. package/dist/events/definitions/operation.d.ts +3 -4
  11. package/dist/events/definitions/operation.d.ts.map +1 -1
  12. package/dist/events/definitions/server.d.ts +1 -2
  13. package/dist/events/definitions/server.d.ts.map +1 -1
  14. package/dist/events/definitions/ui.d.ts +3 -4
  15. package/dist/events/definitions/ui.d.ts.map +1 -1
  16. package/dist/events/old-definitions.d.ts +1 -2
  17. package/dist/events/old-definitions.d.ts.map +1 -1
  18. package/dist/helpers/chunk-index.d.ts +20 -2
  19. package/dist/helpers/chunk-index.d.ts.map +1 -1
  20. package/dist/helpers/chunk-index.js +14 -1
  21. package/dist/helpers/external-examples.d.ts +2 -0
  22. package/dist/helpers/external-examples.d.ts.map +1 -1
  23. package/dist/helpers/external-examples.js +1 -0
  24. package/dist/helpers/for-each-path-item-operation.d.ts +6 -5
  25. package/dist/helpers/for-each-path-item-operation.d.ts.map +1 -1
  26. package/dist/helpers/for-each-path-item-operation.js +40 -14
  27. package/dist/helpers/get-example-value.d.ts +15 -0
  28. package/dist/helpers/get-example-value.d.ts.map +1 -0
  29. package/dist/helpers/get-example-value.js +28 -0
  30. package/dist/helpers/get-parameter-example.d.ts +14 -0
  31. package/dist/helpers/get-parameter-example.d.ts.map +1 -0
  32. package/dist/helpers/get-parameter-example.js +19 -0
  33. package/dist/helpers/get-resolved-ref.d.ts.map +1 -1
  34. package/dist/helpers/get-resolved-ref.js +12 -1
  35. package/dist/helpers/normalize-boolean-schemas.d.ts +10 -0
  36. package/dist/helpers/normalize-boolean-schemas.d.ts.map +1 -0
  37. package/dist/helpers/normalize-boolean-schemas.js +193 -0
  38. package/dist/helpers/operation-examples.d.ts.map +1 -1
  39. package/dist/helpers/operation-examples.js +5 -2
  40. package/dist/helpers/querystring-parameter.d.ts +21 -0
  41. package/dist/helpers/querystring-parameter.d.ts.map +1 -0
  42. package/dist/helpers/querystring-parameter.js +108 -0
  43. package/dist/helpers/serialize-stream-example.d.ts +8 -0
  44. package/dist/helpers/serialize-stream-example.d.ts.map +1 -0
  45. package/dist/helpers/serialize-stream-example.js +52 -0
  46. package/dist/helpers/use-external-examples.d.ts.map +1 -1
  47. package/dist/helpers/use-external-examples.js +8 -1
  48. package/dist/mutators/index.d.ts +3 -3
  49. package/dist/mutators/operation/body.d.ts.map +1 -1
  50. package/dist/mutators/operation/body.js +9 -2
  51. package/dist/mutators/operation/operation.d.ts.map +1 -1
  52. package/dist/mutators/operation/operation.js +4 -7
  53. package/dist/mutators/operation/parameters.d.ts.map +1 -1
  54. package/dist/mutators/operation/parameters.js +43 -3
  55. package/dist/navigation/get-navigation-options.d.ts.map +1 -1
  56. package/dist/navigation/get-navigation-options.js +19 -4
  57. package/dist/navigation/helpers/traverse-paths.d.ts.map +1 -1
  58. package/dist/navigation/helpers/traverse-paths.js +2 -2
  59. package/dist/navigation/helpers/traverse-webhooks.d.ts.map +1 -1
  60. package/dist/navigation/helpers/traverse-webhooks.js +2 -2
  61. package/dist/navigation/helpers/update-order-ids.d.ts +1 -2
  62. package/dist/navigation/helpers/update-order-ids.d.ts.map +1 -1
  63. package/dist/plugins/bundler/index.d.ts +1 -0
  64. package/dist/plugins/bundler/index.d.ts.map +1 -1
  65. package/dist/plugins/bundler/index.js +11 -3
  66. package/dist/plugins/bundler/openapi-document.d.ts +6 -0
  67. package/dist/plugins/bundler/openapi-document.d.ts.map +1 -0
  68. package/dist/plugins/bundler/openapi-document.js +57 -0
  69. package/dist/request-example/builder/body/build-multipart.d.ts +29 -0
  70. package/dist/request-example/builder/body/build-multipart.d.ts.map +1 -0
  71. package/dist/request-example/builder/body/build-multipart.js +191 -0
  72. package/dist/request-example/builder/body/build-request-body.d.ts +6 -1
  73. package/dist/request-example/builder/body/build-request-body.d.ts.map +1 -1
  74. package/dist/request-example/builder/body/build-request-body.js +80 -23
  75. package/dist/request-example/builder/body/encode-multipart-body.d.ts +8 -8
  76. package/dist/request-example/builder/body/encode-multipart-body.d.ts.map +1 -1
  77. package/dist/request-example/builder/body/encode-multipart-body.js +56 -18
  78. package/dist/request-example/builder/body/get-request-body-example.d.ts.map +1 -1
  79. package/dist/request-example/builder/body/get-request-body-example.js +20 -6
  80. package/dist/request-example/builder/body/multipart-limits.d.ts +3 -0
  81. package/dist/request-example/builder/body/multipart-limits.d.ts.map +1 -0
  82. package/dist/request-example/builder/body/multipart-limits.js +2 -0
  83. package/dist/request-example/builder/body/serialize-form-property.d.ts +2 -0
  84. package/dist/request-example/builder/body/serialize-form-property.d.ts.map +1 -1
  85. package/dist/request-example/builder/body/serialize-form-property.js +3 -2
  86. package/dist/request-example/builder/body/serialize-multipart-array.d.ts +1 -1
  87. package/dist/request-example/builder/build-request.d.ts.map +1 -1
  88. package/dist/request-example/builder/build-request.js +7 -1
  89. package/dist/request-example/builder/header/build-request-parameters.d.ts +2 -0
  90. package/dist/request-example/builder/header/build-request-parameters.d.ts.map +1 -1
  91. package/dist/request-example/builder/header/build-request-parameters.js +54 -11
  92. package/dist/request-example/builder/header/is-param-disabled.d.ts.map +1 -1
  93. package/dist/request-example/builder/header/is-param-disabled.js +3 -1
  94. package/dist/request-example/builder/header/serialize-parameter.d.ts +11 -0
  95. package/dist/request-example/builder/header/serialize-parameter.d.ts.map +1 -1
  96. package/dist/request-example/builder/header/serialize-parameter.js +22 -0
  97. package/dist/request-example/builder/helpers/get-example-from-schema.d.ts.map +1 -1
  98. package/dist/request-example/builder/helpers/get-example-from-schema.js +42 -3
  99. package/dist/request-example/builder/helpers/get-example.d.ts.map +1 -1
  100. package/dist/request-example/builder/helpers/get-example.js +5 -2
  101. package/dist/request-example/builder/index.d.ts +2 -2
  102. package/dist/request-example/builder/index.d.ts.map +1 -1
  103. package/dist/request-example/builder/index.js +1 -1
  104. package/dist/request-example/builder/request-factory.d.ts +7 -0
  105. package/dist/request-example/builder/request-factory.d.ts.map +1 -1
  106. package/dist/request-example/builder/request-factory.js +10 -1
  107. package/dist/request-example/builder/resolve-request-factory-url.d.ts.map +1 -1
  108. package/dist/request-example/builder/resolve-request-factory-url.js +18 -2
  109. package/dist/request-example/builder/security/secret-types.d.ts +4 -1
  110. package/dist/request-example/builder/security/secret-types.d.ts.map +1 -1
  111. package/dist/request-example/context/headers.d.ts +1 -2
  112. package/dist/request-example/context/headers.d.ts.map +1 -1
  113. package/dist/request-example/context/security/extract-security-scheme-secrets.d.ts.map +1 -1
  114. package/dist/request-example/context/security/extract-security-scheme-secrets.js +15 -0
  115. package/dist/request-example/index.d.ts +5 -2
  116. package/dist/request-example/index.d.ts.map +1 -1
  117. package/dist/request-example/index.js +4 -1
  118. package/dist/request-example/types.d.ts +1 -2
  119. package/dist/request-example/types.d.ts.map +1 -1
  120. package/dist/request-example/xml/serialize-xml-part.d.ts +9 -0
  121. package/dist/request-example/xml/serialize-xml-part.d.ts.map +1 -0
  122. package/dist/request-example/xml/serialize-xml-part.js +12 -0
  123. package/dist/schemas/extensions/operation/x-code-samples.d.ts +22 -0
  124. package/dist/schemas/extensions/operation/x-code-samples.d.ts.map +1 -1
  125. package/dist/schemas/extensions/operation/x-code-samples.js +4 -0
  126. package/dist/schemas/extensions.d.ts +9 -0
  127. package/dist/schemas/extensions.d.ts.map +1 -1
  128. package/dist/schemas/extensions.js +9 -0
  129. package/dist/schemas/navigation.d.ts +40 -34
  130. package/dist/schemas/navigation.d.ts.map +1 -1
  131. package/dist/schemas/navigation.js +2 -3
  132. package/dist/schemas/reference-config/index.d.ts +24 -4
  133. package/dist/schemas/reference-config/index.d.ts.map +1 -1
  134. package/dist/schemas/reference-config/settings.d.ts +24 -4
  135. package/dist/schemas/reference-config/settings.d.ts.map +1 -1
  136. package/dist/schemas/v3.1/strict/oauthflows.d.ts +26 -0
  137. package/dist/schemas/v3.1/strict/oauthflows.d.ts.map +1 -1
  138. package/dist/schemas/v3.1/strict/oauthflows.js +3 -0
  139. package/dist/schemas/v3.1/strict/openapi-document.d.ts +1582 -147
  140. package/dist/schemas/v3.1/strict/openapi-document.d.ts.map +1 -1
  141. package/dist/schemas/v3.1/strict/operation.d.ts +8 -0
  142. package/dist/schemas/v3.1/strict/operation.d.ts.map +1 -1
  143. package/dist/schemas/v3.1/strict/path-item.d.ts +19 -0
  144. package/dist/schemas/v3.1/strict/path-item.d.ts.map +1 -1
  145. package/dist/schemas/v3.1/strict/path-item.js +5 -0
  146. package/dist/schemas/v3.2/openapi/index.d.ts +5 -0
  147. package/dist/schemas/v3.2/openapi/index.d.ts.map +1 -1
  148. package/dist/schemas/v3.2/openapi/index.js +48 -12
  149. package/dist/schemas/v3.2/openapi/reference.d.ts.map +1 -1
  150. package/dist/schemas/v3.2/openapi/reference.js +11 -3
  151. package/dist/schemas/v3.2/strict/openapi-document.d.ts +842 -140
  152. package/dist/schemas/v3.2/strict/openapi-document.d.ts.map +1 -1
  153. package/dist/schemas/v3.2/strict/openapi-document.js +6 -14
  154. package/dist/schemas/v3.2/strict/operation.d.ts +8 -0
  155. package/dist/schemas/v3.2/strict/operation.d.ts.map +1 -1
  156. package/dist/schemas/v3.2/strict/parameter.d.ts +14 -0
  157. package/dist/schemas/v3.2/strict/parameter.d.ts.map +1 -1
  158. package/dist/schemas/v3.2/strict/parameter.js +2 -0
  159. package/dist/server.d.ts +10 -6
  160. package/dist/server.d.ts.map +1 -1
  161. package/dist/server.js +67 -45
  162. package/package.json +19 -9
  163. package/dist/schemas/v3.1/openapi/index.d.ts +0 -149
  164. package/dist/schemas/v3.1/openapi/index.d.ts.map +0 -1
  165. package/dist/schemas/v3.1/openapi/index.js +0 -732
  166. package/dist/schemas/v3.1/openapi/reference.d.ts +0 -4
  167. package/dist/schemas/v3.1/openapi/reference.d.ts.map +0 -1
  168. package/dist/schemas/v3.1/openapi/reference.js +0 -29
@@ -308,6 +308,15 @@ const getCompositionSelectionIndex = (schemaPath, composition, options, length)
308
308
  }
309
309
  return Math.max(0, Math.min(rawIndex, length - 1));
310
310
  };
311
+ /** A choice applies once at its path; a union inside the chosen branch makes its own choice. */
312
+ const consumeCompositionSelection = (options, schemaPath, composition) => {
313
+ const key = getCompositionSelectionKey(schemaPath, composition);
314
+ if (options?.compositionSelection?.[key] === undefined) {
315
+ return options;
316
+ }
317
+ const { [key]: _selection, ...compositionSelection } = options.compositionSelection;
318
+ return { ...options, compositionSelection };
319
+ };
311
320
  /**
312
321
  * Use the discriminator as a generation hint. Only referenced variants have
313
322
  * implicit names; inline titles are display labels, not discriminator mappings.
@@ -465,7 +474,7 @@ const handleObjectSchema = (schema, options, level, seen, cacheKey, schemaPath,
465
474
  0;
466
475
  const chosen = resolve.schema(oneOfAnyOf[index]);
467
476
  if (chosen) {
468
- Object.assign(response, getExampleFromSchema(chosen, options, {
477
+ Object.assign(response, getExampleFromSchema(chosen, consumeCompositionSelection(options, schemaPath, compositionKeyword), {
469
478
  level: level + 1,
470
479
  schemaPath,
471
480
  seen,
@@ -561,7 +570,7 @@ const handleArraySchema = (schema, options, level, seen, cacheKey, schemaPath, d
561
570
  getDiscriminatorSelectionIndex(items, union, options) ??
562
571
  0;
563
572
  const selected = union[selectedIndex];
564
- const ex = getExampleFromSchema(resolve.schema(selected), options, {
573
+ const ex = getExampleFromSchema(resolve.schema(selected), consumeCompositionSelection(options, itemsSchemaPath, compositionKeyword), {
565
574
  level: level + 1,
566
575
  parentSchema: schema,
567
576
  schemaPath: itemsSchemaPath,
@@ -948,6 +957,36 @@ export const getExampleFromSchema = (schema, options, { level = 0, parentSchema,
948
957
  // Deliberately not cached: the value holds only at this level, and the cache key carries none.
949
958
  return getMaxDepthValue(_schema, options, schemaPath);
950
959
  }
960
+ // Resolve non-object unions before type dispatch so shared root keywords do not
961
+ // hide the selected member. Use the same selection and discriminator rules as other unions.
962
+ const selectedComposition = _schema.oneOf ? 'oneOf' : _schema.anyOf ? 'anyOf' : undefined;
963
+ const selectedVariant = getSelectedVariant(_schema, options, schemaPath);
964
+ if (selectedComposition && selectedVariant) {
965
+ const rootType = 'type' in _schema ? _schema.type : undefined;
966
+ const variantType = 'type' in selectedVariant ? selectedVariant.type : undefined;
967
+ const selectedType = variantType ?? rootType ?? ('items' in _schema && !('properties' in _schema) ? 'array' : undefined);
968
+ if (selectedType !== undefined && selectedType !== 'object') {
969
+ const { oneOf: _oneOf, anyOf: _anyOf, ...base } = _schema;
970
+ const selectedSchema = { ...base, ...selectedVariant };
971
+ // These keywords only constrain their own types, but also drive our type inference.
972
+ if ('properties' in selectedSchema) {
973
+ delete selectedSchema.properties;
974
+ }
975
+ if (selectedType !== 'array' && 'items' in selectedSchema) {
976
+ delete selectedSchema.items;
977
+ }
978
+ const result = getExampleFromSchema(selectedSchema, consumeCompositionSelection(options, schemaPath, selectedComposition), {
979
+ level: level + 1,
980
+ parentSchema,
981
+ name,
982
+ schemaPath,
983
+ seen,
984
+ dynamicScope: childScope,
985
+ });
986
+ seen.delete(targetValue);
987
+ return cache(_schema, result, cacheKey, skipCache);
988
+ }
989
+ }
951
990
  // Handle object types - check for properties to identify objects
952
991
  if ('properties' in _schema || ('type' in _schema && _schema.type === 'object')) {
953
992
  const result = handleObjectSchema(_schema, options, level, seen, cacheKey, schemaPath, dynamicScope);
@@ -982,7 +1021,7 @@ export const getExampleFromSchema = (schema, options, { level = 0, parentSchema,
982
1021
  const resolved = resolve.schema(candidate);
983
1022
  if (resolved) {
984
1023
  seen.delete(targetValue);
985
- return cache(_schema, getExampleFromSchema(resolved, options, {
1024
+ return cache(_schema, getExampleFromSchema(resolved, consumeCompositionSelection(options, schemaPath, compositionKeyword), {
986
1025
  level: level + 1,
987
1026
  schemaPath,
988
1027
  seen,
@@ -1 +1 @@
1
- {"version":3,"file":"get-example.d.ts","sourceRoot":"","sources":["../../../../src/request-example/builder/helpers/get-example.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,aAAa,EACb,eAAe,EACf,eAAe,EACf,iBAAiB,EAClB,MAAM,8DAA8D,CAAA;AAgCrE;;;;;;;;GAQG;AACH,eAAO,MAAM,UAAU,GACrB,OAAO,eAAe,GAAG,iBAAiB,GAAG,eAAe,EAC5D,aAAa,MAAM,GAAG,SAAS,EAC/B,aAAa,MAAM,GAAG,SAAS,KAC9B,aAAa,GAAG,SA6ClB,CAAA"}
1
+ {"version":3,"file":"get-example.d.ts","sourceRoot":"","sources":["../../../../src/request-example/builder/helpers/get-example.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,aAAa,EACb,eAAe,EACf,eAAe,EACf,iBAAiB,EAClB,MAAM,8DAA8D,CAAA;AAgCrE;;;;;;;;GAQG;AACH,eAAO,MAAM,UAAU,GACrB,OAAO,eAAe,GAAG,iBAAiB,GAAG,eAAe,EAC5D,aAAa,MAAM,GAAG,SAAS,EAC/B,aAAa,MAAM,GAAG,SAAS,KAC9B,aAAa,GAAG,SAgDlB,CAAA"}
@@ -1,4 +1,4 @@
1
- import { getResolvedRef } from '../../../helpers/get-resolved-ref.js';
1
+ import { getResolvedRef, mergeSiblingReferences } from '../../../helpers/get-resolved-ref.js';
2
2
  /** Helper to get example from examples object with fallback to example field */
3
3
  const getExampleFromExamples = (examples, exampleField, exampleName) => {
4
4
  if (!examples && exampleField === undefined) {
@@ -46,7 +46,10 @@ export const getExample = (param, exampleName, contentType) => {
46
46
  // Derive value from the schema
47
47
  const resolvedParam = getResolvedRef(param);
48
48
  if (resolvedParam && 'schema' in resolvedParam && resolvedParam.schema) {
49
- const schema = resolvedParam.schema;
49
+ const schema = getResolvedRef(resolvedParam.schema, mergeSiblingReferences);
50
+ if (!schema) {
51
+ return undefined;
52
+ }
50
53
  // Default value
51
54
  if ('default' in schema && schema.default !== undefined) {
52
55
  return { value: schema.default };
@@ -7,7 +7,7 @@ export { BUILD_REQUEST_FAILED, type BuildRequestData, type BuildRequestFailureCo
7
7
  export { deSerializeParameter, deSerializeSchemaValue } from './header/de-serialize-parameter.js';
8
8
  export { filterGlobalCookie } from './header/filter-global-cookies.js';
9
9
  export { isParamDisabled } from './header/is-param-disabled.js';
10
- export { serializeContentValue, serializeDeepObjectStyle, serializeFormStyle, serializeFormStyleForCookies, serializePipeDelimitedStyle, serializeSimpleStyle, serializeSpaceDelimitedStyle, } from './header/serialize-parameter.js';
10
+ export { serializeContentValue, serializeCookieStyle, serializeDeepObjectStyle, serializeFormStyle, serializeFormStyleForCookies, serializePipeDelimitedStyle, serializeSimpleStyle, serializeSpaceDelimitedStyle, } from './header/serialize-parameter.js';
11
11
  export { getEnvironmentVariables } from './helpers/get-environment-variables.js';
12
12
  export { getExample } from './helpers/get-example.js';
13
13
  export { getExampleFromSchema } from './helpers/get-example-from-schema.js';
@@ -18,5 +18,5 @@ export { requestFactory } from './request-factory.js';
18
18
  export { INVALID_REQUEST_FACTORY_URL, MISSING_REQUEST_SERVER_BASE, type ResolveRequestFactoryUrlError, type ResolveRequestFactoryUrlResult, resolveRequestFactoryUrl, } from './resolve-request-factory-url.js';
19
19
  export { isEncryptionSchemeType, isSaslSchemeType } from './security/broker-scheme-types.js';
20
20
  export { buildRequestSecurity } from './security/build-request-security.js';
21
- export type { ApiKeyObjectSecret, EncryptionObjectSecret, GssapiObjectSecret, HttpObjectSecret, OAuth2ObjectSecret, OAuthFlowAuthorizationCodeSecret, OAuthFlowClientCredentialsSecret, OAuthFlowImplicitSecret, OAuthFlowPasswordSecret, OAuthFlowsObjectSecret, OpenIdConnectObjectSecret, SaslObjectSecret, SecuritySchemeObjectSecret, X509ObjectSecret, } from './security/secret-types.js';
21
+ export type { ApiKeyObjectSecret, EncryptionObjectSecret, GssapiObjectSecret, HttpObjectSecret, OAuth2ObjectSecret, OAuthFlowAuthorizationCodeSecret, OAuthFlowClientCredentialsSecret, OAuthFlowDeviceAuthorizationSecret, OAuthFlowImplicitSecret, OAuthFlowPasswordSecret, OAuthFlowsObjectSecret, OpenIdConnectObjectSecret, SaslObjectSecret, SecuritySchemeObjectSecret, X509ObjectSecret, } from './security/secret-types.js';
22
22
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/request-example/builder/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,wBAAwB,EAAE,MAAM,iCAAiC,CAAA;AAC9F,OAAO,EAAE,0BAA0B,EAAE,MAAM,uCAAuC,CAAA;AAClF,OAAO,EACL,6BAA6B,EAC7B,2BAA2B,EAC3B,kBAAkB,EAClB,iBAAiB,GAClB,MAAM,8BAA8B,CAAA;AACrC,OAAO,EAAE,KAAK,sBAAsB,EAAE,iCAAiC,EAAE,MAAM,gCAAgC,CAAA;AAC/G,OAAO,EAAE,uBAAuB,EAAE,MAAM,kCAAkC,CAAA;AAC1E,OAAO,EACL,oBAAoB,EACpB,KAAK,gBAAgB,EACrB,KAAK,uBAAuB,EAC5B,KAAK,kBAAkB,EACvB,KAAK,cAAc,EACnB,YAAY,EACZ,2BAA2B,GAC5B,MAAM,iBAAiB,CAAA;AACxB,OAAO,EAAE,oBAAoB,EAAE,sBAAsB,EAAE,MAAM,iCAAiC,CAAA;AAC9F,OAAO,EAAE,kBAAkB,EAAE,MAAM,gCAAgC,CAAA;AACnE,OAAO,EAAE,eAAe,EAAE,MAAM,4BAA4B,CAAA;AAC5D,OAAO,EACL,qBAAqB,EACrB,wBAAwB,EACxB,kBAAkB,EAClB,4BAA4B,EAC5B,2BAA2B,EAC3B,oBAAoB,EACpB,4BAA4B,GAC7B,MAAM,8BAA8B,CAAA;AACrC,OAAO,EAAE,uBAAuB,EAAE,MAAM,qCAAqC,CAAA;AAC7E,OAAO,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAA;AAClD,OAAO,EAAE,oBAAoB,EAAE,MAAM,mCAAmC,CAAA;AACxE,OAAO,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAA;AAC3D,OAAO,EAAE,kBAAkB,EAAE,MAAM,gCAAgC,CAAA;AACnE,YAAY,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAA;AACvD,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAA;AAClD,OAAO,EACL,2BAA2B,EAC3B,2BAA2B,EAC3B,KAAK,6BAA6B,EAClC,KAAK,8BAA8B,EACnC,wBAAwB,GACzB,MAAM,+BAA+B,CAAA;AACtC,OAAO,EAAE,sBAAsB,EAAE,gBAAgB,EAAE,MAAM,gCAAgC,CAAA;AACzF,OAAO,EAAE,oBAAoB,EAAE,MAAM,mCAAmC,CAAA;AACxE,YAAY,EACV,kBAAkB,EAClB,sBAAsB,EACtB,kBAAkB,EAClB,gBAAgB,EAChB,kBAAkB,EAClB,gCAAgC,EAChC,gCAAgC,EAChC,uBAAuB,EACvB,uBAAuB,EACvB,sBAAsB,EACtB,yBAAyB,EACzB,gBAAgB,EAChB,0BAA0B,EAC1B,gBAAgB,GACjB,MAAM,yBAAyB,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/request-example/builder/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,wBAAwB,EAAE,MAAM,iCAAiC,CAAA;AAC9F,OAAO,EAAE,0BAA0B,EAAE,MAAM,uCAAuC,CAAA;AAClF,OAAO,EACL,6BAA6B,EAC7B,2BAA2B,EAC3B,kBAAkB,EAClB,iBAAiB,GAClB,MAAM,8BAA8B,CAAA;AACrC,OAAO,EAAE,KAAK,sBAAsB,EAAE,iCAAiC,EAAE,MAAM,gCAAgC,CAAA;AAC/G,OAAO,EAAE,uBAAuB,EAAE,MAAM,kCAAkC,CAAA;AAC1E,OAAO,EACL,oBAAoB,EACpB,KAAK,gBAAgB,EACrB,KAAK,uBAAuB,EAC5B,KAAK,kBAAkB,EACvB,KAAK,cAAc,EACnB,YAAY,EACZ,2BAA2B,GAC5B,MAAM,iBAAiB,CAAA;AACxB,OAAO,EAAE,oBAAoB,EAAE,sBAAsB,EAAE,MAAM,iCAAiC,CAAA;AAC9F,OAAO,EAAE,kBAAkB,EAAE,MAAM,gCAAgC,CAAA;AACnE,OAAO,EAAE,eAAe,EAAE,MAAM,4BAA4B,CAAA;AAC5D,OAAO,EACL,qBAAqB,EACrB,oBAAoB,EACpB,wBAAwB,EACxB,kBAAkB,EAClB,4BAA4B,EAC5B,2BAA2B,EAC3B,oBAAoB,EACpB,4BAA4B,GAC7B,MAAM,8BAA8B,CAAA;AACrC,OAAO,EAAE,uBAAuB,EAAE,MAAM,qCAAqC,CAAA;AAC7E,OAAO,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAA;AAClD,OAAO,EAAE,oBAAoB,EAAE,MAAM,mCAAmC,CAAA;AACxE,OAAO,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAA;AAC3D,OAAO,EAAE,kBAAkB,EAAE,MAAM,gCAAgC,CAAA;AACnE,YAAY,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAA;AACvD,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAA;AAClD,OAAO,EACL,2BAA2B,EAC3B,2BAA2B,EAC3B,KAAK,6BAA6B,EAClC,KAAK,8BAA8B,EACnC,wBAAwB,GACzB,MAAM,+BAA+B,CAAA;AACtC,OAAO,EAAE,sBAAsB,EAAE,gBAAgB,EAAE,MAAM,gCAAgC,CAAA;AACzF,OAAO,EAAE,oBAAoB,EAAE,MAAM,mCAAmC,CAAA;AACxE,YAAY,EACV,kBAAkB,EAClB,sBAAsB,EACtB,kBAAkB,EAClB,gBAAgB,EAChB,kBAAkB,EAClB,gCAAgC,EAChC,gCAAgC,EAChC,kCAAkC,EAClC,uBAAuB,EACvB,uBAAuB,EACvB,sBAAsB,EACtB,yBAAyB,EACzB,gBAAgB,EAChB,0BAA0B,EAC1B,gBAAgB,GACjB,MAAM,yBAAyB,CAAA"}
@@ -7,7 +7,7 @@ export { BUILD_REQUEST_FAILED, buildRequest, resolveExecutableRequestUrl, } from
7
7
  export { deSerializeParameter, deSerializeSchemaValue } from './header/de-serialize-parameter.js';
8
8
  export { filterGlobalCookie } from './header/filter-global-cookies.js';
9
9
  export { isParamDisabled } from './header/is-param-disabled.js';
10
- export { serializeContentValue, serializeDeepObjectStyle, serializeFormStyle, serializeFormStyleForCookies, serializePipeDelimitedStyle, serializeSimpleStyle, serializeSpaceDelimitedStyle, } from './header/serialize-parameter.js';
10
+ export { serializeContentValue, serializeCookieStyle, serializeDeepObjectStyle, serializeFormStyle, serializeFormStyleForCookies, serializePipeDelimitedStyle, serializeSimpleStyle, serializeSpaceDelimitedStyle, } from './header/serialize-parameter.js';
11
11
  export { getEnvironmentVariables } from './helpers/get-environment-variables.js';
12
12
  export { getExample } from './helpers/get-example.js';
13
13
  export { getExampleFromSchema } from './helpers/get-example-from-schema.js';
@@ -2,6 +2,7 @@ import type { XScalarEnvironment } from '@scalar/workspace-store/schemas/extensi
2
2
  import type { XScalarCookie } from '@scalar/workspace-store/schemas/extensions/general/x-scalar-cookies';
3
3
  import type { ServerObject } from '@scalar/workspace-store/schemas/v3.2/strict/openapi-document';
4
4
  import type { OperationObject } from '@scalar/workspace-store/schemas/v3.2/strict/operation';
5
+ import { type QuerystringParameter } from '../../helpers/querystring-parameter.js';
5
6
  import { type BuildRequestSecurityResult } from '../../request-example/builder/security/build-request-security.js';
6
7
  import type { SecuritySchemeObjectSecret } from '../../request-example/builder/security/secret-types.js';
7
8
  import type { RequestExampleMeta } from '../../request-example/types.js';
@@ -91,6 +92,8 @@ export type RequestFactory = {
91
92
  * @example { "userId": "{env.USER_ID}" }
92
93
  */
93
94
  variables: Record<string, string>;
95
+ /** Names whose example is already URI-encoded. */
96
+ serializedParameters?: Set<string>;
94
97
  /**
95
98
  * The raw request path string, as entered by the user or read from the OpenAPI schema.
96
99
  * Placeholders are not yet substituted.
@@ -119,6 +122,10 @@ export type RequestFactory = {
119
122
  * The actual query string is assembled later, after variable and environment expansion.
120
123
  */
121
124
  query: URLSearchParams;
125
+ /** URI-ready named-parameter examples, appended without re-encoding. */
126
+ serializedQuery?: string[];
127
+ /** OpenAPI 3.2 whole-query parameter, serialized after environment substitution. */
128
+ querystring?: QuerystringParameter;
122
129
  /**
123
130
  * Headers to be sent with this request, combining spec-provided defaults, user overrides,
124
131
  * and (potentially) security-related fields. All header values are unsubstituted at this stage.
@@ -1 +1 @@
1
- {"version":3,"file":"request-factory.d.ts","sourceRoot":"","sources":["../../../src/request-example/builder/request-factory.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,2EAA2E,CAAA;AACnH,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,qEAAqE,CAAA;AACxG,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,8DAA8D,CAAA;AAChG,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,uDAAuD,CAAA;AAG5F,OAAO,EACL,KAAK,0BAA0B,EAEhC,MAAM,2DAA2D,CAAA;AAClE,OAAO,KAAK,EAAE,0BAA0B,EAAE,MAAM,iDAAiD,CAAA;AACjG,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAA;AAGjE,OAAO,EAAE,KAAK,WAAW,EAAoB,MAAM,2BAA2B,CAAA;AAG9E;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAiEG;AACH,MAAM,MAAM,cAAc,GAAG;IAC3B;;;;;OAKG;IACH,OAAO,EAAE,MAAM,CAAA;IAEf;;OAEG;IACH,IAAI,EAAE;QACJ;;;;;WAKG;QACH,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;QACjC;;;;;WAKG;QACH,GAAG,EAAE,MAAM,CAAA;KACZ,CAAA;IAED;;;;OAIG;IACH,MAAM,EAAE,MAAM,CAAA;IAEd;;;;;;;OAOG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAA;IAEjB;;;OAGG;IACH,KAAK,EAAE,eAAe,CAAA;IAEtB;;;OAGG;IACH,OAAO,EAAE,OAAO,CAAA;IAEhB;;;;OAIG;IACH,IAAI,EAAE,WAAW,GAAG,IAAI,CAAA;IAExB;;;;OAIG;IACH,OAAO,EAAE,aAAa,EAAE,CAAA;IAExB;;;OAGG;IACH,KAAK,EAAE,YAAY,CAAA;IAEnB;;;;OAIG;IACH,QAAQ,EAAE,0BAA0B,EAAE,CAAA;IAEtC;;;OAGG;IACH,8BAA8B,CAAC,EAAE,GAAG,CAAC,MAAM,CAAC,CAAA;IAE5C;;;OAGG;IACH,OAAO,EAAE,OAAO,CAAC;QACf;;;WAGG;QACH,UAAU,EAAE,OAAO,CAAA;QACnB;;;WAGG;QACH,eAAe,EAAE,OAAO,CAAA;KACzB,CAAC,CAAA;CACH,CAAA;AAED;;;GAGG;AACH,eAAO,MAAM,cAAc,GAAI,kKAY5B,kBAAkB,GAAG;IACtB,2BAA2B;IAC3B,SAAS,EAAE,eAAe,CAAA;IAC1B,8CAA8C;IAC9C,WAAW,EAAE,kBAAkB,CAAA;IAC/B,mCAAmC;IACnC,aAAa,EAAE,aAAa,EAAE,CAAA;IAC9B,oDAAoD;IACpD,QAAQ,EAAE,MAAM,CAAA;IAChB,wBAAwB;IACxB,MAAM,EAAE,YAAY,GAAG,IAAI,CAAA;IAC3B,sBAAsB;IACtB,cAAc,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;IACtC,qEAAqE;IACrE,UAAU,EAAE,OAAO,CAAA;IACnB,8DAA8D;IAC9D,uBAAuB,EAAE,0BAA0B,EAAE,CAAA;IACrD,sEAAsE;IACtE,+BAA+B,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;CACzD,KAAG;IACF,OAAO,EAAE,cAAc,CAAA;CAqExB,CAAA"}
1
+ {"version":3,"file":"request-factory.d.ts","sourceRoot":"","sources":["../../../src/request-example/builder/request-factory.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,2EAA2E,CAAA;AACnH,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,qEAAqE,CAAA;AACxG,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,8DAA8D,CAAA;AAChG,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,uDAAuD,CAAA;AAE5F,OAAO,EAAE,KAAK,oBAAoB,EAA2B,MAAM,iCAAiC,CAAA;AAEpG,OAAO,EACL,KAAK,0BAA0B,EAEhC,MAAM,2DAA2D,CAAA;AAClE,OAAO,KAAK,EAAE,0BAA0B,EAAE,MAAM,iDAAiD,CAAA;AACjG,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAA;AAGjE,OAAO,EAAE,KAAK,WAAW,EAAoB,MAAM,2BAA2B,CAAA;AAG9E;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAiEG;AACH,MAAM,MAAM,cAAc,GAAG;IAC3B;;;;;OAKG;IACH,OAAO,EAAE,MAAM,CAAA;IAEf;;OAEG;IACH,IAAI,EAAE;QACJ;;;;;WAKG;QACH,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;QACjC,kDAAkD;QAClD,oBAAoB,CAAC,EAAE,GAAG,CAAC,MAAM,CAAC,CAAA;QAClC;;;;;WAKG;QACH,GAAG,EAAE,MAAM,CAAA;KACZ,CAAA;IAED;;;;OAIG;IACH,MAAM,EAAE,MAAM,CAAA;IAEd;;;;;;;OAOG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAA;IAEjB;;;OAGG;IACH,KAAK,EAAE,eAAe,CAAA;IAEtB,wEAAwE;IACxE,eAAe,CAAC,EAAE,MAAM,EAAE,CAAA;IAE1B,oFAAoF;IACpF,WAAW,CAAC,EAAE,oBAAoB,CAAA;IAElC;;;OAGG;IACH,OAAO,EAAE,OAAO,CAAA;IAEhB;;;;OAIG;IACH,IAAI,EAAE,WAAW,GAAG,IAAI,CAAA;IAExB;;;;OAIG;IACH,OAAO,EAAE,aAAa,EAAE,CAAA;IAExB;;;OAGG;IACH,KAAK,EAAE,YAAY,CAAA;IAEnB;;;;OAIG;IACH,QAAQ,EAAE,0BAA0B,EAAE,CAAA;IAEtC;;;OAGG;IACH,8BAA8B,CAAC,EAAE,GAAG,CAAC,MAAM,CAAC,CAAA;IAE5C;;;OAGG;IACH,OAAO,EAAE,OAAO,CAAC;QACf;;;WAGG;QACH,UAAU,EAAE,OAAO,CAAA;QACnB;;;WAGG;QACH,eAAe,EAAE,OAAO,CAAA;KACzB,CAAC,CAAA;CACH,CAAA;AAED;;;GAGG;AACH,eAAO,MAAM,cAAc,GAAI,kKAY5B,kBAAkB,GAAG;IACtB,2BAA2B;IAC3B,SAAS,EAAE,eAAe,CAAA;IAC1B,8CAA8C;IAC9C,WAAW,EAAE,kBAAkB,CAAA;IAC/B,mCAAmC;IACnC,aAAa,EAAE,aAAa,EAAE,CAAA;IAC9B,oDAAoD;IACpD,QAAQ,EAAE,MAAM,CAAA;IAChB,wBAAwB;IACxB,MAAM,EAAE,YAAY,GAAG,IAAI,CAAA;IAC3B,sBAAsB;IACtB,cAAc,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;IACtC,qEAAqE;IACrE,UAAU,EAAE,OAAO,CAAA;IACnB,8DAA8D;IAC9D,uBAAuB,EAAE,0BAA0B,EAAE,CAAA;IACrD,sEAAsE;IACtE,+BAA+B,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;CACzD,KAAG;IACF,OAAO,EAAE,cAAc,CAAA;CA4ExB,CAAA"}
@@ -1,6 +1,8 @@
1
1
  import { canMethodHaveBody } from '@scalar/helpers/http/can-method-have-body';
2
+ import { isHttpMethod } from '@scalar/helpers/http/is-http-method';
2
3
  import { replacePathVariables } from '@scalar/helpers/regex/replace-variables';
3
4
  import { getResolvedRef } from '@scalar/workspace-store/helpers/get-resolved-ref';
5
+ import { getQuerystringParameter } from '../../helpers/querystring-parameter.js';
4
6
  import { getServerVariables } from '../../request-example/builder/helpers/get-server-variables.js';
5
7
  import { buildRequestSecurity, } from '../../request-example/builder/security/build-request-security.js';
6
8
  import { filterDisabledDefaultHeaders } from '../context/headers.js';
@@ -14,6 +16,10 @@ export const requestFactory = ({ exampleName, globalCookies, method, operation,
14
16
  const requestBody = getResolvedRef(operation.requestBody);
15
17
  /** Build out the request parameters */
16
18
  const params = buildRequestParameters(operation.parameters ?? [], exampleName);
19
+ const querystringParameter = operation.parameters
20
+ ?.map((parameter) => getResolvedRef(parameter))
21
+ .find((parameter) => parameter?.in === 'querystring');
22
+ const querystring = querystringParameter ? getQuerystringParameter(querystringParameter, exampleName) : undefined;
17
23
  const security = buildRequestSecurity(selectedSecuritySchemes);
18
24
  const headers = new Headers({
19
25
  ...filterDisabledDefaultHeaders(operation, exampleName, defaultHeaders),
@@ -50,10 +56,13 @@ export const requestFactory = ({ exampleName, globalCookies, method, operation,
50
56
  proxyUrl,
51
57
  path: {
52
58
  variables: params.pathVariables,
59
+ ...(params.serializedPathParameters ? { serializedParameters: params.serializedPathParameters } : {}),
53
60
  raw: path,
54
61
  },
55
62
  query: params.urlParams,
56
- method: method.toUpperCase(),
63
+ ...(params.serializedQuery ? { serializedQuery: params.serializedQuery } : {}),
64
+ ...(querystring ? { querystring } : {}),
65
+ method: isHttpMethod(method) && method === method.toLowerCase() ? method.toUpperCase() : method,
57
66
  headers,
58
67
  body,
59
68
  cookies: cookiesList,
@@ -1 +1 @@
1
- {"version":3,"file":"resolve-request-factory-url.d.ts","sourceRoot":"","sources":["../../../src/request-example/builder/resolve-request-factory-url.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,MAAM,EAAW,MAAM,8BAA8B,CAAA;AAKnE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,2CAA2C,CAAA;AAE/E;;;GAGG;AACH,eAAO,MAAM,2BAA2B,EAAG,6BAAsC,CAAA;AAEjF;;GAEG;AACH,eAAO,MAAM,2BAA2B,EAAG,6BAAsC,CAAA;AAEjF,MAAM,MAAM,6BAA6B,GAAG,OAAO,2BAA2B,GAAG,OAAO,2BAA2B,CAAA;AAEnH,MAAM,MAAM,8BAA8B,GAAG,MAAM,CAAC,MAAM,EAAE,6BAA6B,CAAC,CAAA;AAK1F;;;;GAIG;AACH,eAAO,MAAM,wBAAwB,GACnC,SAAS,cAAc,EACvB,SAAS;IACP,YAAY,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,MAAM,KAAK,MAAM,GAAG,IAAI,CAAC,CAAA;IACzE,mBAAmB,EAAE,eAAe,CAAA;IACpC;;;OAGG;IACH,6BAA6B,CAAC,EAAE,OAAO,CAAA;CACxC,KACA,8BAqDF,CAAA"}
1
+ {"version":3,"file":"resolve-request-factory-url.d.ts","sourceRoot":"","sources":["../../../src/request-example/builder/resolve-request-factory-url.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,MAAM,EAAW,MAAM,8BAA8B,CAAA;AAMnE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,2CAA2C,CAAA;AAE/E;;;GAGG;AACH,eAAO,MAAM,2BAA2B,EAAG,6BAAsC,CAAA;AAEjF;;GAEG;AACH,eAAO,MAAM,2BAA2B,EAAG,6BAAsC,CAAA;AAEjF,MAAM,MAAM,6BAA6B,GAAG,OAAO,2BAA2B,GAAG,OAAO,2BAA2B,CAAA;AAEnH,MAAM,MAAM,8BAA8B,GAAG,MAAM,CAAC,MAAM,EAAE,6BAA6B,CAAC,CAAA;AAK1F;;;;GAIG;AACH,eAAO,MAAM,wBAAwB,GACnC,SAAS,cAAc,EACvB,SAAS;IACP,YAAY,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,MAAM,KAAK,MAAM,GAAG,IAAI,CAAC,CAAA;IACzE,mBAAmB,EAAE,eAAe,CAAA;IACpC;;;OAGG;IACH,6BAA6B,CAAC,EAAE,OAAO,CAAA;CACxC,KACA,8BAoEF,CAAA"}
@@ -3,6 +3,7 @@ import { err, ok } from '@scalar/helpers/types/result';
3
3
  import { safeRun } from '@scalar/helpers/types/safe-run';
4
4
  import { isRelativePath } from '@scalar/helpers/url/is-relative-path';
5
5
  import { mergeSearchParams, mergeUrls } from '@scalar/helpers/url/merge-urls';
6
+ import { serializeQuerystringParameter } from '../../helpers/querystring-parameter.js';
6
7
  /**
7
8
  * Discriminated error code when the merged request URL is not a complete absolute target
8
9
  * (for example no OpenAPI server, or unresolved `{{environment}}` segments left in the merged URL).
@@ -22,7 +23,9 @@ export const resolveRequestFactoryUrl = (request, options) => {
22
23
  const variables = options.envVariables;
23
24
  const pathVariablesEncoded = safeRun(() => Object.fromEntries(Object.entries(request.path.variables).map(([key, value]) => [
24
25
  key,
25
- encodeURIComponent(replaceEnvVariables(value, variables)),
26
+ request.path.serializedParameters?.has(key)
27
+ ? replaceEnvVariables(value, variables)
28
+ : encodeURIComponent(replaceEnvVariables(value, variables)),
26
29
  ])));
27
30
  if (!pathVariablesEncoded.ok) {
28
31
  return err(INVALID_REQUEST_FACTORY_URL, 'The request URL contains invalid characters in path parameters.');
@@ -54,6 +57,19 @@ export const resolveRequestFactoryUrl = (request, options) => {
54
57
  for (const [key, value] of options.securityQueryParams.entries()) {
55
58
  securityQueryParams.append(key, value);
56
59
  }
57
- url.search = mergeSearchParams(url.searchParams, operationQueryParams, securityQueryParams).toString();
60
+ if (request.querystring) {
61
+ // A whole-query value replaces the server/path query and must never pass through
62
+ // URLSearchParams, which would add '=' and change existing percent encodings.
63
+ const query = serializeQuerystringParameter(request.querystring, variables);
64
+ const extra = mergeSearchParams(operationQueryParams, securityQueryParams).toString();
65
+ url.search = [query, extra].filter(Boolean).join('&');
66
+ }
67
+ else {
68
+ url.search = mergeSearchParams(url.searchParams, operationQueryParams, securityQueryParams).toString();
69
+ }
70
+ if (request.serializedQuery?.length) {
71
+ const query = request.serializedQuery.map((value) => replaceEnvVariables(value, variables)).join('&');
72
+ url.search = [url.search.slice(1), query].filter(Boolean).join('&');
73
+ }
58
74
  return ok(url.toString());
59
75
  };
@@ -1,13 +1,16 @@
1
1
  import type { EncryptionSchemeType, SaslSchemeType } from '../../../request-example/builder/security/broker-scheme-types.js';
2
2
  import type { XScalarAuthUrl, XScalarCredentialsLocation, XScalarSecretClientCertificate, XScalarSecretClientId, XScalarSecretClientSecret, XScalarSecretHTTP, XScalarSecretPrivateKey, XScalarSecretRedirectUri, XScalarSecretRefreshToken, XScalarSecretServiceName, XScalarSecretToken, XScalarTokenUrl } from '../../../schemas/extensions/security/index.js';
3
- import type { OAuthFlowAuthorizationCode, OAuthFlowClientCredentials, OAuthFlowImplicit, OAuthFlowPassword } from '../../../schemas/v3.2/strict/oauth-flow.js';
3
+ import type { OAuthFlowAuthorizationCode, OAuthFlowClientCredentials, OAuthFlowDeviceAuthorization, OAuthFlowImplicit, OAuthFlowPassword } from '../../../schemas/v3.2/strict/oauth-flow.js';
4
4
  import type { ApiKeyObject, HttpObject, MutualTlsObject, OAuth2Object, OpenIdConnectObject } from '../../../schemas/v3.2/strict/security-scheme.js';
5
5
  type OAuthFlowCommonSecret = XScalarSecretClientId & XScalarSecretToken & XScalarSecretRefreshToken & XScalarAuthUrl & XScalarTokenUrl;
6
6
  export type OAuthFlowImplicitSecret = OAuthFlowImplicit & OAuthFlowCommonSecret & XScalarSecretRedirectUri;
7
7
  export type OAuthFlowPasswordSecret = OAuthFlowPassword & OAuthFlowCommonSecret & XScalarSecretHTTP & XScalarSecretClientSecret & XScalarCredentialsLocation;
8
8
  export type OAuthFlowClientCredentialsSecret = OAuthFlowClientCredentials & OAuthFlowCommonSecret & XScalarSecretClientSecret & XScalarCredentialsLocation;
9
9
  export type OAuthFlowAuthorizationCodeSecret = OAuthFlowAuthorizationCode & OAuthFlowCommonSecret & XScalarSecretClientSecret & XScalarSecretRedirectUri & XScalarCredentialsLocation;
10
+ /** Device authorization credentials and tokens shared by the auth UI and request builder. */
11
+ export type OAuthFlowDeviceAuthorizationSecret = OAuthFlowDeviceAuthorization & OAuthFlowCommonSecret & XScalarSecretClientSecret;
10
12
  export type OAuthFlowsObjectSecret = {
13
+ deviceAuthorization?: OAuthFlowDeviceAuthorizationSecret;
11
14
  implicit?: OAuthFlowImplicitSecret;
12
15
  password?: OAuthFlowPasswordSecret;
13
16
  clientCredentials?: OAuthFlowClientCredentialsSecret;
@@ -1 +1 @@
1
- {"version":3,"file":"secret-types.d.ts","sourceRoot":"","sources":["../../../../src/request-example/builder/security/secret-types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"secret-types.d.ts","sourceRoot":"","sources":["../../../../src/request-example/builder/security/secret-types.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,3 @@
1
- import type { HttpMethod } from '@scalar/helpers/http/http-methods';
2
1
  import type { OperationObject } from '@scalar/workspace-store/schemas/v3.2/strict/openapi-document';
3
2
  /**
4
3
  * Restores conventional casing for well-known default headers.
@@ -35,7 +34,7 @@ export declare const filterDisabledDefaultHeaders: (operation: OperationObject,
35
34
  * operation parameter with `in: header` (disabled optional header parameters do not shadow defaults).
36
35
  */
37
36
  export declare const getDefaultHeaders: ({ method, operation, exampleName, hideDisabledHeaders, hideOverriddenHeaders, options, }: {
38
- method: HttpMethod;
37
+ method: string;
39
38
  operation: OperationObject;
40
39
  exampleName: string;
41
40
  hideDisabledHeaders?: boolean;
@@ -1 +1 @@
1
- {"version":3,"file":"headers.d.ts","sourceRoot":"","sources":["../../../src/request-example/context/headers.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,mCAAmC,CAAA;AAEnE,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,8DAA8D,CAAA;AAcnG;;;;;GAKG;AACH,eAAO,MAAM,6BAA6B,GAAI,YAAY,MAAM,KAAG,MACQ,CAAA;AAE3E;;GAEG;AACH,eAAO,MAAM,qCAAqC,GAAI,SAAS,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,KAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CACK,CAAA;AAgDlH;;;;;;GAMG;AACH,eAAO,MAAM,4BAA4B,GACvC,WAAW,eAAe,EAC1B,aAAa,MAAM,EACnB,SAAS,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,KAC9B,MAAM,CAAC,MAAM,EAAE,MAAM,CAIpB,CAAA;AAEJ;;;;;;;;;;;;;;GAcG;AACH,eAAO,MAAM,iBAAiB,GAAI,0FAU/B;IACD,MAAM,EAAE,UAAU,CAAA;IAClB,SAAS,EAAE,eAAe,CAAA;IAC1B,WAAW,EAAE,MAAM,CAAA;IACnB,mBAAmB,CAAC,EAAE,OAAO,CAAA;IAC7B,qBAAqB,CAAC,EAAE,OAAO,CAAA;IAC/B,OAAO,CAAC,EAAE;QACR,UAAU,EAAE,MAAM,CAAA;QAClB,UAAU,EAAE,OAAO,CAAA;KACpB,CAAA;CACF,KAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAuCxB,CAAA"}
1
+ {"version":3,"file":"headers.d.ts","sourceRoot":"","sources":["../../../src/request-example/context/headers.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,8DAA8D,CAAA;AAcnG;;;;;GAKG;AACH,eAAO,MAAM,6BAA6B,GAAI,YAAY,MAAM,KAAG,MACQ,CAAA;AAE3E;;GAEG;AACH,eAAO,MAAM,qCAAqC,GAAI,SAAS,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,KAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CACK,CAAA;AAgDlH;;;;;;GAMG;AACH,eAAO,MAAM,4BAA4B,GACvC,WAAW,eAAe,EAC1B,aAAa,MAAM,EACnB,SAAS,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,KAC9B,MAAM,CAAC,MAAM,EAAE,MAAM,CAIpB,CAAA;AAEJ;;;;;;;;;;;;;;GAcG;AACH,eAAO,MAAM,iBAAiB,GAAI,0FAU/B;IACD,MAAM,EAAE,MAAM,CAAA;IACd,SAAS,EAAE,eAAe,CAAA;IAC1B,WAAW,EAAE,MAAM,CAAA;IACnB,mBAAmB,CAAC,EAAE,OAAO,CAAA;IAC7B,qBAAqB,CAAC,EAAE,OAAO,CAAA;IAC/B,OAAO,CAAC,EAAE;QACR,UAAU,EAAE,MAAM,CAAA;QAClB,UAAU,EAAE,OAAO,CAAA;KACpB,CAAA;CACF,KAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAuCxB,CAAA"}
@@ -1 +1 @@
1
- {"version":3,"file":"extract-security-scheme-secrets.d.ts","sourceRoot":"","sources":["../../../../src/request-example/context/security/extract-security-scheme-secrets.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAA;AAC5D,OAAO,KAAK,EAAE,SAAS,EAA2C,MAAM,uCAAuC,CAAA;AAC/G,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,iDAAiD,CAAA;AAQlF,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,8DAA8D,CAAA;AAExG,OAAO,KAAK,EAEV,kBAAkB,EAClB,sBAAsB,EAStB,gBAAgB,EAChB,0BAA0B,EAE3B,MAAM,iDAAiD,CAAA;AAExD,wGAAwG;AACxG,MAAM,MAAM,gBAAgB,GAAG,oBAAoB,GAAG,WAAW,CAAC,cAAc,CAAC,CAAA;AAEjF,KAAK,gBAAgB,GAAG,gBAAgB,CAAC,MAAM,CAAC,GAAG,sBAAsB,CAAC,MAAM,CAAC,GAAG,MAAM,GAAG,QAAQ,CAAA;AACrG,KAAK,gBAAgB,GAAG;KACrB,CAAC,IAAI,gBAAgB,GAAG;QACvB,IAAI,EAAE,CAAC,CAAA;QACP,WAAW,CAAC,EAAE,MAAM,CAAA;QACpB,QAAQ,CAAC,EAAE,MAAM,CAAA;QACjB,QAAQ,CAAC,EAAE,MAAM,CAAA;QACjB,KAAK,CAAC,EAAE,MAAM,CAAA;KACf;CACF,CAAC,gBAAgB,CAAC,CAAA;AAgMnB,6DAA6D;AAC7D,eAAO,MAAM,4BAA4B,GAEvC,QAAQ,gBAAgB,GAAG,gBAAgB,GAAG,CAAC,kBAAkB,GAAG;IAAE,KAAK,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC,EACvF,WAAW,SAAS,EACpB,MAAM,MAAM,EACZ,cAAc,MAAM,EACpB,oBAAoB,MAAM,KACzB,0BA4HF,CAAA"}
1
+ {"version":3,"file":"extract-security-scheme-secrets.d.ts","sourceRoot":"","sources":["../../../../src/request-example/context/security/extract-security-scheme-secrets.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAA;AAC5D,OAAO,KAAK,EAAE,SAAS,EAA2C,MAAM,uCAAuC,CAAA;AAC/G,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,iDAAiD,CAAA;AAQlF,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,8DAA8D,CAAA;AAExG,OAAO,KAAK,EAEV,kBAAkB,EAClB,sBAAsB,EAUtB,gBAAgB,EAChB,0BAA0B,EAE3B,MAAM,iDAAiD,CAAA;AAGxD,wGAAwG;AACxG,MAAM,MAAM,gBAAgB,GAAG,oBAAoB,GAAG,WAAW,CAAC,cAAc,CAAC,CAAA;AAEjF,KAAK,gBAAgB,GAAG,gBAAgB,CAAC,MAAM,CAAC,GAAG,sBAAsB,CAAC,MAAM,CAAC,GAAG,MAAM,GAAG,QAAQ,CAAA;AACrG,KAAK,gBAAgB,GAAG;KACrB,CAAC,IAAI,gBAAgB,GAAG;QACvB,IAAI,EAAE,CAAC,CAAA;QACP,WAAW,CAAC,EAAE,MAAM,CAAA;QACpB,QAAQ,CAAC,EAAE,MAAM,CAAA;QACjB,QAAQ,CAAC,EAAE,MAAM,CAAA;QACjB,KAAK,CAAC,EAAE,MAAM,CAAA;KACf;CACF,CAAC,gBAAgB,CAAC,CAAA;AAmNnB,6DAA6D;AAC7D,eAAO,MAAM,4BAA4B,GAEvC,QAAQ,gBAAgB,GAAG,gBAAgB,GAAG,CAAC,kBAAkB,GAAG;IAAE,KAAK,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC,EACvF,WAAW,SAAS,EACpB,MAAM,MAAM,EACZ,cAAc,MAAM,EACpB,oBAAoB,MAAM,KACzB,0BA6HF,CAAA"}
@@ -107,6 +107,20 @@ const extractOAuthFlowSecrets = (flows, storeSecrets, oauth2RedirectUri) => {
107
107
  ...extractRefreshTokenSecret(storeSecrets?.clientCredentials),
108
108
  };
109
109
  }
110
+ // Device authorization flow
111
+ if (key === 'deviceAuthorization') {
112
+ acc[key] = {
113
+ ...flow,
114
+ ...mergeFlowSecrets([
115
+ 'x-scalar-secret-client-id',
116
+ 'x-scalar-secret-client-secret',
117
+ 'x-scalar-secret-token',
118
+ 'x-scalar-secret-token-url',
119
+ ], flow, storeSecrets?.deviceAuthorization),
120
+ ...extractCredentialsLocation(flow, storeSecrets?.deviceAuthorization),
121
+ ...extractRefreshTokenSecret(storeSecrets?.deviceAuthorization),
122
+ };
123
+ }
110
124
  // Authorization code flow
111
125
  if (key === 'authorizationCode') {
112
126
  acc[key] = {
@@ -184,6 +198,7 @@ scheme, authStore, name, documentSlug, oauth2RedirectUri) => {
184
198
  password: storeSecrets?.password,
185
199
  clientCredentials: storeSecrets?.clientCredentials,
186
200
  authorizationCode: storeSecrets?.authorizationCode,
201
+ deviceAuthorization: storeSecrets?.deviceAuthorization,
187
202
  }, storeSecrets, oauth2RedirectUri);
188
203
  return {
189
204
  ...scheme,
@@ -1,5 +1,8 @@
1
- export type { ApiKeyObjectSecret, BuildRequestData, BuildRequestFailureCode, BuildRequestResult, EncryptionObjectSecret, GssapiObjectSecret, HttpObjectSecret, OAuth2ObjectSecret, OAuthFlowAuthorizationCodeSecret, OAuthFlowClientCredentialsSecret, OAuthFlowImplicitSecret, OAuthFlowPasswordSecret, OAuthFlowsObjectSecret, OpenIdConnectObjectSecret, RequestPayload, ResolveRequestFactoryUrlError, ResolveRequestFactoryUrlResult, SaslObjectSecret, SecuritySchemeObjectSecret, X509ObjectSecret, } from './builder/index.js';
2
- export { BUILD_REQUEST_FAILED, INVALID_REQUEST_FACTORY_URL, MISSING_REQUEST_SERVER_BASE, type RequestFactory, type SerializedFormProperty, buildDottedNestedRowPredicate, buildRequest, buildRequestSecurity, coerceLeafValueToSchemaType, coerceUntypedValue, deSerializeParameter, deSerializeSchemaValue, filterGlobalCookie, getEnvironmentVariables, getExample, getExampleFromBody, getExampleFromSchema, getResolvedUrl, getSchemaExampleFromBody, getSelectedBodyContentType, getServerVariables, isEncryptionSchemeType, isParamDisabled, isSaslSchemeType, requestFactory, resolveExecutableRequestUrl, resolveLeafSchema, resolveRequestFactoryUrl, serializeContentValue, serializeDeepObjectStyle, serializeFormPropertyWithEncoding, serializeFormStyle, serializeFormStyleForCookies, serializeMultipartArray, serializePipeDelimitedStyle, serializeSimpleStyle, serializeSpaceDelimitedStyle, } from './builder/index.js';
1
+ export type { ApiKeyObjectSecret, BuildRequestData, BuildRequestFailureCode, BuildRequestResult, EncryptionObjectSecret, GssapiObjectSecret, HttpObjectSecret, OAuth2ObjectSecret, OAuthFlowAuthorizationCodeSecret, OAuthFlowClientCredentialsSecret, OAuthFlowDeviceAuthorizationSecret, OAuthFlowImplicitSecret, OAuthFlowPasswordSecret, OAuthFlowsObjectSecret, OpenIdConnectObjectSecret, RequestPayload, ResolveRequestFactoryUrlError, ResolveRequestFactoryUrlResult, SaslObjectSecret, SecuritySchemeObjectSecret, X509ObjectSecret, } from './builder/index.js';
2
+ export { BUILD_REQUEST_FAILED, INVALID_REQUEST_FACTORY_URL, MISSING_REQUEST_SERVER_BASE, type RequestFactory, type SerializedFormProperty, buildDottedNestedRowPredicate, buildRequest, buildRequestSecurity, coerceLeafValueToSchemaType, coerceUntypedValue, deSerializeParameter, deSerializeSchemaValue, filterGlobalCookie, getEnvironmentVariables, getExample, getExampleFromBody, getExampleFromSchema, getResolvedUrl, getSchemaExampleFromBody, getSelectedBodyContentType, getServerVariables, isEncryptionSchemeType, isParamDisabled, isSaslSchemeType, requestFactory, resolveExecutableRequestUrl, resolveLeafSchema, resolveRequestFactoryUrl, serializeContentValue, serializeCookieStyle, serializeDeepObjectStyle, serializeFormPropertyWithEncoding, serializeFormStyle, serializeFormStyleForCookies, serializeMultipartArray, serializePipeDelimitedStyle, serializeSimpleStyle, serializeSpaceDelimitedStyle, } from './builder/index.js';
3
+ export { needsMultipartEncoding } from './builder/body/build-multipart.js';
4
+ export { buildRequestBody } from './builder/body/build-request-body.js';
5
+ export { serializeMultipartBody } from './builder/body/encode-multipart-body.js';
3
6
  export type { MergedSecuritySchemes } from './context/index.js';
4
7
  export { type BuildRequestExampleContext, combineParams, filterDisabledDefaultHeaders, getActiveEnvironment, getActiveProxyUrl, getDefaultHeaders, getRequestExampleContext, getSecurityRequirements, getSecuritySchemes, getSelectedSecurity, getSelectedServer, getServers, isAuthOptional, mergeSecurity, restoreConventionalDefaultHeaderNames, restoreConventionalHeaderName, } from './context/index.js';
5
8
  export { CONTEXT_FUNCTION_NAMES, type ContextFunctionEntry, type ContextFunctionName, POPULAR_CONTEXT_FUNCTION_KEYS, contextFunctions, getContextFunctionComment, isContextFunctionName, } from './functions.js';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/request-example/index.ts"],"names":[],"mappings":"AAAA,YAAY,EACV,kBAAkB,EAClB,gBAAgB,EAChB,uBAAuB,EACvB,kBAAkB,EAClB,sBAAsB,EACtB,kBAAkB,EAClB,gBAAgB,EAChB,kBAAkB,EAClB,gCAAgC,EAChC,gCAAgC,EAChC,uBAAuB,EACvB,uBAAuB,EACvB,sBAAsB,EACtB,yBAAyB,EACzB,cAAc,EACd,6BAA6B,EAC7B,8BAA8B,EAC9B,gBAAgB,EAChB,0BAA0B,EAC1B,gBAAgB,GACjB,MAAM,WAAW,CAAA;AAClB,OAAO,EACL,oBAAoB,EACpB,2BAA2B,EAC3B,2BAA2B,EAC3B,KAAK,cAAc,EACnB,KAAK,sBAAsB,EAC3B,6BAA6B,EAC7B,YAAY,EACZ,oBAAoB,EACpB,2BAA2B,EAC3B,kBAAkB,EAClB,oBAAoB,EACpB,sBAAsB,EACtB,kBAAkB,EAClB,uBAAuB,EACvB,UAAU,EACV,kBAAkB,EAClB,oBAAoB,EACpB,cAAc,EACd,wBAAwB,EACxB,0BAA0B,EAC1B,kBAAkB,EAClB,sBAAsB,EACtB,eAAe,EACf,gBAAgB,EAChB,cAAc,EACd,2BAA2B,EAC3B,iBAAiB,EACjB,wBAAwB,EACxB,qBAAqB,EACrB,wBAAwB,EACxB,iCAAiC,EACjC,kBAAkB,EAClB,4BAA4B,EAC5B,uBAAuB,EACvB,2BAA2B,EAC3B,oBAAoB,EACpB,4BAA4B,GAC7B,MAAM,WAAW,CAAA;AAClB,YAAY,EAAE,qBAAqB,EAAE,MAAM,WAAW,CAAA;AACtD,OAAO,EACL,KAAK,0BAA0B,EAC/B,aAAa,EACb,4BAA4B,EAC5B,oBAAoB,EACpB,iBAAiB,EACjB,iBAAiB,EACjB,wBAAwB,EACxB,uBAAuB,EACvB,kBAAkB,EAClB,mBAAmB,EACnB,iBAAiB,EACjB,UAAU,EACV,cAAc,EACd,aAAa,EACb,qCAAqC,EACrC,6BAA6B,GAC9B,MAAM,WAAW,CAAA;AAClB,OAAO,EACL,sBAAsB,EACtB,KAAK,oBAAoB,EACzB,KAAK,mBAAmB,EACxB,6BAA6B,EAC7B,gBAAgB,EAChB,yBAAyB,EACzB,qBAAqB,GACtB,MAAM,aAAa,CAAA;AACpB,OAAO,EAAE,8BAA8B,EAAE,MAAM,kBAAkB,CAAA;AACjE,YAAY,EAAE,aAAa,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/request-example/index.ts"],"names":[],"mappings":"AAAA,YAAY,EACV,kBAAkB,EAClB,gBAAgB,EAChB,uBAAuB,EACvB,kBAAkB,EAClB,sBAAsB,EACtB,kBAAkB,EAClB,gBAAgB,EAChB,kBAAkB,EAClB,gCAAgC,EAChC,gCAAgC,EAChC,kCAAkC,EAClC,uBAAuB,EACvB,uBAAuB,EACvB,sBAAsB,EACtB,yBAAyB,EACzB,cAAc,EACd,6BAA6B,EAC7B,8BAA8B,EAC9B,gBAAgB,EAChB,0BAA0B,EAC1B,gBAAgB,GACjB,MAAM,WAAW,CAAA;AAClB,OAAO,EACL,oBAAoB,EACpB,2BAA2B,EAC3B,2BAA2B,EAC3B,KAAK,cAAc,EACnB,KAAK,sBAAsB,EAC3B,6BAA6B,EAC7B,YAAY,EACZ,oBAAoB,EACpB,2BAA2B,EAC3B,kBAAkB,EAClB,oBAAoB,EACpB,sBAAsB,EACtB,kBAAkB,EAClB,uBAAuB,EACvB,UAAU,EACV,kBAAkB,EAClB,oBAAoB,EACpB,cAAc,EACd,wBAAwB,EACxB,0BAA0B,EAC1B,kBAAkB,EAClB,sBAAsB,EACtB,eAAe,EACf,gBAAgB,EAChB,cAAc,EACd,2BAA2B,EAC3B,iBAAiB,EACjB,wBAAwB,EACxB,qBAAqB,EACrB,oBAAoB,EACpB,wBAAwB,EACxB,iCAAiC,EACjC,kBAAkB,EAClB,4BAA4B,EAC5B,uBAAuB,EACvB,2BAA2B,EAC3B,oBAAoB,EACpB,4BAA4B,GAC7B,MAAM,WAAW,CAAA;AAClB,OAAO,EAAE,sBAAsB,EAAE,MAAM,gCAAgC,CAAA;AACvE,OAAO,EAAE,gBAAgB,EAAE,MAAM,mCAAmC,CAAA;AACpE,OAAO,EAAE,sBAAsB,EAAE,MAAM,sCAAsC,CAAA;AAC7E,YAAY,EAAE,qBAAqB,EAAE,MAAM,WAAW,CAAA;AACtD,OAAO,EACL,KAAK,0BAA0B,EAC/B,aAAa,EACb,4BAA4B,EAC5B,oBAAoB,EACpB,iBAAiB,EACjB,iBAAiB,EACjB,wBAAwB,EACxB,uBAAuB,EACvB,kBAAkB,EAClB,mBAAmB,EACnB,iBAAiB,EACjB,UAAU,EACV,cAAc,EACd,aAAa,EACb,qCAAqC,EACrC,6BAA6B,GAC9B,MAAM,WAAW,CAAA;AAClB,OAAO,EACL,sBAAsB,EACtB,KAAK,oBAAoB,EACzB,KAAK,mBAAmB,EACxB,6BAA6B,EAC7B,gBAAgB,EAChB,yBAAyB,EACzB,qBAAqB,GACtB,MAAM,aAAa,CAAA;AACpB,OAAO,EAAE,8BAA8B,EAAE,MAAM,kBAAkB,CAAA;AACjE,YAAY,EAAE,aAAa,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAA"}
@@ -1,4 +1,7 @@
1
- export { BUILD_REQUEST_FAILED, INVALID_REQUEST_FACTORY_URL, MISSING_REQUEST_SERVER_BASE, buildDottedNestedRowPredicate, buildRequest, buildRequestSecurity, coerceLeafValueToSchemaType, coerceUntypedValue, deSerializeParameter, deSerializeSchemaValue, filterGlobalCookie, getEnvironmentVariables, getExample, getExampleFromBody, getExampleFromSchema, getResolvedUrl, getSchemaExampleFromBody, getSelectedBodyContentType, getServerVariables, isEncryptionSchemeType, isParamDisabled, isSaslSchemeType, requestFactory, resolveExecutableRequestUrl, resolveLeafSchema, resolveRequestFactoryUrl, serializeContentValue, serializeDeepObjectStyle, serializeFormPropertyWithEncoding, serializeFormStyle, serializeFormStyleForCookies, serializeMultipartArray, serializePipeDelimitedStyle, serializeSimpleStyle, serializeSpaceDelimitedStyle, } from './builder/index.js';
1
+ export { BUILD_REQUEST_FAILED, INVALID_REQUEST_FACTORY_URL, MISSING_REQUEST_SERVER_BASE, buildDottedNestedRowPredicate, buildRequest, buildRequestSecurity, coerceLeafValueToSchemaType, coerceUntypedValue, deSerializeParameter, deSerializeSchemaValue, filterGlobalCookie, getEnvironmentVariables, getExample, getExampleFromBody, getExampleFromSchema, getResolvedUrl, getSchemaExampleFromBody, getSelectedBodyContentType, getServerVariables, isEncryptionSchemeType, isParamDisabled, isSaslSchemeType, requestFactory, resolveExecutableRequestUrl, resolveLeafSchema, resolveRequestFactoryUrl, serializeContentValue, serializeCookieStyle, serializeDeepObjectStyle, serializeFormPropertyWithEncoding, serializeFormStyle, serializeFormStyleForCookies, serializeMultipartArray, serializePipeDelimitedStyle, serializeSimpleStyle, serializeSpaceDelimitedStyle, } from './builder/index.js';
2
+ export { needsMultipartEncoding } from './builder/body/build-multipart.js';
3
+ export { buildRequestBody } from './builder/body/build-request-body.js';
4
+ export { serializeMultipartBody } from './builder/body/encode-multipart-body.js';
2
5
  export { combineParams, filterDisabledDefaultHeaders, getActiveEnvironment, getActiveProxyUrl, getDefaultHeaders, getRequestExampleContext, getSecurityRequirements, getSecuritySchemes, getSelectedSecurity, getSelectedServer, getServers, isAuthOptional, mergeSecurity, restoreConventionalDefaultHeaderNames, restoreConventionalHeaderName, } from './context/index.js';
3
6
  export { CONTEXT_FUNCTION_NAMES, POPULAR_CONTEXT_FUNCTION_KEYS, contextFunctions, getContextFunctionComment, isContextFunctionName, } from './functions.js';
4
7
  export { createVariablesStoreForRequest } from './variable-store/index.js';
@@ -1,4 +1,3 @@
1
- import type { HttpMethod } from '@scalar/helpers/http/http-methods';
2
1
  /**
3
2
  * Re-exported from `@scalar/helpers/types/result` so the rest of the
4
3
  * workspace-store codebase keeps importing `Result` from a colocated
@@ -8,7 +7,7 @@ export type { Result } from '@scalar/helpers/types/result';
8
7
  export type RequestExampleMeta = {
9
8
  /** API path, or webhook name when `isWebhook` is true. */
10
9
  path: string;
11
- method: HttpMethod;
10
+ method: string;
12
11
  exampleName: string;
13
12
  /** Resolve the operation from `document.webhooks` instead of `document.paths`. */
14
13
  isWebhook?: boolean;
@@ -1 +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;;;;GAIG;AACH,YAAY,EAAE,MAAM,EAAE,MAAM,8BAA8B,CAAA;AAE1D,MAAM,MAAM,kBAAkB,GAAG;IAC/B,0DAA0D;IAC1D,IAAI,EAAE,MAAM,CAAA;IACZ,MAAM,EAAE,UAAU,CAAA;IAClB,WAAW,EAAE,MAAM,CAAA;IACnB,kFAAkF;IAClF,SAAS,CAAC,EAAE,OAAO,CAAA;CACpB,CAAA"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/request-example/types.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,YAAY,EAAE,MAAM,EAAE,MAAM,8BAA8B,CAAA;AAE1D,MAAM,MAAM,kBAAkB,GAAG;IAC/B,0DAA0D;IAC1D,IAAI,EAAE,MAAM,CAAA;IACZ,MAAM,EAAE,MAAM,CAAA;IACd,WAAW,EAAE,MAAM,CAAA;IACnB,kFAAkF;IAClF,SAAS,CAAC,EAAE,OAAO,CAAA;CACpB,CAAA"}
@@ -0,0 +1,9 @@
1
+ import type { SchemaObject } from '../../schemas/v3.2/strict/openapi-document.js';
2
+ /**
3
+ * Serialize structured XML part data through a single request boundary.
4
+ * TODO: Delegate to the schema-aware XML serializer when it is integrated.
5
+ * Preserve the legacy root-name contract at this boundary.
6
+ * Already serialized XML strings bypass this adapter in the multipart builder.
7
+ */
8
+ export declare const serializeXmlPart: (value: Record<string, unknown>, schema?: SchemaObject) => string;
9
+ //# sourceMappingURL=serialize-xml-part.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"serialize-xml-part.d.ts","sourceRoot":"","sources":["../../../src/request-example/xml/serialize-xml-part.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,wCAAwC,CAAA;AAE1E;;;;;GAKG;AACH,eAAO,MAAM,gBAAgB,GAAI,OAAO,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,SAAS,YAAY,KAAG,MAGxF,CAAA"}
@@ -0,0 +1,12 @@
1
+ import { json2xml } from '@scalar/helpers/file/json2xml';
2
+ import { unpackProxyObject } from '../../helpers/unpack-proxy.js';
3
+ /**
4
+ * Serialize structured XML part data through a single request boundary.
5
+ * TODO: Delegate to the schema-aware XML serializer when it is integrated.
6
+ * Preserve the legacy root-name contract at this boundary.
7
+ * Already serialized XML strings bypass this adapter in the multipart builder.
8
+ */
9
+ export const serializeXmlPart = (value, schema) => {
10
+ const rootName = schema?.xml?.name ?? 'root';
11
+ return json2xml({ [rootName]: unpackProxyObject(value) });
12
+ };
@@ -3,16 +3,22 @@ export declare const XCodeSamplesSchema: import("@scalar/typebox").TObject<{
3
3
  lang: import("@scalar/typebox").TOptional<import("@scalar/typebox").TString>;
4
4
  label: import("@scalar/typebox").TOptional<import("@scalar/typebox").TString>;
5
5
  source: import("@scalar/typebox").TString;
6
+ example: import("@scalar/typebox").TOptional<import("@scalar/typebox").TString>;
7
+ contentType: import("@scalar/typebox").TOptional<import("@scalar/typebox").TString>;
6
8
  }>>>;
7
9
  'x-code-samples': import("@scalar/typebox").TOptional<import("@scalar/typebox").TArray<import("@scalar/typebox").TObject<{
8
10
  lang: import("@scalar/typebox").TOptional<import("@scalar/typebox").TString>;
9
11
  label: import("@scalar/typebox").TOptional<import("@scalar/typebox").TString>;
10
12
  source: import("@scalar/typebox").TString;
13
+ example: import("@scalar/typebox").TOptional<import("@scalar/typebox").TString>;
14
+ contentType: import("@scalar/typebox").TOptional<import("@scalar/typebox").TString>;
11
15
  }>>>;
12
16
  'x-custom-examples': import("@scalar/typebox").TOptional<import("@scalar/typebox").TArray<import("@scalar/typebox").TObject<{
13
17
  lang: import("@scalar/typebox").TOptional<import("@scalar/typebox").TString>;
14
18
  label: import("@scalar/typebox").TOptional<import("@scalar/typebox").TString>;
15
19
  source: import("@scalar/typebox").TString;
20
+ example: import("@scalar/typebox").TOptional<import("@scalar/typebox").TString>;
21
+ contentType: import("@scalar/typebox").TOptional<import("@scalar/typebox").TString>;
16
22
  }>>>;
17
23
  'x-readme': import("@scalar/typebox").TOptional<import("@scalar/typebox").TObject<{
18
24
  'code-samples': import("@scalar/typebox").TOptional<import("@scalar/typebox").TArray<import("@scalar/typebox").TObject<{
@@ -38,12 +44,18 @@ export declare const XCodeSamplesSchema: import("@scalar/typebox").TObject<{
38
44
  lang: import("@scalar/typebox").TOptional<import("@scalar/typebox").TString>;
39
45
  label: import("@scalar/typebox").TOptional<import("@scalar/typebox").TString>;
40
46
  source: import("@scalar/typebox").TString;
47
+ example: import("@scalar/typebox").TOptional<import("@scalar/typebox").TString>;
48
+ contentType: import("@scalar/typebox").TOptional<import("@scalar/typebox").TString>;
41
49
  }>>>;
42
50
  }>;
43
51
  export type XCodeSample = {
44
52
  lang?: string;
45
53
  label?: string;
46
54
  source: string;
55
+ /** Request body example key used by this sample. */
56
+ example?: string;
57
+ /** Request body media type used by this sample. */
58
+ contentType?: string;
47
59
  };
48
60
  /** A single ReadMe custom code sample. */
49
61
  export type XReadmeCodeSample = {
@@ -63,6 +75,8 @@ export declare const XCodeSample: import("@scalar/validation").ObjectSchema<{
63
75
  lang: import("@scalar/validation").OptionalSchema<import("@scalar/validation").StringSchema>;
64
76
  label: import("@scalar/validation").OptionalSchema<import("@scalar/validation").StringSchema>;
65
77
  source: import("@scalar/validation").StringSchema;
78
+ example: import("@scalar/validation").OptionalSchema<import("@scalar/validation").StringSchema>;
79
+ contentType: import("@scalar/validation").OptionalSchema<import("@scalar/validation").StringSchema>;
66
80
  }>;
67
81
  export type XCodeSamples = {
68
82
  'x-codeSamples'?: XCodeSample[];
@@ -81,16 +95,22 @@ export declare const XCodeSamples: import("@scalar/validation").ObjectSchema<{
81
95
  lang: import("@scalar/validation").OptionalSchema<import("@scalar/validation").StringSchema>;
82
96
  label: import("@scalar/validation").OptionalSchema<import("@scalar/validation").StringSchema>;
83
97
  source: import("@scalar/validation").StringSchema;
98
+ example: import("@scalar/validation").OptionalSchema<import("@scalar/validation").StringSchema>;
99
+ contentType: import("@scalar/validation").OptionalSchema<import("@scalar/validation").StringSchema>;
84
100
  }>>>;
85
101
  'x-code-samples': import("@scalar/validation").OptionalSchema<import("@scalar/validation").ArraySchema<import("@scalar/validation").ObjectSchema<{
86
102
  lang: import("@scalar/validation").OptionalSchema<import("@scalar/validation").StringSchema>;
87
103
  label: import("@scalar/validation").OptionalSchema<import("@scalar/validation").StringSchema>;
88
104
  source: import("@scalar/validation").StringSchema;
105
+ example: import("@scalar/validation").OptionalSchema<import("@scalar/validation").StringSchema>;
106
+ contentType: import("@scalar/validation").OptionalSchema<import("@scalar/validation").StringSchema>;
89
107
  }>>>;
90
108
  'x-custom-examples': import("@scalar/validation").OptionalSchema<import("@scalar/validation").ArraySchema<import("@scalar/validation").ObjectSchema<{
91
109
  lang: import("@scalar/validation").OptionalSchema<import("@scalar/validation").StringSchema>;
92
110
  label: import("@scalar/validation").OptionalSchema<import("@scalar/validation").StringSchema>;
93
111
  source: import("@scalar/validation").StringSchema;
112
+ example: import("@scalar/validation").OptionalSchema<import("@scalar/validation").StringSchema>;
113
+ contentType: import("@scalar/validation").OptionalSchema<import("@scalar/validation").StringSchema>;
94
114
  }>>>;
95
115
  'x-readme': import("@scalar/validation").OptionalSchema<import("@scalar/validation").ObjectSchema<{
96
116
  'code-samples': import("@scalar/validation").OptionalSchema<import("@scalar/validation").ArraySchema<import("@scalar/validation").ObjectSchema<{
@@ -116,6 +136,8 @@ export declare const XCodeSamples: import("@scalar/validation").ObjectSchema<{
116
136
  lang: import("@scalar/validation").OptionalSchema<import("@scalar/validation").StringSchema>;
117
137
  label: import("@scalar/validation").OptionalSchema<import("@scalar/validation").StringSchema>;
118
138
  source: import("@scalar/validation").StringSchema;
139
+ example: import("@scalar/validation").OptionalSchema<import("@scalar/validation").StringSchema>;
140
+ contentType: import("@scalar/validation").OptionalSchema<import("@scalar/validation").StringSchema>;
119
141
  }>>>;
120
142
  }>;
121
143
  //# sourceMappingURL=x-code-samples.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"x-code-samples.d.ts","sourceRoot":"","sources":["../../../../src/schemas/extensions/operation/x-code-samples.ts"],"names":[],"mappings":"AAqCA,eAAO,MAAM,kBAAkB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAQ7B,CAAA;AAEF,MAAM,MAAM,WAAW,GAAG;IACxB,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,MAAM,EAAE,MAAM,CAAA;CACf,CAAA;AAED,0CAA0C;AAC1C,MAAM,MAAM,iBAAiB,GAAG;IAC9B,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,IAAI,EAAE,MAAM,CAAA;IACZ,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,oBAAoB,CAAC,EAAE,MAAM,CAAA;CAC9B,CAAA;AAED,yEAAyE;AACzE,MAAM,MAAM,gBAAgB,GAAG;IAC7B,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;IAChC,QAAQ,CAAC,EAAE,OAAO,CAAA;CACnB,CAAA;AAED,eAAO,MAAM,WAAW;;;;EAItB,CAAA;AAuBF,MAAM,MAAM,YAAY,GAAG;IACzB,eAAe,CAAC,EAAE,WAAW,EAAE,CAAA;IAC/B,gBAAgB,CAAC,EAAE,WAAW,EAAE,CAAA;IAChC,mBAAmB,CAAC,EAAE,WAAW,EAAE,CAAA;IACnC,UAAU,CAAC,EAAE;QACX,cAAc,CAAC,EAAE,iBAAiB,EAAE,CAAA;QACpC,mBAAmB,CAAC,EAAE,MAAM,EAAE,CAAA;KAC/B,CAAA;IACD,sBAAsB,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;IAC/C,sBAAsB,CAAC,EAAE,gBAAgB,GAAG,gBAAgB,EAAE,CAAA;IAC9D,mBAAmB,CAAC,EAAE,WAAW,EAAE,CAAA;CACpC,CAAA;AAED,eAAO,MAAM,YAAY;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAQvB,CAAA"}
1
+ {"version":3,"file":"x-code-samples.d.ts","sourceRoot":"","sources":["../../../../src/schemas/extensions/operation/x-code-samples.ts"],"names":[],"mappings":"AAuCA,eAAO,MAAM,kBAAkB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAQ7B,CAAA;AAEF,MAAM,MAAM,WAAW,GAAG;IACxB,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,MAAM,EAAE,MAAM,CAAA;IACd,oDAAoD;IACpD,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,mDAAmD;IACnD,WAAW,CAAC,EAAE,MAAM,CAAA;CACrB,CAAA;AAED,0CAA0C;AAC1C,MAAM,MAAM,iBAAiB,GAAG;IAC9B,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,IAAI,EAAE,MAAM,CAAA;IACZ,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,oBAAoB,CAAC,EAAE,MAAM,CAAA;CAC9B,CAAA;AAED,yEAAyE;AACzE,MAAM,MAAM,gBAAgB,GAAG;IAC7B,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;IAChC,QAAQ,CAAC,EAAE,OAAO,CAAA;CACnB,CAAA;AAED,eAAO,MAAM,WAAW;;;;;;EAMtB,CAAA;AAuBF,MAAM,MAAM,YAAY,GAAG;IACzB,eAAe,CAAC,EAAE,WAAW,EAAE,CAAA;IAC/B,gBAAgB,CAAC,EAAE,WAAW,EAAE,CAAA;IAChC,mBAAmB,CAAC,EAAE,WAAW,EAAE,CAAA;IACnC,UAAU,CAAC,EAAE;QACX,cAAc,CAAC,EAAE,iBAAiB,EAAE,CAAA;QACpC,mBAAmB,CAAC,EAAE,MAAM,EAAE,CAAA;KAC/B,CAAA;IACD,sBAAsB,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;IAC/C,sBAAsB,CAAC,EAAE,gBAAgB,GAAG,gBAAgB,EAAE,CAAA;IAC9D,mBAAmB,CAAC,EAAE,WAAW,EAAE,CAAA;CACpC,CAAA;AAED,eAAO,MAAM,YAAY;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAQvB,CAAA"}
@@ -4,6 +4,8 @@ const XCodeSampleSchema = Type.Object({
4
4
  lang: Type.Optional(Type.String()),
5
5
  label: Type.Optional(Type.String()),
6
6
  source: Type.String(),
7
+ example: Type.Optional(Type.String()),
8
+ contentType: Type.Optional(Type.String()),
7
9
  });
8
10
  /** A single ReadMe custom code sample (`x-readme.code-samples`). */
9
11
  const XReadmeCodeSampleSchema = Type.Object({
@@ -42,6 +44,8 @@ export const XCodeSample = object({
42
44
  lang: optional(string()),
43
45
  label: optional(string()),
44
46
  source: string(),
47
+ example: optional(string()),
48
+ contentType: optional(string()),
45
49
  });
46
50
  const XReadmeCodeSample = object({
47
51
  language: optional(string()),
@@ -1,6 +1,15 @@
1
1
  export declare const extensions: {
2
2
  readonly document: {
3
3
  readonly navigation: "x-scalar-navigation";
4
+ /**
5
+ * Where a compact document's navigation children are, until they are loaded.
6
+ *
7
+ * Only a compact server workspace sets it, and `resolve(['x-scalar-navigation'])` removes it once
8
+ * the children are on the document. Its presence is what "not loaded yet" means, so it has to
9
+ * travel with the document: `exportWorkspace` carries it, and a store the workspace is loaded
10
+ * into resolves from it.
11
+ */
12
+ readonly navigationChunk: "x-scalar-navigation-chunk";
4
13
  };
5
14
  readonly workspace: {
6
15
  readonly colorMode: "x-scalar-color-mode";
@@ -1 +1 @@
1
- {"version":3,"file":"extensions.d.ts","sourceRoot":"","sources":["../../src/schemas/extensions.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,UAAU;;;;;;;;;;;;CAYb,CAAA"}
1
+ {"version":3,"file":"extensions.d.ts","sourceRoot":"","sources":["../../src/schemas/extensions.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,UAAU;;;QAGnB;;;;;;;WAOG;;;;;;;;;;;CAWG,CAAA"}