@walkthru-earth/objex-utils 0.1.0 → 1.0.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.
- package/dist/index.cjs +376 -24
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +52 -4
- package/dist/index.d.ts +52 -4
- package/dist/index.js +365 -25
- package/dist/index.js.map +1 -1
- package/package.json +10 -2
package/dist/index.cjs
CHANGED
|
@@ -2,6 +2,21 @@
|
|
|
2
2
|
|
|
3
3
|
var apacheArrow = require('apache-arrow');
|
|
4
4
|
|
|
5
|
+
// ../../src/lib/constants.ts
|
|
6
|
+
var STORAGE_KEYS = {
|
|
7
|
+
SETTINGS: "obstore-explore-settings",
|
|
8
|
+
CONNECTIONS: "obstore-explore-connections",
|
|
9
|
+
QUERY_HISTORY: "obstore-explore-query-history"
|
|
10
|
+
};
|
|
11
|
+
var WGS84_CODES = /* @__PURE__ */ new Set([4326, 4979]);
|
|
12
|
+
var DEFAULT_TARGET_CRS = "EPSG:4326";
|
|
13
|
+
var DUCKDB_INIT_TIMEOUT_MS = 3e4;
|
|
14
|
+
var MAX_QUERY_HISTORY_ENTRIES = 200;
|
|
15
|
+
var SQL_PREVIEW_LENGTH = 120;
|
|
16
|
+
var VIEWER_DIR_EXTENSIONS = /* @__PURE__ */ new Set(["zarr", "zr3"]);
|
|
17
|
+
var LAYER_HUE_MULTIPLIER = 137;
|
|
18
|
+
var COPY_FEEDBACK_MS = 2e3;
|
|
19
|
+
|
|
5
20
|
// ../../src/lib/file-icons/index.ts
|
|
6
21
|
var DEFAULT_INFO = {
|
|
7
22
|
icon: "File",
|
|
@@ -1000,6 +1015,11 @@ var EXTENSIONS = {
|
|
|
1000
1015
|
}
|
|
1001
1016
|
};
|
|
1002
1017
|
function getFileTypeInfo(extension, isDir = false) {
|
|
1018
|
+
if (isDir && extension) {
|
|
1019
|
+
const ext2 = extension.startsWith(".") ? extension.toLowerCase() : `.${extension.toLowerCase()}`;
|
|
1020
|
+
const found = EXTENSIONS[ext2];
|
|
1021
|
+
if (found) return found;
|
|
1022
|
+
}
|
|
1003
1023
|
if (isDir) return FOLDER_INFO;
|
|
1004
1024
|
const ext = extension.startsWith(".") ? extension.toLowerCase() : `.${extension.toLowerCase()}`;
|
|
1005
1025
|
return EXTENSIONS[ext] ?? DEFAULT_INFO;
|
|
@@ -1200,6 +1220,12 @@ function typeLabel(category) {
|
|
|
1200
1220
|
return TYPE_LABELS[category];
|
|
1201
1221
|
}
|
|
1202
1222
|
|
|
1223
|
+
// ../../src/lib/utils/error.ts
|
|
1224
|
+
function handleLoadError(err) {
|
|
1225
|
+
if (err instanceof DOMException && err.name === "AbortError") return null;
|
|
1226
|
+
return err instanceof Error ? err.message : String(err);
|
|
1227
|
+
}
|
|
1228
|
+
|
|
1203
1229
|
// ../../src/lib/utils/format.ts
|
|
1204
1230
|
function formatFileSize(bytes) {
|
|
1205
1231
|
if (bytes < 0) return "0 B";
|
|
@@ -1235,6 +1261,16 @@ function getFileExtension(filename) {
|
|
|
1235
1261
|
if (lastDot <= 0) return "";
|
|
1236
1262
|
return filename.slice(lastDot).toLowerCase();
|
|
1237
1263
|
}
|
|
1264
|
+
function jsonReplacerBigInt(_key, value) {
|
|
1265
|
+
return typeof value === "bigint" ? value.toString() : value;
|
|
1266
|
+
}
|
|
1267
|
+
function formatValue(value) {
|
|
1268
|
+
if (value === null || value === void 0) return "NULL";
|
|
1269
|
+
if (value instanceof Date) return value.toISOString();
|
|
1270
|
+
if (typeof value === "bigint") return value.toString();
|
|
1271
|
+
if (typeof value === "object") return JSON.stringify(value, jsonReplacerBigInt);
|
|
1272
|
+
return String(value);
|
|
1273
|
+
}
|
|
1238
1274
|
function normalizeGeomType(raw) {
|
|
1239
1275
|
const s = raw.toUpperCase().replace(/\s+/g, "");
|
|
1240
1276
|
if (s === "POINT") return "point";
|
|
@@ -1837,7 +1873,6 @@ function generateHexDump(data, bytesPerRow = 16) {
|
|
|
1837
1873
|
}
|
|
1838
1874
|
|
|
1839
1875
|
// ../../src/lib/utils/parquet-metadata.ts
|
|
1840
|
-
var WGS84_CODES = /* @__PURE__ */ new Set([4326, 4979]);
|
|
1841
1876
|
function mapParquetType(col) {
|
|
1842
1877
|
const lt = col.logical_type;
|
|
1843
1878
|
if (lt) {
|
|
@@ -1977,25 +2012,280 @@ function extractBounds(geo) {
|
|
|
1977
2012
|
return [primaryCol.bbox[0], primaryCol.bbox[1], primaryCol.bbox[2], primaryCol.bbox[3]];
|
|
1978
2013
|
}
|
|
1979
2014
|
|
|
1980
|
-
// ../../src/lib/
|
|
1981
|
-
var
|
|
1982
|
-
|
|
1983
|
-
|
|
1984
|
-
|
|
1985
|
-
|
|
1986
|
-
|
|
1987
|
-
|
|
1988
|
-
|
|
1989
|
-
|
|
1990
|
-
|
|
1991
|
-
|
|
1992
|
-
|
|
1993
|
-
|
|
1994
|
-
|
|
1995
|
-
|
|
1996
|
-
|
|
1997
|
-
|
|
2015
|
+
// ../../src/lib/storage/providers.ts
|
|
2016
|
+
var PROVIDERS = {
|
|
2017
|
+
s3: {
|
|
2018
|
+
label: "AWS S3",
|
|
2019
|
+
description: "Amazon S3 or any S3-compatible service",
|
|
2020
|
+
authMethod: "sigv4",
|
|
2021
|
+
needsRegion: true,
|
|
2022
|
+
needsEndpoint: false,
|
|
2023
|
+
defaultRegion: "us-east-1",
|
|
2024
|
+
endpointTemplate: null,
|
|
2025
|
+
regions: [
|
|
2026
|
+
{ code: "us-east-1", label: "US East (N. Virginia)" },
|
|
2027
|
+
{ code: "us-east-2", label: "US East (Ohio)" },
|
|
2028
|
+
{ code: "us-west-1", label: "US West (N. California)" },
|
|
2029
|
+
{ code: "us-west-2", label: "US West (Oregon)" },
|
|
2030
|
+
{ code: "eu-west-1", label: "EU (Ireland)" },
|
|
2031
|
+
{ code: "eu-west-2", label: "EU (London)" },
|
|
2032
|
+
{ code: "eu-west-3", label: "EU (Paris)" },
|
|
2033
|
+
{ code: "eu-central-1", label: "EU (Frankfurt)" },
|
|
2034
|
+
{ code: "eu-central-2", label: "EU (Zurich)" },
|
|
2035
|
+
{ code: "eu-north-1", label: "EU (Stockholm)" },
|
|
2036
|
+
{ code: "eu-south-1", label: "EU (Milan)" },
|
|
2037
|
+
{ code: "eu-south-2", label: "EU (Spain)" },
|
|
2038
|
+
{ code: "ap-northeast-1", label: "Asia Pacific (Tokyo)" },
|
|
2039
|
+
{ code: "ap-northeast-2", label: "Asia Pacific (Seoul)" },
|
|
2040
|
+
{ code: "ap-northeast-3", label: "Asia Pacific (Osaka)" },
|
|
2041
|
+
{ code: "ap-southeast-1", label: "Asia Pacific (Singapore)" },
|
|
2042
|
+
{ code: "ap-southeast-2", label: "Asia Pacific (Sydney)" },
|
|
2043
|
+
{ code: "ap-southeast-3", label: "Asia Pacific (Jakarta)" },
|
|
2044
|
+
{ code: "ap-south-1", label: "Asia Pacific (Mumbai)" },
|
|
2045
|
+
{ code: "ap-south-2", label: "Asia Pacific (Hyderabad)" },
|
|
2046
|
+
{ code: "ap-east-1", label: "Asia Pacific (Hong Kong)" },
|
|
2047
|
+
{ code: "sa-east-1", label: "South America (S\xE3o Paulo)" },
|
|
2048
|
+
{ code: "ca-central-1", label: "Canada (Central)" },
|
|
2049
|
+
{ code: "ca-west-1", label: "Canada (Calgary)" },
|
|
2050
|
+
{ code: "me-south-1", label: "Middle East (Bahrain)" },
|
|
2051
|
+
{ code: "me-central-1", label: "Middle East (UAE)" },
|
|
2052
|
+
{ code: "af-south-1", label: "Africa (Cape Town)" },
|
|
2053
|
+
{ code: "il-central-1", label: "Israel (Tel Aviv)" }
|
|
2054
|
+
],
|
|
2055
|
+
endpointPlaceholder: "Leave empty for AWS, or enter custom S3 endpoint",
|
|
2056
|
+
schemes: ["s3", "s3a", "s3n", "aws"]
|
|
2057
|
+
},
|
|
2058
|
+
gcs: {
|
|
2059
|
+
label: "Google Cloud",
|
|
2060
|
+
description: "Google Cloud Storage",
|
|
2061
|
+
authMethod: "sigv4",
|
|
2062
|
+
needsRegion: false,
|
|
2063
|
+
needsEndpoint: false,
|
|
2064
|
+
defaultRegion: "auto",
|
|
2065
|
+
endpointTemplate: "https://storage.googleapis.com",
|
|
2066
|
+
regions: [],
|
|
2067
|
+
endpointPlaceholder: "https://storage.googleapis.com",
|
|
2068
|
+
schemes: ["gs", "gcs"]
|
|
2069
|
+
},
|
|
2070
|
+
r2: {
|
|
2071
|
+
label: "Cloudflare R2",
|
|
2072
|
+
description: "Cloudflare R2 Storage",
|
|
2073
|
+
authMethod: "sigv4",
|
|
2074
|
+
needsRegion: false,
|
|
2075
|
+
needsEndpoint: true,
|
|
2076
|
+
defaultRegion: "auto",
|
|
2077
|
+
endpointTemplate: null,
|
|
2078
|
+
regions: [],
|
|
2079
|
+
endpointPlaceholder: "https://<account-id>.r2.cloudflarestorage.com",
|
|
2080
|
+
schemes: ["r2"]
|
|
2081
|
+
},
|
|
2082
|
+
azure: {
|
|
2083
|
+
label: "Azure",
|
|
2084
|
+
description: "Azure Blob Storage",
|
|
2085
|
+
authMethod: "sas-token",
|
|
2086
|
+
needsRegion: false,
|
|
2087
|
+
needsEndpoint: true,
|
|
2088
|
+
defaultRegion: "",
|
|
2089
|
+
endpointTemplate: null,
|
|
2090
|
+
regions: [],
|
|
2091
|
+
bucketLabel: "Container",
|
|
2092
|
+
endpointPlaceholder: "https://<account>.blob.core.windows.net",
|
|
2093
|
+
schemes: ["azure", "az", "abfs", "abfss", "wasbs", "adl"]
|
|
2094
|
+
},
|
|
2095
|
+
minio: {
|
|
2096
|
+
label: "MinIO",
|
|
2097
|
+
description: "Self-hosted MinIO or S3-compatible",
|
|
2098
|
+
authMethod: "sigv4",
|
|
2099
|
+
needsRegion: false,
|
|
2100
|
+
needsEndpoint: true,
|
|
2101
|
+
defaultRegion: "us-east-1",
|
|
2102
|
+
endpointTemplate: null,
|
|
2103
|
+
regions: [],
|
|
2104
|
+
endpointPlaceholder: "https://minio.example.com or http://localhost:9000",
|
|
2105
|
+
schemes: []
|
|
2106
|
+
},
|
|
2107
|
+
storj: {
|
|
2108
|
+
label: "Storj",
|
|
2109
|
+
description: "Storj Decentralized Cloud",
|
|
2110
|
+
authMethod: "sigv4",
|
|
2111
|
+
needsRegion: false,
|
|
2112
|
+
needsEndpoint: false,
|
|
2113
|
+
defaultRegion: "us1",
|
|
2114
|
+
endpointTemplate: "https://gateway.storjshare.io",
|
|
2115
|
+
regions: [
|
|
2116
|
+
{ code: "us1", label: "US1" },
|
|
2117
|
+
{ code: "eu1", label: "EU1" },
|
|
2118
|
+
{ code: "ap1", label: "AP1" }
|
|
2119
|
+
],
|
|
2120
|
+
endpointPlaceholder: "https://gateway.storjshare.io",
|
|
2121
|
+
schemes: ["storj", "sj"]
|
|
2122
|
+
},
|
|
2123
|
+
b2: {
|
|
2124
|
+
label: "Backblaze B2",
|
|
2125
|
+
description: "Backblaze B2 Cloud Storage",
|
|
2126
|
+
authMethod: "sigv4",
|
|
2127
|
+
needsRegion: true,
|
|
2128
|
+
needsEndpoint: false,
|
|
2129
|
+
defaultRegion: "us-west-004",
|
|
2130
|
+
endpointTemplate: "https://s3.{region}.backblazeb2.com",
|
|
2131
|
+
regions: [
|
|
2132
|
+
{ code: "us-west-000", label: "US West (Sacramento)" },
|
|
2133
|
+
{ code: "us-west-001", label: "US West (Stockton)" },
|
|
2134
|
+
{ code: "us-west-002", label: "US West (Phoenix)" },
|
|
2135
|
+
{ code: "us-west-004", label: "US West" },
|
|
2136
|
+
{ code: "us-east-005", label: "US East (Reston)" },
|
|
2137
|
+
{ code: "eu-central-003", label: "EU Central (Amsterdam)" },
|
|
2138
|
+
{ code: "ca-central-001", label: "Canada (Toronto)" }
|
|
2139
|
+
],
|
|
2140
|
+
endpointPlaceholder: "https://s3.us-west-004.backblazeb2.com",
|
|
2141
|
+
schemes: []
|
|
2142
|
+
},
|
|
2143
|
+
digitalocean: {
|
|
2144
|
+
label: "DigitalOcean",
|
|
2145
|
+
description: "DigitalOcean Spaces",
|
|
2146
|
+
authMethod: "sigv4",
|
|
2147
|
+
needsRegion: true,
|
|
2148
|
+
needsEndpoint: false,
|
|
2149
|
+
defaultRegion: "nyc3",
|
|
2150
|
+
endpointTemplate: "https://{region}.digitaloceanspaces.com",
|
|
2151
|
+
regions: [
|
|
2152
|
+
{ code: "nyc3", label: "New York 3" },
|
|
2153
|
+
{ code: "sfo3", label: "San Francisco 3" },
|
|
2154
|
+
{ code: "ams3", label: "Amsterdam 3" },
|
|
2155
|
+
{ code: "sgp1", label: "Singapore 1" },
|
|
2156
|
+
{ code: "lon1", label: "London 1" },
|
|
2157
|
+
{ code: "fra1", label: "Frankfurt 1" },
|
|
2158
|
+
{ code: "tor1", label: "Toronto 1" },
|
|
2159
|
+
{ code: "blr1", label: "Bangalore 1" },
|
|
2160
|
+
{ code: "syd1", label: "Sydney 1" }
|
|
2161
|
+
],
|
|
2162
|
+
endpointPlaceholder: "https://nyc3.digitaloceanspaces.com",
|
|
2163
|
+
schemes: []
|
|
2164
|
+
},
|
|
2165
|
+
wasabi: {
|
|
2166
|
+
label: "Wasabi",
|
|
2167
|
+
description: "Wasabi Hot Cloud Storage",
|
|
2168
|
+
authMethod: "sigv4",
|
|
2169
|
+
needsRegion: true,
|
|
2170
|
+
needsEndpoint: false,
|
|
2171
|
+
defaultRegion: "us-east-1",
|
|
2172
|
+
endpointTemplate: "https://s3.{region}.wasabisys.com",
|
|
2173
|
+
regions: [
|
|
2174
|
+
{ code: "us-east-1", label: "US East 1 (Virginia)" },
|
|
2175
|
+
{ code: "us-east-2", label: "US East 2 (Virginia)" },
|
|
2176
|
+
{ code: "us-central-1", label: "US Central 1 (Texas)" },
|
|
2177
|
+
{ code: "us-west-1", label: "US West 1 (Oregon)" },
|
|
2178
|
+
{ code: "eu-central-1", label: "EU Central 1 (Amsterdam)" },
|
|
2179
|
+
{ code: "eu-central-2", label: "EU Central 2 (Frankfurt)" },
|
|
2180
|
+
{ code: "eu-west-1", label: "EU West 1 (London)" },
|
|
2181
|
+
{ code: "eu-west-2", label: "EU West 2 (Paris)" },
|
|
2182
|
+
{ code: "ap-northeast-1", label: "AP Northeast 1 (Tokyo)" },
|
|
2183
|
+
{ code: "ap-northeast-2", label: "AP Northeast 2 (Osaka)" },
|
|
2184
|
+
{ code: "ap-southeast-1", label: "AP Southeast 1 (Singapore)" },
|
|
2185
|
+
{ code: "ap-southeast-2", label: "AP Southeast 2 (Sydney)" },
|
|
2186
|
+
{ code: "ca-central-1", label: "Canada (Toronto)" }
|
|
2187
|
+
],
|
|
2188
|
+
endpointPlaceholder: "https://s3.us-east-1.wasabisys.com",
|
|
2189
|
+
schemes: []
|
|
2190
|
+
},
|
|
2191
|
+
contabo: {
|
|
2192
|
+
label: "Contabo",
|
|
2193
|
+
description: "Contabo Object Storage",
|
|
2194
|
+
authMethod: "sigv4",
|
|
2195
|
+
needsRegion: true,
|
|
2196
|
+
needsEndpoint: false,
|
|
2197
|
+
defaultRegion: "eu2",
|
|
2198
|
+
endpointTemplate: "https://{region}.contabostorage.com",
|
|
2199
|
+
regions: [
|
|
2200
|
+
{ code: "eu2", label: "European Union" },
|
|
2201
|
+
{ code: "usc1", label: "US Central" },
|
|
2202
|
+
{ code: "sin1", label: "Singapore" }
|
|
2203
|
+
],
|
|
2204
|
+
endpointPlaceholder: "https://eu2.contabostorage.com",
|
|
2205
|
+
schemes: []
|
|
2206
|
+
},
|
|
2207
|
+
hetzner: {
|
|
2208
|
+
label: "Hetzner",
|
|
2209
|
+
description: "Hetzner Object Storage",
|
|
2210
|
+
authMethod: "sigv4",
|
|
2211
|
+
needsRegion: true,
|
|
2212
|
+
needsEndpoint: false,
|
|
2213
|
+
defaultRegion: "fsn1",
|
|
2214
|
+
endpointTemplate: "https://{region}.your-objectstorage.com",
|
|
2215
|
+
regions: [
|
|
2216
|
+
{ code: "fsn1", label: "Falkenstein, DE" },
|
|
2217
|
+
{ code: "nbg1", label: "Nuremberg, DE" },
|
|
2218
|
+
{ code: "hel1", label: "Helsinki, FI" }
|
|
2219
|
+
],
|
|
2220
|
+
endpointPlaceholder: "https://fsn1.your-objectstorage.com",
|
|
2221
|
+
schemes: []
|
|
2222
|
+
},
|
|
2223
|
+
linode: {
|
|
2224
|
+
label: "Linode / Akamai",
|
|
2225
|
+
description: "Akamai / Linode Object Storage",
|
|
2226
|
+
authMethod: "sigv4",
|
|
2227
|
+
needsRegion: true,
|
|
2228
|
+
needsEndpoint: false,
|
|
2229
|
+
defaultRegion: "us-east-1",
|
|
2230
|
+
endpointTemplate: "https://{region}.linodeobjects.com",
|
|
2231
|
+
regions: [
|
|
2232
|
+
{ code: "us-east-1", label: "Newark, NJ" },
|
|
2233
|
+
{ code: "us-southeast-1", label: "Atlanta, GA" },
|
|
2234
|
+
{ code: "us-ord-1", label: "Chicago, IL" },
|
|
2235
|
+
{ code: "us-iad-1", label: "Washington, DC" },
|
|
2236
|
+
{ code: "us-lax-1", label: "Los Angeles, CA" },
|
|
2237
|
+
{ code: "us-sea-1", label: "Seattle, WA" },
|
|
2238
|
+
{ code: "us-mia-1", label: "Miami, FL" },
|
|
2239
|
+
{ code: "eu-central-1", label: "Frankfurt, DE" },
|
|
2240
|
+
{ code: "nl-ams-1", label: "Amsterdam, NL" },
|
|
2241
|
+
{ code: "gb-lon-1", label: "London, UK" },
|
|
2242
|
+
{ code: "fr-par-1", label: "Paris, FR" },
|
|
2243
|
+
{ code: "ap-south-1", label: "Singapore" },
|
|
2244
|
+
{ code: "jp-osa-1", label: "Osaka, JP" },
|
|
2245
|
+
{ code: "au-mel-1", label: "Melbourne, AU" },
|
|
2246
|
+
{ code: "br-gru-1", label: "S\xE3o Paulo, BR" },
|
|
2247
|
+
{ code: "in-maa-1", label: "Chennai, IN" },
|
|
2248
|
+
{ code: "id-cgk-1", label: "Jakarta, ID" },
|
|
2249
|
+
{ code: "it-mil-1", label: "Milan, IT" },
|
|
2250
|
+
{ code: "se-sto-1", label: "Stockholm, SE" }
|
|
2251
|
+
],
|
|
2252
|
+
endpointPlaceholder: "https://us-east-1.linodeobjects.com",
|
|
2253
|
+
schemes: []
|
|
2254
|
+
},
|
|
2255
|
+
ovhcloud: {
|
|
2256
|
+
label: "OVHcloud",
|
|
2257
|
+
description: "OVHcloud Object Storage",
|
|
2258
|
+
authMethod: "sigv4",
|
|
2259
|
+
needsRegion: true,
|
|
2260
|
+
needsEndpoint: false,
|
|
2261
|
+
defaultRegion: "gra",
|
|
2262
|
+
endpointTemplate: "https://s3.{region}.io.cloud.ovh.net",
|
|
2263
|
+
regions: [
|
|
2264
|
+
{ code: "gra", label: "Gravelines, FR" },
|
|
2265
|
+
{ code: "sbg", label: "Strasbourg, FR" },
|
|
2266
|
+
{ code: "bhs", label: "Beauharnois, CA" },
|
|
2267
|
+
{ code: "de", label: "Frankfurt, DE" },
|
|
2268
|
+
{ code: "uk", label: "London, UK" },
|
|
2269
|
+
{ code: "waw", label: "Warsaw, PL" }
|
|
2270
|
+
],
|
|
2271
|
+
endpointPlaceholder: "https://s3.gra.io.cloud.ovh.net",
|
|
2272
|
+
schemes: []
|
|
2273
|
+
}
|
|
1998
2274
|
};
|
|
2275
|
+
|
|
2276
|
+
// ../../src/lib/utils/storage-url.ts
|
|
2277
|
+
function buildSchemeMap() {
|
|
2278
|
+
const map = {};
|
|
2279
|
+
for (const [id, def] of Object.entries(PROVIDERS)) {
|
|
2280
|
+
for (const scheme of def.schemes) {
|
|
2281
|
+
const key = `${scheme}://`;
|
|
2282
|
+
map[key] = { provider: id, strip: key.length };
|
|
2283
|
+
}
|
|
2284
|
+
}
|
|
2285
|
+
map["swift://"] = { provider: "unknown", strip: 8 };
|
|
2286
|
+
return map;
|
|
2287
|
+
}
|
|
2288
|
+
var SCHEME_MAP = buildSchemeMap();
|
|
1999
2289
|
function defaultResult(defaults) {
|
|
2000
2290
|
return {
|
|
2001
2291
|
bucket: "",
|
|
@@ -2100,7 +2390,7 @@ function parseStorageUrl(input, defaults = {}) {
|
|
|
2100
2390
|
bucket: doVhost[1],
|
|
2101
2391
|
region: doVhost[2],
|
|
2102
2392
|
endpoint: `${url.protocol}//${doVhost[2]}.digitaloceanspaces.com`,
|
|
2103
|
-
provider: "
|
|
2393
|
+
provider: "digitalocean",
|
|
2104
2394
|
prefix: pathParts.join("/")
|
|
2105
2395
|
};
|
|
2106
2396
|
}
|
|
@@ -2110,7 +2400,7 @@ function parseStorageUrl(input, defaults = {}) {
|
|
|
2110
2400
|
bucket: pathParts[0],
|
|
2111
2401
|
region: doPath[1],
|
|
2112
2402
|
endpoint: `${url.protocol}//${url.host}`,
|
|
2113
|
-
provider: "
|
|
2403
|
+
provider: "digitalocean",
|
|
2114
2404
|
prefix: pathParts.slice(1).join("/")
|
|
2115
2405
|
};
|
|
2116
2406
|
}
|
|
@@ -2120,7 +2410,7 @@ function parseStorageUrl(input, defaults = {}) {
|
|
|
2120
2410
|
bucket: pathParts[0],
|
|
2121
2411
|
region: wasabiMatch[1],
|
|
2122
2412
|
endpoint: `${url.protocol}//${url.host}`,
|
|
2123
|
-
provider: "
|
|
2413
|
+
provider: "wasabi",
|
|
2124
2414
|
prefix: pathParts.slice(1).join("/")
|
|
2125
2415
|
};
|
|
2126
2416
|
}
|
|
@@ -2130,7 +2420,7 @@ function parseStorageUrl(input, defaults = {}) {
|
|
|
2130
2420
|
bucket: b2S3[1],
|
|
2131
2421
|
region: b2S3[2],
|
|
2132
2422
|
endpoint: `${url.protocol}//s3.${b2S3[2]}.backblazeb2.com`,
|
|
2133
|
-
provider: "
|
|
2423
|
+
provider: "b2",
|
|
2134
2424
|
prefix: pathParts.join("/")
|
|
2135
2425
|
};
|
|
2136
2426
|
}
|
|
@@ -2140,7 +2430,7 @@ function parseStorageUrl(input, defaults = {}) {
|
|
|
2140
2430
|
bucket: pathParts[1],
|
|
2141
2431
|
region: defaults.region || "us-west-000",
|
|
2142
2432
|
endpoint: `${url.protocol}//${url.host}`,
|
|
2143
|
-
provider: "
|
|
2433
|
+
provider: "b2",
|
|
2144
2434
|
prefix: pathParts.slice(2).join("/")
|
|
2145
2435
|
};
|
|
2146
2436
|
}
|
|
@@ -2173,6 +2463,56 @@ function parseStorageUrl(input, defaults = {}) {
|
|
|
2173
2463
|
prefix: pathParts.slice(1).join("/")
|
|
2174
2464
|
};
|
|
2175
2465
|
}
|
|
2466
|
+
const contaboMatch = host.match(/^([a-z0-9]+)\.contabostorage\.com$/);
|
|
2467
|
+
if (contaboMatch && pathParts.length > 0) {
|
|
2468
|
+
return {
|
|
2469
|
+
bucket: pathParts[0],
|
|
2470
|
+
region: contaboMatch[1],
|
|
2471
|
+
endpoint: `${url.protocol}//${url.host}`,
|
|
2472
|
+
provider: "contabo",
|
|
2473
|
+
prefix: pathParts.slice(1).join("/")
|
|
2474
|
+
};
|
|
2475
|
+
}
|
|
2476
|
+
const hetznerMatch = host.match(/^([a-z0-9]+)\.your-objectstorage\.com$/);
|
|
2477
|
+
if (hetznerMatch && pathParts.length > 0) {
|
|
2478
|
+
return {
|
|
2479
|
+
bucket: pathParts[0],
|
|
2480
|
+
region: hetznerMatch[1],
|
|
2481
|
+
endpoint: `${url.protocol}//${url.host}`,
|
|
2482
|
+
provider: "hetzner",
|
|
2483
|
+
prefix: pathParts.slice(1).join("/")
|
|
2484
|
+
};
|
|
2485
|
+
}
|
|
2486
|
+
const linodeVhost = host.match(/^(.+)\.([a-z0-9-]+)\.linodeobjects\.com$/);
|
|
2487
|
+
if (linodeVhost) {
|
|
2488
|
+
return {
|
|
2489
|
+
bucket: linodeVhost[1],
|
|
2490
|
+
region: linodeVhost[2],
|
|
2491
|
+
endpoint: `${url.protocol}//${linodeVhost[2]}.linodeobjects.com`,
|
|
2492
|
+
provider: "linode",
|
|
2493
|
+
prefix: pathParts.join("/")
|
|
2494
|
+
};
|
|
2495
|
+
}
|
|
2496
|
+
const linodePath = host.match(/^([a-z0-9-]+)\.linodeobjects\.com$/);
|
|
2497
|
+
if (linodePath && pathParts.length > 0) {
|
|
2498
|
+
return {
|
|
2499
|
+
bucket: pathParts[0],
|
|
2500
|
+
region: linodePath[1],
|
|
2501
|
+
endpoint: `${url.protocol}//${url.host}`,
|
|
2502
|
+
provider: "linode",
|
|
2503
|
+
prefix: pathParts.slice(1).join("/")
|
|
2504
|
+
};
|
|
2505
|
+
}
|
|
2506
|
+
const ovhMatch = host.match(/^s3\.([a-z0-9-]+)\.io\.cloud\.ovh\.(?:net|us)$/);
|
|
2507
|
+
if (ovhMatch && pathParts.length > 0) {
|
|
2508
|
+
return {
|
|
2509
|
+
bucket: pathParts[0],
|
|
2510
|
+
region: ovhMatch[1],
|
|
2511
|
+
endpoint: `${url.protocol}//${url.host}`,
|
|
2512
|
+
provider: "ovhcloud",
|
|
2513
|
+
prefix: pathParts.slice(1).join("/")
|
|
2514
|
+
};
|
|
2515
|
+
}
|
|
2176
2516
|
const isMinioLike = host.includes("minio") || host === "localhost" || host === "127.0.0.1" || host.startsWith("192.168.") || host.startsWith("10.");
|
|
2177
2517
|
if (isMinioLike && pathParts.length > 0) {
|
|
2178
2518
|
return {
|
|
@@ -2509,8 +2849,17 @@ function isWKT(value) {
|
|
|
2509
2849
|
return WKT_TYPES.some((t) => s.startsWith(t) || s.startsWith(`MULTI${t}`));
|
|
2510
2850
|
}
|
|
2511
2851
|
|
|
2852
|
+
exports.COPY_FEEDBACK_MS = COPY_FEEDBACK_MS;
|
|
2853
|
+
exports.DEFAULT_TARGET_CRS = DEFAULT_TARGET_CRS;
|
|
2854
|
+
exports.DUCKDB_INIT_TIMEOUT_MS = DUCKDB_INIT_TIMEOUT_MS;
|
|
2855
|
+
exports.LAYER_HUE_MULTIPLIER = LAYER_HUE_MULTIPLIER;
|
|
2856
|
+
exports.MAX_QUERY_HISTORY_ENTRIES = MAX_QUERY_HISTORY_ENTRIES;
|
|
2512
2857
|
exports.QueryCancelledError = QueryCancelledError;
|
|
2858
|
+
exports.SQL_PREVIEW_LENGTH = SQL_PREVIEW_LENGTH;
|
|
2859
|
+
exports.STORAGE_KEYS = STORAGE_KEYS;
|
|
2513
2860
|
exports.UrlAdapter = UrlAdapter;
|
|
2861
|
+
exports.VIEWER_DIR_EXTENSIONS = VIEWER_DIR_EXTENSIONS;
|
|
2862
|
+
exports.WGS84_CODES = WGS84_CODES;
|
|
2514
2863
|
exports.buildDuckDbSource = buildDuckDbSource;
|
|
2515
2864
|
exports.buildGeoArrowTables = buildGeoArrowTables;
|
|
2516
2865
|
exports.classifyType = classifyType;
|
|
@@ -2522,14 +2871,17 @@ exports.findGeoColumn = findGeoColumn;
|
|
|
2522
2871
|
exports.findGeoColumnFromRows = findGeoColumnFromRows;
|
|
2523
2872
|
exports.formatDate = formatDate;
|
|
2524
2873
|
exports.formatFileSize = formatFileSize;
|
|
2874
|
+
exports.formatValue = formatValue;
|
|
2525
2875
|
exports.generateHexDump = generateHexDump;
|
|
2526
2876
|
exports.getDuckDbReadFn = getDuckDbReadFn;
|
|
2527
2877
|
exports.getFileExtension = getFileExtension;
|
|
2528
2878
|
exports.getFileTypeInfo = getFileTypeInfo;
|
|
2529
2879
|
exports.getMimeType = getMimeType;
|
|
2530
2880
|
exports.getViewerKind = getViewerKind;
|
|
2881
|
+
exports.handleLoadError = handleLoadError;
|
|
2531
2882
|
exports.isCloudNativeFormat = isCloudNativeFormat;
|
|
2532
2883
|
exports.isQueryable = isQueryable;
|
|
2884
|
+
exports.jsonReplacerBigInt = jsonReplacerBigInt;
|
|
2533
2885
|
exports.looksLikeUrl = looksLikeUrl;
|
|
2534
2886
|
exports.normalizeGeomType = normalizeGeomType;
|
|
2535
2887
|
exports.parseStorageUrl = parseStorageUrl;
|