diff --git a/package-lock.json b/package-lock.json index e7fe97b..dfc1aaa 100644 --- a/package-lock.json +++ b/package-lock.json @@ -11,8 +11,8 @@ "dependencies": { "@antv/g6": "^5.0.49", "@duckdb/duckdb-wasm": "1.29.0", - "@ladybugdb/core": "0.16.1", - "@ladybugdb/wasm-core": "0.16.1", + "@ladybugdb/core": "0.17.0", + "@ladybugdb/wasm-core": "0.17.0", "antlr4-c3": "3.2.3", "antlr4ng": "1.0.7", "bootstrap": "^5.3.1", @@ -2330,27 +2330,28 @@ } }, "node_modules/@ladybugdb/core": { - "version": "0.16.1", - "resolved": "https://registry.npmjs.org/@ladybugdb/core/-/core-0.16.1.tgz", - "integrity": "sha512-qwuEcR8CVMKb6tNDaHtq7Ux8hT/XbPC0db+vwutX6JxNAejyx7YomHKPSy9XAKURhYK8mezZe3UN8rf+xpHOjQ==", + "version": "0.17.0", + "resolved": "https://registry.npmjs.org/@ladybugdb/core/-/core-0.17.0.tgz", + "integrity": "sha512-fg7EGEJUj6H5JJLpU3iD5R0pAEc9u2OkU7ufX10krph9bCIhQyt/Tk6y/g4+x9zi/IHXegOjAVfSpWZp1gpoAA==", "hasInstallScript": true, "license": "MIT", "dependencies": { + "apache-arrow": "^21.1.0", "cmake-js": "^8.0.0", "node-addon-api": "^6.0.0" }, "optionalDependencies": { - "@ladybugdb/core-darwin-arm64": "0.16.1", - "@ladybugdb/core-darwin-x64": "0.16.1", - "@ladybugdb/core-linux-arm64": "0.16.1", - "@ladybugdb/core-linux-x64": "0.16.1", - "@ladybugdb/core-win32-x64": "0.16.1" + "@ladybugdb/core-darwin-arm64": "0.17.0", + "@ladybugdb/core-darwin-x64": "0.17.0", + "@ladybugdb/core-linux-arm64": "0.17.0", + "@ladybugdb/core-linux-x64": "0.17.0", + "@ladybugdb/core-win32-x64": "0.17.0" } }, "node_modules/@ladybugdb/core-darwin-arm64": { - "version": "0.16.1", - "resolved": "https://registry.npmjs.org/@ladybugdb/core-darwin-arm64/-/core-darwin-arm64-0.16.1.tgz", - "integrity": "sha512-Nl+Cf70rD+HaC9IBHv+oeUwqX9plghXD7PN9tyMzMohRVPvcGEbqWPB6YcdJa8rR7qRqCCbmaNMDen5wg4rY2w==", + "version": "0.17.0", + "resolved": "https://registry.npmjs.org/@ladybugdb/core-darwin-arm64/-/core-darwin-arm64-0.17.0.tgz", + "integrity": "sha512-wghUBEmcQ9U10QOyOxXVQTZ6SHtkB8QV3sJHwCj2Dn5B/SsaB36kA4l2oKbgXpKDgjmSYiz3DfMs5yfDqen9UA==", "cpu": [ "arm64" ], @@ -2361,9 +2362,9 @@ ] }, "node_modules/@ladybugdb/core-darwin-x64": { - "version": "0.16.1", - "resolved": "https://registry.npmjs.org/@ladybugdb/core-darwin-x64/-/core-darwin-x64-0.16.1.tgz", - "integrity": "sha512-4eAjfimAAQRSmDfUUkGrl9OhefxcW1ziA9tl0eljBlGoUseE7dL02+RSqjGohYMcQ+lzuHAq1QWb0XRlMA8YTQ==", + "version": "0.17.0", + "resolved": "https://registry.npmjs.org/@ladybugdb/core-darwin-x64/-/core-darwin-x64-0.17.0.tgz", + "integrity": "sha512-f0QRhmDY8NEMjAT3IbFELMEFxAnKq6trppn1vgAFIk9wTD/MKakfX/gtXOazpOZQHkwlfNgs+WSkJFfFvQ4JaQ==", "cpu": [ "x64" ], @@ -2374,9 +2375,9 @@ ] }, "node_modules/@ladybugdb/core-linux-arm64": { - "version": "0.16.1", - "resolved": "https://registry.npmjs.org/@ladybugdb/core-linux-arm64/-/core-linux-arm64-0.16.1.tgz", - "integrity": "sha512-zkctksev+hsPFrNxHHdq4lYK5OWdLhWfRdQzjzkgDyaHayHU6yCL2fgD6uPGQ8TRQ6/2DxMErb4p3FzGW85Ubw==", + "version": "0.17.0", + "resolved": "https://registry.npmjs.org/@ladybugdb/core-linux-arm64/-/core-linux-arm64-0.17.0.tgz", + "integrity": "sha512-TS9nbkvLJZt3Tgm6zzd/QuZmTiVoyQTPfbbwPej0VfcCVAfa1sDpZtoMlwse9EVHOrowQ0SorJVPg194lYVxdg==", "cpu": [ "arm64" ], @@ -2387,9 +2388,9 @@ ] }, "node_modules/@ladybugdb/core-linux-x64": { - "version": "0.16.1", - "resolved": "https://registry.npmjs.org/@ladybugdb/core-linux-x64/-/core-linux-x64-0.16.1.tgz", - "integrity": "sha512-5rAb9T5vif8WKhHwhobosu2/aiOwJkWb/ViybvUc5GFKunKl8VI6RmZQVeufT9zUzRktUwrxBrxblCxsnamXJw==", + "version": "0.17.0", + "resolved": "https://registry.npmjs.org/@ladybugdb/core-linux-x64/-/core-linux-x64-0.17.0.tgz", + "integrity": "sha512-T/C0QKDoBCs8s/NQ2Udip8lZgJ8MzLqs2rRgreDd2dCP3aNnXu8eOBe10RSoRO5PiZZIZihXoz4Q8KMM6FtBGQ==", "cpu": [ "x64" ], @@ -2400,9 +2401,9 @@ ] }, "node_modules/@ladybugdb/core-win32-x64": { - "version": "0.16.1", - "resolved": "https://registry.npmjs.org/@ladybugdb/core-win32-x64/-/core-win32-x64-0.16.1.tgz", - "integrity": "sha512-ShOUTrIuZKQ63J95tcRJxKf1cvg8yi2FSYx9kMTSercc1FdQZPV+zxUN0myMq3MTWOl7xDxsVMmdp/t80O29UQ==", + "version": "0.17.0", + "resolved": "https://registry.npmjs.org/@ladybugdb/core-win32-x64/-/core-win32-x64-0.17.0.tgz", + "integrity": "sha512-XrQrbPD3h+MhP94jVu+4VgNnp8LKSskPll+/au+Ug3yqpXZ0We9lXX5+rW4NHuIYdAYy4iLheYz4OuozUS20qg==", "cpu": [ "x64" ], @@ -2412,6 +2413,44 @@ "win32" ] }, + "node_modules/@ladybugdb/core/node_modules/@types/node": { + "version": "24.12.4", + "resolved": "https://registry.npmjs.org/@types/node/-/node-24.12.4.tgz", + "integrity": "sha512-GUUEShf+PBCGW2KaXwcIt3Yk+e3pkKwWKb9GSyM9WQVE+ep2jzmHdGsHzu4wgcZy5fN9FBdVzjpBQsYlpfpgLA==", + "license": "MIT", + "dependencies": { + "undici-types": "~7.16.0" + } + }, + "node_modules/@ladybugdb/core/node_modules/apache-arrow": { + "version": "21.1.0", + "resolved": "https://registry.npmjs.org/apache-arrow/-/apache-arrow-21.1.0.tgz", + "integrity": "sha512-kQrYLxhC+NTVVZ4CCzGF6L/uPVOzJmD1T3XgbiUnP7oTeVFOFgEUu6IKNwCDkpFoBVqDKQivlX4RUFqqnWFlEA==", + "license": "Apache-2.0", + "dependencies": { + "@swc/helpers": "^0.5.11", + "@types/command-line-args": "^5.2.3", + "@types/command-line-usage": "^5.0.4", + "@types/node": "^24.0.3", + "command-line-args": "^6.0.1", + "command-line-usage": "^7.0.1", + "flatbuffers": "^25.1.24", + "json-bignum": "^0.0.3", + "tslib": "^2.6.2" + }, + "bin": { + "arrow2csv": "bin/arrow2csv.js" + } + }, + "node_modules/@ladybugdb/core/node_modules/array-back": { + "version": "6.2.3", + "resolved": "https://registry.npmjs.org/array-back/-/array-back-6.2.3.tgz", + "integrity": "sha512-SGDvmg6QTYiTxCBkYVmThcoa67uLl35pyzRHdpCGBOcqFy6BtwnphoFPk7LhJshD+Yk1Kt35WGWeZPTgwR4Fhw==", + "license": "MIT", + "engines": { + "node": ">=12.17" + } + }, "node_modules/@ladybugdb/core/node_modules/cliui": { "version": "8.0.1", "resolved": "https://registry.npmjs.org/cliui/-/cliui-8.0.1.tgz", @@ -2449,6 +2488,52 @@ "node": "^20.17.0 || >=22.9.0" } }, + "node_modules/@ladybugdb/core/node_modules/command-line-args": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/command-line-args/-/command-line-args-6.0.2.tgz", + "integrity": "sha512-AIjYVxrV9X752LmPDLbVYv8aMCuHPSLZJXEo2qo/xJfv+NYhaZ4sMSF01rM+gHPaMgvPM0l5D/F+Qx+i2WfSmQ==", + "license": "MIT", + "dependencies": { + "array-back": "^6.2.3", + "find-replace": "^5.0.2", + "lodash.camelcase": "^4.3.0", + "typical": "^7.3.0" + }, + "engines": { + "node": ">=12.20" + }, + "peerDependencies": { + "@75lb/nature": "latest" + }, + "peerDependenciesMeta": { + "@75lb/nature": { + "optional": true + } + } + }, + "node_modules/@ladybugdb/core/node_modules/find-replace": { + "version": "5.0.2", + "resolved": "https://registry.npmjs.org/find-replace/-/find-replace-5.0.2.tgz", + "integrity": "sha512-Y45BAiE3mz2QsrN2fb5QEtO4qb44NcS7en/0y9PEVsg351HsLeVclP8QPMH79Le9sH3rs5RSwJu99W0WPZO43Q==", + "license": "MIT", + "engines": { + "node": ">=14" + }, + "peerDependencies": { + "@75lb/nature": "latest" + }, + "peerDependenciesMeta": { + "@75lb/nature": { + "optional": true + } + } + }, + "node_modules/@ladybugdb/core/node_modules/flatbuffers": { + "version": "25.9.23", + "resolved": "https://registry.npmjs.org/flatbuffers/-/flatbuffers-25.9.23.tgz", + "integrity": "sha512-MI1qs7Lo4Syw0EOzUl0xjs2lsoeqFku44KpngfIduHBYvzm8h2+7K8YMQh1JtVVVrUvhLpNwqVi4DERegUJhPQ==", + "license": "Apache-2.0" + }, "node_modules/@ladybugdb/core/node_modules/fs-extra": { "version": "11.3.4", "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-11.3.4.tgz", @@ -2484,6 +2569,21 @@ "node": ">=10" } }, + "node_modules/@ladybugdb/core/node_modules/typical": { + "version": "7.3.0", + "resolved": "https://registry.npmjs.org/typical/-/typical-7.3.0.tgz", + "integrity": "sha512-ya4mg/30vm+DOWfBg4YK3j2WD6TWtRkCbasOJr40CseYENzCUby/7rIvXA99JGsQHeNxLbnXdyLLxKSv3tauFw==", + "license": "MIT", + "engines": { + "node": ">=12.17" + } + }, + "node_modules/@ladybugdb/core/node_modules/undici-types": { + "version": "7.16.0", + "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-7.16.0.tgz", + "integrity": "sha512-Zz+aZWSj8LE6zoxD+xrjh4VfkIG8Ya6LvYkZqtUQGJPZjYl53ypCaUwWqo7eI0x66KBGeRo+mlBEkMSeSZ38Nw==", + "license": "MIT" + }, "node_modules/@ladybugdb/core/node_modules/which": { "version": "6.0.1", "resolved": "https://registry.npmjs.org/which/-/which-6.0.1.tgz", @@ -2527,9 +2627,9 @@ } }, "node_modules/@ladybugdb/wasm-core": { - "version": "0.16.1", - "resolved": "https://registry.npmjs.org/@ladybugdb/wasm-core/-/wasm-core-0.16.1.tgz", - "integrity": "sha512-lp2aGxedOsVBJ6bgMvsEJMIX8iUBQwqTADYR9RES4kgKGHrdNep1vKQC9fLtpZ9vR14uTSEgbNGq1c5ljUYUcA==", + "version": "0.17.0", + "resolved": "https://registry.npmjs.org/@ladybugdb/wasm-core/-/wasm-core-0.17.0.tgz", + "integrity": "sha512-KixXwTrqeTptxd90UHv9pRaCu81/QeajhT1EPiV6pOuSFlWS0ntOwwVO5M39URcvuyGvSgL0MpBE4Tm4PdQVnw==", "license": "MIT", "dependencies": { "threads": "^1.7.0", diff --git a/package.json b/package.json index 9a411c7..25840cf 100644 --- a/package.json +++ b/package.json @@ -22,8 +22,8 @@ "dependencies": { "@antv/g6": "^5.0.49", "@duckdb/duckdb-wasm": "1.29.0", - "@ladybugdb/core": "0.16.1", - "@ladybugdb/wasm-core": "0.16.1", + "@ladybugdb/core": "0.17.0", + "@ladybugdb/wasm-core": "0.17.0", "antlr4-c3": "3.2.3", "antlr4ng": "1.0.7", "bootstrap": "^5.3.1", diff --git a/src/utils/AxiosWrapper.js b/src/utils/AxiosWrapper.js index 583b050..739b0bd 100644 --- a/src/utils/AxiosWrapper.js +++ b/src/utils/AxiosWrapper.js @@ -1,4 +1,4 @@ -const baseURL = process.env.BASE_URL; +const baseURL = process.env.BASE_URL || ""; class HttpError extends Error { constructor(message, response) { @@ -52,7 +52,7 @@ async function request(method, url, data, config = {}) { headers.set("Accept", "application/json"); } - const response = await fetch(`${baseURL || ""}${url}`, options); + const response = await fetch(buildURL(url), options); const responseData = await parseResponse(response); const result = { data: responseData, @@ -67,6 +67,18 @@ async function request(method, url, data, config = {}) { return result; } +function buildURL(url) { + if (/^[a-z][a-z\d+\-.]*:\/\//i.test(url) || url.startsWith("//")) { + return url; + } + if (!baseURL || baseURL === "/") { + return url.startsWith("/") ? url : `/${url}`; + } + const normalizedBaseURL = baseURL.endsWith("/") ? baseURL.slice(0, -1) : baseURL; + const normalizedURL = url.startsWith("/") ? url : `/${url}`; + return `${normalizedBaseURL}${normalizedURL}`; +} + export default { get(url, config) { return request("GET", url, undefined, config);