@cereusdb/minimal 0.1.2 → 0.2.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/README.md +35 -0
- package/dist/index.d.ts +34 -0
- package/dist/index.js +25 -1
- package/dist/wasm/cereusdb.d.ts +11 -1
- package/dist/wasm/cereusdb.js +39 -2
- package/dist/wasm/cereusdb_bg.wasm +0 -0
- package/dist/wasm/cereusdb_bg.wasm.d.ts +3 -1
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -24,16 +24,25 @@ Included function families:
|
|
|
24
24
|
|
|
25
25
|
Not included in this package:
|
|
26
26
|
|
|
27
|
+
- Browser object stores for ranged remote Parquet reads and S3/GCS/Azure/HTTP providers
|
|
27
28
|
- `ST_Transform`
|
|
28
29
|
- S2 geography kernels
|
|
29
30
|
- Raster `RS_*` functions
|
|
30
31
|
|
|
32
|
+
## Object storage support
|
|
33
|
+
|
|
34
|
+
Browser object stores are not included in `@cereusdb/minimal`. Use `@cereusdb/standard`, `@cereusdb/global`, or `@cereusdb/full` when you need `registerObjectStores()` and `registerParquetTable()`.
|
|
35
|
+
|
|
31
36
|
## JS / TS API
|
|
32
37
|
|
|
33
38
|
Exports:
|
|
34
39
|
|
|
35
40
|
- `CereusDB`
|
|
36
41
|
- `CereusDBOptions`
|
|
42
|
+
- `ObjectStoreRegistryConfig`
|
|
43
|
+
- `ObjectStoreConfig`
|
|
44
|
+
- `ObjectStoreProvider`
|
|
45
|
+
- `RegisterParquetTableOptions`
|
|
37
46
|
- `RasterFormat`
|
|
38
47
|
- `QueryResult`
|
|
39
48
|
|
|
@@ -41,6 +50,7 @@ Main types:
|
|
|
41
50
|
|
|
42
51
|
```ts
|
|
43
52
|
type RasterFormat = 'geotiff' | 'tiff';
|
|
53
|
+
type ObjectStoreProvider = 'http' | 's3' | 'gcs' | 'azure';
|
|
44
54
|
|
|
45
55
|
interface CereusDBOptions {
|
|
46
56
|
wasmUrl?: string;
|
|
@@ -51,6 +61,24 @@ interface CereusDBOptions {
|
|
|
51
61
|
| BufferSource
|
|
52
62
|
| WebAssembly.Module
|
|
53
63
|
| Promise<Response>;
|
|
64
|
+
objectStores?: ObjectStoreRegistryConfig;
|
|
65
|
+
}
|
|
66
|
+
|
|
67
|
+
interface ObjectStoreRegistryConfig {
|
|
68
|
+
maxConcurrency?: number;
|
|
69
|
+
stores: ObjectStoreConfig[];
|
|
70
|
+
}
|
|
71
|
+
|
|
72
|
+
interface ObjectStoreConfig {
|
|
73
|
+
name?: string;
|
|
74
|
+
provider: ObjectStoreProvider;
|
|
75
|
+
url: string;
|
|
76
|
+
options?: Record<string, string | number | boolean>;
|
|
77
|
+
}
|
|
78
|
+
|
|
79
|
+
interface RegisterParquetTableOptions {
|
|
80
|
+
fileExtension?: string;
|
|
81
|
+
targetPartitions?: number;
|
|
54
82
|
}
|
|
55
83
|
```
|
|
56
84
|
|
|
@@ -62,6 +90,12 @@ class CereusDB {
|
|
|
62
90
|
sql(query: string): Promise<Uint8Array>;
|
|
63
91
|
sqlJSON(query: string): Promise<Record<string, unknown>[]>;
|
|
64
92
|
registerRemoteParquet(name: string, url: string): Promise<void>;
|
|
93
|
+
registerObjectStores(config: ObjectStoreRegistryConfig): void;
|
|
94
|
+
registerParquetTable(
|
|
95
|
+
name: string,
|
|
96
|
+
url: string,
|
|
97
|
+
options?: RegisterParquetTableOptions,
|
|
98
|
+
): Promise<void>;
|
|
65
99
|
registerFile(name: string, file: File): Promise<void>;
|
|
66
100
|
registerGeoJSON(name: string, geojson: string | object): void;
|
|
67
101
|
registerRaster(name: string, data: BufferSource, format: RasterFormat): void;
|
|
@@ -77,6 +111,7 @@ API notes:
|
|
|
77
111
|
- `sql()` returns Arrow IPC bytes as `Uint8Array`.
|
|
78
112
|
- `sqlJSON()` returns parsed JSON rows.
|
|
79
113
|
- `registerFile()` supports `.parquet`, `.geoparquet`, `.geojson`, and `.json` in this package.
|
|
114
|
+
- Browser object-store methods are part of the shared wrapper, but object-store registration requires `@cereusdb/standard`, `@cereusdb/global`, or `@cereusdb/full`.
|
|
80
115
|
- `registerRaster()` and `registerGeoTIFF()` are part of the shared wrapper, but raster registration requires `@cereusdb/full`.
|
|
81
116
|
|
|
82
117
|
## Example
|
package/dist/index.d.ts
CHANGED
|
@@ -13,8 +13,33 @@ export interface CereusDBOptions {
|
|
|
13
13
|
wasmUrl?: string;
|
|
14
14
|
/** Preloaded WASM bytes/module for Node or custom loaders. */
|
|
15
15
|
wasmSource?: RequestInfo | URL | Response | BufferSource | WebAssembly.Module | Promise<Response>;
|
|
16
|
+
/** Browser-backed object stores to register at startup. */
|
|
17
|
+
objectStores?: ObjectStoreRegistryConfig;
|
|
16
18
|
}
|
|
17
19
|
export type RasterFormat = 'geotiff' | 'tiff';
|
|
20
|
+
export type ObjectStoreProvider = 'http' | 's3' | 'gcs' | 'azure';
|
|
21
|
+
export interface ObjectStoreRegistryConfig {
|
|
22
|
+
/** Maximum concurrent browser fetches used by object_store. */
|
|
23
|
+
maxConcurrency?: number;
|
|
24
|
+
/** Stores registered by URL prefix. */
|
|
25
|
+
stores: ObjectStoreConfig[];
|
|
26
|
+
}
|
|
27
|
+
export interface ObjectStoreConfig {
|
|
28
|
+
/** Optional diagnostic name. */
|
|
29
|
+
name?: string;
|
|
30
|
+
/** Backing provider. */
|
|
31
|
+
provider: ObjectStoreProvider;
|
|
32
|
+
/** URL prefix, for example https://host, s3://bucket, gs://bucket. */
|
|
33
|
+
url: string;
|
|
34
|
+
/** Upstream object_store option keys and primitive values. */
|
|
35
|
+
options?: Record<string, string | number | boolean>;
|
|
36
|
+
}
|
|
37
|
+
export interface RegisterParquetTableOptions {
|
|
38
|
+
/** File extension used during listing discovery. Defaults to .parquet. */
|
|
39
|
+
fileExtension?: string;
|
|
40
|
+
/** Optional DataFusion target partition count. */
|
|
41
|
+
targetPartitions?: number;
|
|
42
|
+
}
|
|
18
43
|
export declare class CereusDB {
|
|
19
44
|
private inner;
|
|
20
45
|
private constructor();
|
|
@@ -36,6 +61,14 @@ export declare class CereusDB {
|
|
|
36
61
|
* The server must support CORS.
|
|
37
62
|
*/
|
|
38
63
|
registerRemoteParquet(name: string, url: string): Promise<void>;
|
|
64
|
+
/**
|
|
65
|
+
* Register browser-backed object stores for ranged and listing reads.
|
|
66
|
+
*/
|
|
67
|
+
registerObjectStores(config: ObjectStoreRegistryConfig): void;
|
|
68
|
+
/**
|
|
69
|
+
* Register a remote Parquet object or prefix through DataFusion's listing table path.
|
|
70
|
+
*/
|
|
71
|
+
registerParquetTable(name: string, url: string, options?: RegisterParquetTableOptions): Promise<void>;
|
|
39
72
|
/**
|
|
40
73
|
* Register a local file (from File API / drag-and-drop) as a table.
|
|
41
74
|
* Currently supports Parquet, GeoJSON, and GeoTIFF rasters.
|
|
@@ -61,4 +94,5 @@ export declare class CereusDB {
|
|
|
61
94
|
tables(): string[];
|
|
62
95
|
/** Version string. */
|
|
63
96
|
version(): string;
|
|
97
|
+
private objectStoreApi;
|
|
64
98
|
}
|
package/dist/index.js
CHANGED
|
@@ -29,7 +29,11 @@ export class CereusDB {
|
|
|
29
29
|
await init({ module_or_path: source });
|
|
30
30
|
}
|
|
31
31
|
const inner = WasmCereusDB.create();
|
|
32
|
-
|
|
32
|
+
const db = new CereusDB(inner);
|
|
33
|
+
if (options?.objectStores !== undefined) {
|
|
34
|
+
db.registerObjectStores(options.objectStores);
|
|
35
|
+
}
|
|
36
|
+
return db;
|
|
33
37
|
}
|
|
34
38
|
/**
|
|
35
39
|
* Execute a SQL query and return results as Arrow IPC bytes.
|
|
@@ -51,6 +55,18 @@ export class CereusDB {
|
|
|
51
55
|
async registerRemoteParquet(name, url) {
|
|
52
56
|
await this.inner.register_remote_parquet(name, url);
|
|
53
57
|
}
|
|
58
|
+
/**
|
|
59
|
+
* Register browser-backed object stores for ranged and listing reads.
|
|
60
|
+
*/
|
|
61
|
+
registerObjectStores(config) {
|
|
62
|
+
this.objectStoreApi().register_object_stores(config);
|
|
63
|
+
}
|
|
64
|
+
/**
|
|
65
|
+
* Register a remote Parquet object or prefix through DataFusion's listing table path.
|
|
66
|
+
*/
|
|
67
|
+
async registerParquetTable(name, url, options = {}) {
|
|
68
|
+
await this.objectStoreApi().register_parquet_table(name, url, options);
|
|
69
|
+
}
|
|
54
70
|
/**
|
|
55
71
|
* Register a local file (from File API / drag-and-drop) as a table.
|
|
56
72
|
* Currently supports Parquet, GeoJSON, and GeoTIFF rasters.
|
|
@@ -105,4 +121,12 @@ export class CereusDB {
|
|
|
105
121
|
version() {
|
|
106
122
|
return this.inner.version();
|
|
107
123
|
}
|
|
124
|
+
objectStoreApi() {
|
|
125
|
+
const api = this.inner;
|
|
126
|
+
if (typeof api.register_object_stores !== 'function' ||
|
|
127
|
+
typeof api.register_parquet_table !== 'function') {
|
|
128
|
+
throw new Error('Browser object stores are not available in this CereusDB build');
|
|
129
|
+
}
|
|
130
|
+
return api;
|
|
131
|
+
}
|
|
108
132
|
}
|
package/dist/wasm/cereusdb.d.ts
CHANGED
|
@@ -27,11 +27,19 @@ export class CereusDB {
|
|
|
27
27
|
* Requires the full GDAL-enabled build.
|
|
28
28
|
*/
|
|
29
29
|
register_geotiff_buffer(table_name: string, data: Uint8Array): void;
|
|
30
|
+
/**
|
|
31
|
+
* Register browser-backed object stores for ranged/listing reads.
|
|
32
|
+
*/
|
|
33
|
+
register_object_stores(config: any): void;
|
|
30
34
|
/**
|
|
31
35
|
* Register a Uint8Array containing Parquet data as a named table.
|
|
32
36
|
* Use for files obtained via the browser File API.
|
|
33
37
|
*/
|
|
34
38
|
register_parquet_buffer(table_name: string, data: Uint8Array): Promise<void>;
|
|
39
|
+
/**
|
|
40
|
+
* Register a remote Parquet object or prefix as a DataFusion listing table.
|
|
41
|
+
*/
|
|
42
|
+
register_parquet_table(table_name: string, table_url: string, options: any): Promise<void>;
|
|
35
43
|
/**
|
|
36
44
|
* Register a raster buffer as a single-column raster table.
|
|
37
45
|
* Requires the full GDAL-enabled build.
|
|
@@ -81,7 +89,9 @@ export interface InitOutput {
|
|
|
81
89
|
readonly cereusdb_drop_table: (a: number, b: number, c: number) => [number, number];
|
|
82
90
|
readonly cereusdb_register_geojson: (a: number, b: number, c: number, d: number, e: number) => [number, number];
|
|
83
91
|
readonly cereusdb_register_geotiff_buffer: (a: number, b: number, c: number, d: number, e: number) => [number, number];
|
|
92
|
+
readonly cereusdb_register_object_stores: (a: number, b: any) => [number, number];
|
|
84
93
|
readonly cereusdb_register_parquet_buffer: (a: number, b: number, c: number, d: number, e: number) => any;
|
|
94
|
+
readonly cereusdb_register_parquet_table: (a: number, b: number, c: number, d: number, e: number, f: any) => any;
|
|
85
95
|
readonly cereusdb_register_raster_buffer: (a: number, b: number, c: number, d: number, e: number, f: number, g: number) => [number, number];
|
|
86
96
|
readonly cereusdb_register_remote_parquet: (a: number, b: number, c: number, d: number, e: number) => any;
|
|
87
97
|
readonly cereusdb_sql: (a: number, b: number, c: number) => any;
|
|
@@ -97,7 +107,7 @@ export interface InitOutput {
|
|
|
97
107
|
readonly emscripten_builtin_free: (a: number) => void;
|
|
98
108
|
readonly emscripten_builtin_malloc: (a: number) => number;
|
|
99
109
|
readonly __cpp_exception: WebAssembly.Tag;
|
|
100
|
-
readonly
|
|
110
|
+
readonly wasm_bindgen__closure__destroy__h8db467765ce434ac: (a: number, b: number) => void;
|
|
101
111
|
readonly wasm_bindgen__convert__closures_____invoke__h7573a8a64f443504: (a: number, b: number, c: any) => [number, number];
|
|
102
112
|
readonly wasm_bindgen__convert__closures_____invoke__h3bcc27440de746c0: (a: number, b: number, c: any, d: any) => void;
|
|
103
113
|
readonly __wbindgen_malloc: (a: number, b: number) => number;
|
package/dist/wasm/cereusdb.js
CHANGED
|
@@ -110,6 +110,22 @@ export class CereusDB {
|
|
|
110
110
|
throw takeFromExternrefTable0(ret[0]);
|
|
111
111
|
}
|
|
112
112
|
}
|
|
113
|
+
/**
|
|
114
|
+
* Register browser-backed object stores for ranged/listing reads.
|
|
115
|
+
* @param {any} config
|
|
116
|
+
*/
|
|
117
|
+
register_object_stores(config) {
|
|
118
|
+
let ret;
|
|
119
|
+
__wbg_termination_guard();
|
|
120
|
+
try {
|
|
121
|
+
ret = wasm.cereusdb_register_object_stores(this.__wbg_ptr, config);;
|
|
122
|
+
} catch(e) {
|
|
123
|
+
__wbg_handle_catch(e);
|
|
124
|
+
}
|
|
125
|
+
if (ret[1]) {
|
|
126
|
+
throw takeFromExternrefTable0(ret[0]);
|
|
127
|
+
}
|
|
128
|
+
}
|
|
113
129
|
/**
|
|
114
130
|
* Register a Uint8Array containing Parquet data as a named table.
|
|
115
131
|
* Use for files obtained via the browser File API.
|
|
@@ -131,6 +147,27 @@ export class CereusDB {
|
|
|
131
147
|
}
|
|
132
148
|
return ret;
|
|
133
149
|
}
|
|
150
|
+
/**
|
|
151
|
+
* Register a remote Parquet object or prefix as a DataFusion listing table.
|
|
152
|
+
* @param {string} table_name
|
|
153
|
+
* @param {string} table_url
|
|
154
|
+
* @param {any} options
|
|
155
|
+
* @returns {Promise<void>}
|
|
156
|
+
*/
|
|
157
|
+
register_parquet_table(table_name, table_url, options) {
|
|
158
|
+
const ptr0 = passStringToWasm0(table_name, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc);
|
|
159
|
+
const len0 = WASM_VECTOR_LEN;
|
|
160
|
+
const ptr1 = passStringToWasm0(table_url, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc);
|
|
161
|
+
const len1 = WASM_VECTOR_LEN;
|
|
162
|
+
let ret;
|
|
163
|
+
__wbg_termination_guard();
|
|
164
|
+
try {
|
|
165
|
+
ret = wasm.cereusdb_register_parquet_table(this.__wbg_ptr, ptr0, len0, ptr1, len1, options);;
|
|
166
|
+
} catch(e) {
|
|
167
|
+
__wbg_handle_catch(e);
|
|
168
|
+
}
|
|
169
|
+
return ret;
|
|
170
|
+
}
|
|
134
171
|
/**
|
|
135
172
|
* Register a raster buffer as a single-column raster table.
|
|
136
173
|
* Requires the full GDAL-enabled build.
|
|
@@ -491,8 +528,8 @@ function __wbg_get_imports() {
|
|
|
491
528
|
return ret;
|
|
492
529
|
},
|
|
493
530
|
__wbindgen_cast_0000000000000001: function(arg0, arg1) {
|
|
494
|
-
// Cast intrinsic for `Closure(Closure { dtor_idx:
|
|
495
|
-
const ret = makeMutClosure(arg0, arg1, wasm.
|
|
531
|
+
// Cast intrinsic for `Closure(Closure { dtor_idx: 4368, function: Function { arguments: [Externref], shim_idx: 20024, ret: Result(Unit), inner_ret: Some(Result(Unit)) }, mutable: true }) -> Externref`.
|
|
532
|
+
const ret = makeMutClosure(arg0, arg1, wasm.wasm_bindgen__closure__destroy__h8db467765ce434ac, wasm_bindgen__convert__closures_____invoke__h7573a8a64f443504);
|
|
496
533
|
return ret;
|
|
497
534
|
},
|
|
498
535
|
__wbindgen_cast_0000000000000002: function(arg0, arg1) {
|
|
Binary file
|
|
@@ -14,7 +14,9 @@ export const cereusdb_create: () => [number, number, number];
|
|
|
14
14
|
export const cereusdb_drop_table: (a: number, b: number, c: number) => [number, number];
|
|
15
15
|
export const cereusdb_register_geojson: (a: number, b: number, c: number, d: number, e: number) => [number, number];
|
|
16
16
|
export const cereusdb_register_geotiff_buffer: (a: number, b: number, c: number, d: number, e: number) => [number, number];
|
|
17
|
+
export const cereusdb_register_object_stores: (a: number, b: any) => [number, number];
|
|
17
18
|
export const cereusdb_register_parquet_buffer: (a: number, b: number, c: number, d: number, e: number) => any;
|
|
19
|
+
export const cereusdb_register_parquet_table: (a: number, b: number, c: number, d: number, e: number, f: any) => any;
|
|
18
20
|
export const cereusdb_register_raster_buffer: (a: number, b: number, c: number, d: number, e: number, f: number, g: number) => [number, number];
|
|
19
21
|
export const cereusdb_register_remote_parquet: (a: number, b: number, c: number, d: number, e: number) => any;
|
|
20
22
|
export const cereusdb_sql: (a: number, b: number, c: number) => any;
|
|
@@ -30,7 +32,7 @@ export const abort: () => void;
|
|
|
30
32
|
export const emscripten_builtin_free: (a: number) => void;
|
|
31
33
|
export const emscripten_builtin_malloc: (a: number) => number;
|
|
32
34
|
export const __cpp_exception: WebAssembly.Tag;
|
|
33
|
-
export const
|
|
35
|
+
export const wasm_bindgen__closure__destroy__h8db467765ce434ac: (a: number, b: number) => void;
|
|
34
36
|
export const wasm_bindgen__convert__closures_____invoke__h7573a8a64f443504: (a: number, b: number, c: any) => [number, number];
|
|
35
37
|
export const wasm_bindgen__convert__closures_____invoke__h3bcc27440de746c0: (a: number, b: number, c: any, d: any) => void;
|
|
36
38
|
export const __wbindgen_malloc: (a: number, b: number) => number;
|