@scalar/oas-utils 0.2.140 → 0.2.142
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 +18 -0
- package/dist/entities/cookie/cookie.js +14 -13
- package/dist/entities/cookie/cookie.js.map +7 -0
- package/dist/entities/cookie/index.d.ts +1 -1
- package/dist/entities/cookie/index.d.ts.map +1 -1
- package/dist/entities/cookie/index.js +5 -1
- package/dist/entities/cookie/index.js.map +7 -0
- package/dist/entities/environment/environment.js +10 -9
- package/dist/entities/environment/environment.js.map +7 -0
- package/dist/entities/environment/index.d.ts +1 -1
- package/dist/entities/environment/index.d.ts.map +1 -1
- package/dist/entities/environment/index.js +5 -1
- package/dist/entities/environment/index.js.map +7 -0
- package/dist/entities/hotkeys/hotkeys.js +109 -116
- package/dist/entities/hotkeys/hotkeys.js.map +7 -0
- package/dist/entities/hotkeys/index.d.ts +1 -1
- package/dist/entities/hotkeys/index.d.ts.map +1 -1
- package/dist/entities/hotkeys/index.js +6 -1
- package/dist/entities/hotkeys/index.js.map +7 -0
- package/dist/entities/shared/index.d.ts +1 -1
- package/dist/entities/shared/index.d.ts.map +1 -1
- package/dist/entities/shared/index.js +7 -1
- package/dist/entities/shared/index.js.map +7 -0
- package/dist/entities/shared/utility.js +9 -12
- package/dist/entities/shared/utility.js.map +7 -0
- package/dist/entities/spec/collection.d.ts.map +1 -1
- package/dist/entities/spec/collection.js +91 -94
- package/dist/entities/spec/collection.js.map +7 -0
- package/dist/entities/spec/index.d.ts +8 -8
- package/dist/entities/spec/index.d.ts.map +1 -1
- package/dist/entities/spec/index.js +59 -9
- package/dist/entities/spec/index.js.map +7 -0
- package/dist/entities/spec/operation.d.ts +1 -1
- package/dist/entities/spec/operation.d.ts.map +1 -1
- package/dist/entities/spec/operation.js +5 -8
- package/dist/entities/spec/operation.js.map +7 -0
- package/dist/entities/spec/operation.test.js +43 -0
- package/dist/entities/spec/operation.test.js.map +7 -0
- package/dist/entities/spec/parameters.d.ts +1 -1
- package/dist/entities/spec/parameters.d.ts.map +1 -1
- package/dist/entities/spec/parameters.js +40 -38
- package/dist/entities/spec/parameters.js.map +7 -0
- package/dist/entities/spec/parameters.test.js +71 -0
- package/dist/entities/spec/parameters.test.js.map +7 -0
- package/dist/entities/spec/request-example.test.js +637 -0
- package/dist/entities/spec/request-example.test.js.map +7 -0
- package/dist/entities/spec/request-examples.d.ts +3 -3
- package/dist/entities/spec/request-examples.d.ts.map +1 -1
- package/dist/entities/spec/request-examples.js +323 -338
- package/dist/entities/spec/request-examples.js.map +7 -0
- package/dist/entities/spec/requests.d.ts +6 -8
- package/dist/entities/spec/requests.d.ts.map +1 -1
- package/dist/entities/spec/requests.js +80 -101
- package/dist/entities/spec/requests.js.map +7 -0
- package/dist/entities/spec/server.js +47 -63
- package/dist/entities/spec/server.js.map +7 -0
- package/dist/entities/spec/server.test.js +120 -0
- package/dist/entities/spec/server.test.js.map +7 -0
- package/dist/entities/spec/spec-objects.d.ts.map +1 -1
- package/dist/entities/spec/spec-objects.js +77 -121
- package/dist/entities/spec/spec-objects.js.map +7 -0
- package/dist/entities/spec/spec-objects.test.js +205 -0
- package/dist/entities/spec/spec-objects.test.js.map +7 -0
- package/dist/entities/spec/x-scalar-environments.js +21 -18
- package/dist/entities/spec/x-scalar-environments.js.map +7 -0
- package/dist/entities/spec/x-scalar-environments.test.js +11 -0
- package/dist/entities/spec/x-scalar-environments.test.js.map +7 -0
- package/dist/entities/spec/x-scalar-secrets.js +8 -6
- package/dist/entities/spec/x-scalar-secrets.js.map +7 -0
- package/dist/entities/spec/x-scalar-secrets.test.js +11 -0
- package/dist/entities/spec/x-scalar-secrets.test.js.map +7 -0
- package/dist/entities/workspace/index.d.ts +1 -1
- package/dist/entities/workspace/index.d.ts.map +1 -1
- package/dist/entities/workspace/index.js +7 -1
- package/dist/entities/workspace/index.js.map +7 -0
- package/dist/entities/workspace/workspace.js +46 -50
- package/dist/entities/workspace/workspace.js.map +7 -0
- package/dist/helpers/create-hash.js +15 -18
- package/dist/helpers/create-hash.js.map +7 -0
- package/dist/helpers/ensure-protocol.js +9 -10
- package/dist/helpers/ensure-protocol.js.map +7 -0
- package/dist/helpers/ensure-protocol.test.js +70 -0
- package/dist/helpers/ensure-protocol.test.js.map +7 -0
- package/dist/helpers/fetch-document.js +24 -32
- package/dist/helpers/fetch-document.js.map +7 -0
- package/dist/helpers/fetch-document.test.js +63 -0
- package/dist/helpers/fetch-document.test.js.map +7 -0
- package/dist/helpers/fetch-with-proxy-fallback.js +20 -28
- package/dist/helpers/fetch-with-proxy-fallback.js.map +7 -0
- package/dist/helpers/find-variables.d.ts +1 -1
- package/dist/helpers/find-variables.d.ts.map +1 -1
- package/dist/helpers/find-variables.js +6 -8
- package/dist/helpers/find-variables.js.map +7 -0
- package/dist/helpers/find-variables.test.js +20 -0
- package/dist/helpers/find-variables.test.js.map +7 -0
- package/dist/helpers/http-methods.d.ts +1 -1
- package/dist/helpers/http-methods.d.ts.map +1 -1
- package/dist/helpers/http-methods.js +60 -66
- package/dist/helpers/http-methods.js.map +7 -0
- package/dist/helpers/http-status-codes.js +319 -317
- package/dist/helpers/http-status-codes.js.map +7 -0
- package/dist/helpers/index.d.ts +27 -27
- package/dist/helpers/index.d.ts.map +1 -1
- package/dist/helpers/index.js +73 -27
- package/dist/helpers/index.js.map +7 -0
- package/dist/helpers/is-defined.js +5 -14
- package/dist/helpers/is-defined.js.map +7 -0
- package/dist/helpers/is-defined.test.js +37 -0
- package/dist/helpers/is-defined.test.js.map +7 -0
- package/dist/helpers/is-local-url.js +11 -16
- package/dist/helpers/is-local-url.js.map +7 -0
- package/dist/helpers/is-local-url.test.js +40 -0
- package/dist/helpers/is-local-url.test.js.map +7 -0
- package/dist/helpers/is-valid-url.js +9 -18
- package/dist/helpers/is-valid-url.js.map +7 -0
- package/dist/helpers/is-valid-url.test.js +17 -0
- package/dist/helpers/is-valid-url.test.js.map +7 -0
- package/dist/helpers/iterate-title.js +11 -15
- package/dist/helpers/iterate-title.js.map +7 -0
- package/dist/helpers/json2xml.js +40 -47
- package/dist/helpers/json2xml.js.map +7 -0
- package/dist/helpers/json2xml.test.js +19 -0
- package/dist/helpers/json2xml.test.js.map +7 -0
- package/dist/helpers/local-storage.js +13 -15
- package/dist/helpers/local-storage.js.map +7 -0
- package/dist/helpers/make-url-absolute.js +11 -17
- package/dist/helpers/make-url-absolute.js.map +7 -0
- package/dist/helpers/make-url-absolute.test.js +61 -0
- package/dist/helpers/make-url-absolute.test.js.map +7 -0
- package/dist/helpers/merge-urls.js +50 -75
- package/dist/helpers/merge-urls.js.map +7 -0
- package/dist/helpers/merge-urls.test.js +339 -0
- package/dist/helpers/merge-urls.test.js.map +7 -0
- package/dist/helpers/normalize-mime-type-object.js +21 -31
- package/dist/helpers/normalize-mime-type-object.js.map +7 -0
- package/dist/helpers/normalize-mime-type-object.test.js +53 -0
- package/dist/helpers/normalize-mime-type-object.test.js.map +7 -0
- package/dist/helpers/normalize-mime-type.js +8 -18
- package/dist/helpers/normalize-mime-type.js.map +7 -0
- package/dist/helpers/normalize-mime-type.test.js +33 -0
- package/dist/helpers/normalize-mime-type.test.js.map +7 -0
- package/dist/helpers/object.js +12 -18
- package/dist/helpers/object.js.map +7 -0
- package/dist/helpers/omit-undefined-values.js +17 -19
- package/dist/helpers/omit-undefined-values.js.map +7 -0
- package/dist/helpers/omit-undefined-values.test.js +89 -0
- package/dist/helpers/omit-undefined-values.test.js.map +7 -0
- package/dist/helpers/parse.js +71 -83
- package/dist/helpers/parse.js.map +7 -0
- package/dist/helpers/parse.test.js +45 -0
- package/dist/helpers/parse.test.js.map +7 -0
- package/dist/helpers/pretty-print-json.js +31 -35
- package/dist/helpers/pretty-print-json.js.map +7 -0
- package/dist/helpers/pretty-print-json.test.js +28 -0
- package/dist/helpers/pretty-print-json.test.js.map +7 -0
- package/dist/helpers/redirect-to-proxy.js +46 -83
- package/dist/helpers/redirect-to-proxy.js.map +7 -0
- package/dist/helpers/redirect-to-proxy.test.js +54 -0
- package/dist/helpers/redirect-to-proxy.test.js.map +7 -0
- package/dist/helpers/regex-helpers.js +11 -9
- package/dist/helpers/regex-helpers.js.map +7 -0
- package/dist/helpers/regex-helpers.test.js +154 -0
- package/dist/helpers/regex-helpers.test.js.map +7 -0
- package/dist/helpers/replace-variables.js +13 -16
- package/dist/helpers/replace-variables.js.map +7 -0
- package/dist/helpers/replace-variables.test.js +30 -0
- package/dist/helpers/replace-variables.test.js.map +7 -0
- package/dist/helpers/schema-model.js +15 -14
- package/dist/helpers/schema-model.js.map +7 -0
- package/dist/helpers/security/get-schemes.d.ts +1 -1
- package/dist/helpers/security/get-schemes.d.ts.map +1 -1
- package/dist/helpers/security/get-schemes.js +7 -9
- package/dist/helpers/security/get-schemes.js.map +7 -0
- package/dist/helpers/security/get-schemes.test.js +71 -0
- package/dist/helpers/security/get-schemes.test.js.map +7 -0
- package/dist/helpers/security/has-token.js +18 -19
- package/dist/helpers/security/has-token.js.map +7 -0
- package/dist/helpers/security/has-token.test.js +157 -0
- package/dist/helpers/security/has-token.test.js.map +7 -0
- package/dist/helpers/security/index.d.ts +2 -2
- package/dist/helpers/security/index.d.ts.map +1 -1
- package/dist/helpers/security/index.js +7 -2
- package/dist/helpers/security/index.js.map +7 -0
- package/dist/helpers/should-ignore-entity.d.ts +2 -2
- package/dist/helpers/should-ignore-entity.d.ts.map +1 -1
- package/dist/helpers/should-ignore-entity.js +5 -6
- package/dist/helpers/should-ignore-entity.js.map +7 -0
- package/dist/helpers/ssr-state.js +6 -6
- package/dist/helpers/ssr-state.js.map +7 -0
- package/dist/helpers/string.js +6 -18
- package/dist/helpers/string.js.map +7 -0
- package/dist/migrations/data-version.js +7 -17
- package/dist/migrations/data-version.js.map +7 -0
- package/dist/migrations/generate-types.js +56 -0
- package/dist/migrations/generate-types.js.map +7 -0
- package/dist/migrations/index.d.ts +3 -3
- package/dist/migrations/index.d.ts.map +1 -1
- package/dist/migrations/index.js +10 -3
- package/dist/migrations/index.js.map +7 -0
- package/dist/migrations/local-storage.d.ts +1 -1
- package/dist/migrations/local-storage.d.ts.map +1 -1
- package/dist/migrations/local-storage.js +27 -32
- package/dist/migrations/local-storage.js.map +7 -0
- package/dist/migrations/migrator.d.ts +1 -1
- package/dist/migrations/migrator.d.ts.map +1 -1
- package/dist/migrations/migrator.js +51 -58
- package/dist/migrations/migrator.js.map +7 -0
- package/dist/migrations/semver.js +23 -25
- package/dist/migrations/semver.js.map +7 -0
- package/dist/migrations/semver.test.js +21 -0
- package/dist/migrations/semver.test.js.map +7 -0
- package/dist/migrations/v-0.0.0/types.generated.js +1 -0
- package/dist/migrations/v-0.0.0/types.generated.js.map +7 -0
- package/dist/migrations/v-2.1.0/migration.d.ts +2 -2
- package/dist/migrations/v-2.1.0/migration.d.ts.map +1 -1
- package/dist/migrations/v-2.1.0/migration.js +256 -273
- package/dist/migrations/v-2.1.0/migration.js.map +7 -0
- package/dist/migrations/v-2.1.0/types.generated.js +1 -0
- package/dist/migrations/v-2.1.0/types.generated.js.map +7 -0
- package/dist/migrations/v-2.2.0/migration.d.ts +2 -2
- package/dist/migrations/v-2.2.0/migration.d.ts.map +1 -1
- package/dist/migrations/v-2.2.0/migration.js +95 -100
- package/dist/migrations/v-2.2.0/migration.js.map +7 -0
- package/dist/migrations/v-2.2.0/types.generated.js +1 -0
- package/dist/migrations/v-2.2.0/types.generated.js.map +7 -0
- package/dist/migrations/v-2.3.0/migration.d.ts +2 -2
- package/dist/migrations/v-2.3.0/migration.d.ts.map +1 -1
- package/dist/migrations/v-2.3.0/migration.js +47 -46
- package/dist/migrations/v-2.3.0/migration.js.map +7 -0
- package/dist/migrations/v-2.3.0/types.generated.js +1 -0
- package/dist/migrations/v-2.3.0/types.generated.js.map +7 -0
- package/dist/migrations/v-2.4.0/migration.d.ts +2 -2
- package/dist/migrations/v-2.4.0/migration.d.ts.map +1 -1
- package/dist/migrations/v-2.4.0/migration.js +24 -26
- package/dist/migrations/v-2.4.0/migration.js.map +7 -0
- package/dist/migrations/v-2.4.0/migration.test.js +90 -0
- package/dist/migrations/v-2.4.0/migration.test.js.map +7 -0
- package/dist/migrations/v-2.4.0/types.generated.js +1 -0
- package/dist/migrations/v-2.4.0/types.generated.js.map +7 -0
- package/dist/migrations/v-2.5.0/migration.d.ts +2 -2
- package/dist/migrations/v-2.5.0/migration.d.ts.map +1 -1
- package/dist/migrations/v-2.5.0/migration.js +135 -119
- package/dist/migrations/v-2.5.0/migration.js.map +7 -0
- package/dist/migrations/v-2.5.0/migration.test.js +108 -0
- package/dist/migrations/v-2.5.0/migration.test.js.map +7 -0
- package/dist/migrations/v-2.5.0/types.generated.d.ts +8 -8
- package/dist/migrations/v-2.5.0/types.generated.d.ts.map +1 -1
- package/dist/migrations/v-2.5.0/types.generated.js +1 -0
- package/dist/migrations/v-2.5.0/types.generated.js.map +7 -0
- package/dist/spec-getters/get-example-from-schema.js +206 -268
- package/dist/spec-getters/get-example-from-schema.js.map +7 -0
- package/dist/spec-getters/get-example-from-schema.test.js +1092 -0
- package/dist/spec-getters/get-example-from-schema.test.js.map +7 -0
- package/dist/spec-getters/get-parameters-from-operation.js +22 -42
- package/dist/spec-getters/get-parameters-from-operation.js.map +7 -0
- package/dist/spec-getters/get-parameters-from-operation.test.js +178 -0
- package/dist/spec-getters/get-parameters-from-operation.test.js.map +7 -0
- package/dist/spec-getters/get-request-body-from-operation.js +110 -162
- package/dist/spec-getters/get-request-body-from-operation.js.map +7 -0
- package/dist/spec-getters/get-request-body-from-operation.test.js +289 -0
- package/dist/spec-getters/get-request-body-from-operation.test.js.map +7 -0
- package/dist/spec-getters/get-server-variable-examples.d.ts +1 -1
- package/dist/spec-getters/get-server-variable-examples.d.ts.map +1 -1
- package/dist/spec-getters/get-server-variable-examples.js +12 -11
- package/dist/spec-getters/get-server-variable-examples.js.map +7 -0
- package/dist/spec-getters/index.d.ts +4 -4
- package/dist/spec-getters/index.d.ts.map +1 -1
- package/dist/spec-getters/index.js +11 -4
- package/dist/spec-getters/index.js.map +7 -0
- package/dist/transforms/import-spec.d.ts +6 -6
- package/dist/transforms/import-spec.d.ts.map +1 -1
- package/dist/transforms/import-spec.js +313 -425
- package/dist/transforms/import-spec.js.map +7 -0
- package/dist/transforms/import-spec.test.js +1124 -0
- package/dist/transforms/import-spec.test.js.map +7 -0
- package/dist/transforms/index.d.ts +1 -1
- package/dist/transforms/index.d.ts.map +1 -1
- package/dist/transforms/index.js +13 -1
- package/dist/transforms/index.js.map +7 -0
- package/package.json +10 -11
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../src/helpers/json2xml.ts"],
|
|
4
|
+
"sourcesContent": ["/**\n * This function converts an object to XML.\n */\nexport function json2xml(data: Record<string, any>, tab?: string) {\n const toXml = (value: any, key: string, indentation: string) => {\n let xml = ''\n\n if (Array.isArray(value)) {\n for (let i = 0, n = value.length; i < n; i++) {\n xml += indentation + toXml(value[i], key, indentation + '\\t') + '\\n'\n }\n } else if (typeof value === 'object') {\n let hasChild = false\n xml += indentation + '<' + key\n\n for (const m in value) {\n if (m.charAt(0) === '@') {\n xml += ' ' + m.substr(1) + '=\"' + value[m].toString() + '\"'\n } else {\n hasChild = true\n }\n }\n\n xml += hasChild ? '>' : '/>'\n\n if (hasChild) {\n for (const m in value) {\n if (m === '#text') {\n xml += value[m]\n } else if (m === '#cdata') {\n xml += '<![CDATA[' + value[m] + ']]>'\n } else if (m.charAt(0) !== '@') {\n xml += toXml(value[m], m, indentation + '\\t')\n }\n }\n xml += (xml.charAt(xml.length - 1) === '\\n' ? indentation : '') + '</' + key + '>'\n }\n } else {\n xml += indentation + '<' + key + '>' + value.toString() + '</' + key + '>'\n }\n return xml\n }\n\n let xml = ''\n\n // biome-ignore lint/nursery/useGuardForIn: Yeah, it\u2019s ok. But feel free to fix it.\n for (const key in data) {\n xml += toXml(data[key], key, '')\n }\n\n return tab ? xml.replace(/\\t/g, tab) : xml.replace(/\\t|\\n/g, '')\n}\n"],
|
|
5
|
+
"mappings": "AAGO,SAAS,SAAS,MAA2B,KAAc;AAChE,QAAM,QAAQ,CAAC,OAAY,KAAa,gBAAwB;AAC9D,QAAIA,OAAM;AAEV,QAAI,MAAM,QAAQ,KAAK,GAAG;AACxB,eAAS,IAAI,GAAG,IAAI,MAAM,QAAQ,IAAI,GAAG,KAAK;AAC5C,QAAAA,QAAO,cAAc,MAAM,MAAM,CAAC,GAAG,KAAK,cAAc,GAAI,IAAI;AAAA,MAClE;AAAA,IACF,WAAW,OAAO,UAAU,UAAU;AACpC,UAAI,WAAW;AACf,MAAAA,QAAO,cAAc,MAAM;AAE3B,iBAAW,KAAK,OAAO;AACrB,YAAI,EAAE,OAAO,CAAC,MAAM,KAAK;AACvB,UAAAA,QAAO,MAAM,EAAE,OAAO,CAAC,IAAI,OAAO,MAAM,CAAC,EAAE,SAAS,IAAI;AAAA,QAC1D,OAAO;AACL,qBAAW;AAAA,QACb;AAAA,MACF;AAEA,MAAAA,QAAO,WAAW,MAAM;AAExB,UAAI,UAAU;AACZ,mBAAW,KAAK,OAAO;AACrB,cAAI,MAAM,SAAS;AACjB,YAAAA,QAAO,MAAM,CAAC;AAAA,UAChB,WAAW,MAAM,UAAU;AACzB,YAAAA,QAAO,cAAc,MAAM,CAAC,IAAI;AAAA,UAClC,WAAW,EAAE,OAAO,CAAC,MAAM,KAAK;AAC9B,YAAAA,QAAO,MAAM,MAAM,CAAC,GAAG,GAAG,cAAc,GAAI;AAAA,UAC9C;AAAA,QACF;AACA,QAAAA,SAAQA,KAAI,OAAOA,KAAI,SAAS,CAAC,MAAM,OAAO,cAAc,MAAM,OAAO,MAAM;AAAA,MACjF;AAAA,IACF,OAAO;AACL,MAAAA,QAAO,cAAc,MAAM,MAAM,MAAM,MAAM,SAAS,IAAI,OAAO,MAAM;AAAA,IACzE;AACA,WAAOA;AAAA,EACT;AAEA,MAAI,MAAM;AAGV,aAAW,OAAO,MAAM;AACtB,WAAO,MAAM,KAAK,GAAG,GAAG,KAAK,EAAE;AAAA,EACjC;AAEA,SAAO,MAAM,IAAI,QAAQ,OAAO,GAAG,IAAI,IAAI,QAAQ,UAAU,EAAE;AACjE;",
|
|
6
|
+
"names": ["xml"]
|
|
7
|
+
}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import { describe, expect, it } from "vitest";
|
|
2
|
+
import { json2xml } from "./json2xml.js";
|
|
3
|
+
describe("getUrlFromServerState", () => {
|
|
4
|
+
it("transforms JSON to xml", () => {
|
|
5
|
+
const xml = json2xml({
|
|
6
|
+
foo: "bar"
|
|
7
|
+
});
|
|
8
|
+
expect(xml).toMatchObject("<foo>bar</foo>");
|
|
9
|
+
});
|
|
10
|
+
it("wraps array items", () => {
|
|
11
|
+
const xml = json2xml({
|
|
12
|
+
urls: {
|
|
13
|
+
url: ["https://example.com", "https://example.com"]
|
|
14
|
+
}
|
|
15
|
+
});
|
|
16
|
+
expect(xml).toMatchObject("<urls><url>https://example.com</url><url>https://example.com</url></urls>");
|
|
17
|
+
});
|
|
18
|
+
});
|
|
19
|
+
//# sourceMappingURL=json2xml.test.js.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../src/helpers/json2xml.test.ts"],
|
|
4
|
+
"sourcesContent": ["import { describe, expect, it } from 'vitest'\n\nimport { json2xml } from './json2xml'\n\ndescribe('getUrlFromServerState', () => {\n it('transforms JSON to xml', () => {\n const xml = json2xml({\n foo: 'bar',\n })\n\n expect(xml).toMatchObject('<foo>bar</foo>')\n })\n\n it('wraps array items', () => {\n const xml = json2xml({\n urls: {\n url: ['https://example.com', 'https://example.com'],\n },\n })\n\n expect(xml).toMatchObject('<urls><url>https://example.com</url><url>https://example.com</url></urls>')\n })\n})\n"],
|
|
5
|
+
"mappings": "AAAA,SAAS,UAAU,QAAQ,UAAU;AAErC,SAAS,gBAAgB;AAEzB,SAAS,yBAAyB,MAAM;AACtC,KAAG,0BAA0B,MAAM;AACjC,UAAM,MAAM,SAAS;AAAA,MACnB,KAAK;AAAA,IACP,CAAC;AAED,WAAO,GAAG,EAAE,cAAc,gBAAgB;AAAA,EAC5C,CAAC;AAED,KAAG,qBAAqB,MAAM;AAC5B,UAAM,MAAM,SAAS;AAAA,MACnB,MAAM;AAAA,QACJ,KAAK,CAAC,uBAAuB,qBAAqB;AAAA,MACpD;AAAA,IACF,CAAC;AAED,WAAO,GAAG,EAAE,cAAc,2EAA2E;AAAA,EACvG,CAAC;AACH,CAAC;",
|
|
6
|
+
"names": []
|
|
7
|
+
}
|
|
@@ -1,17 +1,15 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* localStorage keys for resources
|
|
3
|
-
* DO NOT CHANGE THESE AS IT WILL BREAK THE MIGRATION
|
|
4
|
-
*/
|
|
5
1
|
const LS_KEYS = {
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
2
|
+
COLLECTION: "collection",
|
|
3
|
+
COOKIE: "cookie",
|
|
4
|
+
ENVIRONMENT: "environment",
|
|
5
|
+
REQUEST: "request",
|
|
6
|
+
REQUEST_EXAMPLE: "requestExample",
|
|
7
|
+
SECURITY_SCHEME: "securityScheme",
|
|
8
|
+
SERVER: "server",
|
|
9
|
+
TAG: "tag",
|
|
10
|
+
WORKSPACE: "workspace"
|
|
15
11
|
};
|
|
16
|
-
|
|
17
|
-
|
|
12
|
+
export {
|
|
13
|
+
LS_KEYS
|
|
14
|
+
};
|
|
15
|
+
//# sourceMappingURL=local-storage.js.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../src/helpers/local-storage.ts"],
|
|
4
|
+
"sourcesContent": ["/**\n * localStorage keys for resources\n * DO NOT CHANGE THESE AS IT WILL BREAK THE MIGRATION\n */\nexport const LS_KEYS = {\n COLLECTION: 'collection',\n COOKIE: 'cookie',\n ENVIRONMENT: 'environment',\n REQUEST: 'request',\n REQUEST_EXAMPLE: 'requestExample',\n SECURITY_SCHEME: 'securityScheme',\n SERVER: 'server',\n TAG: 'tag',\n WORKSPACE: 'workspace',\n} as const\n"],
|
|
5
|
+
"mappings": "AAIO,MAAM,UAAU;AAAA,EACrB,YAAY;AAAA,EACZ,QAAQ;AAAA,EACR,aAAa;AAAA,EACb,SAAS;AAAA,EACT,iBAAiB;AAAA,EACjB,iBAAiB;AAAA,EACjB,QAAQ;AAAA,EACR,KAAK;AAAA,EACL,WAAW;AACb;",
|
|
6
|
+
"names": []
|
|
7
|
+
}
|
|
@@ -1,19 +1,13 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Pass an URL or a relative URL and get an absolute URL
|
|
3
|
-
*/
|
|
4
1
|
const makeUrlAbsolute = (url, baseUrl) => {
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
// if it doesn't end with a slash
|
|
13
|
-
const normalizedBaseUrl = cleanBaseUrl?.endsWith('/')
|
|
14
|
-
? cleanBaseUrl
|
|
15
|
-
: cleanBaseUrl?.substring(0, cleanBaseUrl?.lastIndexOf('/') + 1);
|
|
16
|
-
return new URL(url, normalizedBaseUrl).toString();
|
|
2
|
+
if (!url || url.startsWith("http://") || url.startsWith("https://") || typeof window === "undefined" && !baseUrl) {
|
|
3
|
+
return url;
|
|
4
|
+
}
|
|
5
|
+
const base = baseUrl || window.location.href;
|
|
6
|
+
const cleanBaseUrl = base.split("?")[0]?.split("#")[0];
|
|
7
|
+
const normalizedBaseUrl = cleanBaseUrl?.endsWith("/") ? cleanBaseUrl : cleanBaseUrl?.substring(0, cleanBaseUrl?.lastIndexOf("/") + 1);
|
|
8
|
+
return new URL(url, normalizedBaseUrl).toString();
|
|
17
9
|
};
|
|
18
|
-
|
|
19
|
-
|
|
10
|
+
export {
|
|
11
|
+
makeUrlAbsolute
|
|
12
|
+
};
|
|
13
|
+
//# sourceMappingURL=make-url-absolute.js.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../src/helpers/make-url-absolute.ts"],
|
|
4
|
+
"sourcesContent": ["/**\n * Pass an URL or a relative URL and get an absolute URL\n */\nexport const makeUrlAbsolute = (url?: string, baseUrl?: string) => {\n if (!url || url.startsWith('http://') || url.startsWith('https://') || (typeof window === 'undefined' && !baseUrl)) {\n return url\n }\n\n const base = baseUrl || window.location.href\n\n // Remove any query parameters or hash from the base URL\n const cleanBaseUrl = base.split('?')[0]?.split('#')[0]\n\n // For base URLs with a path component, we want to remove the last path segment\n // if it doesn't end with a slash\n const normalizedBaseUrl = cleanBaseUrl?.endsWith('/')\n ? cleanBaseUrl\n : cleanBaseUrl?.substring(0, cleanBaseUrl?.lastIndexOf('/') + 1)\n\n return new URL(url, normalizedBaseUrl).toString()\n}\n"],
|
|
5
|
+
"mappings": "AAGO,MAAM,kBAAkB,CAAC,KAAc,YAAqB;AACjE,MAAI,CAAC,OAAO,IAAI,WAAW,SAAS,KAAK,IAAI,WAAW,UAAU,KAAM,OAAO,WAAW,eAAe,CAAC,SAAU;AAClH,WAAO;AAAA,EACT;AAEA,QAAM,OAAO,WAAW,OAAO,SAAS;AAGxC,QAAM,eAAe,KAAK,MAAM,GAAG,EAAE,CAAC,GAAG,MAAM,GAAG,EAAE,CAAC;AAIrD,QAAM,oBAAoB,cAAc,SAAS,GAAG,IAChD,eACA,cAAc,UAAU,GAAG,cAAc,YAAY,GAAG,IAAI,CAAC;AAEjE,SAAO,IAAI,IAAI,KAAK,iBAAiB,EAAE,SAAS;AAClD;",
|
|
6
|
+
"names": []
|
|
7
|
+
}
|
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
import { describe, expect, it } from "vitest";
|
|
2
|
+
import { makeUrlAbsolute } from "./make-url-absolute.js";
|
|
3
|
+
describe("makeUrlAbsolute", () => {
|
|
4
|
+
it("returns undefined for undefined input", () => {
|
|
5
|
+
expect(makeUrlAbsolute(void 0)).toBeUndefined();
|
|
6
|
+
});
|
|
7
|
+
it("returns the same URL for absolute URLs", () => {
|
|
8
|
+
expect(makeUrlAbsolute("http://example.com")).toBe("http://example.com");
|
|
9
|
+
expect(makeUrlAbsolute("https://example.com")).toBe("https://example.com");
|
|
10
|
+
});
|
|
11
|
+
it("converts relative URLs to absolute URLs", () => {
|
|
12
|
+
const originalHref = window.location.href;
|
|
13
|
+
Object.defineProperty(window, "location", {
|
|
14
|
+
value: { href: "http://example.com/path/" },
|
|
15
|
+
writable: true
|
|
16
|
+
});
|
|
17
|
+
expect(makeUrlAbsolute("relative")).toBe("http://example.com/path/relative");
|
|
18
|
+
expect(makeUrlAbsolute("/absolute-path")).toBe("http://example.com/absolute-path");
|
|
19
|
+
Object.defineProperty(window, "location", {
|
|
20
|
+
value: { href: originalHref },
|
|
21
|
+
writable: true
|
|
22
|
+
});
|
|
23
|
+
});
|
|
24
|
+
it("handles base URLs without trailing slash", () => {
|
|
25
|
+
const originalHref = window.location.href;
|
|
26
|
+
Object.defineProperty(window, "location", {
|
|
27
|
+
value: { href: "http://example.com/path" },
|
|
28
|
+
writable: true
|
|
29
|
+
});
|
|
30
|
+
expect(makeUrlAbsolute("relative")).toBe("http://example.com/relative");
|
|
31
|
+
Object.defineProperty(window, "location", {
|
|
32
|
+
value: { href: originalHref },
|
|
33
|
+
writable: true
|
|
34
|
+
});
|
|
35
|
+
});
|
|
36
|
+
it("ignores query parameters and hash in base URL", () => {
|
|
37
|
+
const originalHref = window.location.href;
|
|
38
|
+
Object.defineProperty(window, "location", {
|
|
39
|
+
value: { href: "http://example.com/path?query=1#hash" },
|
|
40
|
+
writable: true
|
|
41
|
+
});
|
|
42
|
+
expect(makeUrlAbsolute("relative")).toBe("http://example.com/relative");
|
|
43
|
+
Object.defineProperty(window, "location", {
|
|
44
|
+
value: { href: originalHref },
|
|
45
|
+
writable: true
|
|
46
|
+
});
|
|
47
|
+
});
|
|
48
|
+
it("handles parent directory paths", () => {
|
|
49
|
+
const originalHref = window.location.href;
|
|
50
|
+
Object.defineProperty(window, "location", {
|
|
51
|
+
value: { href: "http://example.com/path/to/current/" },
|
|
52
|
+
writable: true
|
|
53
|
+
});
|
|
54
|
+
expect(makeUrlAbsolute("../openapi.json")).toBe("http://example.com/path/to/openapi.json");
|
|
55
|
+
Object.defineProperty(window, "location", {
|
|
56
|
+
value: { href: originalHref },
|
|
57
|
+
writable: true
|
|
58
|
+
});
|
|
59
|
+
});
|
|
60
|
+
});
|
|
61
|
+
//# sourceMappingURL=make-url-absolute.test.js.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../src/helpers/make-url-absolute.test.ts"],
|
|
4
|
+
"sourcesContent": ["import { describe, expect, it } from 'vitest'\n\nimport { makeUrlAbsolute } from './make-url-absolute'\n\n/**\n * @vitest-environment jsdom\n */\ndescribe('makeUrlAbsolute', () => {\n it('returns undefined for undefined input', () => {\n expect(makeUrlAbsolute(undefined)).toBeUndefined()\n })\n\n it('returns the same URL for absolute URLs', () => {\n expect(makeUrlAbsolute('http://example.com')).toBe('http://example.com')\n expect(makeUrlAbsolute('https://example.com')).toBe('https://example.com')\n })\n\n it('converts relative URLs to absolute URLs', () => {\n // Mock window.location.href\n const originalHref = window.location.href\n Object.defineProperty(window, 'location', {\n value: { href: 'http://example.com/path/' },\n writable: true,\n })\n\n expect(makeUrlAbsolute('relative')).toBe('http://example.com/path/relative')\n expect(makeUrlAbsolute('/absolute-path')).toBe('http://example.com/absolute-path')\n\n // Restore original window.location.href\n Object.defineProperty(window, 'location', {\n value: { href: originalHref },\n writable: true,\n })\n })\n\n it('handles base URLs without trailing slash', () => {\n // Mock window.location.href\n const originalHref = window.location.href\n Object.defineProperty(window, 'location', {\n value: { href: 'http://example.com/path' },\n writable: true,\n })\n\n expect(makeUrlAbsolute('relative')).toBe('http://example.com/relative')\n\n // Restore original window.location.href\n Object.defineProperty(window, 'location', {\n value: { href: originalHref },\n writable: true,\n })\n })\n\n it('ignores query parameters and hash in base URL', () => {\n // Mock window.location.href\n const originalHref = window.location.href\n Object.defineProperty(window, 'location', {\n value: { href: 'http://example.com/path?query=1#hash' },\n writable: true,\n })\n\n expect(makeUrlAbsolute('relative')).toBe('http://example.com/relative')\n\n // Restore original window.location.href\n Object.defineProperty(window, 'location', {\n value: { href: originalHref },\n writable: true,\n })\n })\n\n it('handles parent directory paths', () => {\n // Mock window.location.href\n const originalHref = window.location.href\n Object.defineProperty(window, 'location', {\n value: { href: 'http://example.com/path/to/current/' },\n writable: true,\n })\n\n expect(makeUrlAbsolute('../openapi.json')).toBe('http://example.com/path/to/openapi.json')\n\n // Restore original window.location.href\n Object.defineProperty(window, 'location', {\n value: { href: originalHref },\n writable: true,\n })\n })\n})\n"],
|
|
5
|
+
"mappings": "AAAA,SAAS,UAAU,QAAQ,UAAU;AAErC,SAAS,uBAAuB;AAKhC,SAAS,mBAAmB,MAAM;AAChC,KAAG,yCAAyC,MAAM;AAChD,WAAO,gBAAgB,MAAS,CAAC,EAAE,cAAc;AAAA,EACnD,CAAC;AAED,KAAG,0CAA0C,MAAM;AACjD,WAAO,gBAAgB,oBAAoB,CAAC,EAAE,KAAK,oBAAoB;AACvE,WAAO,gBAAgB,qBAAqB,CAAC,EAAE,KAAK,qBAAqB;AAAA,EAC3E,CAAC;AAED,KAAG,2CAA2C,MAAM;AAElD,UAAM,eAAe,OAAO,SAAS;AACrC,WAAO,eAAe,QAAQ,YAAY;AAAA,MACxC,OAAO,EAAE,MAAM,2BAA2B;AAAA,MAC1C,UAAU;AAAA,IACZ,CAAC;AAED,WAAO,gBAAgB,UAAU,CAAC,EAAE,KAAK,kCAAkC;AAC3E,WAAO,gBAAgB,gBAAgB,CAAC,EAAE,KAAK,kCAAkC;AAGjF,WAAO,eAAe,QAAQ,YAAY;AAAA,MACxC,OAAO,EAAE,MAAM,aAAa;AAAA,MAC5B,UAAU;AAAA,IACZ,CAAC;AAAA,EACH,CAAC;AAED,KAAG,4CAA4C,MAAM;AAEnD,UAAM,eAAe,OAAO,SAAS;AACrC,WAAO,eAAe,QAAQ,YAAY;AAAA,MACxC,OAAO,EAAE,MAAM,0BAA0B;AAAA,MACzC,UAAU;AAAA,IACZ,CAAC;AAED,WAAO,gBAAgB,UAAU,CAAC,EAAE,KAAK,6BAA6B;AAGtE,WAAO,eAAe,QAAQ,YAAY;AAAA,MACxC,OAAO,EAAE,MAAM,aAAa;AAAA,MAC5B,UAAU;AAAA,IACZ,CAAC;AAAA,EACH,CAAC;AAED,KAAG,iDAAiD,MAAM;AAExD,UAAM,eAAe,OAAO,SAAS;AACrC,WAAO,eAAe,QAAQ,YAAY;AAAA,MACxC,OAAO,EAAE,MAAM,uCAAuC;AAAA,MACtD,UAAU;AAAA,IACZ,CAAC;AAED,WAAO,gBAAgB,UAAU,CAAC,EAAE,KAAK,6BAA6B;AAGtE,WAAO,eAAe,QAAQ,YAAY;AAAA,MACxC,OAAO,EAAE,MAAM,aAAa;AAAA,MAC5B,UAAU;AAAA,IACZ,CAAC;AAAA,EACH,CAAC;AAED,KAAG,kCAAkC,MAAM;AAEzC,UAAM,eAAe,OAAO,SAAS;AACrC,WAAO,eAAe,QAAQ,YAAY;AAAA,MACxC,OAAO,EAAE,MAAM,sCAAsC;AAAA,MACrD,UAAU;AAAA,IACZ,CAAC;AAED,WAAO,gBAAgB,iBAAiB,CAAC,EAAE,KAAK,yCAAyC;AAGzF,WAAO,eAAe,QAAQ,YAAY;AAAA,MACxC,OAAO,EAAE,MAAM,aAAa;AAAA,MAC5B,UAAU;AAAA,IACZ,CAAC;AAAA,EACH,CAAC;AACH,CAAC;",
|
|
6
|
+
"names": []
|
|
7
|
+
}
|
|
@@ -1,81 +1,56 @@
|
|
|
1
|
-
import { ensureProtocol } from
|
|
2
|
-
import { isRelativePath } from
|
|
3
|
-
import { REGEX } from
|
|
4
|
-
|
|
5
|
-
/**
|
|
6
|
-
* Merges multiple URLSearchParams objects, preserving multiple values per param
|
|
7
|
-
* within each source, but later sources overwrite earlier ones completely
|
|
8
|
-
* This should de-dupe our query params while allowing multiple keys for "arrays"
|
|
9
|
-
*/
|
|
1
|
+
import { ensureProtocol } from "./ensure-protocol.js";
|
|
2
|
+
import { isRelativePath } from "./redirect-to-proxy.js";
|
|
3
|
+
import { REGEX } from "./regex-helpers.js";
|
|
10
4
|
const mergeSearchParams = (...params) => {
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
const value = values.length > 1 ? values : (values[0] ?? '');
|
|
20
|
-
merged[key] = value;
|
|
21
|
-
});
|
|
5
|
+
const merged = {};
|
|
6
|
+
params.forEach((p) => {
|
|
7
|
+
const keys = Array.from(p.keys());
|
|
8
|
+
const uniqueKeys = new Set(keys);
|
|
9
|
+
uniqueKeys.forEach((key) => {
|
|
10
|
+
const values = p.getAll(key);
|
|
11
|
+
const value = values.length > 1 ? values : values[0] ?? "";
|
|
12
|
+
merged[key] = value;
|
|
22
13
|
});
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
return result;
|
|
14
|
+
});
|
|
15
|
+
const result = new URLSearchParams();
|
|
16
|
+
Object.entries(merged).forEach(([key, value]) => {
|
|
17
|
+
if (Array.isArray(value)) {
|
|
18
|
+
value.forEach((v) => result.append(key, v));
|
|
19
|
+
} else {
|
|
20
|
+
result.append(key, value);
|
|
21
|
+
}
|
|
22
|
+
});
|
|
23
|
+
return result;
|
|
34
24
|
};
|
|
35
|
-
/** Combines a base URL and a path ensuring there's only one slash between them */
|
|
36
25
|
const combineUrlAndPath = (url, path) => {
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
26
|
+
if (!path || url === path) {
|
|
27
|
+
return url.trim();
|
|
28
|
+
}
|
|
29
|
+
if (!url) {
|
|
30
|
+
return path.trim();
|
|
31
|
+
}
|
|
32
|
+
return `${url.trim()}/${path.trim()}`.replace(REGEX.MULTIPLE_SLASHES, "/");
|
|
44
33
|
};
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
const
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
const pathParams = new URLSearchParams(pathQuery || '');
|
|
67
|
-
// Merge the baseUrl and path
|
|
68
|
-
const mergedUrl = url === path ? baseUrl : combineUrlAndPath(baseUrl, pathWithoutQuery);
|
|
69
|
-
// Merge all search params
|
|
70
|
-
const mergedSearchParams = mergeSearchParams(baseParams, pathParams, urlParams);
|
|
71
|
-
// Build the final URL
|
|
72
|
-
const search = mergedSearchParams.toString();
|
|
73
|
-
return search ? `${mergedUrl}?${search}` : mergedUrl;
|
|
74
|
-
}
|
|
75
|
-
if (path) {
|
|
76
|
-
return combineUrlAndPath(url, path);
|
|
77
|
-
}
|
|
78
|
-
return '';
|
|
34
|
+
const mergeUrls = (url, path, urlParams = new URLSearchParams(), disableOriginPrefix = false) => {
|
|
35
|
+
if (url && (!isRelativePath(url) || typeof window !== "undefined")) {
|
|
36
|
+
const base = disableOriginPrefix ? url : isRelativePath(url) ? combineUrlAndPath(window.location.origin, url) : ensureProtocol(url);
|
|
37
|
+
const [baseUrl = "", baseQuery] = base.split("?");
|
|
38
|
+
const baseParams = new URLSearchParams(baseQuery || "");
|
|
39
|
+
const [pathWithoutQuery = "", pathQuery] = path.split("?");
|
|
40
|
+
const pathParams = new URLSearchParams(pathQuery || "");
|
|
41
|
+
const mergedUrl = url === path ? baseUrl : combineUrlAndPath(baseUrl, pathWithoutQuery);
|
|
42
|
+
const mergedSearchParams = mergeSearchParams(baseParams, pathParams, urlParams);
|
|
43
|
+
const search = mergedSearchParams.toString();
|
|
44
|
+
return search ? `${mergedUrl}?${search}` : mergedUrl;
|
|
45
|
+
}
|
|
46
|
+
if (path) {
|
|
47
|
+
return combineUrlAndPath(url, path);
|
|
48
|
+
}
|
|
49
|
+
return "";
|
|
50
|
+
};
|
|
51
|
+
export {
|
|
52
|
+
combineUrlAndPath,
|
|
53
|
+
mergeSearchParams,
|
|
54
|
+
mergeUrls
|
|
79
55
|
};
|
|
80
|
-
|
|
81
|
-
export { combineUrlAndPath, mergeSearchParams, mergeUrls };
|
|
56
|
+
//# sourceMappingURL=merge-urls.js.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../src/helpers/merge-urls.ts"],
|
|
4
|
+
"sourcesContent": ["import { ensureProtocol } from './ensure-protocol'\nimport { isRelativePath } from './redirect-to-proxy'\nimport { REGEX } from './regex-helpers'\n\n/**\n * Merges multiple URLSearchParams objects, preserving multiple values per param\n * within each source, but later sources overwrite earlier ones completely\n * This should de-dupe our query params while allowing multiple keys for \"arrays\"\n */\nexport const mergeSearchParams = (...params: URLSearchParams[]): URLSearchParams => {\n // We keep a merged record to ensure the next group will overwrite the previous\n const merged: Record<string, string | string[]> = {}\n\n // Loops over each group and grabs unique keys\n params.forEach((p) => {\n const keys = Array.from(p.keys())\n const uniqueKeys = new Set(keys)\n\n uniqueKeys.forEach((key) => {\n const values = p.getAll(key)\n const value = values.length > 1 ? values : (values[0] ?? '')\n\n merged[key] = value\n })\n })\n\n const result = new URLSearchParams()\n\n // We maintain multiple values for each key if they existed\n Object.entries(merged).forEach(([key, value]) => {\n if (Array.isArray(value)) {\n value.forEach((v) => result.append(key, v))\n } else {\n result.append(key, value)\n }\n })\n\n return result\n}\n\n/** Combines a base URL and a path ensuring there's only one slash between them */\nexport const combineUrlAndPath = (url: string, path: string) => {\n if (!path || url === path) {\n return url.trim()\n }\n\n if (!url) {\n return path.trim()\n }\n\n return `${url.trim()}/${path.trim()}`.replace(REGEX.MULTIPLE_SLASHES, '/')\n}\n\n/**\n * Creates a URL from the path and server\n * also optionally merges query params if you include urlSearchParams\n * This was re-written without using URL to support variables in the scheme\n */\nexport const mergeUrls = (\n url: string,\n path: string,\n urlParams: URLSearchParams = new URLSearchParams(),\n /** To disable prefixing the url with the origin or a scheme*/\n disableOriginPrefix = false,\n) => {\n // Extract and merge all query params\n if (url && (!isRelativePath(url) || typeof window !== 'undefined')) {\n /** Prefix the url with the origin if it is relative and we wish to */\n const base = disableOriginPrefix\n ? url\n : isRelativePath(url)\n ? combineUrlAndPath(window.location.origin, url)\n : ensureProtocol(url)\n\n // Extract search params from base URL if any\n const [baseUrl = '', baseQuery] = base.split('?')\n const baseParams = new URLSearchParams(baseQuery || '')\n\n // Extract search params from path if any\n const [pathWithoutQuery = '', pathQuery] = path.split('?')\n const pathParams = new URLSearchParams(pathQuery || '')\n\n // Merge the baseUrl and path\n const mergedUrl = url === path ? baseUrl : combineUrlAndPath(baseUrl, pathWithoutQuery)\n\n // Merge all search params\n const mergedSearchParams = mergeSearchParams(baseParams, pathParams, urlParams)\n\n // Build the final URL\n const search = mergedSearchParams.toString()\n return search ? `${mergedUrl}?${search}` : mergedUrl\n }\n if (path) {\n return combineUrlAndPath(url, path)\n }\n return ''\n}\n"],
|
|
5
|
+
"mappings": "AAAA,SAAS,sBAAsB;AAC/B,SAAS,sBAAsB;AAC/B,SAAS,aAAa;AAOf,MAAM,oBAAoB,IAAI,WAA+C;AAElF,QAAM,SAA4C,CAAC;AAGnD,SAAO,QAAQ,CAAC,MAAM;AACpB,UAAM,OAAO,MAAM,KAAK,EAAE,KAAK,CAAC;AAChC,UAAM,aAAa,IAAI,IAAI,IAAI;AAE/B,eAAW,QAAQ,CAAC,QAAQ;AAC1B,YAAM,SAAS,EAAE,OAAO,GAAG;AAC3B,YAAM,QAAQ,OAAO,SAAS,IAAI,SAAU,OAAO,CAAC,KAAK;AAEzD,aAAO,GAAG,IAAI;AAAA,IAChB,CAAC;AAAA,EACH,CAAC;AAED,QAAM,SAAS,IAAI,gBAAgB;AAGnC,SAAO,QAAQ,MAAM,EAAE,QAAQ,CAAC,CAAC,KAAK,KAAK,MAAM;AAC/C,QAAI,MAAM,QAAQ,KAAK,GAAG;AACxB,YAAM,QAAQ,CAAC,MAAM,OAAO,OAAO,KAAK,CAAC,CAAC;AAAA,IAC5C,OAAO;AACL,aAAO,OAAO,KAAK,KAAK;AAAA,IAC1B;AAAA,EACF,CAAC;AAED,SAAO;AACT;AAGO,MAAM,oBAAoB,CAAC,KAAa,SAAiB;AAC9D,MAAI,CAAC,QAAQ,QAAQ,MAAM;AACzB,WAAO,IAAI,KAAK;AAAA,EAClB;AAEA,MAAI,CAAC,KAAK;AACR,WAAO,KAAK,KAAK;AAAA,EACnB;AAEA,SAAO,GAAG,IAAI,KAAK,CAAC,IAAI,KAAK,KAAK,CAAC,GAAG,QAAQ,MAAM,kBAAkB,GAAG;AAC3E;AAOO,MAAM,YAAY,CACvB,KACA,MACA,YAA6B,IAAI,gBAAgB,GAEjD,sBAAsB,UACnB;AAEH,MAAI,QAAQ,CAAC,eAAe,GAAG,KAAK,OAAO,WAAW,cAAc;AAElE,UAAM,OAAO,sBACT,MACA,eAAe,GAAG,IAChB,kBAAkB,OAAO,SAAS,QAAQ,GAAG,IAC7C,eAAe,GAAG;AAGxB,UAAM,CAAC,UAAU,IAAI,SAAS,IAAI,KAAK,MAAM,GAAG;AAChD,UAAM,aAAa,IAAI,gBAAgB,aAAa,EAAE;AAGtD,UAAM,CAAC,mBAAmB,IAAI,SAAS,IAAI,KAAK,MAAM,GAAG;AACzD,UAAM,aAAa,IAAI,gBAAgB,aAAa,EAAE;AAGtD,UAAM,YAAY,QAAQ,OAAO,UAAU,kBAAkB,SAAS,gBAAgB;AAGtF,UAAM,qBAAqB,kBAAkB,YAAY,YAAY,SAAS;AAG9E,UAAM,SAAS,mBAAmB,SAAS;AAC3C,WAAO,SAAS,GAAG,SAAS,IAAI,MAAM,KAAK;AAAA,EAC7C;AACA,MAAI,MAAM;AACR,WAAO,kBAAkB,KAAK,IAAI;AAAA,EACpC;AACA,SAAO;AACT;",
|
|
6
|
+
"names": []
|
|
7
|
+
}
|