@scalar/api-client 1.2.30 → 1.2.31

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/CHANGELOG.md CHANGED
@@ -1,5 +1,14 @@
1
1
  # @scalar/api-client
2
2
 
3
+ ## 1.2.31
4
+
5
+ ### Patch Changes
6
+
7
+ - 5aa656f: feat: [BREAKING CHANGE] use new HTTP proxy (https://github.com/scalar/scalar/pull/1703)
8
+ - Updated dependencies [5aa656f]
9
+ - @scalar/oas-utils@0.1.13
10
+ - @scalar/components@0.7.11
11
+
3
12
  ## 1.2.30
4
13
 
5
14
  ### Patch Changes
@@ -1 +1 @@
1
- {"version":3,"file":"AddressBar.vue.d.ts","sourceRoot":"","sources":["../../../src/components/ApiClient/AddressBar.vue.ts"],"names":[],"mappings":";;;;;;;;;AAsdA,wBASG;AACH,KAAK,sBAAsB,CAAC,CAAC,IAAI,CAAC,SAAS,SAAS,GAAG,KAAK,GAAG,CAAC,CAAC;AACjE,KAAK,6BAA6B,CAAC,CAAC,IAAI;KAAG,CAAC,IAAI,MAAM,CAAC,CAAC,CAAC,GAAG,EAAE,SAAS,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG;QAAE,IAAI,EAAE,OAAO,KAAK,EAAE,QAAQ,CAAC,sBAAsB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;KAAE,GAAG;QAAE,IAAI,EAAE,OAAO,KAAK,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAAC,QAAQ,EAAE,IAAI,CAAA;KAAE;CAAE,CAAC"}
1
+ {"version":3,"file":"AddressBar.vue.d.ts","sourceRoot":"","sources":["../../../src/components/ApiClient/AddressBar.vue.ts"],"names":[],"mappings":";;;;;;;;;AAidA,wBASG;AACH,KAAK,sBAAsB,CAAC,CAAC,IAAI,CAAC,SAAS,SAAS,GAAG,KAAK,GAAG,CAAC,CAAC;AACjE,KAAK,6BAA6B,CAAC,CAAC,IAAI;KAAG,CAAC,IAAI,MAAM,CAAC,CAAC,CAAC,GAAG,EAAE,SAAS,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG;QAAE,IAAI,EAAE,OAAO,KAAK,EAAE,QAAQ,CAAC,sBAAsB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;KAAE,GAAG;QAAE,IAAI,EAAE,OAAO,KAAK,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAAC,QAAQ,EAAE,IAAI,CAAA;KAAE;CAAE,CAAC"}
@@ -3,7 +3,7 @@ declare const _default: __VLS_WithTemplateSlots<import("vue").DefineComponent<__
3
3
  proxyUrl?: string | undefined;
4
4
  readOnly?: boolean | undefined;
5
5
  theme?: ThemeId | undefined;
6
- withDefaultFonts: boolean;
6
+ withDefaultFonts?: boolean | undefined;
7
7
  showSideBar?: boolean | undefined;
8
8
  }>, {
9
9
  readOnly: boolean;
@@ -16,7 +16,7 @@ declare const _default: __VLS_WithTemplateSlots<import("vue").DefineComponent<__
16
16
  proxyUrl?: string | undefined;
17
17
  readOnly?: boolean | undefined;
18
18
  theme?: ThemeId | undefined;
19
- withDefaultFonts: boolean;
19
+ withDefaultFonts?: boolean | undefined;
20
20
  showSideBar?: boolean | undefined;
21
21
  }>, {
22
22
  readOnly: boolean;
@@ -1 +1 @@
1
- {"version":3,"file":"Response.vue.d.ts","sourceRoot":"","sources":["../../../../src/components/ApiClient/Response/Response.vue.ts"],"names":[],"mappings":";AAwRA,wBAKG"}
1
+ {"version":3,"file":"Response.vue.d.ts","sourceRoot":"","sources":["../../../../src/components/ApiClient/Response/Response.vue.ts"],"names":[],"mappings":";AA8PA,wBAKG"}
@@ -1,21 +1,8 @@
1
- declare const _default: import("vue").DefineComponent<__VLS_WithDefaults<__VLS_TypePropsToRuntimeProps<{
2
- active: boolean;
3
- data: any;
4
- headers: Record<string, string>[];
5
- }>, {
6
- active: boolean;
7
- data: null;
8
- }>, {}, unknown, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<import("vue").ExtractPropTypes<__VLS_WithDefaults<__VLS_TypePropsToRuntimeProps<{
9
- active: boolean;
10
- data: any;
11
- headers: Record<string, string>[];
12
- }>, {
13
- active: boolean;
14
- data: null;
15
- }>>>, {
16
- data: any;
17
- active: boolean;
18
- }, {}>;
1
+ declare const _default: import("vue").DefineComponent<__VLS_TypePropsToRuntimeProps<{
2
+ response?: any;
3
+ }>, {}, unknown, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<import("vue").ExtractPropTypes<__VLS_TypePropsToRuntimeProps<{
4
+ response?: any;
5
+ }>>>, {}, {}>;
19
6
  export default _default;
20
7
  type __VLS_NonUndefinedable<T> = T extends undefined ? never : T;
21
8
  type __VLS_TypePropsToRuntimeProps<T> = {
@@ -26,12 +13,4 @@ type __VLS_TypePropsToRuntimeProps<T> = {
26
13
  required: true;
27
14
  };
28
15
  };
29
- type __VLS_WithDefaults<P, D> = {
30
- [K in keyof Pick<P, keyof P>]: K extends keyof D ? __VLS_Prettify<P[K] & {
31
- default: D[K];
32
- }> : P[K];
33
- };
34
- type __VLS_Prettify<T> = {
35
- [K in keyof T]: T[K];
36
- } & {};
37
16
  //# sourceMappingURL=ResponseBody.vue.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"ResponseBody.vue.d.ts","sourceRoot":"","sources":["../../../../src/components/ApiClient/Response/ResponseBody.vue.ts"],"names":[],"mappings":";YAoKY,OAAO;UACT,GAAG;aACA,OAAO,MAAM,EAAE,MAAM,CAAC,EAAE;;;;;YAFzB,OAAO;UACT,GAAG;aACA,OAAO,MAAM,EAAE,MAAM,CAAC,EAAE;;;;;UAD3B,GAAG;YADD,OAAO;;AANnB,wBAUG;AACH,KAAK,sBAAsB,CAAC,CAAC,IAAI,CAAC,SAAS,SAAS,GAAG,KAAK,GAAG,CAAC,CAAC;AACjE,KAAK,6BAA6B,CAAC,CAAC,IAAI;KAAG,CAAC,IAAI,MAAM,CAAC,CAAC,CAAC,GAAG,EAAE,SAAS,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG;QAAE,IAAI,EAAE,OAAO,KAAK,EAAE,QAAQ,CAAC,sBAAsB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;KAAE,GAAG;QAAE,IAAI,EAAE,OAAO,KAAK,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAAC,QAAQ,EAAE,IAAI,CAAA;KAAE;CAAE,CAAC;AAC9M,KAAK,kBAAkB,CAAC,CAAC,EAAE,CAAC,IAAI;KAE1B,CAAC,IAAI,MAAM,IAAI,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC,GAAG,CAAC,SAAS,MAAM,CAAC,GAAG,cAAc,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG;QACxE,OAAO,EAAE,CAAC,CAAC,CAAC,CAAC,CAAA;KACb,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;CACT,CAAC;AACN,KAAK,cAAc,CAAC,CAAC,IAAI;KAAG,CAAC,IAAI,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;CAAG,GAAG,EAAE,CAAC"}
1
+ {"version":3,"file":"ResponseBody.vue.d.ts","sourceRoot":"","sources":["../../../../src/components/ApiClient/Response/ResponseBody.vue.ts"],"names":[],"mappings":";eA0Ka,GAAG;;eAAH,GAAG;;AANhB,wBAQG;AACH,KAAK,sBAAsB,CAAC,CAAC,IAAI,CAAC,SAAS,SAAS,GAAG,KAAK,GAAG,CAAC,CAAC;AACjE,KAAK,6BAA6B,CAAC,CAAC,IAAI;KAAG,CAAC,IAAI,MAAM,CAAC,CAAC,CAAC,GAAG,EAAE,SAAS,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG;QAAE,IAAI,EAAE,OAAO,KAAK,EAAE,QAAQ,CAAC,sBAAsB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;KAAE,GAAG;QAAE,IAAI,EAAE,OAAO,KAAK,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAAC,QAAQ,EAAE,IAAI,CAAA;KAAE;CAAE,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"ResponseMetaInformation.vue.d.ts","sourceRoot":"","sources":["../../../../src/components/ApiClient/Response/ResponseMetaInformation.vue.ts"],"names":[],"mappings":";cAqKuD,GAAG;;cAAH,GAAG;;AAL1D,wBAMG;AACH,KAAK,sBAAsB,CAAC,CAAC,IAAI,CAAC,SAAS,SAAS,GAAG,KAAK,GAAG,CAAC,CAAC;AACjE,KAAK,6BAA6B,CAAC,CAAC,IAAI;KAAG,CAAC,IAAI,MAAM,CAAC,CAAC,CAAC,GAAG,EAAE,SAAS,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG;QAAE,IAAI,EAAE,OAAO,KAAK,EAAE,QAAQ,CAAC,sBAAsB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;KAAE,GAAG;QAAE,IAAI,EAAE,OAAO,KAAK,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAAC,QAAQ,EAAE,IAAI,CAAA;KAAE;CAAE,CAAC"}
1
+ {"version":3,"file":"ResponseMetaInformation.vue.d.ts","sourceRoot":"","sources":["../../../../src/components/ApiClient/Response/ResponseMetaInformation.vue.ts"],"names":[],"mappings":";cAmKuD,GAAG;;cAAH,GAAG;;AAL1D,wBAMG;AACH,KAAK,sBAAsB,CAAC,CAAC,IAAI,CAAC,SAAS,SAAS,GAAG,KAAK,GAAG,CAAC,CAAC;AACjE,KAAK,6BAA6B,CAAC,CAAC,IAAI;KAAG,CAAC,IAAI,MAAM,CAAC,CAAC,CAAC,GAAG,EAAE,SAAS,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG;QAAE,IAAI,EAAE,OAAO,KAAK,EAAE,QAAQ,CAAC,sBAAsB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;KAAE,GAAG;QAAE,IAAI,EAAE,OAAO,KAAK,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAAC,QAAQ,EAAE,IAAI,CAAA;KAAE;CAAE,CAAC"}
@@ -5,6 +5,7 @@ export * from './findVariables';
5
5
  export * from './getRequestFromAuthentication';
6
6
  export * from './humanDiff';
7
7
  export * from './mapFromArray';
8
+ export * from './normalizeHeaders';
8
9
  export * from './normalizePath';
9
10
  export * from './normalizeRequestMethod';
10
11
  export * from './normalizeUrl';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/helpers/index.ts"],"names":[],"mappings":"AAAA,cAAc,yBAAyB,CAAA;AACvC,cAAc,4BAA4B,CAAA;AAC1C,cAAc,wBAAwB,CAAA;AACtC,cAAc,iBAAiB,CAAA;AAC/B,cAAc,gCAAgC,CAAA;AAC9C,cAAc,aAAa,CAAA;AAC3B,cAAc,gBAAgB,CAAA;AAC9B,cAAc,iBAAiB,CAAA;AAC/B,cAAc,0BAA0B,CAAA;AACxC,cAAc,gBAAgB,CAAA;AAC9B,cAAc,8BAA8B,CAAA;AAC5C,cAAc,oBAAoB,CAAA;AAClC,cAAc,eAAe,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/helpers/index.ts"],"names":[],"mappings":"AAAA,cAAc,yBAAyB,CAAA;AACvC,cAAc,4BAA4B,CAAA;AAC1C,cAAc,wBAAwB,CAAA;AACtC,cAAc,iBAAiB,CAAA;AAC/B,cAAc,gCAAgC,CAAA;AAC9C,cAAc,aAAa,CAAA;AAC3B,cAAc,gBAAgB,CAAA;AAC9B,cAAc,oBAAoB,CAAA;AAClC,cAAc,iBAAiB,CAAA;AAC/B,cAAc,0BAA0B,CAAA;AACxC,cAAc,gBAAgB,CAAA;AAC9B,cAAc,8BAA8B,CAAA;AAC5C,cAAc,oBAAoB,CAAA;AAClC,cAAc,eAAe,CAAA"}
@@ -0,0 +1,9 @@
1
+ /**
2
+ * Transforms all header keys to lowercase
3
+ *
4
+ * { 'Content-Type': 'application/json' } -> { 'content-type': 'application/json' }
5
+ */
6
+ export declare const normalizeHeaders: (headers?: Record<string, any>) => {
7
+ [k: string]: any;
8
+ };
9
+ //# sourceMappingURL=normalizeHeaders.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"normalizeHeaders.d.ts","sourceRoot":"","sources":["../../src/helpers/normalizeHeaders.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,eAAO,MAAM,gBAAgB,aAAc,OAAO,MAAM,EAAE,GAAG,CAAC;;CAK3D,CAAA"}
@@ -1 +1 @@
1
- {"version":3,"file":"normalizeUrl.d.ts","sourceRoot":"","sources":["../../src/helpers/normalizeUrl.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,eAAO,MAAM,YAAY,SAAU,MAAM,WAwBxC,CAAA"}
1
+ {"version":3,"file":"normalizeUrl.d.ts","sourceRoot":"","sources":["../../src/helpers/normalizeUrl.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,eAAO,MAAM,YAAY,SAAU,MAAM,WAuBxC,CAAA"}
@@ -1 +1 @@
1
- {"version":3,"file":"sendRequest.d.ts","sourceRoot":"","sources":["../../src/helpers/sendRequest.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAGV,aAAa,EACb,iBAAiB,EAClB,MAAM,UAAU,CAAA;AAUjB;;GAEG;AACH,wBAAsB,WAAW,CAC/B,OAAO,EAAE,iBAAiB,EAC1B,QAAQ,CAAC,EAAE,MAAM,GAChB,OAAO,CAAC,aAAa,GAAG,IAAI,CAAC,CAyJ/B"}
1
+ {"version":3,"file":"sendRequest.d.ts","sourceRoot":"","sources":["../../src/helpers/sendRequest.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAGV,aAAa,EACb,iBAAiB,EAClB,MAAM,UAAU,CAAA;AAwBjB;;GAEG;AACH,wBAAsB,WAAW,CAC/B,OAAO,EAAE,iBAAiB,EAC1B,QAAQ,CAAC,EAAE,MAAM,GAChB,OAAO,CAAC,aAAa,GAAG,IAAI,CAAC,CAiJ/B"}
package/dist/index.css CHANGED
@@ -679,14 +679,14 @@ to {
679
679
  color: var(--scalar-api-client-color);
680
680
  }
681
681
 
682
- .loader[data-v-2967e07a] {
682
+ .loader[data-v-b1791ec2] {
683
683
  position: absolute;
684
684
  z-index: 3;
685
685
  height: 2px;
686
686
  background: var(--scalar-api-client-color);
687
- animation: loading-2967e07a 5s cubic-bezier(0, 0.5, 0.25, 1);
687
+ animation: loading-b1791ec2 5s cubic-bezier(0, 0.5, 0.25, 1);
688
688
  }
689
- @keyframes loading-2967e07a {
689
+ @keyframes loading-b1791ec2 {
690
690
  0% {
691
691
  width: 0;
692
692
  }
@@ -694,14 +694,14 @@ to {
694
694
  width: 100%;
695
695
  }
696
696
  }
697
- .address-bar[data-v-2967e07a] {
697
+ .address-bar[data-v-b1791ec2] {
698
698
  width: 100%;
699
699
  padding: 10px;
700
700
  display: flex;
701
701
  align-items: center;
702
702
  position: relative;
703
703
  }
704
- .url-form[data-v-2967e07a] {
704
+ .url-form[data-v-b1791ec2] {
705
705
  display: flex;
706
706
  width: 720px;
707
707
  align-items: stretch;
@@ -711,11 +711,11 @@ to {
711
711
  z-index: 2;
712
712
  max-width: calc(100% - 68px);
713
713
  }
714
- .url-form[data-v-2967e07a] .cm-content {
714
+ .url-form[data-v-b1791ec2] .cm-content {
715
715
  display: flex;
716
716
  align-items: center;
717
717
  }
718
- .url-form-field[data-v-2967e07a] {
718
+ .url-form-field[data-v-b1791ec2] {
719
719
  align-items: stretch;
720
720
  border: 1px solid var(--scalar-border-color);
721
721
  border-radius: var(--scalar-radius);
@@ -725,7 +725,7 @@ to {
725
725
  padding: 2px;
726
726
  width: 100%;
727
727
  }
728
- .url-form-input-wrapper[data-v-2967e07a] {
728
+ .url-form-input-wrapper[data-v-b1791ec2] {
729
729
  display: flex;
730
730
  position: relative;
731
731
  overflow-x: auto;
@@ -735,7 +735,7 @@ to {
735
735
  /* Firefox supports */
736
736
  scroll-timeline: --scroll-timeline horizontal;
737
737
  }
738
- .url-form-input[data-v-2967e07a] {
738
+ .url-form-input[data-v-b1791ec2] {
739
739
  background: var(--scalar-background-1);
740
740
  color: var(--scalar-color-1);
741
741
  font-weight: var(--scalar-semibold);
@@ -746,18 +746,18 @@ to {
746
746
  max-width: calc(100% - 153px);
747
747
  margin-right: auto;
748
748
  }
749
- .url-form-input-fade__left[data-v-2967e07a],
750
- .url-form-input-fade__right[data-v-2967e07a] {
749
+ .url-form-input-fade__left[data-v-b1791ec2],
750
+ .url-form-input-fade__right[data-v-b1791ec2] {
751
751
  content: '';
752
752
  position: sticky;
753
753
  height: 100%;
754
- animation-name: fadein-2967e07a;
754
+ animation-name: fadein-b1791ec2;
755
755
  animation-duration: 1ms;
756
756
  animation-direction: reverse;
757
757
  animation-timeline: --scroll-timeline;
758
758
  z-index: 1;
759
759
  }
760
- .url-form-input-fade__left[data-v-2967e07a] {
760
+ .url-form-input-fade__left[data-v-b1791ec2] {
761
761
  background: linear-gradient(
762
762
  -90deg,
763
763
  color-mix(in srgb, var(--scalar-background-1), transparent 100%) 0%,
@@ -767,7 +767,7 @@ to {
767
767
  left: 0;
768
768
  min-width: 6px;
769
769
  }
770
- .url-form-input-fade__right[data-v-2967e07a] {
770
+ .url-form-input-fade__right[data-v-b1791ec2] {
771
771
  background: linear-gradient(
772
772
  90deg,
773
773
  color-mix(in srgb, var(--scalar-background-1), transparent 100%) 0%,
@@ -778,7 +778,7 @@ to {
778
778
  min-width: 24px;
779
779
  animation-direction: reverse;
780
780
  }
781
- @keyframes fadein-2967e07a {
781
+ @keyframes fadein-b1791ec2 {
782
782
  0% {
783
783
  opacity: 0;
784
784
  }
@@ -787,18 +787,18 @@ to {
787
787
  }
788
788
  }
789
789
  @media screen and (max-width: 720px) {
790
- .url-form-input[data-v-2967e07a] {
790
+ .url-form-input[data-v-b1791ec2] {
791
791
  max-width: calc(100% - 113px);
792
792
  }
793
793
  }
794
- .url-form-input[data-v-2967e07a] .cm-scroller {
794
+ .url-form-input[data-v-b1791ec2] .cm-scroller {
795
795
  overflow-y: hidden;
796
796
  }
797
- .url-form-input[data-v-2967e07a] .cm-line {
797
+ .url-form-input[data-v-b1791ec2] .cm-line {
798
798
  font-size: var(--scalar-micro);
799
799
  padding: 0;
800
800
  }
801
- .history[data-v-2967e07a] {
801
+ .history[data-v-b1791ec2] {
802
802
  appearance: none;
803
803
  -webkit-appearance: none;
804
804
  background: transparent;
@@ -807,7 +807,7 @@ to {
807
807
  align-items: center;
808
808
  border-radius: var(--scalar-radius);
809
809
  }
810
- .send-button[type='submit'][data-v-2967e07a] {
810
+ .send-button[type='submit'][data-v-b1791ec2] {
811
811
  font-size: var(--scalar-micro);
812
812
  letter-spacing: 0.25px;
813
813
  color: var(--scalar-button-1-color);
@@ -826,36 +826,36 @@ to {
826
826
  overflow: hidden;
827
827
  flex-shrink: 0;
828
828
  }
829
- .send-button[data-v-2967e07a]:hover {
829
+ .send-button[data-v-b1791ec2]:hover {
830
830
  background: var(--scalar-button-1-hover);
831
831
  }
832
- .send-button svg[data-v-2967e07a] {
832
+ .send-button svg[data-v-b1791ec2] {
833
833
  width: 12px;
834
834
  height: 12px;
835
835
  flex-shrink: 0;
836
836
  margin-right: 6px;
837
837
  position: relative;
838
838
  }
839
- .send-button span[data-v-2967e07a] {
839
+ .send-button span[data-v-b1791ec2] {
840
840
  position: relative;
841
841
  }
842
842
  @media screen and (max-width: 720px) {
843
- .history-toggle span[data-v-2967e07a],
844
- .send-button span[data-v-2967e07a] {
843
+ .history-toggle span[data-v-b1791ec2],
844
+ .send-button span[data-v-b1791ec2] {
845
845
  display: none;
846
846
  }
847
- .history-toggle svg[data-v-2967e07a],
848
- .send-button svg[data-v-2967e07a] {
847
+ .history-toggle svg[data-v-b1791ec2],
848
+ .send-button svg[data-v-b1791ec2] {
849
849
  margin-right: 0;
850
850
  }
851
851
  }
852
- .send-button[disabled][data-v-2967e07a] {
852
+ .send-button[disabled][data-v-b1791ec2] {
853
853
  pointer-events: none;
854
854
  color: var(--scalar-color-2);
855
855
  background: var(--scalar-background-3);
856
856
  border: 1px solid var(--scalar-border-color);
857
857
  }
858
- .history-toggle[data-v-2967e07a] {
858
+ .history-toggle[data-v-b1791ec2] {
859
859
  padding: 7px;
860
860
  line-height: 30px;
861
861
  color: var(--scalar-color-3);
@@ -873,16 +873,16 @@ to {
873
873
  background-color 0.15s ease-in-out,
874
874
  color 0.15s ease-in-out;
875
875
  }
876
- .history-toggle[data-v-2967e07a]:hover {
876
+ .history-toggle[data-v-b1791ec2]:hover {
877
877
  background-color: var(--scalar-background-2);
878
878
  color: var(--scalar-color-1);
879
879
  }
880
- .history-toggle svg[data-v-2967e07a] {
880
+ .history-toggle svg[data-v-b1791ec2] {
881
881
  height: 13px;
882
882
  width: 13px;
883
883
  color: currentColor;
884
884
  }
885
- .address-bar-content[data-v-2967e07a] {
885
+ .address-bar-content[data-v-b1791ec2] {
886
886
  width: 640px;
887
887
  height: 100%;
888
888
  background: var(--scalar-background-1);
@@ -897,21 +897,21 @@ to {
897
897
  opacity 0.01s ease-in-out 0.5s;
898
898
  pointer-events: none;
899
899
  }
900
- .address-bar--with-history[data-v-2967e07a] {
900
+ .address-bar--with-history[data-v-b1791ec2] {
901
901
  z-index: 100000;
902
902
  }
903
- .address-bar--with-history .address-bar-content[data-v-2967e07a] {
903
+ .address-bar--with-history .address-bar-content[data-v-b1791ec2] {
904
904
  transform: translate3d(0, 0, 0);
905
905
  opacity: 1;
906
906
  pointer-events: all;
907
907
  transition: transform 0.5s cubic-bezier(0.77, 0, 0.175, 1);
908
908
  }
909
- .address-bar--with-history .address-bar-close[data-v-2967e07a] {
909
+ .address-bar--with-history .address-bar-close[data-v-b1791ec2] {
910
910
  opacity: 1;
911
911
  pointer-events: all;
912
912
  cursor: pointer;
913
913
  }
914
- .address-bar-close[data-v-2967e07a] {
914
+ .address-bar-close[data-v-b1791ec2] {
915
915
  width: 100%;
916
916
  height: 100%;
917
917
  position: fixed;
@@ -2078,29 +2078,6 @@ border-top-left-radius: var(--scalar-radius);
2078
2078
  overflow: auto;
2079
2079
  }
2080
2080
 
2081
- .scalar-api-client__status--1xx:before,
2082
- .scalar-api-client__status--2xx:before,
2083
- .scalar-api-client__status--3xx:before,
2084
- .scalar-api-client__status--4xx:before,
2085
- .scalar-api-client__status--5xx:before,
2086
- .scalar-api-client__status--6xx:before {
2087
- content: '';
2088
- width: 10px;
2089
- height: 10px;
2090
- border-radius: 50%;
2091
- margin-right: 4px;
2092
- background: var(--scalar-background-2);
2093
- }
2094
- .scalar-api-client__status--2xx:before {
2095
- background: var(--scalar-color-green);
2096
- }
2097
- .scalar-api-client__status--3xx:before {
2098
- background: var(--scalar-color-orange);
2099
- }
2100
- .scalar-api-client__status--4xx:before {
2101
- background: var(--scalar-color-red);
2102
- }
2103
-
2104
2081
  .scalar-api-client__main__right {
2105
2082
  width: 50%;
2106
2083
  }
package/dist/index.js CHANGED
@@ -26052,6 +26052,9 @@ function mapFromArray(arr, key, valueKey) {
26052
26052
  });
26053
26053
  return obj;
26054
26054
  }
26055
+ const normalizeHeaders = (headers) => Object.fromEntries(
26056
+ Object.entries(headers ?? {}).map(([key, value]) => [key.toLowerCase(), value])
26057
+ );
26055
26058
  const normalizePath = (path) => {
26056
26059
  if (typeof path !== "string") {
26057
26060
  return "";
@@ -26093,9 +26096,7 @@ const normalizeUrl = (url) => {
26093
26096
  );
26094
26097
  sanitizedUrl = `http://${sanitizedUrl}`;
26095
26098
  }
26096
- const urlObject = new URL(sanitizedUrl);
26097
- urlObject.hostname = urlObject.hostname.trim().toLowerCase();
26098
- return urlObject.toString();
26099
+ return sanitizedUrl.trim();
26099
26100
  };
26100
26101
  function enable(items) {
26101
26102
  return (items ?? []).map((item) => ({ ...item, enabled: true }));
@@ -26149,6 +26150,14 @@ const replaceVariables = (url, variables2) => {
26149
26150
  return acc.replace(`{${key}}`, value.toString());
26150
26151
  }, url);
26151
26152
  };
26153
+ function redirectToProxy(proxy, url) {
26154
+ return `${proxy}?scalar_url=${encodeURI(url)}`;
26155
+ }
26156
+ function isRequestToLocalhost(url) {
26157
+ const { hostname } = new URL(url);
26158
+ const listOfLocalUrls = ["localhost", "127.0.0.1", "[::1]"];
26159
+ return listOfLocalUrls.includes(hostname);
26160
+ }
26152
26161
  async function sendRequest(request, proxyUrl) {
26153
26162
  var _a2;
26154
26163
  const method = normalizeRequestMethod(request.type);
@@ -26212,46 +26221,40 @@ async function sendRequest(request, proxyUrl) {
26212
26221
  headers,
26213
26222
  data: request.body
26214
26223
  };
26215
- const axiosRequestConfig = proxyUrl ? {
26216
- method: "POST",
26217
- url: proxyUrl,
26218
- data: requestConfig
26219
- } : {
26224
+ const shouldUseProxy = proxyUrl && !isRequestToLocalhost(requestConfig.url);
26225
+ const axiosRequestConfig = {
26220
26226
  method: requestConfig.method,
26221
- url: requestConfig.url,
26227
+ url: shouldUseProxy ? redirectToProxy(proxyUrl, requestConfig.url) : requestConfig.url,
26222
26228
  headers: requestConfig.headers,
26223
26229
  data: requestConfig.data
26224
26230
  };
26225
26231
  if (headers.cookies) {
26226
26232
  axiosRequestConfig.withCredentials = true;
26227
26233
  }
26228
- if (proxyUrl) {
26229
- console.info(`${requestConfig.method} ${proxyUrl} → ${requestConfig.url}`);
26234
+ if (shouldUseProxy) {
26235
+ console.info(
26236
+ `${requestConfig.method} ${requestConfig.url} (proxy: ${proxyUrl})`
26237
+ );
26230
26238
  } else {
26231
26239
  console.info(`${requestConfig.method} ${requestConfig.url}`);
26232
26240
  }
26233
- const response = await axios(axiosRequestConfig).then((result) => {
26234
- if (proxyUrl) {
26235
- return {
26236
- ...result.data,
26237
- error: false
26238
- };
26239
- }
26240
- return {
26241
- ...result,
26242
- statusCode: result.status,
26243
- data: JSON.stringify(result.data),
26244
- error: false
26245
- };
26246
- }).catch((error) => {
26241
+ const response = await axios(axiosRequestConfig).then((result) => ({
26242
+ ...result,
26243
+ statusCode: result.status,
26244
+ data: result.data,
26245
+ error: false
26246
+ })).catch((error) => {
26247
+ var _a3, _b;
26247
26248
  const { response: errorResponse } = error;
26249
+ console.error("ERROR", error);
26248
26250
  return {
26249
- headers: {
26250
- "content-type": "application/json; charset=utf-8"
26251
- },
26251
+ data: error.code ?? error.message,
26252
26252
  ...errorResponse,
26253
26253
  statusCode: (errorResponse == null ? void 0 : errorResponse.status) ?? 0,
26254
- data: JSON.stringify((errorResponse == null ? void 0 : errorResponse.data) ?? { error: error.code })
26254
+ error: {
26255
+ message: ((_a3 = errorResponse == null ? void 0 : errorResponse.data) == null ? void 0 : _a3.message) ?? error.message,
26256
+ stack: ((_b = errorResponse == null ? void 0 : errorResponse.data) == null ? void 0 : _b.stack) ?? error.stack
26257
+ }
26255
26258
  };
26256
26259
  });
26257
26260
  return {
@@ -26397,7 +26400,7 @@ const _sfc_main$x = /* @__PURE__ */ defineComponent({
26397
26400
  }
26398
26401
  });
26399
26402
  const RequestMethodSelect = /* @__PURE__ */ _export_sfc(_sfc_main$x, [["__scopeId", "data-v-0f1e5bdc"]]);
26400
- const _withScopeId$5 = (n) => (pushScopeId("data-v-2967e07a"), n = n(), popScopeId(), n);
26403
+ const _withScopeId$5 = (n) => (pushScopeId("data-v-b1791ec2"), n = n(), popScopeId(), n);
26401
26404
  const _hoisted_1$s = {
26402
26405
  key: 0,
26403
26406
  class: "loader"
@@ -26478,7 +26481,6 @@ const _sfc_main$w = /* @__PURE__ */ defineComponent({
26478
26481
  const {
26479
26482
  activeRequest: activeRequest2,
26480
26483
  addRequestToHistory: addRequestToHistory2,
26481
- requestHistory: requestHistory2,
26482
26484
  requestHistoryOrder: requestHistoryOrder2,
26483
26485
  readOnly: readOnly2,
26484
26486
  setActiveRequest: setActiveRequest2
@@ -26583,7 +26585,7 @@ const _sfc_main$w = /* @__PURE__ */ defineComponent({
26583
26585
  };
26584
26586
  }
26585
26587
  });
26586
- const AddressBar = /* @__PURE__ */ _export_sfc(_sfc_main$w, [["__scopeId", "data-v-2967e07a"]]);
26588
+ const AddressBar = /* @__PURE__ */ _export_sfc(_sfc_main$w, [["__scopeId", "data-v-b1791ec2"]]);
26587
26589
  const clickGeneratedParameter = useEventBus(Symbol());
26588
26590
  const _hoisted_1$r = { class: "scalar-api-client-item-topbar" };
26589
26591
  const _hoisted_2$k = { class: "scalar-api-client__toggle-container" };
@@ -32760,16 +32762,14 @@ const _hoisted_2$3 = {
32760
32762
  const _sfc_main$9 = /* @__PURE__ */ defineComponent({
32761
32763
  __name: "ResponseBody",
32762
32764
  props: {
32763
- active: { type: Boolean, default: false },
32764
- data: { default: null },
32765
- headers: {}
32765
+ response: {}
32766
32766
  },
32767
32767
  setup(__props) {
32768
32768
  const props = __props;
32769
32769
  const mediaType = computed(() => {
32770
- const contentTypeHeader = props.headers.find(
32771
- (header) => header.name.toLowerCase() === "content-type"
32772
- );
32770
+ var _a2;
32771
+ const headers = normalizeHeaders((_a2 = props.response) == null ? void 0 : _a2.headers);
32772
+ const contentTypeHeader = headers["content-type"];
32773
32773
  if (!contentTypeHeader) {
32774
32774
  return null;
32775
32775
  }
@@ -32785,20 +32785,30 @@ const _sfc_main$9 = /* @__PURE__ */ defineComponent({
32785
32785
  if (mediaType.value === "text/plain") {
32786
32786
  return "html";
32787
32787
  }
32788
- return null;
32788
+ return void 0;
32789
+ });
32790
+ const formattedResponseData = computed(() => {
32791
+ var _a2;
32792
+ const value = (_a2 = props.response) == null ? void 0 : _a2.data;
32793
+ if (value && isJsonString(value)) {
32794
+ return JSON.stringify(JSON.parse(value), null, 2);
32795
+ } else if (value && typeof toRaw(value) === "object") {
32796
+ return JSON.stringify(value, null, 2);
32797
+ }
32798
+ return value;
32789
32799
  });
32790
32800
  return (_ctx, _cache) => {
32791
32801
  return openBlock(), createBlock(unref(_sfc_main$v), { title: "Body" }, {
32792
32802
  default: withCtx(() => [
32793
- _ctx.active ? (openBlock(), createElementBlock(Fragment, { key: 0 }, [
32794
- codeMirrorLanguage.value ? (openBlock(), createBlock(unref(Pt), {
32803
+ _ctx.response ? (openBlock(), createElementBlock(Fragment, { key: 0 }, [
32804
+ codeMirrorLanguage.value || typeof _ctx.response.data === "string" ? (openBlock(), createBlock(unref(Pt), {
32795
32805
  key: 0,
32796
32806
  class: "custom-scroll",
32797
- content: _ctx.data,
32807
+ content: formattedResponseData.value,
32798
32808
  lang: codeMirrorLanguage.value
32799
32809
  }, null, 8, ["content", "lang"])) : (openBlock(), createElementBlock("div", _hoisted_1$7, [
32800
32810
  mediaType.value ? (openBlock(), createElementBlock(Fragment, { key: 0 }, [
32801
- createTextVNode(" No Preview Available (" + toDisplayString(mediaType.value) + ") ", 1)
32811
+ createTextVNode(" No preview available for " + toDisplayString(mediaType.value), 1)
32802
32812
  ], 64)) : (openBlock(), createElementBlock(Fragment, { key: 1 }, [
32803
32813
  createTextVNode(" Can’t render a preview. The Content-Type header is missing or unknown. ")
32804
32814
  ], 64))
@@ -32969,7 +32979,10 @@ const _sfc_main$3 = /* @__PURE__ */ defineComponent({
32969
32979
  }
32970
32980
  });
32971
32981
  const _hoisted_1$2 = { class: "meta-item" };
32972
- const _hoisted_2$1 = { class: "meta-item" };
32982
+ const _hoisted_2$1 = {
32983
+ key: 0,
32984
+ class: "meta-item"
32985
+ };
32973
32986
  const _hoisted_3$1 = { class: "meta-item" };
32974
32987
  const _sfc_main$2 = /* @__PURE__ */ defineComponent({
32975
32988
  __name: "ResponseMetaInformation",
@@ -32980,12 +32993,8 @@ const _sfc_main$2 = /* @__PURE__ */ defineComponent({
32980
32993
  const props = __props;
32981
32994
  const getContentLength = (response) => {
32982
32995
  var _a2;
32983
- if ((_a2 = response == null ? void 0 : response.headers) == null ? void 0 : _a2["X-API-Client-Content-Length"]) {
32984
- return prettyBytes(
32985
- parseFloat(response.headers["X-API-Client-Content-Length"])
32986
- );
32987
- }
32988
- return prettyBytes(0);
32996
+ const contentLength = parseInt((_a2 = response.headers) == null ? void 0 : _a2["content-length"], 10);
32997
+ return contentLength ? prettyBytes(contentLength) : void 0;
32989
32998
  };
32990
32999
  const statusCodeInformation = computed(() => {
32991
33000
  const responseStatusCode = props.response.statusCode;
@@ -33000,27 +33009,25 @@ const _sfc_main$2 = /* @__PURE__ */ defineComponent({
33000
33009
  createElementVNode("div", _hoisted_1$2, [
33001
33010
  createElementVNode("span", null, toDisplayString(unref(prettyMilliseconds)(_ctx.response.duration)), 1)
33002
33011
  ]),
33003
- createElementVNode("div", _hoisted_2$1, [
33012
+ getContentLength(_ctx.response) ? (openBlock(), createElementBlock("div", _hoisted_2$1, [
33004
33013
  createElementVNode("span", null, toDisplayString(getContentLength(_ctx.response)), 1)
33005
- ]),
33014
+ ])) : createCommentVNode("", true),
33006
33015
  createElementVNode("div", _hoisted_3$1, [
33007
- createElementVNode("span", {
33008
- class: normalizeClass(`scalar-api-client__status scalar-api-client__status--${String(
33009
- _ctx.response.statusCode
33010
- ).charAt(0)}xx`)
33011
- }, [
33012
- ((_a2 = statusCodeInformation.value) == null ? void 0 : _a2.url) ? (openBlock(), createBlock(HelpfulLink, {
33013
- key: 0,
33014
- href: statusCodeInformation.value.url
33015
- }, {
33016
- default: withCtx(() => [
33017
- createTextVNode(toDisplayString(_ctx.response.statusCode) + " " + toDisplayString(statusCodeInformation.value.name), 1)
33018
- ]),
33019
- _: 1
33020
- }, 8, ["href"])) : (openBlock(), createElementBlock(Fragment, { key: 1 }, [
33021
- createTextVNode(toDisplayString(_ctx.response.statusCode) + " " + toDisplayString((_b = statusCodeInformation.value) == null ? void 0 : _b.name), 1)
33022
- ], 64))
33023
- ], 2)
33016
+ createElementVNode("span", null, [
33017
+ _ctx.response.statusCode ? (openBlock(), createElementBlock(Fragment, { key: 0 }, [
33018
+ ((_a2 = statusCodeInformation.value) == null ? void 0 : _a2.url) ? (openBlock(), createBlock(HelpfulLink, {
33019
+ key: 0,
33020
+ href: statusCodeInformation.value.url
33021
+ }, {
33022
+ default: withCtx(() => [
33023
+ createTextVNode(toDisplayString(_ctx.response.statusCode) + " " + toDisplayString(statusCodeInformation.value.name), 1)
33024
+ ]),
33025
+ _: 1
33026
+ }, 8, ["href"])) : (openBlock(), createElementBlock(Fragment, { key: 1 }, [
33027
+ createTextVNode(toDisplayString(_ctx.response.statusCode) + " " + toDisplayString((_b = statusCodeInformation.value) == null ? void 0 : _b.name), 1)
33028
+ ], 64))
33029
+ ], 64)) : createCommentVNode("", true)
33030
+ ])
33024
33031
  ])
33025
33032
  ], 64);
33026
33033
  };
@@ -33054,31 +33061,13 @@ const _sfc_main$1 = /* @__PURE__ */ defineComponent({
33054
33061
  const responseHeaders = computed(() => {
33055
33062
  var _a2;
33056
33063
  const headers = (_a2 = activeResponse2.value) == null ? void 0 : _a2.headers;
33057
- return headers ? Object.keys(headers).map((key) => ({ name: key, value: headers[key] })).filter(
33058
- (item) => ![
33059
- "rest-api-client-content-length",
33060
- "X-API-Client-Content-Length"
33061
- ].includes(item.name)
33062
- ) : [];
33064
+ return headers ? Object.keys(headers).map((key) => ({ name: key, value: headers[key] })) : [];
33063
33065
  });
33064
33066
  const responseCookies = computed(() => {
33065
33067
  var _a2;
33066
33068
  const cookies = (_a2 = activeResponse2.value) == null ? void 0 : _a2.cookies;
33067
33069
  return cookies ? Object.keys(cookies).map((key) => ({ name: key, value: cookies[key] })) : [];
33068
33070
  });
33069
- const responseData = computed(() => {
33070
- var _a2;
33071
- const value = (_a2 = activeResponse2.value) == null ? void 0 : _a2.data;
33072
- if (value && isJsonString(value)) {
33073
- return JSON.stringify(JSON.parse(value), null, 2);
33074
- } else if (value && typeof toRaw(value) === "object") {
33075
- return JSON.stringify(value, null, 2);
33076
- }
33077
- if (value && !isJsonString(value)) {
33078
- return JSON.stringify(value, null, 2);
33079
- }
33080
- return value;
33081
- });
33082
33071
  return (_ctx, _cache) => {
33083
33072
  return openBlock(), createElementBlock("div", _hoisted_1$1, [
33084
33073
  createElementVNode("div", _hoisted_2, [
@@ -33089,11 +33078,7 @@ const _sfc_main$1 = /* @__PURE__ */ defineComponent({
33089
33078
  ])) : createCommentVNode("", true)
33090
33079
  ]),
33091
33080
  unref(activeRequestId2) && unref(activeResponse2) ? (openBlock(), createElementBlock("div", _hoisted_6, [
33092
- createVNode(_sfc_main$9, {
33093
- active: !!unref(activeResponse2),
33094
- data: responseData.value,
33095
- headers: responseHeaders.value
33096
- }, null, 8, ["active", "data", "headers"]),
33081
+ createVNode(_sfc_main$9, { response: unref(activeResponse2) }, null, 8, ["response"]),
33097
33082
  createVNode(_sfc_main$3, { headers: responseHeaders.value }, null, 8, ["headers"]),
33098
33083
  createVNode(unref(_sfc_main$v), { title: "Cookies" }, {
33099
33084
  default: withCtx(() => [
@@ -33250,6 +33235,7 @@ export {
33250
33235
  humanDiff,
33251
33236
  isRequestMethod,
33252
33237
  mapFromArray,
33238
+ normalizeHeaders,
33253
33239
  normalizePath,
33254
33240
  normalizeRequestMethod,
33255
33241
  normalizeUrl,
package/package.json CHANGED
@@ -18,7 +18,7 @@
18
18
  "rest",
19
19
  "testing"
20
20
  ],
21
- "version": "1.2.30",
21
+ "version": "1.2.31",
22
22
  "engines": {
23
23
  "node": ">=18"
24
24
  },
@@ -41,9 +41,9 @@
41
41
  "nanoid": "^5.0.1",
42
42
  "pretty-bytes": "^6.1.1",
43
43
  "pretty-ms": "^8.0.0",
44
+ "@scalar/components": "0.7.11",
44
45
  "@scalar/themes": "0.7.11",
45
46
  "@scalar/use-codemirror": "0.10.5",
46
- "@scalar/components": "0.7.10",
47
47
  "@scalar/use-modal": "0.3.3",
48
48
  "@scalar/use-tooltip": "0.6.2"
49
49
  },
@@ -58,12 +58,12 @@
58
58
  "vue": "^3.4.21",
59
59
  "vue-tsc": "^1.8.19",
60
60
  "@scalar/api-client-proxy": "0.5.27",
61
- "@scalar/echo-server": "0.6.4",
62
- "@scalar/oas-utils": "0.1.12"
61
+ "@scalar/oas-utils": "0.1.13",
62
+ "@scalar/echo-server": "0.6.4"
63
63
  },
64
64
  "peerDependencies": {
65
65
  "vue": "^3.3.0",
66
- "@scalar/oas-utils": "0.1.12"
66
+ "@scalar/oas-utils": "0.1.13"
67
67
  },
68
68
  "scripts": {
69
69
  "build": "vite build && pnpm types:build && tsc-alias -p tsconfig.build.json",